diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..3353c683dff --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,42 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node +{ + "name": "Node.js & TypeScript", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/typescript-node:0-16", + "features": { + "ghcr.io/devcontainers/features/github-cli:1": {}, + "ghcr.io/devcontainers/features/rust:1": {}, + "devwasm.azurecr.io/dev-wasm/dev-wasm-feature/rust-wasi:0": {} + }, + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "onCreateCommand": "/bin/bash ./.devcontainer/setup.sh", + + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + "rust-lang.rust-analyzer", + "bungcip.better-toml", + "ms-vscode.cpptools", + "GitHub.copilot", + "dustypomerleau.rust-syntax", + "serayuzgur.crates", + "esbenp.prettier-vscode", + "dbaeumer.vscode-eslint", + "mutantdino.resourcemonitor", + "DavidAnson.vscode-markdownlint" + ] + } + } + + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100644 index 00000000000..1c753fddfd7 --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +echo "🚀 Setting up Rushstack codespace..." + +# Set local git config +echo "🔑 Setting up local git config..." +git config --local user.email ${GITHUB_USER}@users.noreply.github.com +git config --local user.name "$(git config --system user.name)" + +# Install Rush and Heft Dependencies +echo "📦 Installing Rush, Heft, & Prettier dependencies..." +npm install -g @microsoft/rush @rushstack/heft prettier + +# Install Rush Dependencies +echo "📦 Installing monorepo dependencies..." +rush install + +echo "🚀 Codespace setup complete! " +echo "🙏 Thank you for contributing to Rushstack! " \ No newline at end of file diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 9e27f21779f..935ac6772e0 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,17 +1,24 @@ -.github/CODEOWNERS @iclanton @octogonz @patmill @apostolisms -common/config/**/* @iclanton @octogonz @patmill @apostolisms +.github/CODEOWNERS @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft @patmill +common/autoinstallers/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft @patmill +common/config/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft @patmill -common/reviews/**/* @iclanton @octogonz @apostolisms +common/reviews/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft -apps/**/* @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -build-tests/**/* @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -core-build/**/* @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -libraries/**/* @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -stack/**/* @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -webpack/**/* @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -rush.json @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -.gitattributes @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -.gitignore @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L -README.md @iclanton @octogonz @apostolisms @halfnibble @sachinjoseph @D4N14L +apps/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +build-tests/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +build-tests-samples/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +eslint/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +heft-plugins/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +libraries/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +repo-scripts/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +rigs/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +rush-plugins/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +stack/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +tutorials/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +webpack/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft @TheLarkInn +rush.json @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +.gitattributes @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +.gitignore @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft +README.md @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft -libraries/load-themed-styles/**/* @iclanton @octogonz @dzearing @apostolisms +libraries/load-themed-styles/**/* @iclanton @octogonz @apostolisms @D4N14L @dmichon-msft @dzearing diff --git a/.github/workflows/file-doc-tickets.yml b/.github/workflows/file-doc-tickets.yml new file mode 100644 index 00000000000..d9ba3b0f374 --- /dev/null +++ b/.github/workflows/file-doc-tickets.yml @@ -0,0 +1,86 @@ +################################################################################ +# When pull requests are merged to the main branch, evaluate the pull request +# body and file a documentation ticket against the rushstack-websites repo +# with a corresponding documentation task. +# +# The pull request body must contain non-comment, non-whitespace text below +# the "Impacted documentation" header in the PR template to file a +# documentation ticket. +################################################################################ +name: File Doc Tickets + +on: + pull_request: + branches: + - main + types: + - closed + +jobs: + file-tickets: + name: File Tickets + if: ${{ github.event.pull_request.merged }} + runs-on: ubuntu-latest + steps: + - name: Use nodejs + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Parse PR body + run: | + cat <<-"EOF" > event.json + ${{ toJson(github.event) }} + EOF + + cat <<-"EOF" | node + const fs = require('fs'); + + const EVENT_FILE = 'event.json'; + const RESULT_FILE = 'issue.md'; + const DELIMITER = '## Impacted documentation'; + + const event = JSON.parse(fs.readFileSync(EVENT_FILE, 'utf8')); + const strippedBody = (event.pull_request.body || '').replace(//g, ''); + const delimIndex = strippedBody.indexOf(DELIMITER); + + if (delimIndex < 0) { + console.log('No documentation tasks detected -- skipping doc ticket.'); + process.exit(0); + } + + const delimBody = strippedBody.substring(delimIndex + DELIMITER.length).trim(); + + if (delimBody.length === 0) { + console.log('No documentation tasks detected -- skipping doc ticket.'); + process.exit(0); + } + + const quotedBody = delimBody.split('\n').map(line => `> ${line}`).join('\n'); + fs.writeFileSync(RESULT_FILE, [ + '### Summary', + '', + 'Follow up on documentation tasks from ' + event.pull_request.html_url + '.', + '', + '### Details', + '', + 'This ticket was generated automatically. Suggested documentation updates:', + '', + quotedBody, + '' + ].join('\n'), 'utf8'); + + EOF + + if [ -f issue.md ]; then + echo "FILE_TICKET=1" >> $GITHUB_ENV + fi + - name: File ticket + if: ${{ env.FILE_TICKET == '1' }} + uses: peter-evans/create-issue-from-file@af31b99c72f9e91877aea8a2d96fd613beafac84 # @v4 (locked) + with: + repository: microsoft/rushstack-websites + token: '${{ secrets.RUSHSTACK_WEBSITES_TOKEN }}' + title: '[doc] ${{ github.event.pull_request.title }}' + content-filepath: ./issue.md + labels: | + automated diff --git a/.gitignore b/.gitignore index 78e733a59d9..b17e572cd5a 100644 --- a/.gitignore +++ b/.gitignore @@ -83,6 +83,7 @@ lib-amd lib-es6 lib-esnext lib-commonjs +lib-shim dist *.scss.ts *.sass.ts diff --git a/README.md b/README.md index 6efdeba04af..c1d53e3651e 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ The home for various projects maintained by the Rush Stack community, whose mission is to develop reusable tooling for large scale TypeScript monorepos. + [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=69618902&machine=standardLinux32gb&devcontainer_path=.devcontainer%2Fdevcontainer.json&location=WestUs2) ## Documentation Links @@ -90,6 +91,7 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/webpack/loader-raw-script](./webpack/loader-raw-script/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Floader-raw-script.svg)](https://badge.fury.io/js/%40rushstack%2Floader-raw-script) | [changelog](./webpack/loader-raw-script/CHANGELOG.md) | [@rushstack/loader-raw-script](https://www.npmjs.com/package/@rushstack/loader-raw-script) | | [/webpack/preserve-dynamic-require-plugin](./webpack/preserve-dynamic-require-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fwebpack-preserve-dynamic-require-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fwebpack-preserve-dynamic-require-plugin) | [changelog](./webpack/preserve-dynamic-require-plugin/CHANGELOG.md) | [@rushstack/webpack-preserve-dynamic-require-plugin](https://www.npmjs.com/package/@rushstack/webpack-preserve-dynamic-require-plugin) | | [/webpack/set-webpack-public-path-plugin](./webpack/set-webpack-public-path-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fset-webpack-public-path-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fset-webpack-public-path-plugin) | [changelog](./webpack/set-webpack-public-path-plugin/CHANGELOG.md) | [@rushstack/set-webpack-public-path-plugin](https://www.npmjs.com/package/@rushstack/set-webpack-public-path-plugin) | +| [/webpack/webpack-embedded-dependencies-plugin](./webpack/webpack-embedded-dependencies-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fwebpack-embedded-dependencies-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fwebpack-embedded-dependencies-plugin) | [changelog](./webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md) | [@rushstack/webpack-embedded-dependencies-plugin](https://www.npmjs.com/package/@rushstack/webpack-embedded-dependencies-plugin) | | [/webpack/webpack-plugin-utilities](./webpack/webpack-plugin-utilities/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fwebpack-plugin-utilities.svg)](https://badge.fury.io/js/%40rushstack%2Fwebpack-plugin-utilities) | [changelog](./webpack/webpack-plugin-utilities/CHANGELOG.md) | [@rushstack/webpack-plugin-utilities](https://www.npmjs.com/package/@rushstack/webpack-plugin-utilities) | | [/webpack/webpack4-localization-plugin](./webpack/webpack4-localization-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fwebpack4-localization-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fwebpack4-localization-plugin) | [changelog](./webpack/webpack4-localization-plugin/CHANGELOG.md) | [@rushstack/webpack4-localization-plugin](https://www.npmjs.com/package/@rushstack/webpack4-localization-plugin) | | [/webpack/webpack4-module-minifier-plugin](./webpack/webpack4-module-minifier-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fwebpack4-module-minifier-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fwebpack4-module-minifier-plugin) | [changelog](./webpack/webpack4-module-minifier-plugin/CHANGELOG.md) | [@rushstack/webpack4-module-minifier-plugin](https://www.npmjs.com/package/@rushstack/webpack4-module-minifier-plugin) | @@ -153,6 +155,7 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/build-tests/rush-project-change-analyzer-test](./build-tests/rush-project-change-analyzer-test/) | This is an example project that uses rush-lib's ProjectChangeAnalyzer to | | [/build-tests/set-webpack-public-path-plugin-webpack4-test](./build-tests/set-webpack-public-path-plugin-webpack4-test/) | Building this project tests the set-webpack-public-path-plugin using Webpack 4 | | [/build-tests/ts-command-line-test](./build-tests/ts-command-line-test/) | Building this project is a regression test for ts-command-line | +| [/libraries/rush-themed-ui](./libraries/rush-themed-ui/) | Rush Component Library: a set of themed components for rush projects | | [/libraries/rushell](./libraries/rushell/) | Execute shell commands using a consistent syntax on every platform | | [/repo-scripts/doc-plugin-rush-stack](./repo-scripts/doc-plugin-rush-stack/) | API Documenter plugin used with the rushstack.io website | | [/repo-scripts/generate-api-docs](./repo-scripts/generate-api-docs/) | Used to generate API docs for the rushstack.io website | diff --git a/apps/api-documenter/CHANGELOG.json b/apps/api-documenter/CHANGELOG.json index 9260ca79cc4..29847fe0c2f 100644 --- a/apps/api-documenter/CHANGELOG.json +++ b/apps/api-documenter/CHANGELOG.json @@ -1,6 +1,188 @@ { "name": "@microsoft/api-documenter", "entries": [ + { + "version": "7.21.6", + "tag": "@microsoft/api-documenter_v7.21.6", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "7.21.5", + "tag": "@microsoft/api-documenter_v7.21.5", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `4.13.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "7.21.4", + "tag": "@microsoft/api-documenter_v7.21.4", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "7.21.3", + "tag": "@microsoft/api-documenter_v7.21.3", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "7.21.2", + "tag": "@microsoft/api-documenter_v7.21.2", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.1`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "7.21.1", + "tag": "@microsoft/api-documenter_v7.21.1", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "7.21.0", + "tag": "@microsoft/api-documenter_v7.21.0", + "date": "Sun, 29 Jan 2023 20:09:58 GMT", + "comments": { + "minor": [ + { + "comment": "Fix an issue where ``/`` tags sometimes interfered with parsing of other Markdown on the same line; italics and boldface are now emitted using `*` and `_`" + } + ] + } + }, + { + "version": "7.20.1", + "tag": "@microsoft/api-documenter_v7.20.1", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "7.20.0", + "tag": "@microsoft/api-documenter_v7.20.0", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "minor": [ + { + "comment": "Display the 'abstract' modifier for classes and members (GitHub #3661)" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "7.19.28", + "tag": "@microsoft/api-documenter_v7.19.28", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "7.19.27", "tag": "@microsoft/api-documenter_v7.19.27", diff --git a/apps/api-documenter/CHANGELOG.md b/apps/api-documenter/CHANGELOG.md index 8cfe0f04a3f..d7e13ecf252 100644 --- a/apps/api-documenter/CHANGELOG.md +++ b/apps/api-documenter/CHANGELOG.md @@ -1,6 +1,60 @@ # Change Log - @microsoft/api-documenter -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 7.21.6 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 7.21.5 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 7.21.4 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 7.21.3 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 7.21.2 +Mon, 30 Jan 2023 16:22:30 GMT + +_Version update only_ + +## 7.21.1 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 7.21.0 +Sun, 29 Jan 2023 20:09:58 GMT + +### Minor changes + +- Fix an issue where ``/`` tags sometimes interfered with parsing of other Markdown on the same line; italics and boldface are now emitted using `*` and `_` + +## 7.20.1 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 7.20.0 +Wed, 25 Jan 2023 07:26:55 GMT + +### Minor changes + +- Display the 'abstract' modifier for classes and members (GitHub #3661) + +## 7.19.28 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 7.19.27 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/apps/api-documenter/package.json b/apps/api-documenter/package.json index 514fe43561d..99fe1651a4d 100644 --- a/apps/api-documenter/package.json +++ b/apps/api-documenter/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/api-documenter", - "version": "7.19.27", + "version": "7.21.6", "description": "Read JSON files from api-extractor, generate documentation pages", "repository": { "type": "git", @@ -33,7 +33,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@types/js-yaml": "3.12.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/resolve": "1.20.2" } } diff --git a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts index e8f374c476d..e2f3afdf7d9 100644 --- a/apps/api-documenter/src/documenters/MarkdownDocumenter.ts +++ b/apps/api-documenter/src/documenters/MarkdownDocumenter.ts @@ -32,6 +32,7 @@ import { ApiPropertyItem, ApiInterface, Excerpt, + ApiAbstractMixin, ApiParameterListMixin, ApiReturnTypeMixin, ApiDeclaredItem, @@ -502,6 +503,11 @@ export class MarkdownDocumenter { private _writePackageOrNamespaceTables(output: DocSection, apiContainer: ApiPackage | ApiNamespace): void { const configuration: TSDocConfiguration = this._tsdocConfiguration; + const abstractClassesTable: DocTable = new DocTable({ + configuration, + headerTitles: ['Abstract Class', 'Description'] + }); + const classesTable: DocTable = new DocTable({ configuration, headerTitles: ['Class', 'Description'] @@ -550,7 +556,11 @@ export class MarkdownDocumenter { switch (apiMember.kind) { case ApiItemKind.Class: - classesTable.addRow(row); + if (ApiAbstractMixin.isBaseClassOf(apiMember) && apiMember.isAbstract) { + abstractClassesTable.addRow(row); + } else { + classesTable.addRow(row); + } this._writeApiItemPage(apiMember); break; @@ -591,6 +601,11 @@ export class MarkdownDocumenter { output.appendNode(classesTable); } + if (abstractClassesTable.rows.length > 0) { + output.appendNode(new DocHeading({ configuration, title: 'Abstract Classes' })); + output.appendNode(abstractClassesTable); + } + if (enumerationsTable.rows.length > 0) { output.appendNode(new DocHeading({ configuration, title: 'Enumerations' })); output.appendNode(enumerationsTable); @@ -1033,6 +1048,10 @@ export class MarkdownDocumenter { const section: DocSection = new DocSection({ configuration }); + // Output modifiers in syntactically correct order: first access modifier (here: `protected`), then + // `static` or `abstract` (no member can be both, so the order between the two of them does not matter), + // last `readonly`. If `override` was supported, it would go directly before `readonly`. + if (ApiProtectedMixin.isBaseClassOf(apiItem)) { if (apiItem.isProtected) { section.appendNode( @@ -1041,18 +1060,26 @@ export class MarkdownDocumenter { } } - if (ApiReadonlyMixin.isBaseClassOf(apiItem)) { - if (apiItem.isReadonly) { + if (ApiStaticMixin.isBaseClassOf(apiItem)) { + if (apiItem.isStatic) { section.appendNode( - new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'readonly' })]) + new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'static' })]) ); } } - if (ApiStaticMixin.isBaseClassOf(apiItem)) { - if (apiItem.isStatic) { + if (ApiAbstractMixin.isBaseClassOf(apiItem)) { + if (apiItem.isAbstract) { section.appendNode( - new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'static' })]) + new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'abstract' })]) + ); + } + } + + if (ApiReadonlyMixin.isBaseClassOf(apiItem)) { + if (apiItem.isReadonly) { + section.appendNode( + new DocParagraph({ configuration }, [new DocCodeSpan({ configuration, code: 'readonly' })]) ); } } diff --git a/apps/api-documenter/src/markdown/MarkdownEmitter.ts b/apps/api-documenter/src/markdown/MarkdownEmitter.ts index 85d76d4f09a..30946b9cb9a 100644 --- a/apps/api-documenter/src/markdown/MarkdownEmitter.ts +++ b/apps/api-documenter/src/markdown/MarkdownEmitter.ts @@ -250,19 +250,19 @@ export class MarkdownEmitter { } if (context.boldRequested) { - writer.write(''); + writer.write('**'); } if (context.italicRequested) { - writer.write(''); + writer.write('_'); } writer.write(this.getEscapedText(middle)); if (context.italicRequested) { - writer.write(''); + writer.write('_'); } if (context.boldRequested) { - writer.write(''); + writer.write('**'); } } diff --git a/apps/api-documenter/src/markdown/test/CustomMarkdownEmitter.test.ts b/apps/api-documenter/src/markdown/test/CustomMarkdownEmitter.test.ts index 7de497a79cf..f892d53a36c 100644 --- a/apps/api-documenter/src/markdown/test/CustomMarkdownEmitter.test.ts +++ b/apps/api-documenter/src/markdown/test/CustomMarkdownEmitter.test.ts @@ -159,7 +159,12 @@ test('render Markdown from TSDoc', () => { new DocParagraph({ configuration }, [new DocPlainText({ configuration, text: 'Cell 1' })]) ]), new DocTableCell({ configuration }, [ - new DocParagraph({ configuration }, [new DocPlainText({ configuration, text: 'Cell 2' })]) + new DocParagraph({ configuration }, [new DocPlainText({ configuration, text: 'Cell 2' })]), + new DocParagraph({ configuration }, [ + new DocEmphasisSpan({ configuration, bold: true }, [ + new DocPlainText({ configuration, text: 'bold text' }) + ]) + ]) ]) ]) ] @@ -176,5 +181,6 @@ test('render Markdown from TSDoc', () => { } }); - expect(stringBuilder).toMatchSnapshot(); + expect(stringBuilder.toString()).toMatchSnapshot(); + console.log(stringBuilder.toString()); }); diff --git a/apps/api-documenter/src/markdown/test/__snapshots__/CustomMarkdownEmitter.test.ts.snap b/apps/api-documenter/src/markdown/test/__snapshots__/CustomMarkdownEmitter.test.ts.snap index ae459a5a8d7..76263562553 100644 --- a/apps/api-documenter/src/markdown/test/__snapshots__/CustomMarkdownEmitter.test.ts.snap +++ b/apps/api-documenter/src/markdown/test/__snapshots__/CustomMarkdownEmitter.test.ts.snap @@ -1,12 +1,10 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`render Markdown from TSDoc 1`] = ` -StringBuilder { - "_chunks": Array [ - " +" ## Simple bold test -This is a bold word. +This is a **bold** word. ## All whitespace bold @@ -14,27 +12,27 @@ This is a bold word. ## Newline bold -line 1 line 2 +**line 1** **line 2** ## Newline bold with spaces - line 1 line 2 line 3 + **line 1** **line 2** **line 3** ## Adjacent bold regions -onetwo three fournon-boldfive +**one****two** **three** **four**non-bold**five** ## Adjacent to other characters -[a link](./index.md)boldnon-boldmore-non-bold +[a link](./index.md)**bold**non-boldmore-non-bold ## Unknown block tag -boldnon-boldmore-non-bold +**bold**non-boldmore-non-bold ## Bad characters -\\\\*one\\\\*two\\\\*three\\\\*four +**\\\\*one\\\\*two\\\\*****three\\\\*four** ## Characters that should be escaped @@ -54,9 +52,7 @@ HTML escape: &quot; | Header 1 | Header 2 | | --- | --- | -| Cell 1 | Cell 2 | +| Cell 1 |

Cell 2

**bold text**

| -", - ], -} +" `; diff --git a/apps/api-extractor/CHANGELOG.json b/apps/api-extractor/CHANGELOG.json index 3679966fc7f..30c6f45f37b 100644 --- a/apps/api-extractor/CHANGELOG.json +++ b/apps/api-extractor/CHANGELOG.json @@ -1,6 +1,104 @@ { "name": "@microsoft/api-extractor", "entries": [ + { + "version": "7.34.4", + "tag": "@microsoft/api-extractor_v7.34.4", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.3.18`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `4.13.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + } + ] + } + }, + { + "version": "7.34.3", + "tag": "@microsoft/api-extractor_v7.34.3", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + } + ] + } + }, + { + "version": "7.34.2", + "tag": "@microsoft/api-extractor_v7.34.2", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + } + ] + } + }, + { + "version": "7.34.1", + "tag": "@microsoft/api-extractor_v7.34.1", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.1`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + } + ] + } + }, + { + "version": "7.34.0", + "tag": "@microsoft/api-extractor_v7.34.0", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "minor": [ + { + "comment": "Add new .api.json field `isAbstract` to track `abstract` modifier in ApiClass, ApiMethod, and ApiProperty via ApiAbstractMixin (GitHub #3661)" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.26.0`" + } + ] + } + }, + { + "version": "7.33.8", + "tag": "@microsoft/api-extractor_v7.33.8", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "patch": [ + { + "comment": "Use ts.getCheckFlags to fix TS 5.0" + } + ] + } + }, { "version": "7.33.7", "tag": "@microsoft/api-extractor_v7.33.7", diff --git a/apps/api-extractor/CHANGELOG.md b/apps/api-extractor/CHANGELOG.md index 63c4803d815..920ff1d08a6 100644 --- a/apps/api-extractor/CHANGELOG.md +++ b/apps/api-extractor/CHANGELOG.md @@ -1,6 +1,40 @@ # Change Log - @microsoft/api-extractor -This log was last generated on Fri, 09 Dec 2022 16:18:28 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:50 GMT and should not be manually modified. + +## 7.34.4 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 7.34.3 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 7.34.2 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 7.34.1 +Mon, 30 Jan 2023 16:22:30 GMT + +_Version update only_ + +## 7.34.0 +Wed, 25 Jan 2023 07:26:55 GMT + +### Minor changes + +- Add new .api.json field `isAbstract` to track `abstract` modifier in ApiClass, ApiMethod, and ApiProperty via ApiAbstractMixin (GitHub #3661) + +## 7.33.8 +Wed, 18 Jan 2023 22:44:12 GMT + +### Patches + +- Use ts.getCheckFlags to fix TS 5.0 ## 7.33.7 Fri, 09 Dec 2022 16:18:28 GMT diff --git a/apps/api-extractor/build-tests.cmd b/apps/api-extractor/build-tests.cmd index 9dd00a55271..f2ae7a2cc93 100644 --- a/apps/api-extractor/build-tests.cmd +++ b/apps/api-extractor/build-tests.cmd @@ -1,3 +1,3 @@ @ECHO OFF @SETLOCAL -rush build -t api-extractor-lib1-test -t api-extractor-lib2-test -t api-extractor-lib3-test -t api-extractor-scenarios -t api-extractor-test-01 -t api-extractor-test-02 -t api-extractor-test-03 -t api-extractor-test-04 -t api-documenter-test +rush test -t api-extractor-lib1-test -t api-extractor-lib2-test -t api-extractor-lib3-test -t api-extractor-scenarios -t api-extractor-test-01 -t api-extractor-test-02 -t api-extractor-test-03 -t api-extractor-test-04 -t api-documenter-test diff --git a/apps/api-extractor/package.json b/apps/api-extractor/package.json index dbc1372be64..be370fa2bbc 100644 --- a/apps/api-extractor/package.json +++ b/apps/api-extractor/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/api-extractor", - "version": "7.33.7", + "version": "7.34.4", "description": "Analyze the exported API for a TypeScript library and generate reviews, documentation, and .d.ts rollups", "keywords": [ "typescript", @@ -52,11 +52,11 @@ }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/heft-jest": "1.0.1", "@types/lodash": "4.14.116", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/resolve": "1.20.2", "@types/semver": "7.3.5" } diff --git a/apps/api-extractor/src/analyzer/TypeScriptInternals.ts b/apps/api-extractor/src/analyzer/TypeScriptInternals.ts index 32ab70795bd..e8b74f8844a 100644 --- a/apps/api-extractor/src/analyzer/TypeScriptInternals.ts +++ b/apps/api-extractor/src/analyzer/TypeScriptInternals.ts @@ -48,7 +48,7 @@ export class TypeScriptInternals { if ( // eslint-disable-next-line no-bitwise symbol.flags & ts.SymbolFlags.Transient && - (symbol as any).checkFlags === (ts as any).CheckFlags.Late + (ts as any).getCheckFlags(symbol) === (ts as any).CheckFlags.Late ) { return true; } diff --git a/apps/api-extractor/src/generators/ApiModelGenerator.ts b/apps/api-extractor/src/generators/ApiModelGenerator.ts index 7b4f3968e09..64c4fc56ceb 100644 --- a/apps/api-extractor/src/generators/ApiModelGenerator.ts +++ b/apps/api-extractor/src/generators/ApiModelGenerator.ts @@ -395,10 +395,13 @@ export class ApiModelGenerator { const apiItemMetadata: ApiItemMetadata = this._collector.fetchApiItemMetadata(astDeclaration); const docComment: tsdoc.DocComment | undefined = apiItemMetadata.tsdocComment; const releaseTag: ReleaseTag = apiItemMetadata.effectiveReleaseTag; + const isAbstract: boolean = + (ts.getCombinedModifierFlags(classDeclaration) & ts.ModifierFlags.Abstract) !== 0; const fileUrlPath: string = this._getFileUrlPath(classDeclaration); apiClass = new ApiClass({ name, + isAbstract, docComment, releaseTag, excerptTokens, @@ -729,10 +732,12 @@ export class ApiModelGenerator { const isOptional: boolean = (astDeclaration.astSymbol.followedSymbol.flags & ts.SymbolFlags.Optional) !== 0; const isProtected: boolean = (astDeclaration.modifierFlags & ts.ModifierFlags.Protected) !== 0; + const isAbstract: boolean = (astDeclaration.modifierFlags & ts.ModifierFlags.Abstract) !== 0; const fileUrlPath: string = this._getFileUrlPath(methodDeclaration); apiMethod = new ApiMethod({ name, + isAbstract, docComment, releaseTag, isProtected, @@ -875,6 +880,7 @@ export class ApiModelGenerator { const isOptional: boolean = (astDeclaration.astSymbol.followedSymbol.flags & ts.SymbolFlags.Optional) !== 0; const isProtected: boolean = (astDeclaration.modifierFlags & ts.ModifierFlags.Protected) !== 0; + const isAbstract: boolean = (astDeclaration.modifierFlags & ts.ModifierFlags.Abstract) !== 0; const isReadonly: boolean = this._isReadonly(astDeclaration); const fileUrlPath: string = this._getFileUrlPath(declaration); @@ -882,6 +888,7 @@ export class ApiModelGenerator { name, docComment, releaseTag, + isAbstract, isProtected, isStatic, isOptional, diff --git a/apps/heft/CHANGELOG.json b/apps/heft/CHANGELOG.json index 4f2821b0610..7b94432cdb7 100644 --- a/apps/heft/CHANGELOG.json +++ b/apps/heft/CHANGELOG.json @@ -2,70 +2,130 @@ "name": "@rushstack/heft", "entries": [ { - "version": "0.50.0-rc.4", - "tag": "@rushstack/heft_v0.50.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.50.0", + "tag": "@rushstack/heft_v0.50.0", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { "minor": [ { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Remove monkey-patching of TypeScript for compatibility with 5.0. Refactors how the multi-emit logic works." } ] } }, { - "version": "0.50.0-rc.3", - "tag": "@rushstack/heft_v0.50.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.49.7", + "tag": "@rushstack/heft_v0.49.7", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.9`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.3.18`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `4.13.2`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.4`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" } ] } }, { - "version": "0.49.0-rc.2", - "tag": "@rushstack/heft_v0.49.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.49.6", + "tag": "@rushstack/heft_v0.49.6", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.8`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.3`" } ] } }, { - "version": "0.49.0-rc.1", - "tag": "@rushstack/heft_v0.49.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.49.5", + "tag": "@rushstack/heft_v0.49.5", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.7`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.2`" } ] } }, { - "version": "0.49.0-rc.0", - "tag": "@rushstack/heft_v0.49.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.49.4", + "tag": "@rushstack/heft_v0.49.4", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.6`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.1`" + } + ] + } + }, + { + "version": "0.49.3", + "tag": "@rushstack/heft_v0.49.3", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.5`" + } + ] + } + }, + { + "version": "0.49.2", + "tag": "@rushstack/heft_v0.49.2", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.0`" + } + ] + } + }, + { + "version": "0.49.1", + "tag": "@rushstack/heft_v0.49.1", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.33.8`" } ] } diff --git a/apps/heft/CHANGELOG.md b/apps/heft/CHANGELOG.md index 0db41beff2e..584252e3ba7 100644 --- a/apps/heft/CHANGELOG.md +++ b/apps/heft/CHANGELOG.md @@ -1,44 +1,48 @@ # Change Log - @rushstack/heft -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.50.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.50.0 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +### Minor changes + +- Remove monkey-patching of TypeScript for compatibility with 5.0. Refactors how the multi-emit logic works. -- Fix an issue with `watchGlobAsync` +## 0.49.7 +Fri, 10 Feb 2023 01:18:50 GMT -## 0.50.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +_Version update only_ -### Prerelease Changes +## 0.49.6 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.49.5 +Wed, 01 Feb 2023 02:16:34 GMT -## 0.49.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +_Version update only_ -### Prerelease Changes +## 0.49.4 +Mon, 30 Jan 2023 16:22:30 GMT -- Improve watch mode performance. -- Improve logging output. +_Version update only_ -## 0.49.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +## 0.49.3 +Thu, 26 Jan 2023 02:55:10 GMT -### Prerelease Changes +_Version update only_ -- Fix incremental TypeScript compilation. +## 0.49.2 +Wed, 25 Jan 2023 07:26:55 GMT -## 0.49.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +_Version update only_ -### Prerelease Changes +## 0.49.1 +Wed, 18 Jan 2023 22:44:12 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ ## 0.49.0 Tue, 20 Dec 2022 01:18:22 GMT @@ -455,7 +459,7 @@ Wed, 06 Oct 2021 15:08:25 GMT ### Patches -- Improve the HeftSession.commandLine.registerParameter interface and add support for choice and choice list parameters. +- Improve the HeftSession.commandLine.registerParameter interface and add support for choice and choice list parameters. ## 0.41.1 Wed, 06 Oct 2021 02:41:48 GMT @@ -1076,7 +1080,7 @@ Sat, 24 Oct 2020 00:11:18 GMT ### Patches -- Add fileExtensions config to SassTypingsGenerator. +- Add fileExtensions config to SassTypingsGenerator. ## 0.17.1 Wed, 21 Oct 2020 05:09:44 GMT diff --git a/apps/heft/package.json b/apps/heft/package.json index d8321eb00d9..50b25935f96 100644 --- a/apps/heft/package.json +++ b/apps/heft/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft", - "version": "0.50.0-rc.4", + "version": "0.50.0", "description": "Build all your JavaScript projects the same way: A way that works.", "keywords": [ "toolchain", @@ -53,11 +53,11 @@ "@nodelib/fs.scandir": "2.1.5", "@nodelib/fs.stat": "2.0.5", "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/argparse": "1.0.38", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/watchpack": "2.4.0", "typescript": "~4.8.4" } diff --git a/apps/heft/src/index.ts b/apps/heft/src/index.ts index 332062cd89a..09be18b4754 100644 --- a/apps/heft/src/index.ts +++ b/apps/heft/src/index.ts @@ -1,6 +1,14 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +/** + * Heft is a config-driven toolchain that invokes other popular tools such + * as TypeScript, ESLint, Jest, Webpack, and API Extractor. You can use it to build + * web applications, Node.js services, command-line tools, libraries, and more. + * + * @packageDocumentation + */ + export { HeftConfiguration, type IHeftConfigurationInitializationOptions as _IHeftConfigurationInitializationOptions diff --git a/apps/lockfile-explorer-web/config/heft.json b/apps/lockfile-explorer-web/config/heft.json index c3be0a56971..7204e0560b5 100644 --- a/apps/lockfile-explorer-web/config/heft.json +++ b/apps/lockfile-explorer-web/config/heft.json @@ -23,6 +23,11 @@ "sourcePath": "lib/stub", "destinationFolders": ["dist"], "fileExtensions": [".js"] + }, + { + "sourcePath": "node_modules/@rushstack/rush-themed-ui/dist", + "destinationFolders": ["dist"], + "fileExtensions": [".js", ".svg", ".css", ".txt"] } ] } diff --git a/apps/lockfile-explorer-web/package.json b/apps/lockfile-explorer-web/package.json index 7d7457bab1a..770e0d4e241 100644 --- a/apps/lockfile-explorer-web/package.json +++ b/apps/lockfile-explorer-web/package.json @@ -18,7 +18,8 @@ "@lifaon/path": "~2.1.0", "@reduxjs/toolkit": "~1.8.6", "react-redux": "~8.0.4", - "redux": "~4.2.0" + "redux": "~4.2.0", + "@rushstack/rush-themed-ui": "workspace:*" }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", @@ -27,7 +28,6 @@ "@types/heft-jest": "1.0.1", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", - "office-ui-fabric-core": "~11.0.1" + "@types/webpack-env": "1.18.0" } } diff --git a/apps/lockfile-explorer-web/src/App.scss b/apps/lockfile-explorer-web/src/App.scss index cc5f9906fae..01c58049d37 100644 --- a/apps/lockfile-explorer-web/src/App.scss +++ b/apps/lockfile-explorer-web/src/App.scss @@ -1,13 +1,8 @@ -@import 'office-ui-fabric-core/dist/sass/References'; - -@mixin card { - box-shadow: $ms-depth-shadow-8; - background-color: $ms-color-gray10; - padding: 24px; -} +@use './styles/base'; .ContainerCard { - @include card; + padding: 12px; + @include base.card; } .AppContainer { diff --git a/apps/lockfile-explorer-web/src/components/ConnectionModal/index.tsx b/apps/lockfile-explorer-web/src/components/ConnectionModal/index.tsx index 52aabafa96a..f946b60558e 100644 --- a/apps/lockfile-explorer-web/src/components/ConnectionModal/index.tsx +++ b/apps/lockfile-explorer-web/src/components/ConnectionModal/index.tsx @@ -2,6 +2,7 @@ // See LICENSE in the project root for license information. import React, { useCallback, useEffect, useState } from 'react'; +import { Button, Text } from '@rushstack/rush-themed-ui'; import styles from './styles.scss'; import appStyles from '../../App.scss'; import { checkAliveAsync } from '../../parsing/getPackageFiles'; @@ -41,17 +42,24 @@ export const ConnectionModal = (): JSX.Element | ReactNull => { return (
-
The server has disconnected!
+ + The Lockfile Explorer server has disconnected! + {manualChecked ? ( -

We were still not able to establish a connection to the server. Are you sure it is running?

+ + We were still not able to connect to the server. Are you sure the "lockfile-explorer" + shell command is running? + ) : ( -

Please re-start the local development server to continue using this application.

+ + Please restart the "lockfile-explorer" shell command to continue using this application. + )}
- - {checking ?

Checking...

: null} + + {checking ? Checking... : null}
diff --git a/apps/lockfile-explorer-web/src/components/FilterBar/index.tsx b/apps/lockfile-explorer-web/src/components/FilterBar/index.tsx deleted file mode 100644 index 97e8c6752b3..00000000000 --- a/apps/lockfile-explorer-web/src/components/FilterBar/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See LICENSE in the project root for license information. - -import React from 'react'; -import styles from './styles.scss'; - -interface IFilterBarOption { - text: string; - active: boolean; - onClick: () => void; -} - -export const FilterBar = ({ options }: { options: IFilterBarOption[] }): JSX.Element => { - return ( -
- {options.map((opt: IFilterBarOption) => ( -
- {opt.text} -
- ))} -
- ); -}; diff --git a/apps/lockfile-explorer-web/src/components/FilterBar/styles.scss b/apps/lockfile-explorer-web/src/components/FilterBar/styles.scss deleted file mode 100644 index bbd2bcd1429..00000000000 --- a/apps/lockfile-explorer-web/src/components/FilterBar/styles.scss +++ /dev/null @@ -1,20 +0,0 @@ -@import 'office-ui-fabric-core/dist/sass/References'; - -.FilterBar { - display: flex; - box-shadow: $ms-depth-shadow-8; - width: fit-content; - & > * + * { - border-left: 1px solid $ms-color-gray20; - } -} - -.FilterItem { - background-color: $ms-color-gray10; - padding: 6px 12px; - cursor: pointer; -} - -.FilterItemActive { - border-bottom: 3px solid #107c10; -} diff --git a/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/index.tsx b/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/index.tsx index a42522c021f..eebd3c54643 100644 --- a/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/index.tsx +++ b/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/index.tsx @@ -7,6 +7,7 @@ import styles from './styles.scss'; import { useAppDispatch, useAppSelector } from '../../store/hooks'; import { LockfileEntry } from '../../parsing/LockfileEntry'; import { clearStackAndPush, removeBookmark } from '../../store/slices/entrySlice'; +import { Button, ScrollArea, Text } from '@rushstack/rush-themed-ui'; export const BookmarksSidebar = (): JSX.Element => { const bookmarks = useAppSelector((state) => state.entry.bookmarkedEntries); @@ -27,14 +28,18 @@ export const BookmarksSidebar = (): JSX.Element => { return (
-
Bookmarks
-
- {bookmarks.map((bookmarkedEntry) => ( -
-

{bookmarkedEntry.displayText}

- -
- ))} + + Bookmarks +
+ {bookmarks.map((bookmarkedEntry) => ( +
+
+ {bookmarkedEntry.displayText} +
+ +
+ ))} +
); }; diff --git a/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/styles.scss b/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/styles.scss index 329508f3696..08b03e0a3b4 100644 --- a/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/styles.scss +++ b/apps/lockfile-explorer-web/src/containers/BookmarksSidebar/styles.scss @@ -1,16 +1,19 @@ .BookmarksWrapper { - flex: 1; margin: 12px 0; + height: calc(100vh - 94px - 44px); } .BookmarkEntry { padding: 4px 0; margin-top: 8px; cursor: pointer; - &:hover { - background: #dff6dd; - } & > * + * { margin-top: 8px; } } + +.BookmarkLabel { + &:hover { + background: #dff6dd; + } +} diff --git a/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/index.tsx b/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/index.tsx index 14cbd190e32..8eb049e2043 100644 --- a/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/index.tsx +++ b/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/index.tsx @@ -2,6 +2,7 @@ // See LICENSE in the project root for license information. import React, { useCallback, useEffect, useState } from 'react'; +import { ScrollArea, Text } from '@rushstack/rush-themed-ui'; import styles from './styles.scss'; import appStyles from '../../App.scss'; import { IDependencyType, LockfileDependency } from '../../parsing/LockfileDependency'; @@ -120,7 +121,6 @@ export const LockfileEntryDetailsView = (): JSX.Element | ReactNull => { const selectResolvedReferencer = useCallback( (referrer) => () => { - console.log('going to entry: ', referrer); dispatch(pushToStack(referrer)); }, [selectedEntry] @@ -131,31 +131,39 @@ export const LockfileEntryDetailsView = (): JSX.Element | ReactNull => { return ReactNull; } return ( -
-
-
Selected Dependency:
- - {inspectDependency.name}: {inspectDependency.version} - -
-
-
package.json spec:
- - {inspectDependency.dependencyType === IDependencyType.PEER_DEPENDENCY - ? `"${inspectDependency.peerDependencyMeta.version}" ${ - inspectDependency.peerDependencyMeta.optional ? 'Optional' : 'Required' - } Peer` - : inspectDependency.version} - -
-
-
.pnpmfile.cjs:
- - {specChanges.has(inspectDependency.name) - ? displaySpecChanges(specChanges, inspectDependency.name) - : 'No Effect'} - -
+
+ +
+ + Selected Dependency:{' '} + + + {inspectDependency.name}: {inspectDependency.version} + +
+
+ + package.json spec:{' '} + + + {inspectDependency.dependencyType === IDependencyType.PEER_DEPENDENCY + ? `"${inspectDependency.peerDependencyMeta.version}" ${ + inspectDependency.peerDependencyMeta.optional ? 'Optional' : 'Required' + } Peer` + : inspectDependency.version} + +
+
+ + .pnpmfile.cjs:{' '} + + + {specChanges.has(inspectDependency.name) + ? displaySpecChanges(specChanges, inspectDependency.name) + : 'No Effect'} + +
+
); }; @@ -168,14 +176,14 @@ export const LockfileEntryDetailsView = (): JSX.Element | ReactNull => { if (!peerDeps.length) { return (
-
No peer dependencies.
+ No peer dependencies.
); } if (!inspectDependency || inspectDependency.dependencyType !== IDependencyType.PEER_DEPENDENCY) { return (
-
Select a peer dependency to view its influencers
+ Select a peer dependency to view its influencers
); } @@ -185,34 +193,40 @@ export const LockfileEntryDetailsView = (): JSX.Element | ReactNull => { return (
-
Determinants:
- {determinants.length ? ( - determinants.map(({ entry }) => ( - - {entry.displayText} - - )) - ) : ( -

(none)

- )} -
Transitive Referencers:
- {transitiveReferrers.length ? ( - transitiveReferrers.map(({ entry }) => ( - - {entry.displayText} - - )) - ) : ( -

(none)

- )} + + + Determinants: + + {determinants.length ? ( + determinants.map(({ entry }) => ( + + {entry.displayText} + + )) + ) : ( + (none) + )} + + Transitive Referencers: + + {transitiveReferrers.length ? ( + transitiveReferrers.map(({ entry }) => ( + + {entry.displayText} + + )) + ) : ( + (none) + )} +
); }; @@ -220,7 +234,9 @@ export const LockfileEntryDetailsView = (): JSX.Element | ReactNull => { if (!selectedEntry) { return (
-
Select an entry to view its details
+ + Select an entry to view its details +
); } @@ -229,47 +245,57 @@ export const LockfileEntryDetailsView = (): JSX.Element | ReactNull => { <>
-
Direct Referrers
+ + Direct Referrers +
- {selectedEntry.referrers?.map((referrer: LockfileEntry) => ( -
-
Name: {referrer.displayText}
-
-

Entry ID: {referrer.rawEntryId}

+ + {selectedEntry.referrers?.map((referrer: LockfileEntry) => ( +
+ + Name: {referrer.displayText} + +
+ Entry ID: {referrer.rawEntryId} +
-
- ))} + ))} +
-
Direct Dependencies
+ + Direct Dependencies +
- {selectedEntry.dependencies?.map((dependency: LockfileDependency) => ( -
-
- Name: {dependency.name}{' '} - {dependency.dependencyType === IDependencyType.PEER_DEPENDENCY - ? `${ - dependency.peerDependencyMeta.optional ? '(Optional)' : '(Non-optional)' - } Peer Dependency` - : ''} -
-
-

Version: {dependency.version}

-

Entry ID: {dependency.entryId}

+ + {selectedEntry.dependencies?.map((dependency: LockfileDependency) => ( +
+ + Name: {dependency.name}{' '} + {dependency.dependencyType === IDependencyType.PEER_DEPENDENCY + ? `${ + dependency.peerDependencyMeta.optional ? '(Optional)' : '(Non-optional)' + } Peer Dependency` + : ''} + +
+ Version: {dependency.version} + Entry ID: {dependency.entryId} +
-
- ))} + ))} +
diff --git a/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/styles.scss b/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/styles.scss index 700eb3702fa..5cdbee54471 100644 --- a/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/styles.scss +++ b/apps/lockfile-explorer-web/src/containers/LockfileEntryDetailsView/styles.scss @@ -1,22 +1,19 @@ -@import 'office-ui-fabric-core/dist/sass/References'; +@use '../../styles/base'; .LockfileEntryListView { display: flex; justify-content: space-between; - height: 30%; + min-height: 400px; + flex: 1; padding-top: 12px; & > * { - width: calc(50% - 48px - 12px); - } - h5 { - margin: 0; + width: calc(50% - 24px - 12px); } } .DependencyListWrapper { margin-top: 8px; - height: calc(25vh - 24px); - overflow: scroll; + height: calc(100% - 24px); } .DependencyItem { @@ -26,9 +23,6 @@ &:hover { border: 1px solid #107c10; } - p { - margin: 0; - } & > * + * { margin-top: 8px; } @@ -39,15 +33,13 @@ } .InfluencerList { - margin-top: 12px; - height: 10%; - overflow: scroll; + margin: 12px 0; } .DependencyDetails { + @include base.card; + padding: 12px; margin-top: 12px; - height: 4%; - overflow: scroll; } .InfluencerEntry { @@ -63,7 +55,6 @@ display: flex; align-items: center; span { - font-size: 12px; margin-left: 4px; } } diff --git a/apps/lockfile-explorer-web/src/containers/LockfileViewer/index.tsx b/apps/lockfile-explorer-web/src/containers/LockfileViewer/index.tsx index cfa247ba58c..d4a1083786f 100644 --- a/apps/lockfile-explorer-web/src/containers/LockfileViewer/index.tsx +++ b/apps/lockfile-explorer-web/src/containers/LockfileViewer/index.tsx @@ -2,7 +2,6 @@ // See LICENSE in the project root for license information. import React, { useCallback, useEffect, useRef, useState } from 'react'; -import appStyles from '../../App.scss'; import styles from './styles.scss'; import { LockfileEntry, LockfileEntryFilter } from '../../parsing/LockfileEntry'; import { ReactNull } from '../../types/ReactNull'; @@ -13,8 +12,8 @@ import { selectFilteredEntries, setFilter as selectFilter } from '../../store/slices/entrySlice'; -import { FilterBar } from '../../components/FilterBar'; import { getFilterFromLocalStorage, saveFilterToLocalStorage } from '../../helpers/localStorage'; +import { Tabs, Checkbox, ScrollArea, Input, Text } from '@rushstack/rush-themed-ui'; interface ILockfileEntryGroup { entryName: string; @@ -52,7 +51,7 @@ const LockfileEntryLi = ({ group }: { group: ILockfileEntryGroup }): JSX.Element selectedEntry?.rawEntryId === entry.rawEntryId ? styles.lockfileSelectedEntry : '' }`} > -
{entry.entryPackageName}
+ {entry.entryPackageName}
))}
@@ -61,7 +60,9 @@ const LockfileEntryLi = ({ group }: { group: ILockfileEntryGroup }): JSX.Element return (
-
{group.entryName}
+ + {group.entryName} + {group.versions.map((entry) => (
-

+ {entry.entryPackageVersion} {entry.entrySuffix && `[${entry.entrySuffix}]`} -

+
))}
@@ -120,6 +121,7 @@ export const LockfileViewer = (): JSX.Element | ReactNull => { } else if (packageFilter && activeFilters[LockfileEntryFilter.Package]) { filteredEntries = entries.filter((entry) => entry.entryPackageName.indexOf(packageFilter) !== -1); } + const reducedEntries = filteredEntries.reduce((groups: { [key in string]: LockfileEntry[] }, item) => { const group = groups[item.entryPackageName] || []; group.push(item); @@ -141,6 +143,12 @@ export const LockfileViewer = (): JSX.Element | ReactNull => { groupedEntries = groupedEntries.filter((entry) => multipleVersions(entry.versions)); } + if (activeFilters[LockfileEntryFilter.Project]) { + groupedEntries = groupedEntries.sort((a, b) => + a.entryName > b.entryName ? 1 : b.entryName > a.entryName ? -1 : 0 + ); + } + return groupedEntries; }; @@ -152,8 +160,8 @@ export const LockfileViewer = (): JSX.Element | ReactNull => { ); const togglePackageView = useCallback( - (selected: LockfileEntryFilter) => () => { - if (selected === LockfileEntryFilter.Project) { + (selected: string) => { + if (selected === 'Projects') { dispatch(selectFilter({ filter: LockfileEntryFilter.Project, state: true })); dispatch(selectFilter({ filter: LockfileEntryFilter.Package, state: false })); } else { @@ -166,61 +174,55 @@ export const LockfileViewer = (): JSX.Element | ReactNull => { return (
- -
-
- -
-
+
+ + + {getEntriesToShow().map((lockfileEntryGroup) => ( ))} -
+ {activeFilters[LockfileEntryFilter.Package] ? (
-
Filters
-
+ Filters + + - -
Must have side-by-side versions
-
-
+ - -
Must have doppelgangers
-
+ />
) : null}
diff --git a/apps/lockfile-explorer-web/src/containers/LockfileViewer/styles.scss b/apps/lockfile-explorer-web/src/containers/LockfileViewer/styles.scss index eef96b23180..51321ffa193 100644 --- a/apps/lockfile-explorer-web/src/containers/LockfileViewer/styles.scss +++ b/apps/lockfile-explorer-web/src/containers/LockfileViewer/styles.scss @@ -1,13 +1,19 @@ +@use '../../styles/base'; + .ViewWrapper { - height: calc(100% - 12px); - padding-top: 12px; + height: calc(100% - 24px); + @include base.card; + padding: 0 12px; + margin-top: 12px; } .ViewContents { display: flex; flex-direction: column; - min-height: calc(100% - 70px - 35px); - max-height: calc(100% - 70px - 35px); + height: calc(100% - 35px); + & > * + * { + margin-top: 12px; + } } .LockfileEntryListViewWrapper { @@ -20,27 +26,7 @@ } } -.LockfileFilterBar { - display: flex; - align-items: center; - margin-bottom: 12px; - - input { - border: solid 1px #666; - border-radius: 4px; - padding: 0.4em; - width: 100%; - } - - & > * + * { - margin-left: 12px; - } -} - .packageGroup { - h5 { - margin: 0; - } & > * + * { margin-top: 4px; } @@ -59,11 +45,8 @@ } .lockfileEntriesWrapper { - overflow: scroll; flex: 1; - & > * + * { - margin-top: 12px; - } + height: 100%; } .filterSection { @@ -73,12 +56,3 @@ margin-top: 4px; } } - -.filterOption { - display: flex; - align-items: center; - cursor: pointer; - & > * + * { - margin-left: 4px; - } -} diff --git a/apps/lockfile-explorer-web/src/containers/LogoPanel/index.tsx b/apps/lockfile-explorer-web/src/containers/LogoPanel/index.tsx index ed172278c4e..0d13a4e4abc 100644 --- a/apps/lockfile-explorer-web/src/containers/LogoPanel/index.tsx +++ b/apps/lockfile-explorer-web/src/containers/LogoPanel/index.tsx @@ -12,7 +12,9 @@ export const LogoPanel = (): JSX.Element => { return (
diff --git a/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/index.tsx b/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/index.tsx index dbc733c9b16..94087655684 100644 --- a/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/index.tsx +++ b/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/index.tsx @@ -4,21 +4,21 @@ import React, { useCallback, useEffect, useState } from 'react'; import { readPnpmfileAsync, readPackageSpecAsync, readPackageJsonAsync } from '../../parsing/getPackageFiles'; import styles from './styles.scss'; -import appStyles from '../../App.scss'; import { useAppDispatch, useAppSelector } from '../../store/hooks'; import { selectCurrentEntry } from '../../store/slices/entrySlice'; import { IPackageJson } from '../../types/IPackageJson'; import { compareSpec } from '../../parsing/compareSpec'; -import { FilterBar } from '../../components/FilterBar'; import { loadSpecChanges } from '../../store/slices/workspaceSlice'; import { displaySpecChanges } from '../../helpers/displaySpecChanges'; import { isEntryModified } from '../../helpers/isEntryModified'; +import { ScrollArea, Tabs, Text } from '@rushstack/rush-themed-ui'; +import { LockfileEntryFilter } from '../../parsing/LockfileEntry'; -enum PackageView { - PACKAGE_JSON, - PACKAGE_SPEC, - PARSED_PACKAGE_JSON -} +const PackageView: { [key in string]: string } = { + PACKAGE_JSON: 'PACKAGE_JSON', + PACKAGE_SPEC: 'PACKAGE_SPEC', + PARSED_PACKAGE_JSON: 'PARSED_PACKAGE_JSON' +}; export const PackageJsonViewer = (): JSX.Element => { const dispatch = useAppDispatch(); @@ -29,9 +29,11 @@ export const PackageJsonViewer = (): JSX.Element => { const specChanges = useAppSelector((state) => state.workspace.specChanges); - const [selection, setSelection] = useState(PackageView.PARSED_PACKAGE_JSON); + const [selection, setSelection] = useState(PackageView.PARSED_PACKAGE_JSON); - const cb = useCallback((s: PackageView) => () => setSelection(s), []); + const cb = useCallback((s: string) => { + setSelection(s); + }, []); useEffect(() => { async function loadPnpmFileAsync(): Promise { @@ -76,57 +78,73 @@ export const PackageJsonViewer = (): JSX.Element => { case 'add': if (name) { return ( -

+ {dep} -

+ ); } else { return ( -

+ {version} {displaySpecChanges(specChanges, dep)} -

+ ); } case 'diff': if (name) { return ( -

+ {dep} -

+ ); } else { return ( -

+ {version} {displaySpecChanges(specChanges, dep)} -

+ ); } case 'remove': if (name) { return ( -

+ {dep} -

+ ); } else { return ( -

+ {version} {displaySpecChanges(specChanges, dep)} -

+ ); } default: if (name) { - return

{dep}:

; + return ( + + {dep}: + + ); } else { - return

{version}

; + return ( + + {version} + + ); } } } else { if (name) { - return

{dep}:

; + return ( + + {dep}: + + ); } else { - return

{version}

; + return ( + + {version} + + ); } } }; @@ -134,55 +152,84 @@ export const PackageJsonViewer = (): JSX.Element => { const renderFile = (): JSX.Element | null => { switch (selection) { case PackageView.PACKAGE_JSON: - if (!packageJSON) return
Please select a Project or Package to view it's package.json
; + if (!packageJSON) + return ( + + Please select a Project or Package to view it's package.json + + ); return
{JSON.stringify(packageJSON, null, 2)}
; case PackageView.PACKAGE_SPEC: if (!pnpmfile) { return ( -
+ Couldn't load the pnpmfile.cjs file - does it exist in the expected location? (/common/config/rush/.pnpmfile.cjs) -
+ ); } return
{pnpmfile}
; case PackageView.PARSED_PACKAGE_JSON: if (!parsedPackageJSON) - return
Please select a Project or Package to view the parsed package.json
; + return ( + + Please select a Project or Package to view the parsed package.json + + ); return (
-
Package Name:
-

{selectedEntry?.displayText}

+ + Package Name: + + + {selectedEntry?.kind === LockfileEntryFilter.Project + ? parsedPackageJSON.name + : selectedEntry?.displayText} +
-
Version:
-

{selectedEntry?.entryPackageVersion}

+ + Version: + + {selectedEntry?.entryPackageVersion || parsedPackageJSON.version}
-
Dependencies
+ + Dependencies + {parsedPackageJSON.dependencies && Object.entries(parsedPackageJSON.dependencies).map(renderDep(true))} -
Dev Dependencies
+ + Dev Dependencies + {parsedPackageJSON.devDependencies && Object.entries(parsedPackageJSON.devDependencies).map(renderDep(true))} -
Peer Dependencies
+ + Peer Dependencies + {parsedPackageJSON.peerDependencies && Object.entries(parsedPackageJSON.peerDependencies).map(renderDep(true))}
-
 
+ +   + {parsedPackageJSON.dependencies && Object.entries(parsedPackageJSON.dependencies).map(renderDep(false))} -
 
+ +   + {parsedPackageJSON.devDependencies && Object.entries(parsedPackageJSON.devDependencies).map(renderDep(false))} -
 
+ +   + {parsedPackageJSON.peerDependencies && Object.entries(parsedPackageJSON.peerDependencies).map(renderDep(false))}
@@ -196,27 +243,29 @@ export const PackageJsonViewer = (): JSX.Element => { return (
- -
-
{renderFile()}
+ +
+ +
{renderFile()}
+
); diff --git a/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/styles.scss b/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/styles.scss index 3b8c866609e..bf4530d422e 100644 --- a/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/styles.scss +++ b/apps/lockfile-explorer-web/src/containers/PackageJsonViewer/styles.scss @@ -1,11 +1,19 @@ +@use '../../styles/base'; + .PackageJsonWrapper { - height: 30%; + @include base.card; + min-height: 400px; + flex: 1; margin-top: 12px; } .FileContents { - height: calc(25vh - 35px); - overflow: scroll; + height: calc(100% - 46px); + padding: 0 12px; +} + +.FileInnerContent { + padding-top: 12px; } @mixin SpecWrapper { @@ -31,7 +39,7 @@ .PackageSpecWrapper { h5 { - margin-bottom: 12px; + margin-bottom: 8px; } & > * + * { margin-top: 8px; diff --git a/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/index.tsx b/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/index.tsx index 739afb5ceac..14c5ca393f9 100644 --- a/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/index.tsx +++ b/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/index.tsx @@ -11,6 +11,7 @@ import { removeBookmark, selectCurrentEntry } from '../../store/slices/entrySlice'; +import { Button, ScrollArea, Text } from '@rushstack/rush-themed-ui'; export const SelectedEntryPreview = (): JSX.Element => { const selectedEntry = useAppSelector(selectCurrentEntry); @@ -39,20 +40,20 @@ export const SelectedEntryPreview = (): JSX.Element => { const renderButtonRow = (): JSX.Element => { return (
- - + + {isBookmarked ? ( - + ) : ( - + )}
); @@ -62,7 +63,9 @@ export const SelectedEntryPreview = (): JSX.Element => { return (
-
No Entry Selected
+ + No Entry Selected + {renderButtonRow()}
@@ -71,17 +74,21 @@ export const SelectedEntryPreview = (): JSX.Element => { return (
-
-
-
Selected entry:
- {selectedEntry.displayText} + +
+
+ + Selected entry: + + {selectedEntry.displayText} +
+ {renderButtonRow()}
- {renderButtonRow()} -
-
-

Package Entry: {selectedEntry.rawEntryId}

-

Package JSON path: {selectedEntry.packageJsonFolderPath}

-
+
+ Package Entry: {selectedEntry.rawEntryId} + Package JSON path: {selectedEntry.packageJsonFolderPath} +
+
); }; diff --git a/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/styles.scss b/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/styles.scss index b816c5a6770..591fc4c2274 100644 --- a/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/styles.scss +++ b/apps/lockfile-explorer-web/src/containers/SelectedEntryPreview/styles.scss @@ -1,15 +1,9 @@ -@import 'office-ui-fabric-core/dist/sass/References'; +@use '../../styles/base'; .SelectedEntryCard { margin-top: 12px; - box-shadow: $ms-depth-shadow-8; - background-color: $ms-color-gray10; - padding: 12px 24px; - height: 8%; - overflow: scroll; - p { - font-size: 12px; - } + @include base.card; + padding: 12px; & > * + * { margin-top: 8px; } diff --git a/apps/lockfile-explorer-web/src/helpers/displaySpecChanges.ts b/apps/lockfile-explorer-web/src/helpers/displaySpecChanges.ts index 9005d1563fc..fb05326943b 100644 --- a/apps/lockfile-explorer-web/src/helpers/displaySpecChanges.ts +++ b/apps/lockfile-explorer-web/src/helpers/displaySpecChanges.ts @@ -5,7 +5,7 @@ export const displaySpecChanges = (specChanges: Map, dep: s case 'add': return '[Added by .pnpmfile.cjs]'; case 'diff': - return '[Changed from {specChanges.get(dep)?.from}]'; + return `[Changed from ${specChanges.get(dep)?.from}]`; case 'remove': return '[Deleted by .pnpmfile.cjs]'; default: diff --git a/apps/lockfile-explorer-web/src/parsing/LockfileEntry.ts b/apps/lockfile-explorer-web/src/parsing/LockfileEntry.ts index 6c02ddb6b6c..057f4aa3c99 100644 --- a/apps/lockfile-explorer-web/src/parsing/LockfileEntry.ts +++ b/apps/lockfile-explorer-web/src/parsing/LockfileEntry.ts @@ -17,6 +17,7 @@ interface IProps { rawEntryId: string; kind: LockfileEntryFilter; rawYamlData: ILockfileNode; + duplicates?: Set; } /** @@ -61,7 +62,7 @@ export class LockfileEntry { public entrySuffix: string = ''; public constructor(data: IProps) { - const { rawEntryId, kind, rawYamlData } = data; + const { rawEntryId, kind, rawYamlData, duplicates } = data; this.rawEntryId = rawEntryId; this.kind = kind; @@ -85,7 +86,13 @@ export class LockfileEntry { this.packageJsonFolderPath = packageJsonFolderPath.toString(); this.entryId = 'project:' + this.packageJsonFolderPath; this.entryPackageName = packageName.toString(); - this.displayText = 'Project: ' + this.entryPackageName; + if (duplicates?.has(this.entryPackageName)) { + const fullPath = new Path(rawEntryId).makeAbsolute('/').toString().substring(1); + this.displayText = `Project: ${this.entryPackageName} (${fullPath})`; + this.entryPackageName = `${this.entryPackageName} (${fullPath})`; + } else { + this.displayText = 'Project: ' + this.entryPackageName; + } } else { this.displayText = rawEntryId; diff --git a/apps/lockfile-explorer-web/src/parsing/readLockfile.ts b/apps/lockfile-explorer-web/src/parsing/readLockfile.ts index 8a067e30c29..d016bd35beb 100644 --- a/apps/lockfile-explorer-web/src/parsing/readLockfile.ts +++ b/apps/lockfile-explorer-web/src/parsing/readLockfile.ts @@ -3,6 +3,7 @@ import { LockfileEntry, LockfileEntryFilter } from './LockfileEntry'; import { IDependencyType } from './LockfileDependency'; +import { Path } from '@lifaon/path'; const serviceUrl: string = window.appContext.serviceUrl; @@ -59,6 +60,19 @@ export function generateLockfileGraph(lockfile: ILockfilePackageType): LockfileE const allImporters = []; if (lockfile.importers) { + // Find duplicate importer names + const baseNames = new Set(); + const duplicates = new Set(); + for (const importerKey of Object.keys(lockfile.importers)) { + const baseName = new Path(importerKey).basename(); + if (baseName) { + if (baseNames.has(baseName)) { + duplicates.add(baseName); + } + baseNames.add(baseName); + } + } + for (const [importerKey, importerValue] of Object.entries(lockfile.importers)) { // console.log('normalized importer key: ', new Path(importerKey).makeAbsolute('/').toString()); @@ -67,7 +81,8 @@ export function generateLockfileGraph(lockfile: ILockfilePackageType): LockfileE // entryId: normalizedPath, rawEntryId: importerKey, kind: LockfileEntryFilter.Project, - rawYamlData: importerValue + rawYamlData: importerValue, + duplicates }); allImporters.push(importer); allEntries.push(importer); diff --git a/apps/lockfile-explorer-web/src/parsing/test/compareSpec.test.ts b/apps/lockfile-explorer-web/src/parsing/test/compareSpec.test.ts index 9818eb86964..1941552dee9 100644 --- a/apps/lockfile-explorer-web/src/parsing/test/compareSpec.test.ts +++ b/apps/lockfile-explorer-web/src/parsing/test/compareSpec.test.ts @@ -6,6 +6,7 @@ import { compareSpec } from '../compareSpec'; const packageJson: IPackageJson = { name: 'testPackage', + version: '0.0.0', dependencies: { package1: '0.0.0' }, @@ -17,6 +18,7 @@ const packageJson: IPackageJson = { const parsedPackageJson: IPackageJson = { name: 'testPackage', + version: '0.0.0', dependencies: { package1: '1.0.0' }, diff --git a/apps/lockfile-explorer-web/src/start.css b/apps/lockfile-explorer-web/src/start.css index c7d2f557200..43f0b44e3f4 100644 --- a/apps/lockfile-explorer-web/src/start.css +++ b/apps/lockfile-explorer-web/src/start.css @@ -10,9 +10,3 @@ body { font-family: Tahoma, sans-serif; box-sizing: border-box; } - -h5, -p { - margin: 0; - font-size: 14px; -} diff --git a/apps/lockfile-explorer-web/src/styles/_base.scss b/apps/lockfile-explorer-web/src/styles/_base.scss new file mode 100644 index 00000000000..5799704e1e3 --- /dev/null +++ b/apps/lockfile-explorer-web/src/styles/_base.scss @@ -0,0 +1,7 @@ +$shadow: 0 2px 10px hsla(0, 0%, 0%, 0.141); +$background-primary: white; + +@mixin card { + box-shadow: $shadow; + background-color: $background-primary; +} diff --git a/apps/lockfile-explorer-web/src/types/IPackageJson.ts b/apps/lockfile-explorer-web/src/types/IPackageJson.ts index f774e147933..9ca29b24b7c 100644 --- a/apps/lockfile-explorer-web/src/types/IPackageJson.ts +++ b/apps/lockfile-explorer-web/src/types/IPackageJson.ts @@ -3,6 +3,7 @@ export interface IPackageJson { name: string; + version: string; dependencies: { [key in string]: string; }; diff --git a/apps/lockfile-explorer-web/webpack.config.js b/apps/lockfile-explorer-web/webpack.config.js index 5d8baf21a38..db1db2d8a01 100644 --- a/apps/lockfile-explorer-web/webpack.config.js +++ b/apps/lockfile-explorer-web/webpack.config.js @@ -12,9 +12,8 @@ module.exports = function createConfig(env, argv) { configOverride: { resolve: { alias: { - // // Use the bundled library - // 'heft-web-rig-library-tutorial': - // 'heft-web-rig-library-tutorial/dist/heft-web-rig-library-tutorial.js' + // Don't rebundle this large library + '@rushstack/rush-themed-ui': '@rushstack/rush-themed-ui/dist/rush-themed-ui.js' } }, performance: { diff --git a/apps/lockfile-explorer/CHANGELOG.json b/apps/lockfile-explorer/CHANGELOG.json index 68b323a757a..635c791aefc 100644 --- a/apps/lockfile-explorer/CHANGELOG.json +++ b/apps/lockfile-explorer/CHANGELOG.json @@ -1,6 +1,224 @@ { "name": "@rushstack/lockfile-explorer", "entries": [ + { + "version": "1.0.9", + "tag": "@rushstack/lockfile-explorer_v1.0.9", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + } + ] + } + }, + { + "version": "1.0.8", + "tag": "@rushstack/lockfile-explorer_v1.0.8", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + } + ] + } + }, + { + "version": "1.0.7", + "tag": "@rushstack/lockfile-explorer_v1.0.7", + "date": "Wed, 08 Feb 2023 19:58:16 GMT", + "comments": { + "patch": [ + { + "comment": "Support context parameter in pnpmfile readPackage" + } + ] + } + }, + { + "version": "1.0.6", + "tag": "@rushstack/lockfile-explorer_v1.0.6", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + } + ] + } + }, + { + "version": "1.0.5", + "tag": "@rushstack/lockfile-explorer_v1.0.5", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + } + ] + } + }, + { + "version": "1.0.4", + "tag": "@rushstack/lockfile-explorer_v1.0.4", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + } + ] + } + }, + { + "version": "1.0.3", + "tag": "@rushstack/lockfile-explorer_v1.0.3", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "1.0.2", + "tag": "@rushstack/lockfile-explorer_v1.0.2", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + } + ] + } + }, + { + "version": "1.0.1", + "tag": "@rushstack/lockfile-explorer_v1.0.1", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + } + ] + } + }, + { + "version": "1.0.0", + "tag": "@rushstack/lockfile-explorer_v1.0.0", + "date": "Wed, 25 Jan 2023 03:01:43 GMT", + "comments": { + "major": [ + { + "comment": "Initial feature-complete release of Lockfile Explorer" + } + ] + } + }, + { + "version": "0.2.2", + "tag": "@rushstack/lockfile-explorer_v0.2.2", + "date": "Tue, 24 Jan 2023 00:16:54 GMT", + "comments": { + "patch": [ + { + "comment": "Fix an issue with the tab component" + } + ] + } + }, + { + "version": "0.2.1", + "tag": "@rushstack/lockfile-explorer_v0.2.1", + "date": "Sun, 22 Jan 2023 20:37:08 GMT", + "comments": { + "patch": [ + { + "comment": "Fix an issue where the upgrade notice wasn't displayed until after pressing CTRL+C" + }, + { + "comment": "Fix a regression where some CSS styles were not being loaded properly" + } + ] + } + }, + { + "version": "0.2.0", + "tag": "@rushstack/lockfile-explorer_v0.2.0", + "date": "Sat, 21 Jan 2023 04:36:33 GMT", + "comments": { + "minor": [ + { + "comment": "Add \"lfx\" as an alias for the \"lockfile-explorer\" shell command" + } + ], + "patch": [ + { + "comment": "Add some basic command-line help and improve some message strings" + }, + { + "comment": "Add support for rush components" + } + ] + } + }, + { + "version": "0.1.8", + "tag": "@rushstack/lockfile-explorer_v0.1.8", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + } + ] + } + }, { "version": "0.1.7", "tag": "@rushstack/lockfile-explorer_v0.1.7", diff --git a/apps/lockfile-explorer/CHANGELOG.md b/apps/lockfile-explorer/CHANGELOG.md index ade516ab586..e942ef4e1d5 100644 --- a/apps/lockfile-explorer/CHANGELOG.md +++ b/apps/lockfile-explorer/CHANGELOG.md @@ -1,6 +1,92 @@ # Change Log - @rushstack/lockfile-explorer -This log was last generated on Wed, 18 Jan 2023 05:02:16 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 1.0.9 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 1.0.8 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 1.0.7 +Wed, 08 Feb 2023 19:58:16 GMT + +### Patches + +- Support context parameter in pnpmfile readPackage + +## 1.0.6 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 1.0.5 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 1.0.4 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 1.0.3 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 1.0.2 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 1.0.1 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 1.0.0 +Wed, 25 Jan 2023 03:01:43 GMT + +### Breaking changes + +- Initial feature-complete release of Lockfile Explorer + +## 0.2.2 +Tue, 24 Jan 2023 00:16:54 GMT + +### Patches + +- Fix an issue with the tab component + +## 0.2.1 +Sun, 22 Jan 2023 20:37:08 GMT + +### Patches + +- Fix an issue where the upgrade notice wasn't displayed until after pressing CTRL+C +- Fix a regression where some CSS styles were not being loaded properly + +## 0.2.0 +Sat, 21 Jan 2023 04:36:33 GMT + +### Minor changes + +- Add "lfx" as an alias for the "lockfile-explorer" shell command + +### Patches + +- Add some basic command-line help and improve some message strings +- Add support for rush components + +## 0.1.8 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.7 Wed, 18 Jan 2023 05:02:16 GMT diff --git a/apps/lockfile-explorer/README.md b/apps/lockfile-explorer/README.md index 1643d5bdd27..28a196676ae 100644 --- a/apps/lockfile-explorer/README.md +++ b/apps/lockfile-explorer/README.md @@ -3,79 +3,72 @@ -> 🚨 *EARLY PREVIEW RELEASE* 🚨 -> -> Please provide feedback by commenting on -> the [Design Proposal](https://github.com/microsoft/rushstack/issues/3695) -> or creating a GitHub issue. Thanks! +**Rush Lockfile Explorer** helps you investigate and solve version conflicts when working in a monorepo +that uses the [PNPM package manager](https://pnpm.io/). It's designed for the [Rush](https://rushjs.io) +build orchestrator, but you can also use it to analyze a standalone PNPM workspace without Rush. -**Rush Lockfile Explorer** helps you investigate and solve version conflicts when working -in a [Rush](https://rushjs.io) monorepo using the [PNPM package manager](https://pnpm.io/). +Lockfile Explorer helps with problems such as: -Typical use cases: - -- After `rush update`, the app is reporting errors caused by duplicate instances of - a singleton object, probably introduced by a - [peer dependency doppelganger](https://rushjs.io/pages/advanced/npm_doppelgangers/) - -- how to find the likely culprits? - -- After `rush update`, the app's bundle size has increased significantly due to - side-by-side versions -- how to find which packages have extra versions? - -- When you identify the problematic package, it is an obscure indirect dependency of - your middleware -- how to work backwards in the dependency graph to determine which - **package.json** files should be patched in **.pnpmfile.cjs**? - -- Your project's installation footprint is unusually large because it has picked up - a lot of extra NPM dependencies that seem unnecessary, however `rush-pnpm why` prints - thousands of lines of output. How to filter this report to see the important - relationships? +- Understanding why multiple versions of an NPM package are appearing in your `node_modules` folder +- Tracing dependencies to determine which project caused an NPM package to be installed +- Finding and eliminating "doppelgangers" (multiple installations of the same version + of the same package) +- Troubleshooting problems involving peer dependencies +> This project is a new idea whose design is still evolving. +> Please provide feedback by +> [creating a GitHub issue](https://github.com/microsoft/rushstack/issues/new/choose) +> or posting in the Rush Stack +> [Zulip chat room](https://rushstack.zulipchat.com/). Thank you! ## Usage +Here's how to invoke the **Rush Lockfile Explorer** tool: + ```bash -# Install the NPM package globally: +# Install the NPM package globally. +# +# (You could substitute "pnpm" or "yarn" instead of "npm" here. To avoid confusing +# duplicate installs, always use the same tool for global installations!) npm install -g @rushstack/lockfile-explorer # Go to your monorepo folder cd my-rush-repo -# Run "rush install" to ensure common/temp/node_modules is up to date +# Run "rush install" to ensure common/temp/node_modules is up to date. +# (If your monorepo is using PNPM without Rush, substitute "pnpm install" for this step.) rush install # Launch the Lockfile Explorer command line interface (CLI). -# It expects to find a Rush workspace in your shell's current working directory. +# It expects to find a Rush/PNPM workspace in your shell's current working directory. +# As a shorthand, the "lfx" alias can be used here instead of "lockfile-explorer". lockfile-explorer ``` -The CLI will start a Node.js service on `http://localhost/` and try to launch your default web browser: +The CLI will start a Node.js service on `http://localhost/` and launch your default web browser: screenshot
-*Lockfile Explorer main window* - +_Lockfile Explorer main window_ ## How it works -The web app will expect to find a Rush workspace in the current working directory where the `lockfile-explorer` -command was invoked. It will read files such as: +The web app will expect to find a Rush/PNPM workspace in the current working directory where +the `lockfile-explorer` command was invoked. It will read files such as: - **common/config/rush/pnpm-lock.yaml** - the PNPM lockfile for your monorepo - **common/config/rush/.pnpmfile.cjs** - which transforms **package.json** files during installation -- The **package.json** files for your Rush projects -- The **package.json** files for packages installed under - +- The **package.json** files for your local workspace projects +- The **package.json** files for external packages installed in the `node_modules` folders. ## Links -- [Documentation](https://lfx.rushstack.io/) on the Lockfile Explorer project website -- [CHANGELOG.md]( - https://github.com/microsoft/rushstack/blob/main/apps/lockfile-explorer/CHANGELOG.md) - Find +- [Documentation and tutorials](https://lfx.rushstack.io/) on the Lockfile Explorer project website +- [CHANGELOG.md](https://github.com/microsoft/rushstack/blob/main/apps/lockfile-explorer/CHANGELOG.md) - Find out what's new in the latest version - [@rushstack/trace-import](https://www.npmjs.com/package/@rushstack/trace-import) - a command-line tool for troubleshooting how modules are resolved by `import` and `require()` diff --git a/apps/lockfile-explorer/package.json b/apps/lockfile-explorer/package.json index 02ea46678a7..99a1a27f662 100644 --- a/apps/lockfile-explorer/package.json +++ b/apps/lockfile-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/lockfile-explorer", - "version": "0.1.7", + "version": "1.0.9", "description": "Rush Lockfile Explorer: The UI for solving version conflicts quickly in a large monorepo", "keywords": [ "conflict", @@ -25,7 +25,8 @@ "homepage": "https://lfx.rushstack.io/", "license": "MIT", "bin": { - "lockfile-explorer": "./bin/lockfile-explorer" + "lockfile-explorer": "./bin/lockfile-explorer", + "lfx": "./bin/lockfile-explorer" }, "scripts": { "build": "heft build --clean", @@ -45,7 +46,7 @@ "@types/express": "4.17.13", "@types/heft-jest": "1.0.1", "@types/js-yaml": "3.12.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/update-notifier": "~6.0.1" }, "dependencies": { diff --git a/apps/lockfile-explorer/src/init.ts b/apps/lockfile-explorer/src/init.ts index 2870e68c61c..1baf98ea0fd 100644 --- a/apps/lockfile-explorer/src/init.ts +++ b/apps/lockfile-explorer/src/init.ts @@ -4,15 +4,18 @@ // This function will read the current directory and try to figure out if it's a rush project or regular pnpm workspace // Currently it will throw error if neither can be determined -import { FileSystem, JsonFile, PackageJsonLookup, Path } from '@rushstack/node-core-library'; +import { FileSystem, JsonFile, Path } from '@rushstack/node-core-library'; import type { IRushConfigurationJson } from '@microsoft/rush-lib/lib/api/RushConfiguration'; import { type IAppState, IRushProjectDetails, ProjectType } from './state'; -export const init = (): IAppState => { +export const init = (options: { + lockfileExplorerProjectRoot: string; + appVersion: string; + debugMode: boolean; +}): IAppState => { + const { lockfileExplorerProjectRoot, appVersion, debugMode } = options; const currDir = process.cwd(); - const lockfileExplorerProjectRoot: string = PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname)!; - const appVersion: string = JsonFile.load(`${lockfileExplorerProjectRoot}/package.json`).version; let appState: IAppState | undefined; let currExploredDir = Path.convertToSlashes(currDir); @@ -21,7 +24,7 @@ export const init = (): IAppState => { const rushJsonPath: string = `${currExploredDir}/rush.json`; const pnpmLockPath: string = `${currExploredDir}/pnpm-lock.yaml`; if (FileSystem.exists(rushJsonPath)) { - console.log('found rush project: ', rushJsonPath); + console.log('Found a Rush workspace: ', rushJsonPath); // Load the rush projects const rushJson: IRushConfigurationJson = JsonFile.load(rushJsonPath); const projectsByProjectFolder: Map = new Map(); @@ -35,6 +38,7 @@ export const init = (): IAppState => { appState = { currDir, appVersion, + debugMode, lockfileExplorerProjectRoot, projectType: ProjectType.RUSH_PROJECT, pnpmLockfileLocation: `${currExploredDir}/common/config/rush/pnpm-lock.yaml`, @@ -50,6 +54,7 @@ export const init = (): IAppState => { appState = { currDir, appVersion, + debugMode, lockfileExplorerProjectRoot, projectType: ProjectType.PNPM_WORKSPACE, pnpmLockfileLocation: `${currExploredDir}/pnpm-lock.yaml`, @@ -64,7 +69,7 @@ export const init = (): IAppState => { } if (!appState) { - throw new Error('Could not find a rush or pnpm project!'); + throw new Error('Could not find a Rush or PNPM workspace!'); } return appState; diff --git a/apps/lockfile-explorer/src/start.ts b/apps/lockfile-explorer/src/start.ts index 13257282bbe..99281baee23 100644 --- a/apps/lockfile-explorer/src/start.ts +++ b/apps/lockfile-explorer/src/start.ts @@ -8,151 +8,198 @@ import process from 'process'; import colors from 'colors/safe'; import open from 'open'; import updateNotifier from 'update-notifier'; -import { FileSystem, type IPackageJson, JsonFile } from '@rushstack/node-core-library'; +import { FileSystem, type IPackageJson, JsonFile, PackageJsonLookup } from '@rushstack/node-core-library'; import type { IAppContext } from '@rushstack/lockfile-explorer-web/lib/AppContext'; import packageJSON from '../package.json'; import { init } from './init'; import type { IAppState } from './state'; - -const PORT: number = 8091; -// Must not have a trailing slash -const SERVICE_URL: string = `http://localhost:${PORT}`; - -updateNotifier({ pkg: packageJSON }).notify(); - -const appState: IAppState = init(); - -process.chdir(appState.lockfileExplorerProjectRoot); -const distFolderPath: string = `${appState.lockfileExplorerProjectRoot}/dist`; -const app: express.Application = express(); -app.use(express.json()); -app.use(cors()); - -// Variable used to check if the front-end client is still connected -let awaitingFirstConnect: boolean = true; -let isClientConnected: boolean = false; -let disconnected: boolean = false; -setInterval(() => { - if (!isClientConnected && !awaitingFirstConnect && !disconnected) { - console.log(colors.red('The client has disconnected!')); - console.log(`Please open a browser window at http://localhost:${PORT}/app`); - disconnected = true; - } else if (!awaitingFirstConnect) { - isClientConnected = false; - } -}, 4000); - -// This takes precedence over the `/app` static route, which also has an `initappcontext.js` file. -app.get('/initappcontext.js', (req: express.Request, res: express.Response) => { - const appContext: IAppContext = { - serviceUrl: SERVICE_URL, - appVersion: appState.appVersion, - debugMode: process.argv.indexOf('--debug') >= 0 - }; - const sourceCode: string = [ - `console.log('Loaded initappcontext.js');`, - `appContext = ${JSON.stringify(appContext)}` - ].join('\n'); - - res.type('application/javascript').send(sourceCode); -}); - -app.use('/', express.static(distFolderPath)); - -app.use('/favicon.ico', express.static(distFolderPath, { index: 'favicon.ico' })); - -app.get('/api/lockfile', async (req: express.Request, res: express.Response) => { - const pnpmLockfileText: string = await FileSystem.readFileAsync(appState.pnpmLockfileLocation); - const doc = yaml.load(pnpmLockfileText); - res.send(doc); -}); - -app.get('/api/health', (req: express.Request, res: express.Response) => { - awaitingFirstConnect = false; - isClientConnected = true; - if (disconnected) { - disconnected = false; - console.log(colors.green('The client has reconnected!')); - } - res.status(200).send(); -}); - -app.post( - '/api/package-json', - async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => { - const { projectPath } = req.body; - const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`; - let packageJsonText: string; - try { - packageJsonText = await FileSystem.readFileAsync(fileLocation); - } catch (e) { - if (FileSystem.isNotExistError(e)) { - return res.status(404).send({ - message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`, - error: `No package.json in location: ${projectPath}` - }); - } else { - throw e; - } - } - - res.send(packageJsonText); +import { AlreadyReportedError } from '@rushstack/node-core-library'; + +function startApp(debugMode: boolean): void { + const lockfileExplorerProjectRoot: string = PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname)!; + const appVersion: string = JsonFile.load(`${lockfileExplorerProjectRoot}/package.json`).version; + + console.log( + colors.bold(`\nRush Lockfile Explorer ${appVersion}`) + colors.cyan(' - https://lfx.rushstack.io/\n') + ); + + updateNotifier({ + pkg: packageJSON, + // Normally update-notifier waits a day or so before it starts displaying upgrade notices. + // In debug mode, show the notice right away. + updateCheckInterval: debugMode ? 0 : undefined + }).notify({ + // Make sure it says "-g" in the "npm install" example command line + isGlobal: true, + // Show the notice immediately, rather than waiting for process.onExit() + defer: false + }); + + const PORT: number = 8091; + // Must not have a trailing slash + const SERVICE_URL: string = `http://localhost:${PORT}`; + + // TODO: Later if we introduce more CLI parameters, switch to a proper CLI parser + const args: string[] = process.argv.slice(2); + if (args.length > 0 && args[0] !== '--debug') { + console.log('Usage: lockfile-explorer [--debug]\n'); + console.log('The "lfx" command is a shorthand alias for "lockfile-explorer".'); + console.log('See the project website for documentation and support.\n'); + throw new AlreadyReportedError(); } -); -app.get('/api/pnpmfile', async (req: express.Request, res: express.Response) => { - let pnpmLockfile: string; - try { - pnpmLockfile = await FileSystem.readFileAsync(appState.pnpmLockfileLocation); - } catch (e) { - if (FileSystem.isNotExistError(e)) { - return res.status(404).send({ - message: `Could not load pnpmfile file in this repo.`, - error: `No .pnpmifile.cjs found.` - }); - } else { - throw e; + const appState: IAppState = init({ lockfileExplorerProjectRoot, appVersion, debugMode }); + + // Important: This must happen after init() reads the current working directory + process.chdir(appState.lockfileExplorerProjectRoot); + + const distFolderPath: string = `${appState.lockfileExplorerProjectRoot}/dist`; + const app: express.Application = express(); + app.use(express.json()); + app.use(cors()); + + // Variable used to check if the front-end client is still connected + let awaitingFirstConnect: boolean = true; + let isClientConnected: boolean = false; + let disconnected: boolean = false; + setInterval(() => { + if (!isClientConnected && !awaitingFirstConnect && !disconnected) { + console.log(colors.red('The client has disconnected!')); + console.log(`Please open a browser window at http://localhost:${PORT}/app`); + disconnected = true; + } else if (!awaitingFirstConnect) { + isClientConnected = false; } - } + }, 4000); + + // This takes precedence over the `/app` static route, which also has an `initappcontext.js` file. + app.get('/initappcontext.js', (req: express.Request, res: express.Response) => { + const appContext: IAppContext = { + serviceUrl: SERVICE_URL, + appVersion: appState.appVersion, + debugMode: process.argv.indexOf('--debug') >= 0 + }; + const sourceCode: string = [ + `console.log('Loaded initappcontext.js');`, + `appContext = ${JSON.stringify(appContext)}` + ].join('\n'); + + res.type('application/javascript').send(sourceCode); + }); + + app.use('/', express.static(distFolderPath)); + + app.use('/favicon.ico', express.static(distFolderPath, { index: 'favicon.ico' })); + + app.get('/api/lockfile', async (req: express.Request, res: express.Response) => { + const pnpmLockfileText: string = await FileSystem.readFileAsync(appState.pnpmLockfileLocation); + const doc = yaml.load(pnpmLockfileText); + res.send(doc); + }); + + app.get('/api/health', (req: express.Request, res: express.Response) => { + awaitingFirstConnect = false; + isClientConnected = true; + if (disconnected) { + disconnected = false; + console.log(colors.green('The client has reconnected!')); + } + res.status(200).send(); + }); + + app.post( + '/api/package-json', + async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => { + const { projectPath } = req.body; + const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`; + let packageJsonText: string; + try { + packageJsonText = await FileSystem.readFileAsync(fileLocation); + } catch (e) { + if (FileSystem.isNotExistError(e)) { + return res.status(404).send({ + message: `Could not load package.json file for this package. Have you installed all the dependencies for this workspace?`, + error: `No package.json in location: ${projectPath}` + }); + } else { + throw e; + } + } - res.send(pnpmLockfile); -}); + res.send(packageJsonText); + } + ); -app.post( - '/api/package-spec', - async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => { - const { projectPath } = req.body; - const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`; - let packageJson: IPackageJson; + app.get('/api/pnpmfile', async (req: express.Request, res: express.Response) => { + let pnpmfile: string; try { - packageJson = await JsonFile.loadAsync(fileLocation); + pnpmfile = await FileSystem.readFileAsync(appState.pnpmfileLocation); } catch (e) { if (FileSystem.isNotExistError(e)) { return res.status(404).send({ - message: `Could not load package.json file in location: ${projectPath}` + message: `Could not load pnpmfile file in this repo.`, + error: `No .pnpmifile.cjs found.` }); } else { throw e; } } - const { - hooks: { readPackage } - } = require(appState.pnpmfileLocation); - const parsedPackage = readPackage(packageJson); - res.send(parsedPackage); - } -); + res.send(pnpmfile); + }); + + app.post( + '/api/package-spec', + async (req: express.Request<{}, {}, { projectPath: string }, {}>, res: express.Response) => { + const { projectPath } = req.body; + const fileLocation = `${appState.projectRoot}/${projectPath}/package.json`; + let packageJson: IPackageJson; + try { + packageJson = await JsonFile.loadAsync(fileLocation); + } catch (e) { + if (FileSystem.isNotExistError(e)) { + return res.status(404).send({ + message: `Could not load package.json file in location: ${projectPath}` + }); + } else { + throw e; + } + } -app.listen(PORT, async () => { - console.log(`Rush Lockfile Explorer ${appState.appVersion} running at ${SERVICE_URL}`); + const { + hooks: { readPackage } + } = require(appState.pnpmfileLocation); + const parsedPackage = readPackage(packageJson, {}); + res.send(parsedPackage); + } + ); - if (!process.argv.includes('--debug')) { - try { - // Launch the web browser - await open(SERVICE_URL); - } catch (e) { - console.error('Error launching browser: ' + e.toString()); + app.listen(PORT, async () => { + console.log(`App launched on ${SERVICE_URL}`); + + if (!appState.debugMode) { + try { + // Launch the web browser + await open(SERVICE_URL); + } catch (e) { + console.error('Error launching browser: ' + e.toString()); + } + } + }); +} + +const debugMode: boolean = process.argv.indexOf('--debug') >= 0; +if (debugMode) { + // Display the full callstack for errors + startApp(debugMode); +} else { + // Catch exceptions and report them nicely + try { + startApp(debugMode); + } catch (error) { + if (!(error instanceof AlreadyReportedError)) { + console.error(); + console.error(colors.red('ERROR: ' + error.message)); } } -}); +} diff --git a/apps/lockfile-explorer/src/state/index.ts b/apps/lockfile-explorer/src/state/index.ts index e9f1a161671..43b356f6ab7 100644 --- a/apps/lockfile-explorer/src/state/index.ts +++ b/apps/lockfile-explorer/src/state/index.ts @@ -19,6 +19,7 @@ export interface IAppStateBase { pnpmLockfileLocation: string; pnpmfileLocation: string; appVersion: string; + debugMode: boolean; } export interface IRushAppState extends IAppStateBase { diff --git a/apps/rundown/CHANGELOG.json b/apps/rundown/CHANGELOG.json index 6c4c4e702da..6ccf81f46b6 100644 --- a/apps/rundown/CHANGELOG.json +++ b/apps/rundown/CHANGELOG.json @@ -1,6 +1,156 @@ { "name": "@rushstack/rundown", "entries": [ + { + "version": "1.0.243", + "tag": "@rushstack/rundown_v1.0.243", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "1.0.242", + "tag": "@rushstack/rundown_v1.0.242", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `4.13.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "1.0.241", + "tag": "@rushstack/rundown_v1.0.241", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "1.0.240", + "tag": "@rushstack/rundown_v1.0.240", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "1.0.239", + "tag": "@rushstack/rundown_v1.0.239", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "1.0.238", + "tag": "@rushstack/rundown_v1.0.238", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "1.0.237", + "tag": "@rushstack/rundown_v1.0.237", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "1.0.236", + "tag": "@rushstack/rundown_v1.0.236", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "1.0.235", + "tag": "@rushstack/rundown_v1.0.235", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "1.0.234", "tag": "@rushstack/rundown_v1.0.234", diff --git a/apps/rundown/CHANGELOG.md b/apps/rundown/CHANGELOG.md index bd7420f94f5..33d112b7250 100644 --- a/apps/rundown/CHANGELOG.md +++ b/apps/rundown/CHANGELOG.md @@ -1,6 +1,51 @@ # Change Log - @rushstack/rundown -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 1.0.243 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 1.0.242 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 1.0.241 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 1.0.240 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 1.0.239 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 1.0.238 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 1.0.237 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 1.0.236 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 1.0.235 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 1.0.234 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/apps/rundown/package.json b/apps/rundown/package.json index e110227b9f1..82356950c51 100644 --- a/apps/rundown/package.json +++ b/apps/rundown/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rundown", - "version": "1.0.234", + "version": "1.0.243", "description": "Detect load time regressions by running an app, tracing require() calls, and generating a deterministic report", "repository": { "type": "git", @@ -29,6 +29,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/apps/rundown/src/launcher.ts b/apps/rundown/src/launcher.ts index fb7173c168c..a7d6938840d 100644 --- a/apps/rundown/src/launcher.ts +++ b/apps/rundown/src/launcher.ts @@ -58,7 +58,7 @@ class Launcher { } public installHook(): void { - const realRequire: NodeRequireFunction = moduleApi.Module.prototype.require; + const realRequire: NodeJS.Require = moduleApi.Module.prototype.require; const importedModules: Set = this._importedModules; // for closure const importedModulePaths: Set = this._importedModulePaths; // for closure @@ -110,7 +110,7 @@ class Launcher { return importedModule; } - moduleApi.Module.prototype.require = hookedRequire; + moduleApi.Module.prototype.require = hookedRequire as NodeJS.Require; Launcher._copyProperties(hookedRequire, realRequire); process.on('exit', () => { diff --git a/apps/rush/CHANGELOG.json b/apps/rush/CHANGELOG.json index 609c16529d3..4aa6af9efe5 100644 --- a/apps/rush/CHANGELOG.json +++ b/apps/rush/CHANGELOG.json @@ -1,6 +1,224 @@ { "name": "@microsoft/rush", "entries": [ + { + "version": "5.95.0", + "tag": "@microsoft/rush_v5.95.0", + "date": "Fri, 24 Mar 2023 08:53:43 GMT", + "comments": { + "none": [ + { + "comment": "Add experiment `printEventHooksOutputToConsole` to allow printing outputs from event hooks to the console." + } + ] + } + }, + { + "version": "5.94.1", + "tag": "@microsoft/rush_v5.94.1", + "date": "Wed, 22 Mar 2023 20:48:48 GMT", + "comments": { + "none": [ + { + "comment": "Fix an issue where rush plugin autoinstallers would fail to install because the Rush global folder had not yet been initialized." + }, + { + "comment": "Fix an issue with `rush update-autoinstaller` where it may fail with an `Cannot install with \"frozen-lockfile\" because pnpm-lock.yaml is not up to date with package.json` error." + } + ] + } + }, + { + "version": "5.94.0", + "tag": "@microsoft/rush_v5.94.0", + "date": "Mon, 20 Mar 2023 20:14:36 GMT", + "comments": { + "none": [ + { + "comment": "Update the `nodeSupportedVersionRange` in `rush.json` generated by `rush init` to remove Node 12 as it is no longer supported and include Node 18 as it is the current LTS version." + }, + { + "comment": "Extend LookupByPath to also be able to obtain the index of the remainder of the matched path." + }, + { + "comment": "Include some more hooks to allow plugins to monitor phased command execution in real-time." + }, + { + "comment": "Fix an issue where running `rush update-autoinstaller` without having run `rush install` or `rush update` first would cause a crash with an unhelpful error message." + } + ] + } + }, + { + "version": "5.93.2", + "tag": "@microsoft/rush_v5.93.2", + "date": "Mon, 06 Mar 2023 20:18:01 GMT", + "comments": { + "none": [ + { + "comment": "Do not delete the local pnpm store after all install attempts has failed. `rush purge` will still delete a local store." + } + ] + } + }, + { + "version": "5.93.1", + "tag": "@microsoft/rush_v5.93.1", + "date": "Fri, 17 Feb 2023 14:46:59 GMT", + "comments": { + "none": [ + { + "comment": "Fix a regression where \"rush-sdk\" failed to load older versions of \"rush-lib\" (GitHub #3979)" + } + ] + } + }, + { + "version": "5.93.0", + "tag": "@microsoft/rush_v5.93.0", + "date": "Fri, 17 Feb 2023 02:14:43 GMT", + "comments": { + "none": [ + { + "comment": "Add code path to @rushstack/rush-sdk for inheriting @microsoft/rush-lib location from a parent process via the RUSH_LIB_PATH environment variable." + } + ] + } + }, + { + "version": "5.92.0", + "tag": "@microsoft/rush_v5.92.0", + "date": "Sun, 12 Feb 2023 02:50:42 GMT", + "comments": { + "none": [ + { + "comment": "Enable @rushstack/rush-sdk to import internal APIs from the proxied @microsoft/rush-lib instance (GitHub #3895)" + } + ] + } + }, + { + "version": "5.91.0", + "tag": "@microsoft/rush_v5.91.0", + "date": "Sat, 11 Feb 2023 02:04:14 GMT", + "comments": { + "none": [ + { + "comment": "Remove runtime dependency on @rushstack/rush-sdk from the AzureStorageAuthentication class in @rushstack/rush-azure-storage-build-cache-plugin so that it can be used in isolation." + }, + { + "comment": "Include operation log files in the cache, and restore them during cache hits." + } + ] + } + }, + { + "version": "5.90.2", + "tag": "@microsoft/rush_v5.90.2", + "date": "Wed, 08 Feb 2023 20:27:06 GMT", + "comments": {} + }, + { + "version": "5.90.1", + "tag": "@microsoft/rush_v5.90.1", + "date": "Wed, 08 Feb 2023 19:58:35 GMT", + "comments": { + "none": [ + { + "comment": "Disable unused depcheck feature for upgrade-interactive." + }, + { + "comment": "Fix an issue where deleting the `common/temp/node_modules` folder encounters an EPERM error and aborts." + } + ], + "patch": [ + { + "comment": "Fix determination of the root of the current Git worktree when in a multi-worktree setup." + } + ] + } + }, + { + "version": "5.90.0", + "tag": "@microsoft/rush_v5.90.0", + "date": "Sun, 29 Jan 2023 20:10:17 GMT", + "comments": { + "none": [ + { + "comment": "Allow \"shellCommand\" to be optionally specified for bulk custom commands, so that a centralized script can be used instead of invoking package.json scripts (GitHub #3819)" + } + ] + } + }, + { + "version": "5.89.1", + "tag": "@microsoft/rush_v5.89.1", + "date": "Thu, 26 Jan 2023 02:55:30 GMT", + "comments": { + "none": [ + { + "comment": "Fix an issue with `rush add` where the approved packages files aren't updated." + }, + { + "comment": "Revert generation of scripts in the Git hooks folder due to various git-related issues" + }, + { + "comment": "Upgrade to webpack 5.75.0" + } + ] + } + }, + { + "version": "5.89.0", + "tag": "@microsoft/rush_v5.89.0", + "date": "Tue, 24 Jan 2023 22:30:06 GMT", + "comments": { + "none": [ + { + "comment": "Fix linking error due to PNPM v7 local install path breaking change" + }, + { + "comment": "Introduce \"dependsOnAdditionalFiles\" configuration option to operations in rush-project.json. This option allows to pass glob (minimatch) patterns pointing to files outside of .git repository. If provided, the hash values of these files will become part of the final hash when reading and writing from cache." + }, + { + "comment": "Use getRepoStateAsync to optimize performance of calculating repository state." + }, + { + "comment": "Generate scripts in the Git hooks folder referring to the actual hook implementations in-place in the Rush `common/git-hooks/` folder instead of copying the scripts to the Git hooks folder." + } + ] + } + }, + { + "version": "5.88.2", + "tag": "@microsoft/rush_v5.88.2", + "date": "Sun, 22 Jan 2023 04:18:44 GMT", + "comments": { + "none": [ + { + "comment": "Fix a regression where the 'dist/scripts' folder name was named 'dist/undefined'" + } + ] + } + }, + { + "version": "5.88.1", + "tag": "@microsoft/rush_v5.88.1", + "date": "Wed, 18 Jan 2023 22:44:31 GMT", + "comments": { + "none": [ + { + "comment": "Fix an issue where `create-scripts.js` does not exist during `rush deploy`." + }, + { + "comment": "Add install-run-rush-pnpm.js script" + }, + { + "comment": "Update JSZip to 3.8.0." + } + ] + } + }, { "version": "5.88.0", "tag": "@microsoft/rush_v5.88.0", diff --git a/apps/rush/CHANGELOG.md b/apps/rush/CHANGELOG.md index 5ffd7f87b52..408d2400ba3 100644 --- a/apps/rush/CHANGELOG.md +++ b/apps/rush/CHANGELOG.md @@ -1,6 +1,126 @@ # Change Log - @microsoft/rush -This log was last generated on Thu, 22 Dec 2022 20:11:58 GMT and should not be manually modified. +This log was last generated on Fri, 24 Mar 2023 08:53:43 GMT and should not be manually modified. + +## 5.95.0 +Fri, 24 Mar 2023 08:53:43 GMT + +### Updates + +- Add experiment `printEventHooksOutputToConsole` to allow printing outputs from event hooks to the console. + +## 5.94.1 +Wed, 22 Mar 2023 20:48:48 GMT + +### Updates + +- Fix an issue where rush plugin autoinstallers would fail to install because the Rush global folder had not yet been initialized. +- Fix an issue with `rush update-autoinstaller` where it may fail with an `Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with package.json` error. + +## 5.94.0 +Mon, 20 Mar 2023 20:14:36 GMT + +### Updates + +- Update the `nodeSupportedVersionRange` in `rush.json` generated by `rush init` to remove Node 12 as it is no longer supported and include Node 18 as it is the current LTS version. +- Extend LookupByPath to also be able to obtain the index of the remainder of the matched path. +- Include some more hooks to allow plugins to monitor phased command execution in real-time. +- Fix an issue where running `rush update-autoinstaller` without having run `rush install` or `rush update` first would cause a crash with an unhelpful error message. + +## 5.93.2 +Mon, 06 Mar 2023 20:18:01 GMT + +### Updates + +- Do not delete the local pnpm store after all install attempts has failed. `rush purge` will still delete a local store. + +## 5.93.1 +Fri, 17 Feb 2023 14:46:59 GMT + +### Updates + +- Fix a regression where "rush-sdk" failed to load older versions of "rush-lib" (GitHub #3979) + +## 5.93.0 +Fri, 17 Feb 2023 02:14:43 GMT + +### Updates + +- Add code path to @rushstack/rush-sdk for inheriting @microsoft/rush-lib location from a parent process via the RUSH_LIB_PATH environment variable. + +## 5.92.0 +Sun, 12 Feb 2023 02:50:42 GMT + +### Updates + +- Enable @rushstack/rush-sdk to import internal APIs from the proxied @microsoft/rush-lib instance (GitHub #3895) + +## 5.91.0 +Sat, 11 Feb 2023 02:04:14 GMT + +### Updates + +- Remove runtime dependency on @rushstack/rush-sdk from the AzureStorageAuthentication class in @rushstack/rush-azure-storage-build-cache-plugin so that it can be used in isolation. +- Include operation log files in the cache, and restore them during cache hits. + +## 5.90.2 +Wed, 08 Feb 2023 20:27:06 GMT + +_Version update only_ + +## 5.90.1 +Wed, 08 Feb 2023 19:58:35 GMT + +### Patches + +- Fix determination of the root of the current Git worktree when in a multi-worktree setup. + +### Updates + +- Disable unused depcheck feature for upgrade-interactive. +- Fix an issue where deleting the `common/temp/node_modules` folder encounters an EPERM error and aborts. + +## 5.90.0 +Sun, 29 Jan 2023 20:10:17 GMT + +### Updates + +- Allow "shellCommand" to be optionally specified for bulk custom commands, so that a centralized script can be used instead of invoking package.json scripts (GitHub #3819) + +## 5.89.1 +Thu, 26 Jan 2023 02:55:30 GMT + +### Updates + +- Fix an issue with `rush add` where the approved packages files aren't updated. +- Revert generation of scripts in the Git hooks folder due to various git-related issues +- Upgrade to webpack 5.75.0 + +## 5.89.0 +Tue, 24 Jan 2023 22:30:06 GMT + +### Updates + +- Fix linking error due to PNPM v7 local install path breaking change +- Introduce "dependsOnAdditionalFiles" configuration option to operations in rush-project.json. This option allows to pass glob (minimatch) patterns pointing to files outside of .git repository. If provided, the hash values of these files will become part of the final hash when reading and writing from cache. +- Use getRepoStateAsync to optimize performance of calculating repository state. +- Generate scripts in the Git hooks folder referring to the actual hook implementations in-place in the Rush `common/git-hooks/` folder instead of copying the scripts to the Git hooks folder. + +## 5.88.2 +Sun, 22 Jan 2023 04:18:44 GMT + +### Updates + +- Fix a regression where the 'dist/scripts' folder name was named 'dist/undefined' + +## 5.88.1 +Wed, 18 Jan 2023 22:44:31 GMT + +### Updates + +- Fix an issue where `create-scripts.js` does not exist during `rush deploy`. +- Add install-run-rush-pnpm.js script +- Update JSZip to 3.8.0. ## 5.88.0 Thu, 22 Dec 2022 20:11:58 GMT diff --git a/apps/rush/package.json b/apps/rush/package.json index 4c33eb2cd1f..d5623a1ab72 100644 --- a/apps/rush/package.json +++ b/apps/rush/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/rush", - "version": "5.88.0", + "version": "5.95.0", "description": "A professional solution for consolidating all your JavaScript projects in one Git repo", "keywords": [ "install", @@ -47,7 +47,8 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/rush-amazon-s3-build-cache-plugin": "workspace:*", "@rushstack/rush-azure-storage-build-cache-plugin": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/semver": "7.3.5" } } diff --git a/apps/trace-import/CHANGELOG.json b/apps/trace-import/CHANGELOG.json index b2373c2095d..457bdd023fd 100644 --- a/apps/trace-import/CHANGELOG.json +++ b/apps/trace-import/CHANGELOG.json @@ -1,6 +1,168 @@ { "name": "@rushstack/trace-import", "entries": [ + { + "version": "0.1.12", + "tag": "@rushstack/trace-import_v0.1.12", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.1.11", + "tag": "@rushstack/trace-import_v0.1.11", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `4.13.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.1.10", + "tag": "@rushstack/trace-import_v0.1.10", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.1.9", + "tag": "@rushstack/trace-import_v0.1.9", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.1.8", + "tag": "@rushstack/trace-import_v0.1.8", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.1.7", + "tag": "@rushstack/trace-import_v0.1.7", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.1.6", + "tag": "@rushstack/trace-import_v0.1.6", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.1.5", + "tag": "@rushstack/trace-import_v0.1.5", + "date": "Wed, 25 Jan 2023 07:26:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.1.4", + "tag": "@rushstack/trace-import_v0.1.4", + "date": "Sat, 21 Jan 2023 04:36:33 GMT", + "comments": { + "patch": [ + { + "comment": "Update README.md" + } + ] + } + }, + { + "version": "0.1.3", + "tag": "@rushstack/trace-import_v0.1.3", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.1.2", "tag": "@rushstack/trace-import_v0.1.2", diff --git a/apps/trace-import/CHANGELOG.md b/apps/trace-import/CHANGELOG.md index 994d8bd875b..2da252e03ef 100644 --- a/apps/trace-import/CHANGELOG.md +++ b/apps/trace-import/CHANGELOG.md @@ -1,6 +1,58 @@ # Change Log - @rushstack/trace-import -This log was last generated on Tue, 20 Dec 2022 01:18:23 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.1.12 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.1.11 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.1.10 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.1.9 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.1.8 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 0.1.7 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.1.6 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.1.5 +Wed, 25 Jan 2023 07:26:56 GMT + +_Version update only_ + +## 0.1.4 +Sat, 21 Jan 2023 04:36:33 GMT + +### Patches + +- Update README.md + +## 0.1.3 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.2 Tue, 20 Dec 2022 01:18:23 GMT diff --git a/apps/trace-import/README.md b/apps/trace-import/README.md index 88ac84442aa..cce9b091799 100644 --- a/apps/trace-import/README.md +++ b/apps/trace-import/README.md @@ -1,8 +1,8 @@ -# @microsoft/trace-import +# @rushstack/trace-import -> 🚨 *EARLY PREVIEW RELEASE* 🚨 +> 🚨 _EARLY PREVIEW RELEASE_ 🚨 > -> Not all features are implemented yet. To provide suggestions, please +> Not all features are implemented yet. To provide suggestions, please > [create a GitHub issue](https://github.com/microsoft/rushstack/issues/new/choose). > If you have questions, see the [Rush Stack Help page](https://rushstack.io/pages/help/support/) > for support resources. @@ -62,11 +62,13 @@ These commands were invoked in the `C:\Git\rushstack\apps\trace-import` folder where trace-import is developed. ### Resolving a CommonJS main index + ``` trace-import --path semver ``` Sample output: + ``` Base folder: C:\Git\rushstack\apps\trace-import Package name: semver @@ -82,11 +84,13 @@ Target path: C:\Git\rushstack\common\temp\node_modules\.pnpm\semver@ ``` ### Resolving a CommonJS package subpath + ``` trace-import --path typescript/bin/tsc ``` Sample output: + ``` Base folder: C:\Git\rushstack\apps\trace-import Package name: typescript @@ -101,11 +105,13 @@ Target path: C:\Git\rushstack\common\temp\node_modules\.pnpm\typescr ``` ### Resolving a TypeScript declaration + ``` trace-import --resolution-type ts --path semver ``` Sample output: + ``` Base folder: C:\Git\rushstack\apps\trace-import Package name: semver @@ -123,11 +129,13 @@ Target path: C:\Git\rushstack\common\temp\node_modules\.pnpm\@types+ ``` ### Resolving a relative path + ``` trace-import --path ./config/rig.json ``` Sample output: + ``` Base folder: C:\Git\rushstack\apps\trace-import Import path: ./config/rig.json @@ -140,8 +148,7 @@ Target path: C:\Git\rushstack\apps\trace-import\config\rig.json ## Links -- [CHANGELOG.md]( - https://github.com/microsoft/rushstack/blob/main/apps/trace-import/CHANGELOG.md) - Find +- [CHANGELOG.md](https://github.com/microsoft/rushstack/blob/main/apps/trace-import/CHANGELOG.md) - Find out what's new in the latest version - [Rush Lockfile Explorer](https://lfx.rushstack.io) - The desktop app for troubleshooting PNPM lockfiles diff --git a/apps/trace-import/package.json b/apps/trace-import/package.json index e307ca499f8..a43b6e59a36 100644 --- a/apps/trace-import/package.json +++ b/apps/trace-import/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/trace-import", - "version": "0.1.2", + "version": "0.1.12", "description": "CLI tool for understanding how require() and \"import\" statements get resolved", "repository": { "type": "git", @@ -30,7 +30,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/resolve": "1.20.2", "@types/semver": "7.3.5" } diff --git a/build-tests-samples/heft-node-basic-tutorial/package.json b/build-tests-samples/heft-node-basic-tutorial/package.json index a86c7872998..e98bbdb1367 100644 --- a/build-tests-samples/heft-node-basic-tutorial/package.json +++ b/build-tests-samples/heft-node-basic-tutorial/package.json @@ -17,7 +17,7 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "typescript": "~4.8.4" } diff --git a/build-tests-samples/heft-node-jest-tutorial/package.json b/build-tests-samples/heft-node-jest-tutorial/package.json index 159f09954dc..f44f23255ce 100644 --- a/build-tests-samples/heft-node-jest-tutorial/package.json +++ b/build-tests-samples/heft-node-jest-tutorial/package.json @@ -16,7 +16,7 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "typescript": "~4.8.4" } diff --git a/build-tests-samples/heft-node-rig-tutorial/package.json b/build-tests-samples/heft-node-rig-tutorial/package.json index 4f0e3c2b2f3..9fcf3ea48bd 100644 --- a/build-tests-samples/heft-node-rig-tutorial/package.json +++ b/build-tests-samples/heft-node-rig-tutorial/package.json @@ -14,6 +14,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/build-tests-samples/heft-serverless-stack-tutorial/package.json b/build-tests-samples/heft-serverless-stack-tutorial/package.json index 13d0c49ef9b..ce351d3f889 100644 --- a/build-tests-samples/heft-serverless-stack-tutorial/package.json +++ b/build-tests-samples/heft-serverless-stack-tutorial/package.json @@ -24,7 +24,7 @@ "@serverless-stack/resources": "0.67.0", "@types/aws-lambda": "8.10.93", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "aws-cdk-lib": "2.7.0", "constructs": "~10.0.98", "eslint": "~8.7.0", diff --git a/build-tests-samples/heft-storybook-react-tutorial-storykit/package.json b/build-tests-samples/heft-storybook-react-tutorial-storykit/package.json index 3f2428360b0..2a2fd09d520 100644 --- a/build-tests-samples/heft-storybook-react-tutorial-storykit/package.json +++ b/build-tests-samples/heft-storybook-react-tutorial-storykit/package.json @@ -11,7 +11,7 @@ "_phase:build": "" }, "devDependencies": { - "@babel/core": "~7.17.0", + "@babel/core": "~7.20.0", "@storybook/addon-actions": "~6.4.18", "@storybook/addon-essentials": "~6.4.18", "@storybook/addon-links": "~6.4.18", @@ -21,10 +21,10 @@ "@storybook/react": "~6.4.18", "@storybook/theming": "~6.4.18", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "babel-loader": "~8.2.3", "css-loader": "~5.2.7", "jest": "~29.3.1", diff --git a/build-tests-samples/heft-storybook-react-tutorial/config/heft.json b/build-tests-samples/heft-storybook-react-tutorial/config/heft.json index 3ba875a0e99..9c1f6c5ea7c 100644 --- a/build-tests-samples/heft-storybook-react-tutorial/config/heft.json +++ b/build-tests-samples/heft-storybook-react-tutorial/config/heft.json @@ -39,7 +39,9 @@ "pluginPackage": "@rushstack/heft-storybook-plugin", "options": { "storykitPackageName": "heft-storybook-react-tutorial-storykit", - "startupModulePath": "@storybook/react/bin/index.js" + "startupModulePath": "@storybook/react/bin/index.js", + "staticBuildModulePath": "@storybook/react/bin/build.js", + "staticBuildOutputFolder": "static-build-dir" } } } diff --git a/build-tests-samples/heft-storybook-react-tutorial/package.json b/build-tests-samples/heft-storybook-react-tutorial/package.json index 526894d2789..a8611ed769a 100644 --- a/build-tests-samples/heft-storybook-react-tutorial/package.json +++ b/build-tests-samples/heft-storybook-react-tutorial/package.json @@ -7,6 +7,7 @@ "build": "heft build --clean", "start": "heft start", "storybook": "heft start --storybook", + "build-storybook": "heft build --storybook", "_phase:build": "heft run --only build -- --clean", "_phase:test": "heft run --only test -- --clean" }, @@ -16,6 +17,7 @@ "tslib": "~2.3.1" }, "devDependencies": { + "@babel/core": "~7.20.0", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", @@ -23,10 +25,12 @@ "@rushstack/heft-typescript-plugin": "workspace:*", "@rushstack/heft-webpack4-plugin": "workspace:*", "@rushstack/heft": "workspace:*", + "@storybook/react": "~6.4.18", "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "css-loader": "~5.2.7", "eslint": "~8.7.0", "heft-storybook-react-tutorial-storykit": "workspace:*", diff --git a/build-tests-samples/heft-web-rig-app-tutorial/package.json b/build-tests-samples/heft-web-rig-app-tutorial/package.json index 406533dbb58..07530147c38 100644 --- a/build-tests-samples/heft-web-rig-app-tutorial/package.json +++ b/build-tests-samples/heft-web-rig-app-tutorial/package.json @@ -21,7 +21,7 @@ "@rushstack/heft": "workspace:*", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "typescript": "~4.8.4" } } diff --git a/build-tests-samples/heft-web-rig-library-tutorial/package.json b/build-tests-samples/heft-web-rig-library-tutorial/package.json index 81861b302f8..076806ade1d 100644 --- a/build-tests-samples/heft-web-rig-library-tutorial/package.json +++ b/build-tests-samples/heft-web-rig-library-tutorial/package.json @@ -23,7 +23,7 @@ "@rushstack/heft": "workspace:*", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "typescript": "~4.8.4" } } diff --git a/build-tests-samples/heft-webpack-basic-tutorial/package.json b/build-tests-samples/heft-webpack-basic-tutorial/package.json index b318ce59716..3544123ffb2 100644 --- a/build-tests-samples/heft-webpack-basic-tutorial/package.json +++ b/build-tests-samples/heft-webpack-basic-tutorial/package.json @@ -24,13 +24,13 @@ "@types/heft-jest": "1.0.1", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "css-loader": "~6.6.0", "eslint": "~8.7.0", "html-webpack-plugin": "~5.5.0", "source-map-loader": "~3.0.1", "style-loader": "~3.3.1", "typescript": "~4.8.4", - "webpack": "~5.68.0" + "webpack": "~5.75.0" } } diff --git a/build-tests-samples/packlets-tutorial/package.json b/build-tests-samples/packlets-tutorial/package.json index 04854433427..4fb672fd3c1 100644 --- a/build-tests-samples/packlets-tutorial/package.json +++ b/build-tests-samples/packlets-tutorial/package.json @@ -14,7 +14,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "typescript": "~4.8.4" } diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json b/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json index 0d12ea0af06..9118d0a598f 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/api-documenter-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -197,6 +197,7 @@ ], "fileUrlPath": "src/inheritedMembers/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Class1", "preserveMemberOrder": false, "members": [ @@ -227,7 +228,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -256,7 +258,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Method", @@ -303,6 +306,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "someOverload" } ], @@ -346,6 +350,7 @@ } } ], + "isAbstract": false, "name": "Class2", "preserveMemberOrder": false, "members": [ @@ -376,7 +381,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Method", @@ -423,6 +429,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "someMethod" }, { @@ -452,7 +459,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "extendsTokenRange": { @@ -505,6 +513,7 @@ ], "fileUrlPath": "src/inheritedMembers/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExtendsAnonymousClass", "preserveMemberOrder": false, "members": [], @@ -535,6 +544,7 @@ ], "fileUrlPath": "src/inheritedMembers/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExtendsClassFromAnotherPackage", "preserveMemberOrder": false, "members": [], @@ -565,6 +575,7 @@ ], "fileUrlPath": "src/inheritedMembers/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExtendsClassLikeVariable", "preserveMemberOrder": false, "members": [], @@ -595,6 +606,7 @@ ], "fileUrlPath": "src/inheritedMembers/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExtendsUnexportedClass", "preserveMemberOrder": false, "members": [], @@ -916,6 +928,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "Class3", "preserveMemberOrder": false, "members": [ @@ -964,6 +977,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "someMethod" }, { @@ -1011,6 +1025,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "someOverload" }, { @@ -1058,6 +1073,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "someOverload" }, { @@ -1087,7 +1103,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md index 5e54a34385e..62dca05ad18 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.fourthprop.md @@ -6,7 +6,7 @@ A fourth prop -Signature: +**Signature:** ```typescript fourthProp: number; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md index 3f8e400993d..40286ceedb2 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.md @@ -5,12 +5,12 @@ ## Class1 class -Signature: +**Signature:** ```typescript export declare class Class1 extends Class2 ``` -Extends: [Class2](./api-documenter-scenarios.class2.md)<number> +**Extends:** [Class2](./api-documenter-scenarios.class2.md)<number> ## Properties diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md index 88d937932c6..d45f01c74dd 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.secondprop.md @@ -6,7 +6,7 @@ A second prop. Overrides `Class2.secondProp`. -Signature: +**Signature:** ```typescript secondProp: boolean; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md index 4d3c6e4e0c0..43cd1dcb975 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class1.someoverload.md @@ -6,7 +6,7 @@ Some overload. Overrides `Class3.someOverload`. -Signature: +**Signature:** ```typescript someOverload(x: boolean | string): void; @@ -18,7 +18,7 @@ someOverload(x: boolean | string): void; | --- | --- | --- | | x | boolean \| string | | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md index ed505536b4c..64d21d6aaf7 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.md @@ -5,12 +5,12 @@ ## Class2 class -Signature: +**Signature:** ```typescript export declare class Class2 extends Namespace1.Class3 ``` -Extends: [Namespace1.Class3](./api-documenter-scenarios.namespace1.class3.md) +**Extends:** [Namespace1.Class3](./api-documenter-scenarios.namespace1.class3.md) ## Properties diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md index 3cd6d33ddf1..d27bd64612a 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.secondprop.md @@ -6,7 +6,7 @@ A second prop. -Signature: +**Signature:** ```typescript secondProp: boolean | string; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md index 76593e3305b..804fa09c005 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.somemethod.md @@ -6,7 +6,7 @@ Some method. Overrides `Class3.someMethod`. -Signature: +**Signature:** ```typescript someMethod(x: boolean): void; @@ -18,7 +18,7 @@ someMethod(x: boolean): void; | --- | --- | --- | | x | boolean | | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md index c9e77cd20b1..601018a30fc 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.class2.thirdprop.md @@ -6,7 +6,7 @@ A third prop. -Signature: +**Signature:** ```typescript thirdProp: T; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md index f1511fa4620..cc7788ea1fb 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.classlikevariable.md @@ -6,7 +6,7 @@ Some class-like variable. -Signature: +**Signature:** ```typescript ClassLikeVariable: { diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md index 097aad9a4d2..5deec45ca0d 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsanonymousclass.md @@ -6,12 +6,12 @@ Some class that extends an anonymous class. -Signature: +**Signature:** ```typescript export declare class ExtendsAnonymousClass extends ExtendsAnonymousClass_base ``` -Extends: ExtendsAnonymousClass\_base +**Extends:** ExtendsAnonymousClass\_base -(Some inherited members may not be shown because they are not represented in the documentation.) +_(Some inherited members may not be shown because they are not represented in the documentation.)_ diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md index a920ca7732c..9e92e1877a7 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclassfromanotherpackage.md @@ -6,12 +6,12 @@ Some class that extends a class from another package. This base class is not in any API doc model. -Signature: +**Signature:** ```typescript export declare class ExtendsClassFromAnotherPackage extends Extractor ``` -Extends: Extractor +**Extends:** Extractor -(Some inherited members may not be shown because they are not represented in the documentation.) +_(Some inherited members may not be shown because they are not represented in the documentation.)_ diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md index ce358851bfa..2681786e781 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsclasslikevariable.md @@ -6,12 +6,12 @@ Some class that extends a class-like variable. -Signature: +**Signature:** ```typescript export declare class ExtendsClassLikeVariable extends ClassLikeVariable ``` -Extends: ClassLikeVariable +**Extends:** ClassLikeVariable -(Some inherited members may not be shown because they are not represented in the documentation.) +_(Some inherited members may not be shown because they are not represented in the documentation.)_ diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md index 355d9611d44..f7c3a288137 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.extendsunexportedclass.md @@ -6,12 +6,12 @@ Some class that extends an unexported class. -Signature: +**Signature:** ```typescript export declare class ExtendsUnexportedClass extends UnexportedClass ``` -Extends: UnexportedClass +**Extends:** UnexportedClass -(Some inherited members may not be shown because they are not represented in the documentation.) +_(Some inherited members may not be shown because they are not represented in the documentation.)_ diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md index ddf3ffe6f3e..d7b01f76490 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsinterfaceliketypealias.md @@ -6,14 +6,14 @@ Some interface that extends an interface-like type alias as well as another interface. -Signature: +**Signature:** ```typescript export interface IExtendsInterfaceLikeTypeAlias extends IInterfaceLikeTypeAlias, IInterface1 ``` -Extends: [IInterfaceLikeTypeAlias](./api-documenter-scenarios.iinterfaceliketypealias.md), [IInterface1](./api-documenter-scenarios.iinterface1.md) +**Extends:** [IInterfaceLikeTypeAlias](./api-documenter-scenarios.iinterfaceliketypealias.md), [IInterface1](./api-documenter-scenarios.iinterface1.md) -(Some inherited members may not be shown because they are not represented in the documentation.) +_(Some inherited members may not be shown because they are not represented in the documentation.)_ ## Properties diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md index 77e1c48bca6..100c750a17c 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.md @@ -6,12 +6,12 @@ Some interface that extends multiple interfaces. -Signature: +**Signature:** ```typescript export interface IExtendsMultipleInterfaces extends IInterface1, IInterface2 ``` -Extends: [IInterface1](./api-documenter-scenarios.iinterface1.md), [IInterface2](./api-documenter-scenarios.iinterface2.md) +**Extends:** [IInterface1](./api-documenter-scenarios.iinterface1.md), [IInterface2](./api-documenter-scenarios.iinterface2.md) ## Properties diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md index 5a9fb3b83fa..a9ac71ab095 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.secondprop.md @@ -6,7 +6,7 @@ A second prop. Overrides `IInterface1.someProp`. -Signature: +**Signature:** ```typescript secondProp: boolean; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md index 835f41f7860..d522140c0a5 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iextendsmultipleinterfaces.thirdprop.md @@ -6,7 +6,7 @@ A third prop. -Signature: +**Signature:** ```typescript thirdProp: string; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md index 7ec58265781..f3fa0933e54 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.md @@ -5,7 +5,7 @@ ## IInterface1 interface -Signature: +**Signature:** ```typescript export interface IInterface1 diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md index 05ce9c31e1e..f7e8fe6c40e 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.secondprop.md @@ -6,7 +6,7 @@ A second prop. -Signature: +**Signature:** ```typescript secondProp: boolean | string; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md index da41c88728e..fa9cbf2a012 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface1.someprop.md @@ -6,7 +6,7 @@ Some prop. -Signature: +**Signature:** ```typescript someProp: number; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md index 4816e2799d3..32a50b5ce2c 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.md @@ -5,7 +5,7 @@ ## IInterface2 interface -Signature: +**Signature:** ```typescript export interface IInterface2 diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md index 4079ad6f63f..bbd551ac110 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterface2.someprop.md @@ -6,7 +6,7 @@ Some prop. -Signature: +**Signature:** ```typescript someProp: number; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md index adb92231563..35892b1be67 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.iinterfaceliketypealias.md @@ -6,7 +6,7 @@ Some interface-like type alias. -Signature: +**Signature:** ```typescript export declare type IInterfaceLikeTypeAlias = { diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md index a5014d799fc..8167ea6c94f 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.md @@ -5,7 +5,7 @@ ## Namespace1.Class3 class -Signature: +**Signature:** ```typescript class Class3 diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md index 4975757832e..4e729cc2d18 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.somemethod.md @@ -6,7 +6,7 @@ Some method. -Signature: +**Signature:** ```typescript someMethod(x: boolean | string): void; @@ -18,7 +18,7 @@ someMethod(x: boolean | string): void; | --- | --- | --- | | x | boolean \| string | | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md index 23b0f47ddd0..4824c88c162 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload.md @@ -6,7 +6,7 @@ Some overload. -Signature: +**Signature:** ```typescript someOverload(x: boolean): void; @@ -18,7 +18,7 @@ someOverload(x: boolean): void; | --- | --- | --- | | x | boolean | | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md index cc9cc6b5006..71b607dc325 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someoverload_1.md @@ -6,7 +6,7 @@ Some overload. -Signature: +**Signature:** ```typescript someOverload(x: string): void; @@ -18,7 +18,7 @@ someOverload(x: string): void; | --- | --- | --- | | x | string | | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md index 2083e377c19..651df68d102 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.class3.someprop.md @@ -6,7 +6,7 @@ Some prop. -Signature: +**Signature:** ```typescript someProp: number; diff --git a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md index 3e8b7e5051b..c7956bcc7a5 100644 --- a/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md +++ b/build-tests/api-documenter-scenarios/etc/inheritedMembers/markdown/api-documenter-scenarios.namespace1.md @@ -5,7 +5,7 @@ ## Namespace1 namespace -Signature: +**Signature:** ```typescript export declare namespace Namespace1 diff --git a/build-tests/api-documenter-scenarios/package.json b/build-tests/api-documenter-scenarios/package.json index 7a69c215508..b57ca02f3b7 100644 --- a/build-tests/api-documenter-scenarios/package.json +++ b/build-tests/api-documenter-scenarios/package.json @@ -14,7 +14,7 @@ "@microsoft/teams-js": "1.3.0-beta.4", "@rushstack/node-core-library": "workspace:*", "@types/jest": "29.2.5", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/build-tests/api-documenter-test/etc/api-documenter-test.api.json b/build-tests/api-documenter-test/etc/api-documenter-test.api.json index a6ad887b50a..4b8d0a7951b 100644 --- a/build-tests/api-documenter-test/etc/api-documenter-test.api.json +++ b/build-tests/api-documenter-test/etc/api-documenter-test.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -182,6 +182,86 @@ "name": "", "preserveMemberOrder": false, "members": [ + { + "kind": "Class", + "canonicalReference": "api-documenter-test!AbstractClass:class", + "docComment": "/**\n * Some abstract class with abstract members.\n *\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare abstract class AbstractClass " + } + ], + "fileUrlPath": "src/AbstractClass.ts", + "releaseTag": "Public", + "isAbstract": true, + "name": "AbstractClass", + "preserveMemberOrder": false, + "members": [ + { + "kind": "Method", + "canonicalReference": "api-documenter-test!AbstractClass#method:member(1)", + "docComment": "/**\n * Some abstract method.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "abstract method(): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "releaseTag": "Public", + "isProtected": false, + "overloadIndex": 1, + "parameters": [], + "isOptional": false, + "isAbstract": true, + "name": "method" + }, + { + "kind": "Property", + "canonicalReference": "api-documenter-test!AbstractClass#property:member", + "docComment": "/**\n * Some abstract property.\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "protected abstract property: " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isReadonly": false, + "isOptional": false, + "releaseTag": "Public", + "name": "property", + "propertyTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isStatic": false, + "isProtected": true, + "isAbstract": true + } + ], + "implementsTokenRanges": [] + }, { "kind": "Interface", "canonicalReference": "api-documenter-test!Constraint:interface", @@ -234,6 +314,7 @@ ], "fileUrlPath": "src/DecoratorExample.ts", "releaseTag": "Public", + "isAbstract": false, "name": "DecoratorExample", "preserveMemberOrder": false, "members": [ @@ -265,7 +346,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -299,6 +381,7 @@ ], "fileUrlPath": "src/DocClass1.ts", "releaseTag": "Public", + "isAbstract": false, "name": "DocBaseClass", "preserveMemberOrder": false, "members": [ @@ -391,6 +474,7 @@ ], "fileUrlPath": "src/DocClass1.ts", "releaseTag": "Public", + "isAbstract": false, "name": "DocClass1", "preserveMemberOrder": false, "members": [ @@ -422,6 +506,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "deprecatedExample" }, { @@ -485,6 +570,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "exampleFunction" }, { @@ -532,6 +618,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "exampleFunction" }, { @@ -610,6 +697,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "genericWithConstraintAndDefault" }, { @@ -640,6 +728,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "interestingEdgeCases" }, { @@ -670,7 +759,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -700,7 +790,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -729,7 +820,8 @@ "endIndex": 2 }, "isStatic": true, - "isProtected": true + "isProtected": true, + "isAbstract": false }, { "kind": "Method", @@ -776,6 +868,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "optionalParamFunction" }, { @@ -805,7 +898,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": true + "isProtected": true, + "isAbstract": false }, { "kind": "Property", @@ -834,7 +928,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -864,7 +959,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Method", @@ -927,6 +1023,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "sumWithExample" }, { @@ -957,6 +1054,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "tableExample" }, { @@ -986,7 +1084,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -1015,7 +1114,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "extendsTokenRange": { @@ -1045,6 +1145,7 @@ ], "fileUrlPath": "src/DocClass1.ts", "releaseTag": "Public", + "isAbstract": false, "name": "DocClassInterfaceMerge", "preserveMemberOrder": false, "members": [], @@ -1480,6 +1581,7 @@ } } ], + "isAbstract": false, "name": "Generic", "preserveMemberOrder": false, "members": [], @@ -2561,6 +2663,7 @@ ], "fileUrlPath": "src/DocClass1.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SystemEvent", "preserveMemberOrder": false, "members": [ @@ -2609,6 +2712,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "addHandler" } ], diff --git a/build-tests/api-documenter-test/etc/api-documenter-test.api.md b/build-tests/api-documenter-test/etc/api-documenter-test.api.md index 22fa1fef52d..18bab020adb 100644 --- a/build-tests/api-documenter-test/etc/api-documenter-test.api.md +++ b/build-tests/api-documenter-test/etc/api-documenter-test.api.md @@ -4,6 +4,12 @@ ```ts +// @public +export abstract class AbstractClass { + abstract method(): void; + protected abstract property: number; +} + // @public export interface Constraint { } diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.md new file mode 100644 index 00000000000..eb8ca6923d4 --- /dev/null +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [api-documenter-test](./api-documenter-test.md) > [AbstractClass](./api-documenter-test.abstractclass.md) + +## AbstractClass class + +Some abstract class with abstract members. + +**Signature:** + +```typescript +export declare abstract class AbstractClass +``` + +## Properties + +| Property | Modifiers | Type | Description | +| --- | --- | --- | --- | +| [property](./api-documenter-test.abstractclass.property.md) |

protected

abstract

| number | Some abstract property. | + +## Methods + +| Method | Modifiers | Description | +| --- | --- | --- | +| [method()](./api-documenter-test.abstractclass.method.md) | abstract | Some abstract method. | + diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.method.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.method.md new file mode 100644 index 00000000000..ed23bf4d3eb --- /dev/null +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.method.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [api-documenter-test](./api-documenter-test.md) > [AbstractClass](./api-documenter-test.abstractclass.md) > [method](./api-documenter-test.abstractclass.method.md) + +## AbstractClass.method() method + +Some abstract method. + +**Signature:** + +```typescript +abstract method(): void; +``` +**Returns:** + +void + diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.property.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.property.md new file mode 100644 index 00000000000..14d9a35f906 --- /dev/null +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.abstractclass.property.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [api-documenter-test](./api-documenter-test.md) > [AbstractClass](./api-documenter-test.abstractclass.md) > [property](./api-documenter-test.abstractclass.property.md) + +## AbstractClass.property property + +Some abstract property. + +**Signature:** + +```typescript +protected abstract property: number; +``` diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constraint.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constraint.md index baad3fa0c92..23e1eba6aa2 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constraint.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constraint.md @@ -6,7 +6,7 @@ Type parameter constraint used by test case below. -Signature: +**Signature:** ```typescript export interface Constraint diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constvariable.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constvariable.md index 3eb2979a44b..f1983273097 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constvariable.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.constvariable.md @@ -6,7 +6,7 @@ An exported variable declaration. -Signature: +**Signature:** ```typescript constVariable: number diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.creationdate.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.creationdate.md index 0edf2faff44..10d7cac8d65 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.creationdate.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.creationdate.md @@ -6,12 +6,12 @@ The date when the record was created. -Signature: +**Signature:** ```typescript creationDate: Date; ``` -Decorators: +**Decorators:** `@jsonSerialized` diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.md index 0b1737db6a8..1ad743d98dc 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.decoratorexample.md @@ -5,7 +5,7 @@ ## DecoratorExample class -Signature: +**Signature:** ```typescript export declare class DecoratorExample diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.defaulttype.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.defaulttype.md index 06b19e759fd..63b11b92846 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.defaulttype.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.defaulttype.md @@ -6,7 +6,7 @@ Type parameter default type used by test case below. -Signature: +**Signature:** ```typescript export interface DefaultType diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor_.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor_.md index 9fb39e46aa2..2bf60957465 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor_.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor_.md @@ -6,7 +6,7 @@ The simple constructor for `DocBaseClass` -Signature: +**Signature:** ```typescript constructor(); diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor__1.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor__1.md index 152500bd6ed..6e1fb0514dd 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor__1.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass._constructor__1.md @@ -6,7 +6,7 @@ The overloaded constructor for `DocBaseClass` -Signature: +**Signature:** ```typescript constructor(x: number); diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass.md index 792bd688c23..9956be3c3e8 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docbaseclass.md @@ -7,7 +7,7 @@ Example base class -Signature: +**Signature:** ```typescript export declare class DocBaseClass diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.deprecatedexample.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.deprecatedexample.md index 3572fc89d0e..7bc105104ec 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.deprecatedexample.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.deprecatedexample.md @@ -9,12 +9,12 @@ > Use `otherThing()` instead. > -Signature: +**Signature:** ```typescript deprecatedExample(): void; ``` -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction.md index c081fa0be54..25b2e9e4eee 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction.md @@ -6,7 +6,7 @@ This is an overloaded function. -Signature: +**Signature:** ```typescript exampleFunction(a: string, b: string): string; @@ -19,7 +19,7 @@ exampleFunction(a: string, b: string): string; | a | string | the first string | | b | string | the second string | -Returns: +**Returns:** string diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction_1.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction_1.md index 498b44a3568..63c9b7d4075 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction_1.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.examplefunction_1.md @@ -6,7 +6,7 @@ This is also an overloaded function. -Signature: +**Signature:** ```typescript exampleFunction(x: number): number; @@ -18,7 +18,7 @@ exampleFunction(x: number): number; | --- | --- | --- | | x | number | the number | -Returns: +**Returns:** number diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.genericwithconstraintanddefault.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.genericwithconstraintanddefault.md index 4379e46d416..d13ef6c720f 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.genericwithconstraintanddefault.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.genericwithconstraintanddefault.md @@ -6,7 +6,7 @@ This is a method with a complex type parameter. -Signature: +**Signature:** ```typescript genericWithConstraintAndDefault(x: T): void; @@ -18,7 +18,7 @@ genericWithConstraintAndDefault(x: T): void; | --- | --- | --- | | x | T | some generic parameter. | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.interestingedgecases.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.interestingedgecases.md index dac3180381c..d38c8881388 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.interestingedgecases.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.interestingedgecases.md @@ -8,12 +8,12 @@ Example: "{ \\"maxItemsToShow\\": 123 }" The regular expression used to validate the constraints is /^\[a-zA-Z0-9\\-\_\]+$/ -Signature: +**Signature:** ```typescript interestingEdgeCases(): void; ``` -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.malformedevent.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.malformedevent.md index 8f399f0611b..d5366273cce 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.malformedevent.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.malformedevent.md @@ -6,7 +6,7 @@ This event should have been marked as readonly. -Signature: +**Signature:** ```typescript malformedEvent: SystemEvent; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md index 4ae28213699..5a0a095b7e4 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.md @@ -6,14 +6,14 @@ This is an example class. -Signature: +**Signature:** ```typescript export declare class DocClass1 extends DocBaseClass implements IDocInterface1, IDocInterface2 ``` -Extends: [DocBaseClass](./api-documenter-test.docbaseclass.md) +**Extends:** [DocBaseClass](./api-documenter-test.docbaseclass.md) -Implements: [IDocInterface1](./api-documenter-test.idocinterface1.md), [IDocInterface2](./api-documenter-test.idocinterface2.md) +**Implements:** [IDocInterface1](./api-documenter-test.idocinterface1.md), [IDocInterface2](./api-documenter-test.idocinterface2.md) ## Remarks @@ -35,7 +35,7 @@ The constructor for this class is marked as internal. Third-party code should no | Property | Modifiers | Type | Description | | --- | --- | --- | --- | -| [multipleModifiersProperty](./api-documenter-test.docclass1.multiplemodifiersproperty.md) |

protected

readonly

static

| boolean | Some property with multiple modifiers. | +| [multipleModifiersProperty](./api-documenter-test.docclass1.multiplemodifiersproperty.md) |

protected

static

readonly

| boolean | Some property with multiple modifiers. | | [protectedProperty](./api-documenter-test.docclass1.protectedproperty.md) | protected | string | Some protected property. | | [readonlyProperty](./api-documenter-test.docclass1.readonlyproperty.md) | readonly | string | | | [regularProperty](./api-documenter-test.docclass1.regularproperty.md) | | [SystemEvent](./api-documenter-test.systemevent.md) | This is a regular property that happens to use the SystemEvent type. | diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.modifiedevent.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.modifiedevent.md index 5d20b88e0a2..6efebd1c5ef 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.modifiedevent.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.modifiedevent.md @@ -6,7 +6,7 @@ This event is fired whenever the object is modified. -Signature: +**Signature:** ```typescript readonly modifiedEvent: SystemEvent; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md index 852ce939e10..255329bedc9 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.multiplemodifiersproperty.md @@ -6,7 +6,7 @@ Some property with multiple modifiers. -Signature: +**Signature:** ```typescript protected static readonly multipleModifiersProperty: boolean; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.optionalparamfunction.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.optionalparamfunction.md index 136ea5f01d1..77c1a7b9978 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.optionalparamfunction.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.optionalparamfunction.md @@ -6,7 +6,7 @@ This is a function with an optional parameter. -Signature: +**Signature:** ```typescript optionalParamFunction(x?: number): void; @@ -16,9 +16,9 @@ optionalParamFunction(x?: number): void; | Parameter | Type | Description | | --- | --- | --- | -| x | number | (Optional) the number | +| x | number | _(Optional)_ the number | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md index 1520c48dc75..80faac05579 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.protectedproperty.md @@ -6,7 +6,7 @@ Some protected property. -Signature: +**Signature:** ```typescript protected protectedProperty: string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.readonlyproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.readonlyproperty.md index 44cb15a1324..df221991d88 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.readonlyproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.readonlyproperty.md @@ -4,7 +4,7 @@ ## DocClass1.readonlyProperty property -Signature: +**Signature:** ```typescript get readonlyProperty(): string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.regularproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.regularproperty.md index 3cf536db280..b08e0233e35 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.regularproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.regularproperty.md @@ -6,7 +6,7 @@ This is a regular property that happens to use the SystemEvent type. -Signature: +**Signature:** ```typescript regularProperty: SystemEvent; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.sumwithexample.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.sumwithexample.md index eccbbb642ec..5e8dd1a7d57 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.sumwithexample.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.sumwithexample.md @@ -6,7 +6,7 @@ Returns the sum of two numbers. -Signature: +**Signature:** ```typescript static sumWithExample(x: number, y: number): number; @@ -19,7 +19,7 @@ static sumWithExample(x: number, y: number): number; | x | number | the first number to add | | y | number | the second number to add | -Returns: +**Returns:** number diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.tableexample.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.tableexample.md index 994c0c00f8e..30e593b2370 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.tableexample.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.tableexample.md @@ -6,12 +6,12 @@ An example with tables: -Signature: +**Signature:** ```typescript tableExample(): void; ``` -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeableproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeableproperty.md index a5284923d0d..2a98f0b99af 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeableproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeableproperty.md @@ -4,7 +4,7 @@ ## DocClass1.writeableProperty property -Signature: +**Signature:** ```typescript get writeableProperty(): string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeonlyproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeonlyproperty.md index c67cc8b01dd..a8a3e2f3c1e 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeonlyproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclass1.writeonlyproperty.md @@ -6,7 +6,7 @@ API Extractor will surface an `ae-missing-getter` finding for this property. -Signature: +**Signature:** ```typescript set writeonlyProperty(value: string); diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclassinterfacemerge.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclassinterfacemerge.md index 50644c01913..09e8b18f838 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclassinterfacemerge.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docclassinterfacemerge.md @@ -6,7 +6,7 @@ Interface that merges with class -Signature: +**Signature:** ```typescript export interface DocClassInterfaceMerge diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md index 876add8c2a7..2cf74f71557 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenum.md @@ -7,7 +7,7 @@ Docs for DocEnum -Signature: +**Signature:** ```typescript export declare enum DocEnum diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.examplefunction.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.examplefunction.md index 96a3f8f8dbb..d3450d285d5 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.examplefunction.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.examplefunction.md @@ -6,12 +6,12 @@ This is a function inside of a namespace that merges with an enum. -Signature: +**Signature:** ```typescript function exampleFunction(): void; ``` -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.md index d67ae839e12..3d6ea812daf 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.docenumnamespacemerge.md @@ -6,7 +6,7 @@ Namespace that merges with enum -Signature: +**Signature:** ```typescript export declare namespace DocEnumNamespaceMerge diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.example.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.example.md index bc53b742377..03bffc31e62 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.example.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.example.md @@ -6,7 +6,7 @@ An ECMAScript symbol -Signature: +**Signature:** ```typescript example: unique symbol diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.md index 6dc78e8f8eb..223267ecb6a 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.ecmasmbols.md @@ -6,7 +6,7 @@ A namespace containing an ECMAScript symbol -Signature: +**Signature:** ```typescript export declare namespace EcmaSmbols diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleduplicatetypealias.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleduplicatetypealias.md index a9f6beec2a6..f20d492a8e4 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleduplicatetypealias.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleduplicatetypealias.md @@ -6,10 +6,10 @@ A type alias that has duplicate references. -Signature: +**Signature:** ```typescript export declare type ExampleDuplicateTypeAlias = SystemEvent | typeof SystemEvent; ``` -References: [SystemEvent](./api-documenter-test.systemevent.md) +**References:** [SystemEvent](./api-documenter-test.systemevent.md) diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.examplefunction.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.examplefunction.md index f86960f8be8..4c1163ab3ee 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.examplefunction.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.examplefunction.md @@ -6,7 +6,7 @@ An exported function with hyperlinked parameters and return value. -Signature: +**Signature:** ```typescript export declare function exampleFunction(x: ExampleTypeAlias, y: number): IDocInterface1; @@ -19,7 +19,7 @@ export declare function exampleFunction(x: ExampleTypeAlias, y: number): IDocInt | x | [ExampleTypeAlias](./api-documenter-test.exampletypealias.md) | an API item that should get hyperlinked | | y | number | a system type that should NOT get hyperlinked | -Returns: +**Returns:** [IDocInterface1](./api-documenter-test.idocinterface1.md) diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampletypealias.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampletypealias.md index 04ab2642d0d..11d67ba93c2 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampletypealias.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampletypealias.md @@ -6,7 +6,7 @@ A type alias -Signature: +**Signature:** ```typescript export declare type ExampleTypeAlias = Promise; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleuniontypealias.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleuniontypealias.md index 15ccb494423..f3caddca82e 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleuniontypealias.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.exampleuniontypealias.md @@ -6,10 +6,10 @@ A type alias that references multiple other types. -Signature: +**Signature:** ```typescript export declare type ExampleUnionTypeAlias = IDocInterface1 | IDocInterface3; ``` -References: [IDocInterface1](./api-documenter-test.idocinterface1.md), [IDocInterface3](./api-documenter-test.idocinterface3.md) +**References:** [IDocInterface1](./api-documenter-test.idocinterface1.md), [IDocInterface3](./api-documenter-test.idocinterface3.md) diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generic.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generic.md index 5c9289a7f71..78cadda1bb5 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generic.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generic.md @@ -6,7 +6,7 @@ Generic class. -Signature: +**Signature:** ```typescript export declare class Generic diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generictypealias.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generictypealias.md index d0ce5a0e31e..a0104e3cb3b 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generictypealias.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.generictypealias.md @@ -5,7 +5,7 @@ ## GenericTypeAlias type -Signature: +**Signature:** ```typescript export declare type GenericTypeAlias = T[]; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md index 6c820eb9c87..077ad95bb0a 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.md @@ -5,7 +5,7 @@ ## IDocInterface1 interface -Signature: +**Signature:** ```typescript export interface IDocInterface1 diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.regularproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.regularproperty.md index 759d9b9f192..0f6a2940db8 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.regularproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface1.regularproperty.md @@ -6,7 +6,7 @@ Does something -Signature: +**Signature:** ```typescript regularProperty: SystemEvent; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.deprecatedexample.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.deprecatedexample.md index 08812d228e5..e49ad4c922c 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.deprecatedexample.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.deprecatedexample.md @@ -9,12 +9,12 @@ > Use `otherThing()` instead. > -Signature: +**Signature:** ```typescript deprecatedExample(): void; ``` -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.md index c945f070c7d..56c63981e8e 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface2.md @@ -5,12 +5,12 @@ ## IDocInterface2 interface -Signature: +**Signature:** ```typescript export interface IDocInterface2 extends IDocInterface1 ``` -Extends: [IDocInterface1](./api-documenter-test.idocinterface1.md) +**Extends:** [IDocInterface1](./api-documenter-test.idocinterface1.md) ## Methods diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.__not.a.symbol__.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.__not.a.symbol__.md index 0f95405605b..b6911fc3191 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.__not.a.symbol__.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.__not.a.symbol__.md @@ -6,7 +6,7 @@ An identifier that does need quotes. It misleadingly looks like an ECMAScript symbol. -Signature: +**Signature:** ```typescript "[not.a.symbol]": string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._ecmasmbols.example_.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._ecmasmbols.example_.md index 756b8bf970e..40924a574db 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._ecmasmbols.example_.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._ecmasmbols.example_.md @@ -6,7 +6,7 @@ ECMAScript symbol -Signature: +**Signature:** ```typescript [EcmaSmbols.example]: string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._new_.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._new_.md index 991a58d3a75..8e5092862e7 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._new_.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3._new_.md @@ -6,12 +6,12 @@ Construct signature -Signature: +**Signature:** ```typescript new (): IDocInterface1; ``` -Returns: +**Returns:** [IDocInterface1](./api-documenter-test.idocinterface1.md) diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md index 0bff0e7ba91..94e789746c8 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.md @@ -7,7 +7,7 @@ Some less common TypeScript declaration kinds. -Signature: +**Signature:** ```typescript export interface IDocInterface3 diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.redundantquotes.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.redundantquotes.md index d777ba79b49..436d698afd1 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.redundantquotes.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface3.redundantquotes.md @@ -6,7 +6,7 @@ A quoted identifier with redundant quotes. -Signature: +**Signature:** ```typescript "redundantQuotes": string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.context.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.context.md index 325f354140b..9401520b9b0 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.context.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.context.md @@ -6,7 +6,7 @@ Test newline rendering when code blocks are used in tables -Signature: +**Signature:** ```typescript Context: ({ children }: { diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.generic.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.generic.md index 7391c2def0b..ea1eb271b11 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.generic.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.generic.md @@ -6,7 +6,7 @@ make sure html entities are escaped in tables. -Signature: +**Signature:** ```typescript generic: Generic; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md index c57e796aee0..94eaaf0b17a 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.md @@ -7,7 +7,7 @@ Type union in an interface. -Signature: +**Signature:** ```typescript export interface IDocInterface4 diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.numberorfunction.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.numberorfunction.md index e36e91fd338..50e32926ea2 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.numberorfunction.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.numberorfunction.md @@ -6,7 +6,7 @@ a union type with a function -Signature: +**Signature:** ```typescript numberOrFunction: number | (() => number); diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.stringornumber.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.stringornumber.md index 814dd1faeb7..cf2a3c0d630 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.stringornumber.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface4.stringornumber.md @@ -6,7 +6,7 @@ a union type -Signature: +**Signature:** ```typescript stringOrNumber: string | number; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md index 9053af2cfba..96de72c48b2 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.md @@ -6,7 +6,7 @@ Interface without inline tag to test custom TOC -Signature: +**Signature:** ```typescript export interface IDocInterface5 diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.regularproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.regularproperty.md index 903ec43e4df..0db8715b972 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.regularproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface5.regularproperty.md @@ -6,7 +6,7 @@ Property of type string that does something -Signature: +**Signature:** ```typescript regularProperty: string; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.arrayproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.arrayproperty.md index aee7a495e71..40dccacfec2 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.arrayproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.arrayproperty.md @@ -4,7 +4,7 @@ ## IDocInterface6.arrayProperty property -Signature: +**Signature:** ```typescript arrayProperty: IDocInterface1[]; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.genericreferencemethod.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.genericreferencemethod.md index 5aafced4331..f4b1091b493 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.genericreferencemethod.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.genericreferencemethod.md @@ -4,7 +4,7 @@ ## IDocInterface6.genericReferenceMethod() method -Signature: +**Signature:** ```typescript genericReferenceMethod(x: T): T; @@ -16,7 +16,7 @@ genericReferenceMethod(x: T): T; | --- | --- | --- | | x | T | | -Returns: +**Returns:** T diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.intersectionproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.intersectionproperty.md index ba405892095..0487eada5e2 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.intersectionproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.intersectionproperty.md @@ -4,7 +4,7 @@ ## IDocInterface6.intersectionProperty property -Signature: +**Signature:** ```typescript intersectionProperty: IDocInterface1 & IDocInterface2; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md index b9d96a22ed8..9a38896d932 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.md @@ -6,7 +6,7 @@ Interface without inline tag to test custom TOC with injection -Signature: +**Signature:** ```typescript export interface IDocInterface6 diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.regularproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.regularproperty.md index 2160d81ba49..ac13117a377 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.regularproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.regularproperty.md @@ -6,7 +6,7 @@ Property of type number that does something -Signature: +**Signature:** ```typescript regularProperty: number; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.tupleproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.tupleproperty.md index c1732ee3106..8f0627e8d6e 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.tupleproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.tupleproperty.md @@ -4,7 +4,7 @@ ## IDocInterface6.tupleProperty property -Signature: +**Signature:** ```typescript tupleProperty: [IDocInterface1, IDocInterface2]; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.typereferenceproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.typereferenceproperty.md index f6df24d6005..d265dc5b78b 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.typereferenceproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.typereferenceproperty.md @@ -4,7 +4,7 @@ ## IDocInterface6.typeReferenceProperty property -Signature: +**Signature:** ```typescript typeReferenceProperty: Generic; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.unionproperty.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.unionproperty.md index 35139d8a9b8..1e364da532b 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.unionproperty.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface6.unionproperty.md @@ -4,7 +4,7 @@ ## IDocInterface6.unionProperty property -Signature: +**Signature:** ```typescript unionProperty: IDocInterface1 | IDocInterface2; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md index 39f6bb81fea..fc66ce93d27 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.md @@ -6,7 +6,7 @@ Interface for testing optional properties -Signature: +**Signature:** ```typescript export interface IDocInterface7 @@ -16,13 +16,13 @@ export interface IDocInterface7 | Property | Modifiers | Type | Description | | --- | --- | --- | --- | -| [optionalField?](./api-documenter-test.idocinterface7.optionalfield.md) | | boolean | (Optional) Description of optionalField | -| [optionalReadonlyField?](./api-documenter-test.idocinterface7.optionalreadonlyfield.md) | readonly | boolean | (Optional) Description of optionalReadonlyField | -| [optionalUndocumentedField?](./api-documenter-test.idocinterface7.optionalundocumentedfield.md) | | boolean | (Optional) | +| [optionalField?](./api-documenter-test.idocinterface7.optionalfield.md) | | boolean | _(Optional)_ Description of optionalField | +| [optionalReadonlyField?](./api-documenter-test.idocinterface7.optionalreadonlyfield.md) | readonly | boolean | _(Optional)_ Description of optionalReadonlyField | +| [optionalUndocumentedField?](./api-documenter-test.idocinterface7.optionalundocumentedfield.md) | | boolean | _(Optional)_ | ## Methods | Method | Description | | --- | --- | -| [optionalMember()?](./api-documenter-test.idocinterface7.optionalmember.md) | (Optional) Description of optionalMember | +| [optionalMember()?](./api-documenter-test.idocinterface7.optionalmember.md) | _(Optional)_ Description of optionalMember | diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalfield.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalfield.md index 1e58ea4e884..d2644fbc653 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalfield.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalfield.md @@ -6,7 +6,7 @@ Description of optionalField -Signature: +**Signature:** ```typescript optionalField?: boolean; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalmember.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalmember.md index 8bc7031978d..90b672df149 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalmember.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalmember.md @@ -6,12 +6,12 @@ Description of optionalMember -Signature: +**Signature:** ```typescript optionalMember?(): any; ``` -Returns: +**Returns:** any diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalreadonlyfield.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalreadonlyfield.md index 8e5c77def61..5969b1df869 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalreadonlyfield.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalreadonlyfield.md @@ -6,7 +6,7 @@ Description of optionalReadonlyField -Signature: +**Signature:** ```typescript readonly optionalReadonlyField?: boolean; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalundocumentedfield.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalundocumentedfield.md index c56d73710ca..163348c2f72 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalundocumentedfield.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.idocinterface7.optionalundocumentedfield.md @@ -4,7 +4,7 @@ ## IDocInterface7.optionalUndocumentedField property -Signature: +**Signature:** ```typescript optionalUndocumentedField?: boolean; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md index 8ac3f68444c..ff7da3c5e33 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.md @@ -19,6 +19,12 @@ This project tests various documentation generation scenarios and doc comment sy | [Generic](./api-documenter-test.generic.md) | Generic class. | | [SystemEvent](./api-documenter-test.systemevent.md) |

A class used to exposed events.

| +## Abstract Classes + +| Abstract Class | Description | +| --- | --- | +| [AbstractClass](./api-documenter-test.abstractclass.md) | Some abstract class with abstract members. | + ## Enumerations | Enumeration | Description | diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.md index f0898e29ce6..f4494372d73 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.md @@ -6,7 +6,7 @@ A nested namespace -Signature: +**Signature:** ```typescript namespace InnerNamespace diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.nestedfunction.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.nestedfunction.md index 3ba952009e5..11eec09bc35 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.nestedfunction.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.innernamespace.nestedfunction.md @@ -6,7 +6,7 @@ A function inside a namespace -Signature: +**Signature:** ```typescript function nestedFunction(x: number): number; @@ -18,7 +18,7 @@ function nestedFunction(x: number): number; | --- | --- | --- | | x | number | | -Returns: +**Returns:** number diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.md index baa5e873882..70a81789486 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.md @@ -6,7 +6,7 @@ A top-level namespace -Signature: +**Signature:** ```typescript export declare namespace OuterNamespace diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.nestedvariable.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.nestedvariable.md index b0b93787cd4..b898150a9f5 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.nestedvariable.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.outernamespace.nestedvariable.md @@ -6,7 +6,7 @@ A variable exported from within a namespace. -Signature: +**Signature:** ```typescript nestedVariable: boolean diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.addhandler.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.addhandler.md index cafc021ee8e..ec269a54f4f 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.addhandler.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.addhandler.md @@ -6,7 +6,7 @@ Adds an handler for the event. -Signature: +**Signature:** ```typescript addHandler(handler: () => void): void; @@ -18,7 +18,7 @@ addHandler(handler: () => void): void; | --- | --- | --- | | handler | () => void | | -Returns: +**Returns:** void diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.md index 47baad77696..844fef6c164 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.systemevent.md @@ -7,7 +7,7 @@ A class used to exposed events. -Signature: +**Signature:** ```typescript export declare class SystemEvent diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.typealias.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.typealias.md index 5d36ebd5e69..8709cd788d4 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.typealias.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.typealias.md @@ -5,7 +5,7 @@ ## TypeAlias type -Signature: +**Signature:** ```typescript export declare type TypeAlias = number; diff --git a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.yamlreferenceuniquenesstest.md b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.yamlreferenceuniquenesstest.md index 1cf863cf3ff..8cd0c20f399 100644 --- a/build-tests/api-documenter-test/etc/markdown/api-documenter-test.yamlreferenceuniquenesstest.md +++ b/build-tests/api-documenter-test/etc/markdown/api-documenter-test.yamlreferenceuniquenesstest.md @@ -5,12 +5,12 @@ ## yamlReferenceUniquenessTest() function -Signature: +**Signature:** ```typescript export declare function yamlReferenceUniquenessTest(): IDocInterface1; ``` -Returns: +**Returns:** [IDocInterface1](./api-documenter-test.idocinterface1.md) diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml index 7576e5ade75..241ca97a87d 100644 --- a/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml +++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test.yml @@ -1,69 +1,70 @@ -### YamlMime:TSPackage -uid: api-documenter-test! -name: api-documenter-test -type: package -summary: |- - api-extractor-test-05 - - This project tests various documentation generation scenarios and doc comment syntaxes. -interfaces: - - 'api-documenter-test!Constraint:interface' - - 'api-documenter-test!DefaultType:interface' - - 'api-documenter-test!DocClassInterfaceMerge:interface' - - 'api-documenter-test!IDocInterface1:interface' - - 'api-documenter-test!IDocInterface2:interface' - - 'api-documenter-test!IDocInterface3:interface' - - 'api-documenter-test!IDocInterface4:interface' - - 'api-documenter-test!IDocInterface5:interface' - - 'api-documenter-test!IDocInterface6:interface' - - 'api-documenter-test!IDocInterface7:interface' -classes: - - 'api-documenter-test!DecoratorExample:class' - - 'api-documenter-test!DocBaseClass:class' - - 'api-documenter-test!DocClass1:class' - - 'api-documenter-test!DocClassInterfaceMerge:class' - - 'api-documenter-test!Generic:class' - - 'api-documenter-test!SystemEvent:class' -enums: - - 'api-documenter-test!DocEnum:enum' - - 'api-documenter-test!DocEnumNamespaceMerge:enum' -typeAliases: - - 'api-documenter-test!ExampleDuplicateTypeAlias:type' - - 'api-documenter-test!ExampleTypeAlias:type' - - 'api-documenter-test!ExampleUnionTypeAlias:type' - - 'api-documenter-test!GenericTypeAlias:type' - - 'api-documenter-test!TypeAlias:type' -functions: - - name: 'exampleFunction(x, y)' - uid: 'api-documenter-test!exampleFunction:function(1)' - package: api-documenter-test! - summary: An exported function with hyperlinked parameters and return value. - remarks: '' - example: [] - isPreview: false - isDeprecated: false - syntax: - content: 'export declare function exampleFunction(x: ExampleTypeAlias, y: number): IDocInterface1;' - parameters: - - id: x - description: an API item that should get hyperlinked - type: '' - - id: 'y' - description: a system type that should NOT get hyperlinked - type: number - return: - type: '' - description: an interface that should get hyperlinked - - name: yamlReferenceUniquenessTest() - uid: 'api-documenter-test!yamlReferenceUniquenessTest:function(1)' - package: api-documenter-test! - summary: '' - remarks: '' - example: [] - isPreview: false - isDeprecated: false - syntax: - content: 'export declare function yamlReferenceUniquenessTest(): IDocInterface1;' - return: - type: '' - description: '' +### YamlMime:TSPackage +uid: api-documenter-test! +name: api-documenter-test +type: package +summary: |- + api-extractor-test-05 + + This project tests various documentation generation scenarios and doc comment syntaxes. +classes: + - 'api-documenter-test!AbstractClass:class' + - 'api-documenter-test!DecoratorExample:class' + - 'api-documenter-test!DocBaseClass:class' + - 'api-documenter-test!DocClass1:class' + - 'api-documenter-test!DocClassInterfaceMerge:class' + - 'api-documenter-test!Generic:class' + - 'api-documenter-test!SystemEvent:class' +interfaces: + - 'api-documenter-test!Constraint:interface' + - 'api-documenter-test!DefaultType:interface' + - 'api-documenter-test!DocClassInterfaceMerge:interface' + - 'api-documenter-test!IDocInterface1:interface' + - 'api-documenter-test!IDocInterface2:interface' + - 'api-documenter-test!IDocInterface3:interface' + - 'api-documenter-test!IDocInterface4:interface' + - 'api-documenter-test!IDocInterface5:interface' + - 'api-documenter-test!IDocInterface6:interface' + - 'api-documenter-test!IDocInterface7:interface' +enums: + - 'api-documenter-test!DocEnum:enum' + - 'api-documenter-test!DocEnumNamespaceMerge:enum' +typeAliases: + - 'api-documenter-test!ExampleDuplicateTypeAlias:type' + - 'api-documenter-test!ExampleTypeAlias:type' + - 'api-documenter-test!ExampleUnionTypeAlias:type' + - 'api-documenter-test!GenericTypeAlias:type' + - 'api-documenter-test!TypeAlias:type' +functions: + - name: 'exampleFunction(x, y)' + uid: 'api-documenter-test!exampleFunction:function(1)' + package: api-documenter-test! + summary: An exported function with hyperlinked parameters and return value. + remarks: '' + example: [] + isPreview: false + isDeprecated: false + syntax: + content: 'export declare function exampleFunction(x: ExampleTypeAlias, y: number): IDocInterface1;' + parameters: + - id: x + description: an API item that should get hyperlinked + type: '' + - id: 'y' + description: a system type that should NOT get hyperlinked + type: number + return: + type: '' + description: an interface that should get hyperlinked + - name: yamlReferenceUniquenessTest() + uid: 'api-documenter-test!yamlReferenceUniquenessTest:function(1)' + package: api-documenter-test! + summary: '' + remarks: '' + example: [] + isPreview: false + isDeprecated: false + syntax: + content: 'export declare function yamlReferenceUniquenessTest(): IDocInterface1;' + return: + type: '' + description: '' diff --git a/build-tests/api-documenter-test/etc/yaml/api-documenter-test/abstractclass.yml b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/abstractclass.yml new file mode 100644 index 00000000000..7d215efa4f1 --- /dev/null +++ b/build-tests/api-documenter-test/etc/yaml/api-documenter-test/abstractclass.yml @@ -0,0 +1,40 @@ +### YamlMime:TSType +name: AbstractClass +uid: 'api-documenter-test!AbstractClass:class' +package: api-documenter-test! +fullName: AbstractClass +summary: Some abstract class with abstract members. +remarks: '' +example: [] +isPreview: false +isDeprecated: false +type: class +properties: + - name: property + uid: 'api-documenter-test!AbstractClass#property:member' + package: api-documenter-test! + fullName: property + summary: Some abstract property. + remarks: '' + example: [] + isPreview: false + isDeprecated: false + syntax: + content: 'protected abstract property: number;' + return: + type: number +methods: + - name: method() + uid: 'api-documenter-test!AbstractClass#method:member(1)' + package: api-documenter-test! + fullName: method() + summary: Some abstract method. + remarks: '' + example: [] + isPreview: false + isDeprecated: false + syntax: + content: 'abstract method(): void;' + return: + type: void + description: '' diff --git a/build-tests/api-documenter-test/etc/yaml/toc.yml b/build-tests/api-documenter-test/etc/yaml/toc.yml index caa0193215c..22523f8276b 100644 --- a/build-tests/api-documenter-test/etc/yaml/toc.yml +++ b/build-tests/api-documenter-test/etc/yaml/toc.yml @@ -1,79 +1,81 @@ -items: - - name: Test api-documenter - href: ~/homepage/homepage.md - - name: Test Sample for AD - href: api-documenter-test - extended: true - items: - - name: Classes - items: - - name: DocBaseClass - items: - - name: DocBaseClass - uid: 'api-documenter-test!DocBaseClass:class' - - name: IDocInterface1 - uid: 'api-documenter-test!IDocInterface1:interface' - - name: IDocInterface2 - uid: 'api-documenter-test!IDocInterface2:interface' - - name: DocClass1 - items: - - name: DocClass1 - uid: 'api-documenter-test!DocClass1:class' - - name: IDocInterface3 - uid: 'api-documenter-test!IDocInterface3:interface' - - name: IDocInterface4 - uid: 'api-documenter-test!IDocInterface4:interface' - - name: Interfaces - items: - - name: Interface5 - items: - - name: IDocInterface5 - uid: 'api-documenter-test!IDocInterface5:interface' - - name: Interface6 - items: - - name: InjectedCustomInterface - uid: customUid - - name: IDocInterface6 - uid: 'api-documenter-test!IDocInterface6:interface' - - name: References - items: - - name: InjectedCustomItem - uid: customUrl - - name: Constraint - uid: 'api-documenter-test!Constraint:interface' - - name: DecoratorExample - uid: 'api-documenter-test!DecoratorExample:class' - - name: DefaultType - uid: 'api-documenter-test!DefaultType:interface' - - name: DocClassInterfaceMerge (Class) - uid: 'api-documenter-test!DocClassInterfaceMerge:class' - - name: DocClassInterfaceMerge (Interface) - uid: 'api-documenter-test!DocClassInterfaceMerge:interface' - - name: DocEnum - uid: 'api-documenter-test!DocEnum:enum' - - name: DocEnumNamespaceMerge (Enum) - uid: 'api-documenter-test!DocEnumNamespaceMerge:enum' - - name: DocEnumNamespaceMerge (Namespace) - uid: 'api-documenter-test!DocEnumNamespaceMerge:namespace' - - name: EcmaSmbols - uid: 'api-documenter-test!EcmaSmbols:namespace' - - name: ExampleDuplicateTypeAlias - uid: 'api-documenter-test!ExampleDuplicateTypeAlias:type' - - name: ExampleTypeAlias - uid: 'api-documenter-test!ExampleTypeAlias:type' - - name: ExampleUnionTypeAlias - uid: 'api-documenter-test!ExampleUnionTypeAlias:type' - - name: Generic - uid: 'api-documenter-test!Generic:class' - - name: GenericTypeAlias - uid: 'api-documenter-test!GenericTypeAlias:type' - - name: IDocInterface7 - uid: 'api-documenter-test!IDocInterface7:interface' - - name: OuterNamespace - uid: 'api-documenter-test!OuterNamespace:namespace' - - name: OuterNamespace.InnerNamespace - uid: 'api-documenter-test!OuterNamespace.InnerNamespace:namespace' - - name: SystemEvent - uid: 'api-documenter-test!SystemEvent:class' - - name: TypeAlias - uid: 'api-documenter-test!TypeAlias:type' +items: + - name: Test api-documenter + href: ~/homepage/homepage.md + - name: Test Sample for AD + href: api-documenter-test + extended: true + items: + - name: Classes + items: + - name: DocBaseClass + items: + - name: DocBaseClass + uid: 'api-documenter-test!DocBaseClass:class' + - name: IDocInterface1 + uid: 'api-documenter-test!IDocInterface1:interface' + - name: IDocInterface2 + uid: 'api-documenter-test!IDocInterface2:interface' + - name: DocClass1 + items: + - name: DocClass1 + uid: 'api-documenter-test!DocClass1:class' + - name: IDocInterface3 + uid: 'api-documenter-test!IDocInterface3:interface' + - name: IDocInterface4 + uid: 'api-documenter-test!IDocInterface4:interface' + - name: Interfaces + items: + - name: Interface5 + items: + - name: IDocInterface5 + uid: 'api-documenter-test!IDocInterface5:interface' + - name: Interface6 + items: + - name: InjectedCustomInterface + uid: customUid + - name: IDocInterface6 + uid: 'api-documenter-test!IDocInterface6:interface' + - name: References + items: + - name: InjectedCustomItem + uid: customUrl + - name: AbstractClass + uid: 'api-documenter-test!AbstractClass:class' + - name: Constraint + uid: 'api-documenter-test!Constraint:interface' + - name: DecoratorExample + uid: 'api-documenter-test!DecoratorExample:class' + - name: DefaultType + uid: 'api-documenter-test!DefaultType:interface' + - name: DocClassInterfaceMerge (Class) + uid: 'api-documenter-test!DocClassInterfaceMerge:class' + - name: DocClassInterfaceMerge (Interface) + uid: 'api-documenter-test!DocClassInterfaceMerge:interface' + - name: DocEnum + uid: 'api-documenter-test!DocEnum:enum' + - name: DocEnumNamespaceMerge (Enum) + uid: 'api-documenter-test!DocEnumNamespaceMerge:enum' + - name: DocEnumNamespaceMerge (Namespace) + uid: 'api-documenter-test!DocEnumNamespaceMerge:namespace' + - name: EcmaSmbols + uid: 'api-documenter-test!EcmaSmbols:namespace' + - name: ExampleDuplicateTypeAlias + uid: 'api-documenter-test!ExampleDuplicateTypeAlias:type' + - name: ExampleTypeAlias + uid: 'api-documenter-test!ExampleTypeAlias:type' + - name: ExampleUnionTypeAlias + uid: 'api-documenter-test!ExampleUnionTypeAlias:type' + - name: Generic + uid: 'api-documenter-test!Generic:class' + - name: GenericTypeAlias + uid: 'api-documenter-test!GenericTypeAlias:type' + - name: IDocInterface7 + uid: 'api-documenter-test!IDocInterface7:interface' + - name: OuterNamespace + uid: 'api-documenter-test!OuterNamespace:namespace' + - name: OuterNamespace.InnerNamespace + uid: 'api-documenter-test!OuterNamespace.InnerNamespace:namespace' + - name: SystemEvent + uid: 'api-documenter-test!SystemEvent:class' + - name: TypeAlias + uid: 'api-documenter-test!TypeAlias:type' diff --git a/build-tests/api-documenter-test/package.json b/build-tests/api-documenter-test/package.json index c9638bdcce9..b77077e2810 100644 --- a/build-tests/api-documenter-test/package.json +++ b/build-tests/api-documenter-test/package.json @@ -13,7 +13,7 @@ "@microsoft/api-documenter": "workspace:*", "@microsoft/api-extractor": "workspace:*", "@types/jest": "29.2.5", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/build-tests/api-documenter-test/src/AbstractClass.ts b/build-tests/api-documenter-test/src/AbstractClass.ts new file mode 100644 index 00000000000..bfb5f3d4dd9 --- /dev/null +++ b/build-tests/api-documenter-test/src/AbstractClass.ts @@ -0,0 +1,10 @@ +/** + * Some abstract class with abstract members. + * @public + */ +export abstract class AbstractClass { + /** Some abstract method. */ + public abstract method(): void; + /** Some abstract property. */ + protected abstract property: number; +} diff --git a/build-tests/api-documenter-test/src/index.ts b/build-tests/api-documenter-test/src/index.ts index b073763ebd6..bc08d496e2b 100644 --- a/build-tests/api-documenter-test/src/index.ts +++ b/build-tests/api-documenter-test/src/index.ts @@ -16,6 +16,8 @@ import { IDocInterface1, IDocInterface3, SystemEvent } from './DocClass1'; export { DecoratorExample } from './DecoratorExample'; +export { AbstractClass } from './AbstractClass'; + /** * A type alias * @public diff --git a/build-tests/api-extractor-lib2-test/package.json b/build-tests/api-extractor-lib2-test/package.json index 2ff63ff313a..49b2649b4a1 100644 --- a/build-tests/api-extractor-lib2-test/package.json +++ b/build-tests/api-extractor-lib2-test/package.json @@ -12,7 +12,7 @@ "devDependencies": { "@microsoft/api-extractor": "workspace:*", "@types/jest": "29.2.5", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/build-tests/api-extractor-lib3-test/package.json b/build-tests/api-extractor-lib3-test/package.json index 58458a62241..6733e6665ff 100644 --- a/build-tests/api-extractor-lib3-test/package.json +++ b/build-tests/api-extractor-lib3-test/package.json @@ -15,7 +15,7 @@ "devDependencies": { "@microsoft/api-extractor": "workspace:*", "@types/jest": "29.2.5", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.json index c8044d1642a..0697715d9d5 100644 --- a/build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/ambientNameConflict/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.json index 77950db61e4..d0e3d0c7980 100644 --- a/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/ambientNameConflict2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/ambientNameConflict2/Date.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Date_2", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.json index d9696cbc143..8eda7baa8a6 100644 --- a/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/ancillaryDeclarations/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/ancillaryDeclarations/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "MyClass", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.json index fc90acb0488..5399ba5ef08 100644 --- a/build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/apiItemKinds/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/apiItemKinds/classes.ts", "releaseTag": "Public", + "isAbstract": true, "name": "AbstractClass", "preserveMemberOrder": false, "members": [ @@ -215,6 +216,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": true, "name": "member" } ], @@ -245,6 +247,7 @@ } } ], + "isAbstract": false, "name": "ClassWithTypeParameter", "preserveMemberOrder": false, "members": [], @@ -387,6 +390,7 @@ ], "fileUrlPath": "src/apiItemKinds/classes.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExtendsClassWithTypeParameter", "preserveMemberOrder": false, "members": [], @@ -481,6 +485,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass3", "preserveMemberOrder": false, "members": [], @@ -499,6 +504,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass1", "preserveMemberOrder": false, "members": [], @@ -524,6 +530,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass2", "preserveMemberOrder": false, "members": [], @@ -544,6 +551,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass4", "preserveMemberOrder": false, "members": [], @@ -666,6 +674,7 @@ ], "fileUrlPath": "src/apiItemKinds/classes.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SimpleClass", "preserveMemberOrder": false, "members": [ @@ -697,6 +706,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "member" }, { @@ -744,6 +754,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "optionalParamMethod" }, { @@ -773,7 +784,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -806,7 +818,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -835,7 +848,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -864,7 +878,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.json index ac9f026cc68..5146f92aab4 100644 --- a/build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/bundledPackages/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -256,6 +256,7 @@ ], "fileUrlPath": "../api-extractor-lib1-test/lib/index.d.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Lib1Class", "preserveMemberOrder": false, "members": [ @@ -286,7 +287,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -315,7 +317,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "extendsTokenRange": { diff --git a/build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.json index c066834eab2..d4f99324946 100644 --- a/build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/circularImport/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/circularImport/IFile.ts", "releaseTag": "Public", + "isAbstract": false, "name": "IFile", "preserveMemberOrder": false, "members": [ @@ -215,7 +216,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -232,6 +234,7 @@ ], "fileUrlPath": "src/circularImport/IFolder.ts", "releaseTag": "Public", + "isAbstract": false, "name": "IFolder", "preserveMemberOrder": false, "members": [ @@ -267,7 +270,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -301,7 +305,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.json index e69899c3c84..2af5ea9bb31 100644 --- a/build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/circularImport2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/circularImport2/IFile.ts", "releaseTag": "Public", + "isAbstract": false, "name": "A", "preserveMemberOrder": false, "members": [], @@ -201,6 +202,7 @@ ], "fileUrlPath": "src/circularImport2/IFolder.ts", "releaseTag": "Public", + "isAbstract": false, "name": "B", "preserveMemberOrder": false, "members": [], @@ -218,6 +220,7 @@ ], "fileUrlPath": "src/circularImport2/IFile.ts", "releaseTag": "Public", + "isAbstract": false, "name": "IFile", "preserveMemberOrder": false, "members": [ @@ -249,7 +252,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -266,6 +270,7 @@ ], "fileUrlPath": "src/circularImport2/IFolder.ts", "releaseTag": "Public", + "isAbstract": false, "name": "IFolder", "preserveMemberOrder": false, "members": [ @@ -301,7 +306,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -335,7 +341,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.json index e1af289b6e4..ddc7e3f6556 100644 --- a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/defaultExportOfEntryPoint/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "DefaultClass", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json index 0a539f8cec6..d5b2da9ff7c 100644 --- a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json index c3534ce9d89..35ffd2ab980 100644 --- a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint3/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json index f15c13d7f97..5cdb5ae7e93 100644 --- a/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/defaultExportOfEntryPoint4/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.json index 3685a987247..fa4fdb7faba 100644 --- a/build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/docReferences/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -254,6 +254,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "MyClass", "preserveMemberOrder": false, "members": [ @@ -302,6 +303,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "myMethod" } ], diff --git a/build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.json index 08f70f31493..89801701c03 100644 --- a/build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/docReferences2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/docReferences2/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "CyclicA", "preserveMemberOrder": false, "members": [ @@ -215,6 +216,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "methodA1" }, { @@ -245,6 +247,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "methodA3" } ], @@ -262,6 +265,7 @@ ], "fileUrlPath": "src/docReferences2/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "CyclicB", "preserveMemberOrder": false, "members": [ @@ -293,6 +297,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "methodB2" }, { @@ -323,6 +328,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "methodB4" } ], @@ -340,6 +346,7 @@ ], "fileUrlPath": "src/docReferences2/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "FailWithSelfReference", "preserveMemberOrder": false, "members": [ @@ -371,6 +378,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "method1" }, { @@ -401,6 +409,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "method2" } ], diff --git a/build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.json index b771e870d0b..f6bdf6840ed 100644 --- a/build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/docReferences3/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -243,6 +243,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "B", "preserveMemberOrder": false, "members": [ @@ -274,6 +275,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "myMethod" } ], diff --git a/build-tests/api-extractor-scenarios/etc/docReferencesAlias/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferencesAlias/api-extractor-scenarios.api.json index 2458021cd93..0e10f085184 100644 --- a/build-tests/api-extractor-scenarios/etc/docReferencesAlias/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/docReferencesAlias/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/docReferencesAlias/Item.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Item", "preserveMemberOrder": false, "members": [ @@ -215,7 +216,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/docReferencesNamespaceAlias/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/docReferencesNamespaceAlias/api-extractor-scenarios.api.json index 5894c137d3c..4bf60a5d307 100644 --- a/build-tests/api-extractor-scenarios/etc/docReferencesNamespaceAlias/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/docReferencesNamespaceAlias/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/docReferencesNamespaceAlias/Item.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Item", "preserveMemberOrder": false, "members": [ @@ -215,7 +216,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.json index 16b97c10225..3a7783606e3 100644 --- a/build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/dynamicImportType/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/dynamicImportType/Item.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Item", "preserveMemberOrder": false, "members": [ @@ -219,7 +220,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -253,7 +255,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -287,7 +290,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -321,7 +325,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -355,7 +360,8 @@ "endIndex": 3 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.json index 0648ab651e8..b7a2b150998 100644 --- a/build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/dynamicImportType2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.json index 67334643b3d..45d2df5805b 100644 --- a/build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/dynamicImportType3/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.json index 056a1047659..623949f6883 100644 --- a/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/ecmaScriptPrivateFields/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/ecmaScriptPrivateFields/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Example", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.json index 999d0461953..e5c18346cba 100644 --- a/build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/enumSorting/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.json index 47fed0c6158..a79d24c516d 100644 --- a/build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/excerptTokens/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -207,6 +207,7 @@ ], "fileUrlPath": "lib/excerptTokens/index.d.ts", "releaseTag": "Public", + "isAbstract": false, "name": "MyClass", "preserveMemberOrder": false, "members": [ @@ -271,6 +272,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "someMethod" } ], diff --git a/build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.json index 8567113e0c8..f4ca40c849b 100644 --- a/build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportDuplicate/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/exportDuplicate/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "X", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.json index 197bc9cff8f..14e0e241335 100644 --- a/build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportEquals/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.json index 88dcd4cf162..65254a86a60 100644 --- a/build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportImportStarAs/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.json index 404939b565c..569dc468334 100644 --- a/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportImportStarAs2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.json index 79a07fd02a9..895ed82382e 100644 --- a/build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportImportedExternal/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.json index 79a07fd02a9..895ed82382e 100644 --- a/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportImportedExternal2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.json index f7186788b87..e38f2eb3fbc 100644 --- a/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportImportedExternalDefault/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -193,6 +193,7 @@ ], "fileUrlPath": "src/exportImportedExternalDefault/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Child", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.json index da05a4047b6..034087c4404 100644 --- a/build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportStar/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/exportStar/localFile.ts", "releaseTag": "Public", + "isAbstract": false, "name": "A", "preserveMemberOrder": false, "members": [], @@ -201,6 +202,7 @@ ], "fileUrlPath": "src/exportStar/localFile.ts", "releaseTag": "Public", + "isAbstract": false, "name": "B", "preserveMemberOrder": false, "members": [], @@ -218,6 +220,7 @@ ], "fileUrlPath": "src/exportStar/reexportStar.ts", "releaseTag": "Public", + "isAbstract": false, "name": "C", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.json index 47c585901bf..89196c9883e 100644 --- a/build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportStar2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/exportStar2/reexportStar.ts", "releaseTag": "Public", + "isAbstract": false, "name": "A", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.json index ff7d4e2f64b..978e79dd798 100644 --- a/build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/exportStar3/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/exportStar3/reexportStar.ts", "releaseTag": "Public", + "isAbstract": false, "name": "A", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.json index 2b2a34ef841..77963078446 100644 --- a/build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/functionOverload/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -367,6 +367,7 @@ ], "fileUrlPath": "src/functionOverload/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "Combiner", "preserveMemberOrder": false, "members": [ @@ -431,6 +432,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "combine" }, { @@ -494,6 +496,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "combine" } ], diff --git a/build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.json index ba8e99605cf..99e2120fe4f 100644 --- a/build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/importEquals/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.json index f81b7a3945a..9b7a0ba9812 100644 --- a/build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/importType/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/includeForgottenExports/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/includeForgottenExports/api-extractor-scenarios.api.json index 8f0ad52afc7..edf03124928 100644 --- a/build-tests/api-extractor-scenarios/etc/includeForgottenExports/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/includeForgottenExports/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/includeForgottenExports/internal1.ts", "releaseTag": "Public", + "isAbstract": false, "name": "AnotherDuplicateName_2", "preserveMemberOrder": false, "members": [], @@ -201,6 +202,7 @@ ], "fileUrlPath": "src/includeForgottenExports/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "AnotherDuplicateName", "preserveMemberOrder": false, "members": [], @@ -270,6 +272,7 @@ ], "fileUrlPath": "src/includeForgottenExports/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ForgottenExport1", "preserveMemberOrder": false, "members": [ @@ -316,7 +319,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -373,6 +377,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "ForgottenExport5", "preserveMemberOrder": false, "members": [], @@ -392,6 +397,7 @@ ], "fileUrlPath": "src/includeForgottenExports/internal2.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ForgottenExport6", "preserveMemberOrder": false, "members": [], @@ -419,6 +425,7 @@ ], "fileUrlPath": "src/includeForgottenExports/internal2.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ForgottenExport6", "preserveMemberOrder": false, "members": [], @@ -626,6 +633,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "ForgottenExport3", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.json index b7121a25fcc..fd70ca6eb1a 100644 --- a/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/inconsistentReleaseTags/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.json index fad06db7d01..5c99dc8cdb7 100644 --- a/build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/internationalCharacters/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/internationalCharacters/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ClassΞ", "preserveMemberOrder": false, "members": [ @@ -237,6 +238,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "\"invalid chars\"" }, { @@ -285,6 +287,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "memberΔ" }, { @@ -315,6 +318,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "validChars" } ], diff --git a/build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.json index 3696de8448b..41bf7a4b7cd 100644 --- a/build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/mergedDeclarations/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/mergedDeclarations/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "MergedClassAndInterface", "preserveMemberOrder": false, "members": [ @@ -214,7 +215,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -321,6 +323,7 @@ ], "fileUrlPath": "src/mergedDeclarations/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "MergedClassAndNamespace", "preserveMemberOrder": false, "members": [ @@ -351,7 +354,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -466,6 +470,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "AnotherClass", "preserveMemberOrder": false, "members": [], @@ -482,6 +487,7 @@ } ], "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.json index af3306cd6bd..133cb558f57 100644 --- a/build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/mixinPattern/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/mixinPattern/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "A", "preserveMemberOrder": false, "members": [ @@ -214,7 +215,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -240,6 +242,7 @@ ], "fileUrlPath": "src/mixinPattern/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "B", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.json index 3e06f53760f..e4a6ab82c27 100644 --- a/build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/namedDefaultImport/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/namespaceImports/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/namespaceImports/api-extractor-scenarios.api.json index f76f6cb6dfb..7c915e7984a 100644 --- a/build-tests/api-extractor-scenarios/etc/namespaceImports/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/namespaceImports/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -204,6 +204,7 @@ ], "fileUrlPath": "src/namespaceImports/internal.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass", "preserveMemberOrder": false, "members": [], @@ -245,6 +246,7 @@ ], "fileUrlPath": "src/namespaceImports/internal.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/namespaceImports2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/namespaceImports2/api-extractor-scenarios.api.json index 20690065896..f40d2e64608 100644 --- a/build-tests/api-extractor-scenarios/etc/namespaceImports2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/namespaceImports2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -194,6 +194,7 @@ ], "fileUrlPath": "src/namespaceImports2/internal.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass", "preserveMemberOrder": false, "members": [], @@ -213,6 +214,7 @@ ], "fileUrlPath": "src/namespaceImports2/internal.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.json index 79a07fd02a9..895ed82382e 100644 --- a/build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/preapproved/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/projectFolderUrl/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/projectFolderUrl/api-extractor-scenarios.api.json index 5b3c8034a81..bb32a39af82 100644 --- a/build-tests/api-extractor-scenarios/etc/projectFolderUrl/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/projectFolderUrl/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -185,6 +185,7 @@ ], "fileUrlPath": "src/projectFolderUrl/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "MyClass", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.json index 6713f00ea9c..c0ed696410b 100644 --- a/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/readonlyDeclarations/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/readonlyDeclarations/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "MyClass", "preserveMemberOrder": false, "members": [ @@ -214,7 +215,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -243,7 +245,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Property", @@ -272,7 +275,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -319,7 +323,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "IndexSignature", @@ -419,7 +424,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "extendsTokenRanges": [] diff --git a/build-tests/api-extractor-scenarios/etc/referenceTokens/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/referenceTokens/api-extractor-scenarios.api.json index 0dcb5a2db2b..3840c1933fe 100644 --- a/build-tests/api-extractor-scenarios/etc/referenceTokens/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/referenceTokens/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -392,6 +392,7 @@ ], "fileUrlPath": "src/referenceTokens/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass1", "preserveMemberOrder": false, "members": [ @@ -422,7 +423,8 @@ "endIndex": 2 }, "isStatic": true, - "isProtected": false + "isProtected": false, + "isAbstract": false } ], "implementsTokenRanges": [] @@ -448,6 +450,7 @@ ], "fileUrlPath": "src/referenceTokens/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass3", "preserveMemberOrder": false, "members": [], @@ -478,6 +481,7 @@ ], "fileUrlPath": "src/referenceTokens/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "SomeClass4", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.json index 834650f57c0..5315cb39238 100644 --- a/build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/spanSorting/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/spanSorting/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExampleA", "preserveMemberOrder": false, "members": [ @@ -214,7 +215,8 @@ "endIndex": 2 }, "isStatic": false, - "isProtected": false + "isProtected": false, + "isAbstract": false }, { "kind": "Method", @@ -249,6 +251,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "member2" } ], @@ -266,6 +269,7 @@ ], "fileUrlPath": "src/spanSorting/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExampleB", "preserveMemberOrder": false, "members": [ @@ -314,6 +318,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "tryLoadFromFile" } ], @@ -331,6 +336,7 @@ ], "fileUrlPath": "src/spanSorting/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ExampleC", "preserveMemberOrder": false, "members": [ @@ -362,6 +368,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "member1" } ], diff --git a/build-tests/api-extractor-scenarios/etc/typeLiterals/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeLiterals/api-extractor-scenarios.api.json index d9deb8a7920..9e76ccb3d77 100644 --- a/build-tests/api-extractor-scenarios/etc/typeLiterals/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/typeLiterals/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/typeLiterals/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ClassWithTypeLiterals", "preserveMemberOrder": false, "members": [ @@ -232,6 +233,7 @@ } ], "isOptional": false, + "isAbstract": false, "name": "method1" }, { @@ -271,6 +273,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "method2" } ], diff --git a/build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.json index c37e28a4708..52ea964fd3c 100644 --- a/build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/typeOf/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.json index da1afcf027c..bd0a1edd8c6 100644 --- a/build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/typeOf2/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.json index ac5372d4cc6..36f784c17cc 100644 --- a/build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/typeOf3/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", diff --git a/build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.json index d5ac3f5cc14..c50dc7eb1bb 100644 --- a/build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.json +++ b/build-tests/api-extractor-scenarios/etc/typeParameters/api-extractor-scenarios.api.json @@ -2,7 +2,7 @@ "metadata": { "toolPackage": "@microsoft/api-extractor", "toolVersion": "[test mode]", - "schemaVersion": 1010, + "schemaVersion": 1011, "oldestForwardsCompatibleVersion": 1001, "tsdocConfig": { "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", @@ -184,6 +184,7 @@ ], "fileUrlPath": "src/typeParameters/index.ts", "releaseTag": "Public", + "isAbstract": false, "name": "ClassWithGenericMethod", "preserveMemberOrder": false, "members": [ @@ -228,6 +229,7 @@ "overloadIndex": 1, "parameters": [], "isOptional": false, + "isAbstract": false, "name": "method" } ], @@ -258,6 +260,7 @@ } } ], + "isAbstract": false, "name": "GenericClass", "preserveMemberOrder": false, "members": [], @@ -296,6 +299,7 @@ } } ], + "isAbstract": false, "name": "GenericClassWithConstraint", "preserveMemberOrder": false, "members": [], @@ -334,6 +338,7 @@ } } ], + "isAbstract": false, "name": "GenericClassWithDefault", "preserveMemberOrder": false, "members": [], diff --git a/build-tests/api-extractor-scenarios/package.json b/build-tests/api-extractor-scenarios/package.json index 6140a0d3cce..50977b17c1d 100644 --- a/build-tests/api-extractor-scenarios/package.json +++ b/build-tests/api-extractor-scenarios/package.json @@ -14,7 +14,7 @@ "@microsoft/teams-js": "1.3.0-beta.4", "@rushstack/node-core-library": "workspace:*", "@types/jest": "29.2.5", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "api-extractor-lib1-test": "workspace:*", "api-extractor-lib2-test": "workspace:*", "api-extractor-lib3-test": "workspace:*", diff --git a/build-tests/api-extractor-test-01/package.json b/build-tests/api-extractor-test-01/package.json index d992bca8529..f85f53dbf3b 100644 --- a/build-tests/api-extractor-test-01/package.json +++ b/build-tests/api-extractor-test-01/package.json @@ -17,7 +17,7 @@ "devDependencies": { "@microsoft/api-extractor": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/build-tests/api-extractor-test-02/package.json b/build-tests/api-extractor-test-02/package.json index 13a1fe60cec..3492bf6eca8 100644 --- a/build-tests/api-extractor-test-02/package.json +++ b/build-tests/api-extractor-test-02/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@microsoft/api-extractor": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/build-tests/api-extractor-test-03/package.json b/build-tests/api-extractor-test-03/package.json index 534a8b3bed5..e5f140a31c3 100644 --- a/build-tests/api-extractor-test-03/package.json +++ b/build-tests/api-extractor-test-03/package.json @@ -9,7 +9,7 @@ }, "devDependencies": { "@types/jest": "29.2.5", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "api-extractor-test-02": "workspace:*", "fs-extra": "~7.0.1", "typescript": "~4.8.4" diff --git a/build-tests/eslint-7-test/package.json b/build-tests/eslint-7-test/package.json index 0f72aeeb451..e3bf415c972 100644 --- a/build-tests/eslint-7-test/package.json +++ b/build-tests/eslint-7-test/package.json @@ -13,7 +13,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@typescript-eslint/parser": "~5.38.0", "eslint": "~7.30.0", "typescript": "~4.8.4" diff --git a/build-tests/hashed-folder-copy-plugin-webpack4-test/package.json b/build-tests/hashed-folder-copy-plugin-webpack4-test/package.json index b419e4e9b7a..57bb1b80a3b 100644 --- a/build-tests/hashed-folder-copy-plugin-webpack4-test/package.json +++ b/build-tests/hashed-folder-copy-plugin-webpack4-test/package.json @@ -16,7 +16,7 @@ "@rushstack/heft-webpack4-plugin": "workspace:*", "@rushstack/webpack4-module-minifier-plugin": "workspace:*", "@rushstack/set-webpack-public-path-plugin": "workspace:*", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "html-webpack-plugin": "~4.5.2", "typescript": "~4.8.4", "webpack-bundle-analyzer": "~4.5.0", diff --git a/build-tests/hashed-folder-copy-plugin-webpack4-test/webpack.config.js b/build-tests/hashed-folder-copy-plugin-webpack4-test/webpack.config.js index 816709ec7e0..c11507c5a9d 100644 --- a/build-tests/hashed-folder-copy-plugin-webpack4-test/webpack.config.js +++ b/build-tests/hashed-folder-copy-plugin-webpack4-test/webpack.config.js @@ -18,7 +18,8 @@ function generateConfiguration(mode, outputFolderName) { output: { path: path.join(__dirname, outputFolderName), filename: '[name]_[contenthash].js', - chunkFilename: '[id].[name]_[contenthash].js' + chunkFilename: '[id].[name]_[contenthash].js', + hashSalt: '2' }, optimization: { minimizer: [ diff --git a/build-tests/hashed-folder-copy-plugin-webpack5-test/package.json b/build-tests/hashed-folder-copy-plugin-webpack5-test/package.json index 7083f1d718d..0023567f013 100644 --- a/build-tests/hashed-folder-copy-plugin-webpack5-test/package.json +++ b/build-tests/hashed-folder-copy-plugin-webpack5-test/package.json @@ -14,10 +14,10 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@rushstack/heft-webpack5-plugin": "workspace:*", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "html-webpack-plugin": "~4.5.2", "typescript": "~4.8.4", "webpack-bundle-analyzer": "~4.5.0", - "webpack": "~5.68.0" + "webpack": "~5.75.0" } } diff --git a/build-tests/heft-example-plugin-01/package.json b/build-tests/heft-example-plugin-01/package.json index 00f976994b0..e4d31d715ab 100644 --- a/build-tests/heft-example-plugin-01/package.json +++ b/build-tests/heft-example-plugin-01/package.json @@ -18,7 +18,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/tapable": "1.0.6", "eslint": "~8.7.0", "typescript": "~4.8.4" diff --git a/build-tests/heft-example-plugin-02/package.json b/build-tests/heft-example-plugin-02/package.json index 870e20ddd43..e7c593cbe28 100644 --- a/build-tests/heft-example-plugin-02/package.json +++ b/build-tests/heft-example-plugin-02/package.json @@ -23,7 +23,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "heft-example-plugin-01": "workspace:*", "typescript": "~4.8.4" diff --git a/build-tests/heft-fastify-test/package.json b/build-tests/heft-fastify-test/package.json index c97f5a0afcd..463b80c79ef 100644 --- a/build-tests/heft-fastify-test/package.json +++ b/build-tests/heft-fastify-test/package.json @@ -17,7 +17,7 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "typescript": "~4.8.4" }, diff --git a/build-tests/heft-minimal-rig-usage-test/package.json b/build-tests/heft-minimal-rig-usage-test/package.json index 1ec04efe666..2fd2b93d170 100644 --- a/build-tests/heft-minimal-rig-usage-test/package.json +++ b/build-tests/heft-minimal-rig-usage-test/package.json @@ -13,7 +13,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "heft-minimal-rig-test": "workspace:*" } } diff --git a/build-tests/heft-node-everything-esm-module-test/package.json b/build-tests/heft-node-everything-esm-module-test/package.json index 7ffbfddf15e..cddcc84ad35 100644 --- a/build-tests/heft-node-everything-esm-module-test/package.json +++ b/build-tests/heft-node-everything-esm-module-test/package.json @@ -20,7 +20,7 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "heft-example-plugin-01": "workspace:*", "heft-example-plugin-02": "workspace:*", diff --git a/build-tests/heft-node-everything-test/package.json b/build-tests/heft-node-everything-test/package.json index 7e7ba5e4803..93f797c4e8a 100644 --- a/build-tests/heft-node-everything-test/package.json +++ b/build-tests/heft-node-everything-test/package.json @@ -19,7 +19,7 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "heft-example-plugin-01": "workspace:*", "heft-example-plugin-02": "workspace:*", diff --git a/build-tests/heft-parameter-plugin/package.json b/build-tests/heft-parameter-plugin/package.json index 02f48a182a6..8bb8bfe69f6 100644 --- a/build-tests/heft-parameter-plugin/package.json +++ b/build-tests/heft-parameter-plugin/package.json @@ -14,7 +14,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "typescript": "~4.8.4" }, diff --git a/build-tests/heft-sass-test/package.json b/build-tests/heft-sass-test/package.json index 342e4bfeaa6..8088500f57e 100644 --- a/build-tests/heft-sass-test/package.json +++ b/build-tests/heft-sass-test/package.json @@ -20,7 +20,7 @@ "@types/heft-jest": "1.0.1", "@types/react-dom": "16.9.14", "@types/react": "16.14.23", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "autoprefixer": "~10.4.2", "css-loader": "~5.2.7", "eslint": "~8.7.0", diff --git a/build-tests/heft-sass-test/webpack.config.js b/build-tests/heft-sass-test/webpack.config.js index a718d8e7c6a..be235dfd775 100644 --- a/build-tests/heft-sass-test/webpack.config.js +++ b/build-tests/heft-sass-test/webpack.config.js @@ -18,7 +18,7 @@ function createWebpackConfig({ production }) { module: { rules: [ { - test: /\.css$/, + test: /\.s?css$/, exclude: /node_modules/, use: [ // Creates `style` nodes from JS strings diff --git a/build-tests/heft-typescript-composite-test/package.json b/build-tests/heft-typescript-composite-test/package.json index dfd48fe63e1..e9cb2870d2f 100644 --- a/build-tests/heft-typescript-composite-test/package.json +++ b/build-tests/heft-typescript-composite-test/package.json @@ -16,8 +16,8 @@ "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/webpack-env": "1.13.0", "@types/jest": "29.2.5", + "@types/webpack-env": "1.18.0", "eslint": "~8.7.0", "tslint": "~5.20.1", "tslint-microsoft-contrib": "~6.2.0", diff --git a/build-tests/heft-webpack4-everything-test/package.json b/build-tests/heft-webpack4-everything-test/package.json index e87c41c4e53..4edb9b07111 100644 --- a/build-tests/heft-webpack4-everything-test/package.json +++ b/build-tests/heft-webpack4-everything-test/package.json @@ -18,7 +18,7 @@ "@rushstack/heft-typescript-plugin": "workspace:*", "@rushstack/heft-webpack4-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "eslint": "~8.7.0", "file-loader": "~6.0.0", "tslint": "~5.20.1", diff --git a/build-tests/heft-webpack5-everything-test/package.json b/build-tests/heft-webpack5-everything-test/package.json index 7a446a5ec91..85f7828ba4f 100644 --- a/build-tests/heft-webpack5-everything-test/package.json +++ b/build-tests/heft-webpack5-everything-test/package.json @@ -20,12 +20,12 @@ "@rushstack/module-minifier": "workspace:*", "@rushstack/webpack5-module-minifier-plugin": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "eslint": "~8.7.0", "html-webpack-plugin": "~5.5.0", "tslint": "~5.20.1", "tslint-microsoft-contrib": "~6.2.0", "typescript": "~4.8.4", - "webpack": "~5.68.0" + "webpack": "~5.75.0" } } diff --git a/build-tests/install-test-workspace/package.json b/build-tests/install-test-workspace/package.json index 8e00d4ba002..6a994fe8341 100644 --- a/build-tests/install-test-workspace/package.json +++ b/build-tests/install-test-workspace/package.json @@ -10,9 +10,6 @@ "devDependencies": { "@microsoft/rush-lib": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "workspace:*", - "@rushstack/heft-lint-plugin": "workspace:*", - "@rushstack/heft-typescript-plugin": "workspace:*" + "@rushstack/rush-sdk": "workspace:*" } } diff --git a/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml b/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml index 28fb7cff5cb..f2f890d0da7 100644 --- a/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml +++ b/build-tests/install-test-workspace/workspace/common/pnpm-lock.yaml @@ -2,38 +2,62 @@ lockfileVersion: 5.4 importers: + rush-lib-test: + specifiers: + '@microsoft/rush-lib': file:microsoft-rush-lib-5.93.1.tgz + '@types/node': 14.18.36 + colors: ^1.4.0 + rimraf: ^4.1.2 + typescript: ~4.8.4 + dependencies: + '@microsoft/rush-lib': file:../temp/tarballs/microsoft-rush-lib-5.93.1.tgz_@types+node@14.18.36 + colors: 1.4.0 + devDependencies: + '@types/node': 14.18.36 + rimraf: 4.1.2 + typescript: 4.8.4 + + rush-sdk-test: + specifiers: + '@microsoft/rush-lib': file:microsoft-rush-lib-5.93.1.tgz + '@rushstack/rush-sdk': file:rushstack-rush-sdk-5.93.1.tgz + '@types/node': 14.18.36 + colors: ^1.4.0 + rimraf: ^4.1.2 + typescript: ~4.8.4 + dependencies: + '@rushstack/rush-sdk': file:../temp/tarballs/rushstack-rush-sdk-5.93.1.tgz_@types+node@14.18.36 + colors: 1.4.0 + devDependencies: + '@microsoft/rush-lib': file:../temp/tarballs/microsoft-rush-lib-5.93.1.tgz_@types+node@14.18.36 + '@types/node': 14.18.36 + rimraf: 4.1.2 + typescript: 4.8.4 + typescript-newest-test: specifiers: - '@rushstack/eslint-config': file:rushstack-eslint-config-3.1.1.tgz - '@rushstack/heft': file:rushstack-heft-0.50.0-rc.4.tgz - '@rushstack/heft-lint-plugin': file:rushstack-heft-lint-plugin-0.1.0-rc.4.tgz - '@rushstack/heft-typescript-plugin': file:rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz + '@rushstack/eslint-config': file:rushstack-eslint-config-3.2.0.tgz + '@rushstack/heft': file:rushstack-heft-0.49.7.tgz eslint: ~8.7.0 tslint: ~5.20.1 typescript: ~4.8.4 devDependencies: - '@rushstack/eslint-config': file:../temp/tarballs/rushstack-eslint-config-3.1.1.tgz_esueefhpt5ql6xiqdj4wcgwfzi - '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.50.0-rc.4.tgz - '@rushstack/heft-lint-plugin': file:../temp/tarballs/rushstack-heft-lint-plugin-0.1.0-rc.4.tgz_uiwqoe5gpgzxjvn6xsx3zxy4mu - '@rushstack/heft-typescript-plugin': file:../temp/tarballs/rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz_uiwqoe5gpgzxjvn6xsx3zxy4mu + '@rushstack/eslint-config': file:../temp/tarballs/rushstack-eslint-config-3.2.0.tgz_esueefhpt5ql6xiqdj4wcgwfzi + '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.49.7.tgz eslint: 8.7.0 tslint: 5.20.1_typescript@4.8.4 typescript: 4.8.4 typescript-v3-test: specifiers: - '@rushstack/eslint-config': file:rushstack-eslint-config-3.1.1.tgz - '@rushstack/heft': file:rushstack-heft-0.50.0-rc.4.tgz - '@rushstack/heft-lint-plugin': file:rushstack-heft-lint-plugin-0.1.0-rc.4.tgz - '@rushstack/heft-typescript-plugin': file:rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz + '@rushstack/eslint-config': file:rushstack-eslint-config-3.2.0.tgz + '@rushstack/heft': file:rushstack-heft-0.49.7.tgz eslint: ~8.7.0 tslint: ~5.20.1 typescript: ~4.8.4 devDependencies: - '@rushstack/eslint-config': file:../temp/tarballs/rushstack-eslint-config-3.1.1.tgz_esueefhpt5ql6xiqdj4wcgwfzi - '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.50.0-rc.4.tgz - '@rushstack/heft-lint-plugin': file:../temp/tarballs/rushstack-heft-lint-plugin-0.1.0-rc.4.tgz_uiwqoe5gpgzxjvn6xsx3zxy4mu - '@rushstack/heft-typescript-plugin': file:../temp/tarballs/rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz_uiwqoe5gpgzxjvn6xsx3zxy4mu + '@rushstack/eslint-config': file:../temp/tarballs/rushstack-eslint-config-3.2.0.tgz_esueefhpt5ql6xiqdj4wcgwfzi + '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.49.7.tgz eslint: 8.7.0 tslint: 5.20.1_typescript@4.8.4 typescript: 4.8.4 @@ -46,10 +70,55 @@ packages: '@babel/highlight': 7.14.0 dev: true + /@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + + /@babel/generator/7.20.14: + resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + + /@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 + + /@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + + /@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.20.7 + + /@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier/7.14.0: resolution: {integrity: sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==} dev: true + /@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + /@babel/highlight/7.14.0: resolution: {integrity: sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==} dependencies: @@ -58,6 +127,66 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser/7.16.4: + resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.7 + + /@babel/parser/7.20.15: + resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.20.7 + + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 + + /@babel/traverse/7.20.13: + resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.14 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types/7.20.7: + resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.19.4 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + + /@devexpress/error-stack-parser/2.0.6: + resolution: {integrity: sha512-fneVypElGUH6Be39mlRZeAu00pccTlf4oVuzf9xPJD1cdEqI8NyAiQua/EW7lZdrbMUbgyXcJmfKPefhYius3A==} + dependencies: + stackframe: 1.3.4 + /@eslint/eslintrc/1.3.0: resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -90,6 +219,31 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/trace-mapping': 0.3.17 + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + /@microsoft/tsdoc-config/0.16.1: resolution: {integrity: sha1-TeEZdsEgKFTEYY82S/SZtL4z5lc=} dependencies: @@ -109,12 +263,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk/1.2.7: resolution: {integrity: sha1-lMI9sY7kZT4Smr0m+wb4cKyeHuI=} @@ -122,19 +274,143 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.11.0 - dev: true + + /@pnpm/crypto.base32-hash/1.0.1: + resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} + engines: {node: '>=14.6'} + dependencies: + rfc4648: 1.5.2 + + /@pnpm/error/1.4.0: + resolution: {integrity: sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==} + engines: {node: '>=10.16'} + + /@pnpm/link-bins/5.3.25: + resolution: {integrity: sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==} + engines: {node: '>=10.16'} + dependencies: + '@pnpm/error': 1.4.0 + '@pnpm/package-bins': 4.1.0 + '@pnpm/read-modules-dir': 2.0.3 + '@pnpm/read-package-json': 4.0.0 + '@pnpm/read-project-manifest': 1.1.7 + '@pnpm/types': 6.4.0 + '@zkochan/cmd-shim': 5.4.1 + is-subdir: 1.2.0 + is-windows: 1.0.2 + mz: 2.7.0 + normalize-path: 3.0.0 + p-settle: 4.1.1 + ramda: 0.27.2 + + /@pnpm/package-bins/4.1.0: + resolution: {integrity: sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==} + engines: {node: '>=10.16'} + dependencies: + '@pnpm/types': 6.4.0 + fast-glob: 3.2.11 + is-subdir: 1.2.0 + + /@pnpm/read-modules-dir/2.0.3: + resolution: {integrity: sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==} + engines: {node: '>=10.13'} + dependencies: + mz: 2.7.0 + + /@pnpm/read-package-json/4.0.0: + resolution: {integrity: sha512-1cr2tEwe4YU6SI0Hmg+wnsr6yxBt2iJtqv6wrF84On8pS9hx4A2PLw3CIgbwxaG0b+ur5wzhNogwl4qD5FLFNg==} + engines: {node: '>=10.16'} + dependencies: + '@pnpm/error': 1.4.0 + '@pnpm/types': 6.4.0 + load-json-file: 6.2.0 + normalize-package-data: 3.0.3 + + /@pnpm/read-project-manifest/1.1.7: + resolution: {integrity: sha512-tj8ExXZeDcMmMUj7D292ETe/RiEirr1X1wpT6Zy85z2MrFYoG9jfCJpps40OdZBNZBhxbuKtGPWKVSgXD0yrVw==} + engines: {node: '>=10.16'} + dependencies: + '@pnpm/error': 1.4.0 + '@pnpm/types': 6.4.0 + '@pnpm/write-project-manifest': 1.1.7 + detect-indent: 6.1.0 + fast-deep-equal: 3.1.3 + graceful-fs: 4.2.4 + is-windows: 1.0.2 + json5: 2.2.3 + parse-json: 5.2.0 + read-yaml-file: 2.1.0 + sort-keys: 4.2.0 + strip-bom: 4.0.0 + + /@pnpm/types/6.4.0: + resolution: {integrity: sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==} + engines: {node: '>=10.16'} + + /@pnpm/types/8.9.0: + resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} + engines: {node: '>=14.6'} + + /@pnpm/write-project-manifest/1.1.7: + resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} + engines: {node: '>=10.16'} + dependencies: + '@pnpm/types': 6.4.0 + json5: 2.2.3 + mz: 2.7.0 + write-file-atomic: 3.0.3 + write-yaml-file: 4.2.0 + + /@sindresorhus/is/0.14.0: + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + + /@szmarczak/http-timer/1.1.2: + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + dependencies: + defer-to-connect: 1.1.3 /@types/argparse/1.0.38: - resolution: {integrity: sha1-qB/YYG1IH4c6OADG665PHXaKVqk=} - dev: true + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} /@types/json-schema/7.0.11: resolution: {integrity: sha1-1CG2xSejA398hEM/0sQingFoY9M=} dev: true - /@types/node/12.20.24: - resolution: {integrity: sha1-w3rGnLKUivtM75X0JPoAN5camlw=} - dev: true + /@types/keyv/3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 14.18.36 + + /@types/lodash/4.14.191: + resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + + /@types/minimist/1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + + /@types/node-fetch/2.6.2: + resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} + dependencies: + '@types/node': 14.18.36 + form-data: 3.0.1 + + /@types/node/14.18.36: + resolution: {integrity: sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==} + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + + /@types/parse-json/4.0.0: + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + + /@types/responselike/1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 14.18.36 /@types/tapable/1.0.6: resolution: {integrity: sha1-qcpLcKGLJwzLK8Cqr+/R1Ia36nQ=} @@ -159,7 +435,7 @@ packages: eslint: 8.7.0 ignore: 5.2.0 regexpp: 3.2.0 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -246,7 +522,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 + semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -279,6 +555,63 @@ packages: eslint-visitor-keys: 3.3.0 dev: true + /@vue/compiler-core/3.2.47: + resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} + dependencies: + '@babel/parser': 7.20.15 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + source-map: 0.6.1 + + /@vue/compiler-dom/3.2.47: + resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} + dependencies: + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/compiler-sfc/3.2.47: + resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + dependencies: + '@babel/parser': 7.20.15 + '@vue/compiler-core': 3.2.47 + '@vue/compiler-dom': 3.2.47 + '@vue/compiler-ssr': 3.2.47 + '@vue/reactivity-transform': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + postcss: 8.4.21 + source-map: 0.6.1 + + /@vue/compiler-ssr/3.2.47: + resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + dependencies: + '@vue/compiler-dom': 3.2.47 + '@vue/shared': 3.2.47 + + /@vue/reactivity-transform/3.2.47: + resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} + dependencies: + '@babel/parser': 7.20.15 + '@vue/compiler-core': 3.2.47 + '@vue/shared': 3.2.47 + estree-walker: 2.0.2 + magic-string: 0.25.9 + + /@vue/shared/3.2.47: + resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + + /@yarnpkg/lockfile/1.0.2: + resolution: {integrity: sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==} + + /@zkochan/cmd-shim/5.4.1: + resolution: {integrity: sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==} + engines: {node: '>=10.13'} + dependencies: + cmd-extension: 1.0.2 + graceful-fs: 4.2.10 + is-windows: 1.0.2 + /acorn-jsx/5.3.2_acorn@8.7.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -293,6 +626,14 @@ packages: hasBin: true dev: true + /agent-base/6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + /ajv/6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -302,24 +643,35 @@ packages: uri-js: 4.4.1 dev: true + /ansi-align/3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + dependencies: + string-width: 4.2.3 + + /ansi-escapes/4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: true /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - dev: true /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 - dev: true + + /any-promise/1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} /anymatch/3.1.2: resolution: {integrity: sha1-wFV8CWrzLxBhmPT04qODU343hxY=} @@ -327,17 +679,18 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.0 - dev: true /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 - dev: true /argparse/2.0.1: - resolution: {integrity: sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=} - dev: true + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-differ/3.0.0: + resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + engines: {node: '>=8'} /array-includes/3.1.5: resolution: {integrity: sha1-LDIAENuNMQMf0qX2s7vUsarTG9s=} @@ -353,7 +706,6 @@ packages: /array-union/2.1.0: resolution: {integrity: sha1-t5hCCtvrHego2ErNii4j0+/oXo0=} engines: {node: '>=8'} - dev: true /array.prototype.flatmap/1.3.0: resolution: {integrity: sha1-p+jtQiX0eIpwzZEKvPB5HnalU08=} @@ -365,34 +717,98 @@ packages: es-shim-unscopables: 1.0.0 dev: true + /arrify/1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + /arrify/2.0.1: + resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + engines: {node: '>=8'} + + /asap/2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + /asynckit/0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true + + /base64-js/1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /better-path-resolve/1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + dependencies: + is-windows: 1.0.2 /binary-extensions/2.2.0: resolution: {integrity: sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=} engines: {node: '>=8'} - dev: true + + /bl/4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.0 + + /boxen/5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.1 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 /brace-expansion/1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: true /braces/3.0.2: resolution: {integrity: sha1-NFThpGLujVmeI23zNs2epPiv4Qc=} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true + + /buffer/5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 /builtin-modules/1.1.1: resolution: {integrity: sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=} engines: {node: '>=0.10.0'} dev: true + /builtin-modules/3.1.0: + resolution: {integrity: sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==} + engines: {node: '>=6'} + + /builtins/1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} + + /cacheable-request/6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 3.1.0 + lowercase-keys: 2.0.0 + normalize-url: 4.5.1 + responselike: 1.0.2 + /call-bind/1.0.2: resolution: {integrity: sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=} dependencies: @@ -400,10 +816,39 @@ packages: get-intrinsic: 1.1.1 dev: true + /callsite-record/4.1.5: + resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==} + dependencies: + '@devexpress/error-stack-parser': 2.0.6 + '@types/lodash': 4.14.191 + callsite: 1.0.0 + chalk: 2.4.2 + highlight-es: 1.0.3 + lodash: 4.17.21 + pinkie-promise: 2.0.1 + + /callsite/1.0.0: + resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} + /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - dev: true + + /camelcase-keys/6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + /camelcase/5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + /camelcase/6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -412,7 +857,6 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - dev: true /chalk/4.1.1: resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} @@ -420,7 +864,9 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true + + /chardet/0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} /chokidar/3.4.3: resolution: {integrity: sha1-wd84IxRI5FykrFiObHlXO6alfVs=} @@ -435,41 +881,127 @@ packages: readdirp: 3.5.0 optionalDependencies: fsevents: 2.1.3 - dev: true + + /chownr/2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + /ci-info/2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + /cli-boxes/2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + /cli-cursor/3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + + /cli-spinners/2.7.0: + resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} + engines: {node: '>=6'} + + /cli-table/0.3.11: + resolution: {integrity: sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==} + engines: {node: '>= 0.2.0'} + dependencies: + colors: 1.0.3 + + /cli-width/3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + /cliui/7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + /clone-response/1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + dependencies: + mimic-response: 1.0.1 + + /clone/1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + /cmd-extension/1.0.2: + resolution: {integrity: sha512-iWDjmP8kvsMdBmLTHxFaqXikO8EdFRDfim7k6vUHglY/2xJ5jLrPsnQGijdfp4U+sr/BeecG0wKm02dSIAeQ1g==} + engines: {node: '>=10'} + + /co/4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - dev: true /color-convert/2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 - dev: true /color-name/1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true + + /colors/1.0.3: + resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==} + engines: {node: '>=0.1.90'} /colors/1.2.5: resolution: {integrity: sha1-icetmjdLwDDfgBMkH2gTbtiDWvw=} engines: {node: '>=0.1.90'} - dev: true + + /colors/1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + dev: false + + /combined-stream/1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 /commander/2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true + + /configstore/5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.10 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + + /core-util-is/1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + /cosmiconfig/7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + dependencies: + '@types/parse-json': 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -478,7 +1010,10 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: true + + /crypto-random-string/2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} /debug/4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -490,12 +1025,43 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true + + /debuglog/1.0.1: + resolution: {integrity: sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==} + + /decamelize-keys/1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + /decamelize/1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + /decompress-response/3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + + /deep-extend/0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} /deep-is/0.1.3: resolution: {integrity: sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw==} dev: true + /defaults/1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + + /defer-to-connect/1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + /define-properties/1.1.4: resolution: {integrity: sha1-CxTXvX++svNXLDp+2oDqXVf7BbE=} engines: {node: '>= 0.4'} @@ -504,6 +1070,63 @@ packages: object-keys: 1.1.1 dev: true + /delayed-stream/1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /depcheck/1.4.3: + resolution: {integrity: sha512-vy8xe1tlLFu7t4jFyoirMmOR7x7N601ubU9Gkifyr9z8rjBFtEdWHDBMqXyk6OkK+94NXutzddVXJuo0JlUQKQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@babel/parser': 7.16.4 + '@babel/traverse': 7.20.13 + '@vue/compiler-sfc': 3.2.47 + camelcase: 6.3.0 + cosmiconfig: 7.1.0 + debug: 4.3.4 + deps-regex: 0.1.4 + ignore: 5.2.0 + is-core-module: 2.11.0 + js-yaml: 3.14.1 + json5: 2.2.3 + lodash: 4.17.21 + minimatch: 3.1.2 + multimatch: 5.0.0 + please-upgrade-node: 3.2.0 + query-ast: 1.0.5 + readdirp: 3.5.0 + require-package-name: 2.0.1 + resolve: 1.22.1 + sass: 1.58.0 + scss-parser: 1.0.6 + semver: 7.3.8 + yargs: 16.2.0 + transitivePeerDependencies: + - supports-color + + /dependency-path/9.2.8: + resolution: {integrity: sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==} + engines: {node: '>=14.6'} + dependencies: + '@pnpm/crypto.base32-hash': 1.0.1 + '@pnpm/types': 8.9.0 + encode-registry: 3.0.0 + semver: 7.3.8 + + /deps-regex/0.1.4: + resolution: {integrity: sha512-3tzwGYogSJi8HoG93R5x9NrdefZQOXgHgGih/7eivloOq6yC6O+yoFxZnkgP661twvfILONfoKRdF9GQOGx2RA==} + + /detect-indent/6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + /dezalgo/1.0.4: + resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} + dependencies: + asap: 2.0.6 + wrappy: 1.0.2 + /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -514,7 +1137,6 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 - dev: true /doctrine/2.1.0: resolution: {integrity: sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=} @@ -530,8 +1152,36 @@ packages: esutils: 2.0.3 dev: true - /es-abstract/1.20.1: - resolution: {integrity: sha1-AnKSzW70S9ErGRO4KBFvVHh9GBQ=} + /dot-prop/5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + + /duplexer3/0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + /encode-registry/3.0.0: + resolution: {integrity: sha512-2fRYji8K6FwYuQ6EPBKR/J9mcqb7kIoNqt1vGvJr3NrvKfncRiNm00Oxo6gi/YJF8R5Sp2bNFSFdGKTG0rje1Q==} + engines: {node: '>=10'} + dependencies: + mem: 8.1.1 + + /end-of-stream/1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /es-abstract/1.20.1: + resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -574,10 +1224,17 @@ packages: is-symbol: 1.0.4 dev: true + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-goat/2.1.1: + resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} + engines: {node: '>=8'} + /escape-string-regexp/1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - dev: true /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} @@ -716,7 +1373,6 @@ packages: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - dev: true /esquery/1.4.0: resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} @@ -742,14 +1398,38 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + /external-editor/3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true /fast-glob/3.2.11: resolution: {integrity: sha1-oRcq2VzrihbiDKpcXlZIDlEpwdk=} @@ -760,7 +1440,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.4 - dev: true /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -774,7 +1453,12 @@ packages: resolution: {integrity: sha1-u5+5VaBxMKkY62PB9RYcwypdCFg=} dependencies: reusify: 1.0.4 - dev: true + + /figures/3.0.0: + resolution: {integrity: sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 /file-entry-cache/6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -788,7 +1472,26 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /find-up/5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /find-yarn-workspace-root2/1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.4 + pkg-dir: 4.2.0 /flat-cache/3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} @@ -802,30 +1505,40 @@ packages: resolution: {integrity: sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==} dev: true + /form-data/3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + /fs-extra/7.0.1: resolution: {integrity: sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=} engines: {node: '>=6 <7 || >=8'} dependencies: - graceful-fs: 4.2.9 + graceful-fs: 4.2.10 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true + + /fs-minipass/2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true /fsevents/2.1.3: resolution: {integrity: sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true /function.prototype.name/1.1.5: resolution: {integrity: sha1-zOBQX+H/uAUD5vnkbMZORqEqliE=} @@ -845,6 +1558,10 @@ packages: resolution: {integrity: sha1-BAT+TuK6L2B/Dg7DyAuumUEzuDQ=} dev: true + /get-caller-file/2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + /get-intrinsic/1.1.1: resolution: {integrity: sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=} dependencies: @@ -853,6 +1570,22 @@ packages: has-symbols: 1.0.3 dev: true + /get-stream/4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + /get-symbol-description/1.0.0: resolution: {integrity: sha1-f9uByQAQH71WTdXxowr1qtweWNY=} engines: {node: '>= 0.4'} @@ -862,16 +1595,22 @@ packages: dev: true /git-repo-info/2.1.1: - resolution: {integrity: sha1-Ig/+2MuudO+KgOMFLyzLUXmu0Fg=} + resolution: {integrity: sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==} engines: {node: '>= 4.0'} - dev: true + + /giturl/1.0.1: + resolution: {integrity: sha512-wQourBdI13n8tbjcZTDl6k+ZrCRMU6p9vfp9jknZq+zfWc8xXNztpZFM4XkPHVzHcMSUZxEMYYKZjIGkPlei6Q==} + engines: {node: '>= 0.10.0'} + + /glob-escape/0.0.2: + resolution: {integrity: sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==} + engines: {node: '>= 0.10'} /glob-parent/5.1.2: resolution: {integrity: sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -880,9 +1619,15 @@ packages: is-glob: 4.0.3 dev: true - /glob-to-regexp/0.4.1: - resolution: {integrity: sha1-x1KXCHyFG5pXi9IX3VmpL1n+VG4=} - dev: true + /glob/7.0.6: + resolution: {integrity: sha512-f8c0rE8JiCxpa52kWPAOa3ZaYEnzofDzCQLCn3Vdk0Z5OVLq3BsRFJI4S4ykpeVW6QMGBUkMeUpoEgWnMTnw5Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} @@ -893,7 +1638,30 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: true + + /global-dirs/3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + dependencies: + ini: 2.0.0 + + /global-modules/2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + + /global-prefix/3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + /globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} /globals/13.10.0: resolution: {integrity: sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==} @@ -919,11 +1687,34 @@ packages: ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 - dev: true - /graceful-fs/4.2.9: - resolution: {integrity: sha1-BBsF30V1Xlh6JJQiebnRExRuHJY=} - dev: true + /got/9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + dependencies: + '@sindresorhus/is': 0.14.0 + '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 + cacheable-request: 6.1.0 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 4.1.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 1.1.0 + to-readable-stream: 1.0.0 + url-parse-lax: 3.0.0 + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + /graceful-fs/4.2.4: + resolution: {integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==} + + /hard-rejection/2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} /has-bigints/1.0.2: resolution: {integrity: sha1-CHG9Pj1RYm9soJZmaLo11WAtbqo=} @@ -932,12 +1723,10 @@ packages: /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} - dev: true /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - dev: true /has-property-descriptors/1.0.0: resolution: {integrity: sha1-YQcIYAYG02lh7QTBlhk7amB/qGE=} @@ -957,12 +1746,65 @@ packages: has-symbols: 1.0.3 dev: true + /has-yarn/2.1.0: + resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} + engines: {node: '>=8'} + /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true + + /highlight-es/1.0.3: + resolution: {integrity: sha512-s/SIX6yp/5S1p8aC/NRDC1fwEb+myGIfp8/TzZz0rtAv8fzsdX7vGl3Q1TrXCsczFq8DI3CBFBCySPClfBSdbg==} + dependencies: + chalk: 2.4.2 + is-es2016-keyword: 1.0.0 + js-tokens: 3.0.2 + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + /hosted-git-info/4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + + /http-cache-semantics/4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + /https-proxy-agent/5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + /iconv-lite/0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + + /ieee754/1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /ignore-walk/3.0.4: + resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} + dependencies: + minimatch: 3.1.2 + + /ignore/5.1.9: + resolution: {integrity: sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==} + engines: {node: '>= 4'} /ignore/5.1.9: resolution: {integrity: sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=} @@ -972,7 +1814,12 @@ packages: /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} - dev: true + + /immediate/3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + /immutable/4.2.3: + resolution: {integrity: sha512-IHpmvaOIX4VLJwPOuQr1NpeBr2ZG6vpIj3blsLVxXRWJscLioaJRStqC+NcBsLeCDsnGlPpXd5/WZmnE7MbsKA==} /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -980,28 +1827,56 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - dev: true + + /import-lazy/2.1.0: + resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} + engines: {node: '>=4'} /import-lazy/4.0.0: resolution: {integrity: sha1-6OtidIOgpD2jwD8+NVSL5csMwVM=} engines: {node: '>=8'} - dev: true /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - dev: true + + /indent-string/4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: true /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true + + /ini/1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + /ini/2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + /inquirer/7.3.3: + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.1 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.0.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 /internal-slot/1.0.3: resolution: {integrity: sha1-c0fjB97uovqsKsYgXUvH00ln9Zw=} @@ -1012,6 +1887,14 @@ packages: side-channel: 1.0.4 dev: true + /invariant/2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + + /is-arrayish/0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /is-bigint/1.0.2: resolution: {integrity: sha1-/7OBRCUDI1rSReqJ5Fs9v/BA7lo=} dev: true @@ -1021,7 +1904,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-boolean-object/1.1.1: resolution: {integrity: sha1-PAh48DXLghIo01DS4eNnGXFqPeg=} @@ -1035,11 +1917,16 @@ packages: engines: {node: '>= 0.4'} dev: true + /is-ci/2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + dependencies: + ci-info: 2.0.0 + /is-core-module/2.11.0: resolution: {integrity: sha1-rUyz44Y+gUUjyW8/WNJsxXD/AUQ=} dependencies: has: 1.0.3 - dev: true /is-core-module/2.4.0: resolution: {integrity: sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==} @@ -1052,10 +1939,16 @@ packages: engines: {node: '>= 0.4'} dev: true + /is-es2016-keyword/1.0.0: + resolution: {integrity: sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==} + /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} /is-glob/4.0.1: resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} @@ -1069,13 +1962,27 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true + + /is-installed-globally/0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + dependencies: + global-dirs: 3.0.1 + is-path-inside: 3.0.3 + + /is-interactive/1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} /is-negative-zero/2.0.2: resolution: {integrity: sha1-e/bwOigAO4s5Zd46wm9mTXZfMVA=} engines: {node: '>= 0.4'} dev: true + /is-npm/5.0.0: + resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} + engines: {node: '>=10'} + /is-number-object/1.0.5: resolution: {integrity: sha1-bt+u7XlQz/Ga/tzp+/yp7m3Sies=} engines: {node: '>= 0.4'} @@ -1084,7 +1991,22 @@ packages: /is-number/7.0.0: resolution: {integrity: sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=} engines: {node: '>=0.12.0'} - dev: true + + /is-obj/2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + /is-path-inside/3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-plain-obj/1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + /is-plain-obj/2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} /is-regex/1.1.4: resolution: {integrity: sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=} @@ -1100,6 +2022,10 @@ packages: call-bind: 1.0.2 dev: true + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + /is-string/1.0.7: resolution: {integrity: sha1-DdEr8gBvJVu1j2lREO/3SR7rwP0=} engines: {node: '>= 0.4'} @@ -1107,6 +2033,12 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-subdir/1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + dependencies: + better-path-resolve: 1.0.0 + /is-symbol/1.0.4: resolution: {integrity: sha1-ptrJO2NbBjymhyI23oiRClevE5w=} engines: {node: '>= 0.4'} @@ -1114,23 +2046,47 @@ packages: has-symbols: 1.0.3 dev: true + /is-typedarray/1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + /is-unicode-supported/0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + /is-weakref/1.0.2: resolution: {integrity: sha1-lSnzg6kzggXol2XgOS78LxAPBvI=} dependencies: call-bind: 1.0.2 dev: true + /is-windows/1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + /is-yarn-global/0.3.0: + resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + + /isarray/1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true /jju/1.4.0: - resolution: {integrity: sha1-o6vicYryQaKykE+EpiWXDzia4yo=} - dev: true + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + /js-tokens/3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true + + /js-yaml/3.13.1: + resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 /js-yaml/3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -1138,14 +2094,23 @@ packages: dependencies: argparse: 1.0.10 esprima: 4.0.1 - dev: true /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 - dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer/3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -1155,16 +2120,19 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + /jsonfile/4.0.0: resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} optionalDependencies: - graceful-fs: 4.2.9 - dev: true + graceful-fs: 4.2.10 /jsonpath-plus/4.0.0: resolution: {integrity: sha1-lUtp+qPYsH8wri+eYBF2pLDSgG4=} engines: {node: '>=10.0'} - dev: true /jsx-ast-utils/2.4.1: resolution: {integrity: sha1-ERSkwSCUgdsGxpDCtPSIzGZfZX4=} @@ -1174,6 +2142,29 @@ packages: object.assign: 4.1.2 dev: true + /jszip/3.8.0: + resolution: {integrity: sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.7 + set-immediate-shim: 1.0.1 + + /keyv/3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + dependencies: + json-buffer: 3.0.0 + + /kind-of/6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + /latest-version/5.1.0: + resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} + engines: {node: '>=8'} + dependencies: + package-json: 6.5.0 + /levn/0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -1182,44 +2173,172 @@ packages: type-check: 0.4.0 dev: true + /lie/3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + dependencies: + immediate: 3.0.6 + + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /load-json-file/6.2.0: + resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} + engines: {node: '>=8'} + dependencies: + graceful-fs: 4.2.10 + parse-json: 5.2.0 + strip-bom: 4.0.0 + type-fest: 0.6.0 + + /load-yaml-file/0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.10 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /locate-path/6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + /lodash.get/4.4.2: - resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} - dev: true + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} /lodash.isequal/4.5.0: - resolution: {integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA=} - dev: true + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols/4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.1 + is-unicode-supported: 0.1.0 + /loose-envify/1.4.0: resolution: {integrity: sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=} hasBin: true dependencies: js-tokens: 4.0.0 - dev: true + + /lowercase-keys/1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + + /lowercase-keys/2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} /lru-cache/6.0.0: resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=} engines: {node: '>=10'} dependencies: yallist: 4.0.0 - dev: true - /merge2/1.4.1: - resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=} - engines: {node: '>= 8'} - dev: true + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 - /micromatch/4.0.4: - resolution: {integrity: sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=} - engines: {node: '>=8.6'} + /make-dir/3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 + + /map-age-cleaner/0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + + /map-obj/1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + /map-obj/4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + /mem/8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 3.1.0 + + /meow/9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize: 1.2.0 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + /merge2/1.4.1: + resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=} + engines: {node: '>= 8'} + + /micromatch/4.0.4: + resolution: {integrity: sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=} + engines: {node: '>=8.6'} dependencies: braces: 3.0.2 picomatch: 2.3.0 - dev: true + + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + /mimic-fn/3.1.0: + resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} + engines: {node: '>=8'} + + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} @@ -1231,11 +2350,34 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 - dev: true + + /minimist-options/4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 /minimist/1.2.5: resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: true + + /minipass/3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + + /minipass/4.0.1: + resolution: {integrity: sha512-V9esFpNbK0arbN3fm2sxDKqMYgIp7XtVdE4Esj+PE4Qaaxdg1wIw48ITQIOn1sc8xXSmUviVL3cyjMqPlrVkiA==} + engines: {node: '>=8'} + + /minizlib/2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 /mkdirp/0.5.5: resolution: {integrity: sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==} @@ -1244,23 +2386,154 @@ packages: minimist: 1.2.5 dev: true + /mkdirp/1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + /ms/2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true + + /multimatch/5.0.0: + resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} + engines: {node: '>=10'} + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.1.2 + + /mute-stream/0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + /nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /node-emoji/1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + dependencies: + lodash: 4.17.21 + + /node-fetch/2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + + /normalize-package-data/3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.11.0 + semver: 7.3.8 + validate-npm-package-license: 3.0.4 + /normalize-path/3.0.0: resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=} engines: {node: '>=0.10.0'} - dev: true + + /normalize-url/4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + + /npm-bundled/1.1.2: + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + dependencies: + npm-normalize-package-bin: 1.0.1 + + /npm-check/6.0.1: + resolution: {integrity: sha512-tlEhXU3689VLUHYEZTS/BC61vfeN2xSSZwoWDT6WLuenZTpDmGmNT5mtl15erTR0/A15ldK06/NEKg9jYJ9OTQ==} + engines: {node: '>=10.9.0'} + hasBin: true + dependencies: + callsite-record: 4.1.5 + chalk: 4.1.1 + co: 4.6.0 + depcheck: 1.4.3 + execa: 5.1.1 + giturl: 1.0.1 + global-modules: 2.0.0 + globby: 11.1.0 + inquirer: 7.3.3 + is-ci: 2.0.0 + lodash: 4.17.21 + meow: 9.0.0 + minimatch: 3.1.2 + node-emoji: 1.11.0 + ora: 5.4.1 + package-json: 6.5.0 + path-exists: 4.0.0 + pkg-dir: 5.0.0 + preferred-pm: 3.0.3 + rc-config-loader: 4.1.2 + semver: 7.3.8 + semver-diff: 3.1.1 + strip-ansi: 6.0.1 + text-table: 0.2.0 + throat: 6.0.2 + update-notifier: 5.1.0 + xtend: 4.0.2 + transitivePeerDependencies: + - supports-color + + /npm-normalize-package-bin/1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + + /npm-package-arg/6.1.1: + resolution: {integrity: sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==} + dependencies: + hosted-git-info: 2.8.9 + osenv: 0.1.5 + semver: 5.7.1 + validate-npm-package-name: 3.0.0 + + /npm-packlist/2.1.5: + resolution: {integrity: sha512-KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + glob: 7.1.7 + ignore-walk: 3.0.4 + npm-bundled: 1.1.2 + npm-normalize-package-bin: 1.0.1 + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} - dev: true /object-inspect/1.12.2: resolution: {integrity: sha1-wGQfJjlFMvKKuNeWq5VOQ8AJqOo=} @@ -1319,7 +2592,12 @@ packages: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: wrappy: 1.0.2 - dev: true + + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} @@ -1333,42 +2611,200 @@ packages: word-wrap: 1.2.3 dev: true + /ora/5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.1 + cli-cursor: 3.1.0 + cli-spinners: 2.7.0 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + /os-homedir/1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + + /os-tmpdir/1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + /osenv/0.1.5: + resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==} + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + + /p-cancelable/1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + + /p-defer/1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit/3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-locate/5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-reflect/2.1.0: + resolution: {integrity: sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==} + engines: {node: '>=8'} + + /p-settle/4.1.1: + resolution: {integrity: sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==} + engines: {node: '>=10'} + dependencies: + p-limit: 2.3.0 + p-reflect: 2.1.0 + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /package-json/6.5.0: + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + engines: {node: '>=8'} + dependencies: + got: 9.6.0 + registry-auth-token: 4.2.2 + registry-url: 5.1.0 + semver: 6.3.0 + + /pako/1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 - dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - dev: true /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - dev: true /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true /path-type/4.0.0: resolution: {integrity: sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=} engines: {node: '>=8'} - dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} /picomatch/2.3.0: resolution: {integrity: sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=} engines: {node: '>=8.6'} - dev: true + + /pify/4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + /pinkie-promise/2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + + /pinkie/2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + /pkg-dir/4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + + /pkg-dir/5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + + /please-upgrade-node/3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + dependencies: + semver-compare: 1.0.0 + + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + + /preferred-pm/3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true + /prepend-http/2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + + /prettier/2.3.1: + resolution: {integrity: sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==} + engines: {node: '>=10.13.0'} + hasBin: true + dev: true + + /process-nextick-args/2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + /prop-types/15.7.2: resolution: {integrity: sha1-UsQedbjIfnK52TYOAga5ncv/psU=} dependencies: @@ -1377,25 +2813,144 @@ packages: react-is: 16.13.1 dev: true + /pump/3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} dev: true + /pupa/2.1.1: + resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} + engines: {node: '>=8'} + dependencies: + escape-goat: 2.1.1 + + /query-ast/1.0.5: + resolution: {integrity: sha512-JK+1ma4YDuLjvKKcz9JZ70G+CM9qEOs/l1cZzstMMfwKUabTJ9sud5jvDGrUNuv03yKUgs82bLkHXJkDyhRmBw==} + dependencies: + invariant: 2.2.4 + lodash: 4.17.21 + /queue-microtask/1.2.3: - resolution: {integrity: sha1-SSkii7xyTfrEPg77BYyve2z7YkM=} - dev: true + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru/4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + /ramda/0.27.2: + resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} + + /rc-config-loader/4.1.2: + resolution: {integrity: sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==} + dependencies: + debug: 4.3.4 + js-yaml: 4.1.0 + json5: 2.2.3 + require-from-string: 2.0.2 + transitivePeerDependencies: + - supports-color + + /rc/1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.5 + strip-json-comments: 2.0.1 /react-is/16.13.1: resolution: {integrity: sha1-eJcppNw23imZ3BVt1sHZwYzqVqQ=} dev: true + /read-package-json/2.1.2: + resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} + dependencies: + glob: 7.1.7 + json-parse-even-better-errors: 2.3.1 + normalize-package-data: 2.5.0 + npm-normalize-package-bin: 1.0.1 + + /read-package-tree/5.1.6: + resolution: {integrity: sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==} + deprecated: The functionality that this package provided is now in @npmcli/arborist + dependencies: + debuglog: 1.0.1 + dezalgo: 1.0.4 + once: 1.4.0 + read-package-json: 2.1.2 + readdir-scoped-modules: 1.1.0 + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + /read-yaml-file/2.1.0: + resolution: {integrity: sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==} + engines: {node: '>=10.13'} + dependencies: + js-yaml: 4.1.0 + strip-bom: 4.0.0 + + /readable-stream/2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + /readable-stream/3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readdir-scoped-modules/1.1.0: + resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + debuglog: 1.0.1 + dezalgo: 1.0.4 + graceful-fs: 4.2.10 + once: 1.4.0 + /readdirp/3.5.0: resolution: {integrity: sha1-m6dMAZsV02UnjS6Ru4xI17TULJ4=} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.0 - dev: true + + /redent/3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 /regexp.prototype.flags/1.4.3: resolution: {integrity: sha1-h8qzD4D2ZmAYGju3v1mBqHKzZ6w=} @@ -1411,10 +2966,32 @@ packages: engines: {node: '>=8'} dev: true + /registry-auth-token/4.2.2: + resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} + engines: {node: '>=6.0.0'} + dependencies: + rc: 1.2.8 + + /registry-url/5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + dependencies: + rc: 1.2.8 + + /require-directory/2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + /require-package-name/2.0.1: + resolution: {integrity: sha512-uuoJ1hU/k6M0779t3VMVIYpb2VMJk05cehCaABFhXaibcbvfgR8wKiozLjVFSzJPmQMRqIcO0HMyTFqfV09V6Q==} + /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - dev: true /resolve/1.19.0: resolution: {integrity: sha1-GvW/YwQJc0oGfK4pMYqsf6KaJnw=} @@ -1437,7 +3014,6 @@ packages: is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /resolve/2.0.0-next.3: resolution: {integrity: sha1-1BAWKT1KhYajnKXZtfFcvqH1XkY=} @@ -1446,10 +3022,24 @@ packages: path-parse: 1.0.7 dev: true + /responselike/1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + dependencies: + lowercase-keys: 1.0.1 + + /restore-cursor/3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + /reusify/1.0.4: resolution: {integrity: sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true + + /rfc4648/1.5.2: + resolution: {integrity: sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==} /rimraf/3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} @@ -1458,41 +3048,89 @@ packages: glob: 7.1.7 dev: true + /rimraf/4.1.2: + resolution: {integrity: sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /run-async/2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + /run-parallel/1.2.0: resolution: {integrity: sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=} dependencies: queue-microtask: 1.2.3 - dev: true + + /rxjs/6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer/5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safer-buffer/2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sass/1.58.0: + resolution: {integrity: sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + chokidar: 3.4.3 + immutable: 4.2.3 + source-map-js: 1.0.2 + + /scss-parser/1.0.6: + resolution: {integrity: sha512-SH3TaoaJFzfAtqs3eG1j5IuHJkeEW5rKUPIjIN+ZorLAyJLHItQGnsgwHk76v25GtLtpT9IqfAcqK4vFWdiw+w==} + engines: {node: '>=6.0.0'} + dependencies: + invariant: 2.2.4 + lodash: 4.17.21 + + /semver-compare/1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + /semver-diff/3.1.1: + resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.0 /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true - dev: true /semver/6.3.0: resolution: {integrity: sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=} hasBin: true - dev: true - /semver/7.3.7: - resolution: {integrity: sha1-EsW2Sa/b+QSXB3luIqQCiBTOUj8=} + /semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 - dev: true + + /set-immediate-shim/1.0.1: + resolution: {integrity: sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==} + engines: {node: '>=0.10.0'} /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 - dev: true /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - dev: true /side-channel/1.0.4: resolution: {integrity: sha1-785cj9wQTudRslxY1CkAEfpeos8=} @@ -1502,19 +3140,76 @@ packages: object-inspect: 1.12.2 dev: true + /signal-exit/3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /slash/3.0.0: resolution: {integrity: sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=} engines: {node: '>=8'} - dev: true + + /sort-keys/4.2.0: + resolution: {integrity: sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==} + engines: {node: '>=8'} + dependencies: + is-plain-obj: 2.1.0 + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + + /spdx-license-ids/3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} /sprintf-js/1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true + + /ssri/8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + + /stackframe/1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + /strict-uri-encode/2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} + engines: {node: '>=4'} /string-argv/0.3.1: resolution: {integrity: sha1-leL77AQnrhkYSTX4FtdKqkxcGdo=} engines: {node: '>=0.6.19'} - dev: true + + /string-width/4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 /string.prototype.matchall/4.0.7: resolution: {integrity: sha1-jm7LDYofsf2kcNgazsstugV6SB0=} @@ -1545,60 +3240,136 @@ packages: es-abstract: 1.20.1 dev: true + /string_decoder/1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder/1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + /strip-ansi/6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + /strip-bom/4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + + /strip-json-comments/2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - dev: true /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - dev: true /supports-color/7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 - dev: true /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha1-btpL00SjyUrqN21MwxvHcxEDngk=} engines: {node: '>= 0.4'} - dev: true /tapable/1.1.3: resolution: {integrity: sha1-ofzMBrWNth/XpF2i2kT186Pme6I=} engines: {node: '>=6'} dev: true + /tapable/2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + /tar/6.1.13: + resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 4.0.1 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true + + /thenify-all/1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + + /throat/6.0.2: + resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} + + /through/2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + /tmp/0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-readable-stream/1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} /to-regex-range/5.0.1: resolution: {integrity: sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true + + /tr46/0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + /trim-newlines/3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} /true-case-path/2.2.1: - resolution: {integrity: sha1-xb8EpbvsP9EYvkCERhs6J8TXlr8=} - dev: true + resolution: {integrity: sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==} /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true /tslint/5.20.1_typescript@4.8.4: resolution: {integrity: sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==} @@ -1649,10 +3420,30 @@ packages: prelude-ls: 1.2.1 dev: true + /type-fest/0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + /type-fest/0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: true + + /type-fest/0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + /typedarray-to-buffer/3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + dependencies: + is-typedarray: 1.0.0 /typescript/4.8.4: resolution: {integrity: sha1-xGSryhWWaVl75flriUNQCyOOYOY=} @@ -1669,10 +3460,34 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /unique-string/2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + dependencies: + crypto-random-string: 2.0.0 + /universalify/0.1.2: resolution: {integrity: sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=} engines: {node: '>= 4.0.0'} - dev: true + + /update-notifier/5.1.0: + resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} + engines: {node: '>=10'} + dependencies: + boxen: 5.1.2 + chalk: 4.1.1 + configstore: 5.0.1 + has-yarn: 2.1.0 + import-lazy: 2.1.0 + is-ci: 2.0.0 + is-installed-globally: 0.4.0 + is-npm: 5.0.0 + is-yarn-global: 0.3.0 + latest-version: 5.1.0 + pupa: 2.1.1 + semver: 7.3.8 + semver-diff: 3.1.1 + xdg-basedir: 4.0.0 /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -1680,14 +3495,47 @@ packages: punycode: 2.1.1 dev: true + /url-parse-lax/3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + + /util-deprecate/1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + + /validate-npm-package-name/3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} + dependencies: + builtins: 1.0.3 + /validator/13.7.0: resolution: {integrity: sha1-T5ZYuhO6jz2C7ogdNRZInqhcCFc=} engines: {node: '>= 0.10'} - dev: true + + /wcwidth/1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + + /webidl-conversions/3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + /whatwg-url/5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 /watchpack/2.4.0: resolution: {integrity: sha1-+jMDI3SWLHgRP5PH8vtMVMmGKl0=} @@ -1707,26 +3555,104 @@ packages: is-symbol: 1.0.4 dev: true + /which-pm/2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true dependencies: isexe: 2.0.0 - dev: true + + /widest-line/3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + dependencies: + string-width: 4.2.3 /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} dev: true + /wordwrap/1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + /wrap-ansi/7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true + + /write-file-atomic/3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + + /write-yaml-file/4.2.0: + resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} + engines: {node: '>=10.13'} + dependencies: + js-yaml: 4.1.0 + write-file-atomic: 3.0.3 + + /xdg-basedir/4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + + /xtend/4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + /y18n/5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} /yallist/4.0.0: - resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=} - dev: true + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + /yargs-parser/20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + /yargs/16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + /yocto-queue/0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} /z-schema/5.0.3: resolution: {integrity: sha1-aPr7m3Nfx/PInquz5aY1O017STU=} @@ -1738,13 +3664,61 @@ packages: validator: 13.7.0 optionalDependencies: commander: 2.20.3 - dev: true - file:../temp/tarballs/rushstack-eslint-config-3.1.1.tgz_esueefhpt5ql6xiqdj4wcgwfzi: - resolution: {tarball: file:../temp/tarballs/rushstack-eslint-config-3.1.1.tgz} - id: file:../temp/tarballs/rushstack-eslint-config-3.1.1.tgz + file:../temp/tarballs/microsoft-rush-lib-5.93.1.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/microsoft-rush-lib-5.93.1.tgz} + id: file:../temp/tarballs/microsoft-rush-lib-5.93.1.tgz + name: '@microsoft/rush-lib' + version: 5.93.1 + engines: {node: '>=5.6.0'} + dependencies: + '@pnpm/link-bins': 5.3.25 + '@rushstack/heft-config-file': file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz_@types+node@14.18.36 + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36 + '@rushstack/package-deps-hash': file:../temp/tarballs/rushstack-package-deps-hash-4.0.8.tgz_@types+node@14.18.36 + '@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.18.tgz + '@rushstack/stream-collator': file:../temp/tarballs/rushstack-stream-collator-4.0.227.tgz_@types+node@14.18.36 + '@rushstack/terminal': file:../temp/tarballs/rushstack-terminal-0.5.2.tgz_@types+node@14.18.36 + '@rushstack/ts-command-line': file:../temp/tarballs/rushstack-ts-command-line-4.13.2.tgz + '@types/node-fetch': 2.6.2 + '@yarnpkg/lockfile': 1.0.2 + builtin-modules: 3.1.0 + cli-table: 0.3.11 + colors: 1.2.5 + dependency-path: 9.2.8 + figures: 3.0.0 + git-repo-info: 2.1.1 + glob: 7.0.6 + glob-escape: 0.0.2 + https-proxy-agent: 5.0.1 + ignore: 5.1.9 + inquirer: 7.3.3 + js-yaml: 3.13.1 + jszip: 3.8.0 + lodash: 4.17.21 + node-fetch: 2.6.7 + npm-check: 6.0.1 + npm-package-arg: 6.1.1 + npm-packlist: 2.1.5 + read-package-tree: 5.1.6 + resolve: 1.22.1 + rxjs: 6.6.7 + semver: 7.3.8 + ssri: 8.0.1 + strict-uri-encode: 2.0.0 + tapable: 2.2.1 + tar: 6.1.13 + true-case-path: 2.2.1 + transitivePeerDependencies: + - '@types/node' + - encoding + - supports-color + + file:../temp/tarballs/rushstack-eslint-config-3.2.0.tgz_esueefhpt5ql6xiqdj4wcgwfzi: + resolution: {tarball: file:../temp/tarballs/rushstack-eslint-config-3.2.0.tgz} + id: file:../temp/tarballs/rushstack-eslint-config-3.2.0.tgz name: '@rushstack/eslint-config' - version: 3.1.1 + version: 3.2.0 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '>=4.7.0' @@ -1820,91 +3794,152 @@ packages: - typescript dev: true - file:../temp/tarballs/rushstack-heft-0.50.0-rc.4.tgz: - resolution: {tarball: file:../temp/tarballs/rushstack-heft-0.50.0-rc.4.tgz} + file:../temp/tarballs/rushstack-heft-0.49.7.tgz: + resolution: {tarball: file:../temp/tarballs/rushstack-heft-0.49.7.tgz} name: '@rushstack/heft' - version: 0.50.0-rc.4 + version: 0.49.7 engines: {node: '>=10.13.0'} hasBin: true dependencies: - '@rushstack/heft-config-file': file:../temp/tarballs/rushstack-heft-config-file-0.11.4.tgz - '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.53.3.tgz - '@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.17.tgz - '@rushstack/ts-command-line': file:../temp/tarballs/rushstack-ts-command-line-4.13.1.tgz + '@rushstack/heft-config-file': file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz + '@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.18.tgz + '@rushstack/ts-command-line': file:../temp/tarballs/rushstack-ts-command-line-4.13.2.tgz '@types/tapable': 1.0.6 argparse: 1.0.10 chokidar: 3.4.3 fast-glob: 3.2.11 - git-repo-info: 2.1.1 - ignore: 5.1.9 + glob: 7.0.6 + glob-escape: 0.0.2 + prettier: 2.3.1 + semver: 7.3.8 tapable: 1.1.3 true-case-path: 2.2.1 - watchpack: 2.4.0 + transitivePeerDependencies: + - '@types/node' dev: true - file:../temp/tarballs/rushstack-heft-config-file-0.11.4.tgz: - resolution: {tarball: file:../temp/tarballs/rushstack-heft-config-file-0.11.4.tgz} + file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz: + resolution: {tarball: file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz} name: '@rushstack/heft-config-file' - version: 0.11.4 + version: 0.11.9 engines: {node: '>=10.13.0'} dependencies: - '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.53.3.tgz - '@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.17.tgz + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz + '@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.18.tgz jsonpath-plus: 4.0.0 + transitivePeerDependencies: + - '@types/node' dev: true - file:../temp/tarballs/rushstack-heft-lint-plugin-0.1.0-rc.4.tgz_uiwqoe5gpgzxjvn6xsx3zxy4mu: - resolution: {tarball: file:../temp/tarballs/rushstack-heft-lint-plugin-0.1.0-rc.4.tgz} - id: file:../temp/tarballs/rushstack-heft-lint-plugin-0.1.0-rc.4.tgz - name: '@rushstack/heft-lint-plugin' - version: 0.1.0-rc.4 - peerDependencies: - '@rushstack/heft': 0.50.0-rc.4 + file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz} + id: file:../temp/tarballs/rushstack-heft-config-file-0.11.9.tgz + name: '@rushstack/heft-config-file' + version: 0.11.9 + engines: {node: '>=10.13.0'} dependencies: - '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.50.0-rc.4.tgz - '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.53.3.tgz - semver: 7.3.7 - dev: true + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36 + '@rushstack/rig-package': file:../temp/tarballs/rushstack-rig-package-0.3.18.tgz + jsonpath-plus: 4.0.0 + transitivePeerDependencies: + - '@types/node' - file:../temp/tarballs/rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz_uiwqoe5gpgzxjvn6xsx3zxy4mu: - resolution: {tarball: file:../temp/tarballs/rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz} - id: file:../temp/tarballs/rushstack-heft-typescript-plugin-0.1.0-rc.4.tgz - name: '@rushstack/heft-typescript-plugin' - version: 0.1.0-rc.4 + file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz: + resolution: {tarball: file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz} + name: '@rushstack/node-core-library' + version: 3.55.2 peerDependencies: - '@rushstack/heft': 0.50.0-rc.4 + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true dependencies: - '@rushstack/heft': file:../temp/tarballs/rushstack-heft-0.50.0-rc.4.tgz - '@rushstack/heft-config-file': file:../temp/tarballs/rushstack-heft-config-file-0.11.4.tgz - '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.53.3.tgz - '@types/tapable': 1.0.6 - semver: 7.3.7 - tapable: 1.1.3 + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.1 + semver: 7.3.8 + z-schema: 5.0.3 dev: true - file:../temp/tarballs/rushstack-node-core-library-3.53.3.tgz: - resolution: {tarball: file:../temp/tarballs/rushstack-node-core-library-3.53.3.tgz} + file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz} + id: file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz name: '@rushstack/node-core-library' - version: 3.53.3 + version: 3.55.2 + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.1 - semver: 7.3.7 + semver: 7.3.8 z-schema: 5.0.3 - dev: true - file:../temp/tarballs/rushstack-rig-package-0.3.17.tgz: - resolution: {tarball: file:../temp/tarballs/rushstack-rig-package-0.3.17.tgz} + file:../temp/tarballs/rushstack-package-deps-hash-4.0.8.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/rushstack-package-deps-hash-4.0.8.tgz} + id: file:../temp/tarballs/rushstack-package-deps-hash-4.0.8.tgz + name: '@rushstack/package-deps-hash' + version: 4.0.8 + dependencies: + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36 + transitivePeerDependencies: + - '@types/node' + + file:../temp/tarballs/rushstack-rig-package-0.3.18.tgz: + resolution: {tarball: file:../temp/tarballs/rushstack-rig-package-0.3.18.tgz} name: '@rushstack/rig-package' - version: 0.3.17 + version: 0.3.18 dependencies: resolve: 1.22.1 strip-json-comments: 3.1.1 - dev: true + + file:../temp/tarballs/rushstack-rush-sdk-5.93.1.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/rushstack-rush-sdk-5.93.1.tgz} + id: file:../temp/tarballs/rushstack-rush-sdk-5.93.1.tgz + name: '@rushstack/rush-sdk' + version: 5.93.1 + dependencies: + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36 + '@types/node-fetch': 2.6.2 + tapable: 2.2.1 + transitivePeerDependencies: + - '@types/node' + dev: false + + file:../temp/tarballs/rushstack-stream-collator-4.0.227.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/rushstack-stream-collator-4.0.227.tgz} + id: file:../temp/tarballs/rushstack-stream-collator-4.0.227.tgz + name: '@rushstack/stream-collator' + version: 4.0.227 + dependencies: + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36 + '@rushstack/terminal': file:../temp/tarballs/rushstack-terminal-0.5.2.tgz_@types+node@14.18.36 + transitivePeerDependencies: + - '@types/node' + + file:../temp/tarballs/rushstack-terminal-0.5.2.tgz_@types+node@14.18.36: + resolution: {tarball: file:../temp/tarballs/rushstack-terminal-0.5.2.tgz} + id: file:../temp/tarballs/rushstack-terminal-0.5.2.tgz + name: '@rushstack/terminal' + version: 0.5.2 + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + '@rushstack/node-core-library': file:../temp/tarballs/rushstack-node-core-library-3.55.2.tgz_@types+node@14.18.36 + '@types/node': 14.18.36 + wordwrap: 1.0.0 file:../temp/tarballs/rushstack-tree-pattern-0.2.4.tgz: resolution: {tarball: file:../temp/tarballs/rushstack-tree-pattern-0.2.4.tgz} @@ -1912,13 +3947,12 @@ packages: version: 0.2.4 dev: true - file:../temp/tarballs/rushstack-ts-command-line-4.13.1.tgz: - resolution: {tarball: file:../temp/tarballs/rushstack-ts-command-line-4.13.1.tgz} + file:../temp/tarballs/rushstack-ts-command-line-4.13.2.tgz: + resolution: {tarball: file:../temp/tarballs/rushstack-ts-command-line-4.13.2.tgz} name: '@rushstack/ts-command-line' - version: 4.13.1 + version: 4.13.2 dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 colors: 1.2.5 string-argv: 0.3.1 - dev: true diff --git a/build-tests/install-test-workspace/workspace/pnpm-workspace.yaml b/build-tests/install-test-workspace/workspace/pnpm-workspace.yaml index 94d3cc6ca1f..57ea73e35fa 100644 --- a/build-tests/install-test-workspace/workspace/pnpm-workspace.yaml +++ b/build-tests/install-test-workspace/workspace/pnpm-workspace.yaml @@ -1,3 +1,5 @@ packages: + - rush-lib-test + - rush-sdk-test - typescript-newest-test - typescript-v3-test diff --git a/build-tests/install-test-workspace/workspace/rush-lib-test/package.json b/build-tests/install-test-workspace/workspace/rush-lib-test/package.json new file mode 100644 index 00000000000..124ffbbbdd9 --- /dev/null +++ b/build-tests/install-test-workspace/workspace/rush-lib-test/package.json @@ -0,0 +1,20 @@ +{ + "name": "rush-lib-test", + "version": "0.0.0", + "private": true, + "description": "A minimal example project that imports APIs from @rushstack/rush-lib", + "license": "MIT", + "scripts": { + "build": "rimraf ./lib/ && tsc", + "start": "node lib/start.js" + }, + "dependencies": { + "@microsoft/rush-lib": "*", + "colors": "^1.4.0" + }, + "devDependencies": { + "@types/node": "14.18.36", + "rimraf": "^4.1.2", + "typescript": "~4.8.4" + } +} diff --git a/build-tests/install-test-workspace/workspace/rush-lib-test/src/start.ts b/build-tests/install-test-workspace/workspace/rush-lib-test/src/start.ts new file mode 100644 index 00000000000..2e12140f28b --- /dev/null +++ b/build-tests/install-test-workspace/workspace/rush-lib-test/src/start.ts @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +console.log('rush-lib-test loading Rush configuration...'); + +// Important: Since we're calling an internal API, we need to use the unbundled .d.ts files +// instead of the normal .d.ts rollup +import { RushConfiguration } from '@microsoft/rush-lib/lib/'; + +const config = RushConfiguration.loadFromDefaultLocation(); +console.log(config.commonFolder); + +console.log('Calling an internal API...'); + +// Use a path-based import to access an internal API (do so at your own risk!) +import { VersionMismatchFinder } from '@microsoft/rush-lib/lib/logic/versionMismatch/VersionMismatchFinder'; + +VersionMismatchFinder.ensureConsistentVersions(config); diff --git a/build-tests/install-test-workspace/workspace/rush-lib-test/tsconfig.json b/build-tests/install-test-workspace/workspace/rush-lib-test/tsconfig.json new file mode 100644 index 00000000000..d297885ffd9 --- /dev/null +++ b/build-tests/install-test-workspace/workspace/rush-lib-test/tsconfig.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + + "compilerOptions": { + "outDir": "lib", + + "forceConsistentCasingInFileNames": true, + "jsx": "react", + "declaration": true, + "sourceMap": true, + "inlineSources": true, + "experimentalDecorators": true, + "strictNullChecks": true, + "types": ["node"], + + "module": "commonjs", + "target": "es6", + "lib": ["es5", "es2015.collection", "es2015.iterable", "es2015.promise"] + }, + "include": ["**/*.ts"], + "exclude": ["node_modules", "lib"] +} diff --git a/build-tests/install-test-workspace/workspace/rush-sdk-test/package.json b/build-tests/install-test-workspace/workspace/rush-sdk-test/package.json new file mode 100644 index 00000000000..9d0df0bb2f9 --- /dev/null +++ b/build-tests/install-test-workspace/workspace/rush-sdk-test/package.json @@ -0,0 +1,21 @@ +{ + "name": "rush-sdk-test", + "version": "0.0.0", + "private": true, + "description": "A minimal example project that imports APIs from @rushstack/rush-sdk", + "license": "MIT", + "scripts": { + "build": "rimraf ./lib/ && tsc", + "start": "node lib/start.js" + }, + "dependencies": { + "@rushstack/rush-sdk": "*", + "colors": "^1.4.0" + }, + "devDependencies": { + "@microsoft/rush-lib": "*", + "@types/node": "14.18.36", + "typescript": "~4.8.4", + "rimraf": "^4.1.2" + } +} diff --git a/build-tests/install-test-workspace/workspace/rush-sdk-test/src/start.ts b/build-tests/install-test-workspace/workspace/rush-sdk-test/src/start.ts new file mode 100644 index 00000000000..9db90dcf62d --- /dev/null +++ b/build-tests/install-test-workspace/workspace/rush-sdk-test/src/start.ts @@ -0,0 +1,17 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +console.log('rush-sdk-test loading Rush configuration...'); + +// Important: Since we're calling an internal API, we need to use the unbundled .d.ts files +// instead of the normal .d.ts rollup +import { RushConfiguration } from '@rushstack/rush-sdk/lib/'; + +const config = RushConfiguration.loadFromDefaultLocation(); +console.log(config.commonFolder); + +console.log('Calling an internal API...'); + +// Use a path-based import to access an internal API (do so at your own risk!) +import { GitEmailPolicy } from '@rushstack/rush-sdk/lib/logic/policy/GitEmailPolicy'; +console.log(GitEmailPolicy.getEmailExampleLines(config)); diff --git a/build-tests/install-test-workspace/workspace/rush-sdk-test/tsconfig.json b/build-tests/install-test-workspace/workspace/rush-sdk-test/tsconfig.json new file mode 100644 index 00000000000..db58331fccd --- /dev/null +++ b/build-tests/install-test-workspace/workspace/rush-sdk-test/tsconfig.json @@ -0,0 +1,22 @@ +{ + "$schema": "http://json.schemastore.org/tsconfig", + + "compilerOptions": { + "outDir": "lib", + + "forceConsistentCasingInFileNames": true, + "jsx": "react", + "declaration": true, + "sourceMap": true, + "inlineSources": true, + "experimentalDecorators": true, + "strictNullChecks": true, + "types": ["node"], + + "module": "commonjs", + "target": "es6", + "lib": ["es5", "es2015.collection", "es2015.iterable", "es2015.promise"], + "rootDir": "src" + }, + "include": ["src/**/*.ts"] +} diff --git a/build-tests/localization-plugin-test-01/package.json b/build-tests/localization-plugin-test-01/package.json index 70fcaf7982a..fd7e1fc268a 100644 --- a/build-tests/localization-plugin-test-01/package.json +++ b/build-tests/localization-plugin-test-01/package.json @@ -13,7 +13,7 @@ "@rushstack/webpack4-module-minifier-plugin": "workspace:*", "@rushstack/node-core-library": "workspace:*", "@rushstack/set-webpack-public-path-plugin": "workspace:*", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "html-webpack-plugin": "~4.5.2", "ts-loader": "6.0.0", "typescript": "~4.8.4", diff --git a/build-tests/localization-plugin-test-02/package.json b/build-tests/localization-plugin-test-02/package.json index 97532622889..f6c173b611d 100644 --- a/build-tests/localization-plugin-test-02/package.json +++ b/build-tests/localization-plugin-test-02/package.json @@ -14,7 +14,7 @@ "@rushstack/node-core-library": "workspace:*", "@rushstack/set-webpack-public-path-plugin": "workspace:*", "@types/lodash": "4.14.116", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "html-webpack-plugin": "~4.5.2", "lodash": "~4.17.15", "ts-loader": "6.0.0", diff --git a/build-tests/localization-plugin-test-03/package.json b/build-tests/localization-plugin-test-03/package.json index bb169e5ed1d..3fe70d099e7 100644 --- a/build-tests/localization-plugin-test-03/package.json +++ b/build-tests/localization-plugin-test-03/package.json @@ -12,7 +12,7 @@ "@rushstack/webpack4-localization-plugin": "workspace:*", "@rushstack/node-core-library": "workspace:*", "@rushstack/set-webpack-public-path-plugin": "workspace:*", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "html-webpack-plugin": "~4.5.2", "ts-loader": "6.0.0", "typescript": "~4.8.4", diff --git a/build-tests/rush-amazon-s3-build-cache-plugin-integration-test/package.json b/build-tests/rush-amazon-s3-build-cache-plugin-integration-test/package.json index ae851b72f3b..3e143b5e9b5 100644 --- a/build-tests/rush-amazon-s3-build-cache-plugin-integration-test/package.json +++ b/build-tests/rush-amazon-s3-build-cache-plugin-integration-test/package.json @@ -16,7 +16,7 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/rush-amazon-s3-build-cache-plugin": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "typescript": "~4.8.4", "http-proxy": "~1.18.1", diff --git a/build-tests/rush-lib-declaration-paths-test/package.json b/build-tests/rush-lib-declaration-paths-test/package.json index dd64da4111c..63559034233 100644 --- a/build-tests/rush-lib-declaration-paths-test/package.json +++ b/build-tests/rush-lib-declaration-paths-test/package.json @@ -15,6 +15,6 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/build-tests/rush-project-change-analyzer-test/package.json b/build-tests/rush-project-change-analyzer-test/package.json index 4eab1c5da19..7aa0104f09d 100644 --- a/build-tests/rush-project-change-analyzer-test/package.json +++ b/build-tests/rush-project-change-analyzer-test/package.json @@ -16,7 +16,7 @@ "devDependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@rushstack/heft-node-rig": "workspace:*" } } diff --git a/build-tests/set-webpack-public-path-plugin-webpack4-test/package.json b/build-tests/set-webpack-public-path-plugin-webpack4-test/package.json index 09a7dc83dde..40bb88b8bcc 100644 --- a/build-tests/set-webpack-public-path-plugin-webpack4-test/package.json +++ b/build-tests/set-webpack-public-path-plugin-webpack4-test/package.json @@ -15,7 +15,7 @@ "@rushstack/heft-typescript-plugin": "workspace:*", "@rushstack/heft-webpack4-plugin": "workspace:*", "@rushstack/set-webpack-public-path-plugin": "workspace:*", - "@types/webpack-env": "1.13.0", + "@types/webpack-env": "1.18.0", "eslint": "~8.7.0", "html-webpack-plugin": "~4.5.2", "typescript": "~4.8.4", diff --git a/build-tests/ts-command-line-test/package.json b/build-tests/ts-command-line-test/package.json index 6feebcd1e47..8d61f3936fe 100644 --- a/build-tests/ts-command-line-test/package.json +++ b/build-tests/ts-command-line-test/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@rushstack/ts-command-line": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "fs-extra": "~7.0.1", "typescript": "~4.8.4" } diff --git a/common/changes/@microsoft/rush/fix-upstream-phase_2022-11-16-08-22.json b/common/changes/@microsoft/rush/fix-upstream-phase_2022-11-16-08-22.json new file mode 100644 index 00000000000..25229491074 --- /dev/null +++ b/common/changes/@microsoft/rush/fix-upstream-phase_2022-11-16-08-22.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush", + "comment": "Modify the scheduling behavior of phased commands to schedule only the expressly enumerated phases in all selected projects, adding additional phases only where needed to satisfy dependencies.", + "type": "none" + } + ], + "packageName": "@microsoft/rush" +} diff --git a/common/changes/@microsoft/rush/stekycz-install-run-rush-pnpm_2023-01-05-09-13.json b/common/changes/@microsoft/rush/stekycz-install-run-rush-pnpm_2023-01-05-09-13.json deleted file mode 100644 index d7dbe8fa2bc..00000000000 --- a/common/changes/@microsoft/rush/stekycz-install-run-rush-pnpm_2023-01-05-09-13.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@microsoft/rush", - "comment": "Add install-run-rush-pnpm.js script", - "type": "none" - } - ], - "packageName": "@microsoft/rush" -} \ No newline at end of file diff --git a/common/changes/@microsoft/rush/update-jszip_2023-01-18-19-27.json b/common/changes/@microsoft/rush/update-jszip_2023-01-18-19-27.json deleted file mode 100644 index 19345bfc2d7..00000000000 --- a/common/changes/@microsoft/rush/update-jszip_2023-01-18-19-27.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@microsoft/rush", - "comment": "Update JSZip to 3.8.0.", - "type": "none" - } - ], - "packageName": "@microsoft/rush" -} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/enelson-package-update_2023-01-27-06-53.json b/common/changes/@rushstack/eslint-patch/enelson-package-update_2023-01-27-06-53.json new file mode 100644 index 00000000000..ceefa44d69e --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/enelson-package-update_2023-01-27-06-53.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-patch", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-patch" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/octogonz-bump-decoupled_2023-01-28-02-57.json b/common/changes/@rushstack/eslint-patch/octogonz-bump-decoupled_2023-01-28-02-57.json new file mode 100644 index 00000000000..ceefa44d69e --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/octogonz-bump-decoupled_2023-01-28-02-57.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-patch", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-patch" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-packlets/enelson-package-update_2023-01-27-06-53.json b/common/changes/@rushstack/eslint-plugin-packlets/enelson-package-update_2023-01-27-06-53.json new file mode 100644 index 00000000000..ff918c1ad1d --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-packlets/enelson-package-update_2023-01-27-06-53.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin-packlets", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin-packlets" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-packlets/octogonz-bump-decoupled_2023-01-28-02-57.json b/common/changes/@rushstack/eslint-plugin-packlets/octogonz-bump-decoupled_2023-01-28-02-57.json new file mode 100644 index 00000000000..ff918c1ad1d --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-packlets/octogonz-bump-decoupled_2023-01-28-02-57.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin-packlets", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin-packlets" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-security/enelson-package-update_2023-01-27-06-53.json b/common/changes/@rushstack/eslint-plugin-security/enelson-package-update_2023-01-27-06-53.json new file mode 100644 index 00000000000..a4477ef1a61 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-security/enelson-package-update_2023-01-27-06-53.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin-security", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin-security" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-security/octogonz-bump-decoupled_2023-01-28-02-57.json b/common/changes/@rushstack/eslint-plugin-security/octogonz-bump-decoupled_2023-01-28-02-57.json new file mode 100644 index 00000000000..a4477ef1a61 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-security/octogonz-bump-decoupled_2023-01-28-02-57.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin-security", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin-security" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin/enelson-package-update_2023-01-27-06-53.json b/common/changes/@rushstack/eslint-plugin/enelson-package-update_2023-01-27-06-53.json new file mode 100644 index 00000000000..dcf93469653 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin/enelson-package-update_2023-01-27-06-53.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin/octogonz-bump-decoupled_2023-01-28-02-57.json b/common/changes/@rushstack/eslint-plugin/octogonz-bump-decoupled_2023-01-28-02-57.json new file mode 100644 index 00000000000..dcf93469653 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin/octogonz-bump-decoupled_2023-01-28-02-57.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-plugin", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-plugin" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/enelson-package-update_2023-01-27-06-53.json b/common/changes/@rushstack/tree-pattern/enelson-package-update_2023-01-27-06-53.json new file mode 100644 index 00000000000..120c33a1f7e --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/enelson-package-update_2023-01-27-06-53.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/tree-pattern", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/tree-pattern" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/octogonz-bump-decoupled_2023-01-28-02-57.json b/common/changes/@rushstack/tree-pattern/octogonz-bump-decoupled_2023-01-28-02-57.json new file mode 100644 index 00000000000..120c33a1f7e --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/octogonz-bump-decoupled_2023-01-28-02-57.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/tree-pattern", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/tree-pattern" +} \ No newline at end of file diff --git a/common/config/azure-pipelines/npm-publish-rush.yaml b/common/config/azure-pipelines/npm-publish-rush.yaml index e650b4fa968..e0ede34dbcf 100644 --- a/common/config/azure-pipelines/npm-publish-rush.yaml +++ b/common/config/azure-pipelines/npm-publish-rush.yaml @@ -1,8 +1,12 @@ pool: vmImage: 'ubuntu-latest' variables: - NodeVersion: 14 - FORCE_COLOR: 1 + - name: NodeVersion + value: 14 + - name: FORCE_COLOR + value: 1 + - name: SourceBranch + value: $[ replace(replace(resources.repositories.self.ref, 'refs/heads/', ''), 'refs/pull/', 'refs/remotes/pull/') ] steps: - checkout: self persistCredentials: true @@ -10,15 +14,19 @@ steps: - template: templates/bump-versions.yaml parameters: VersionPolicyName: noRush + BranchName: $(SourceBranch) - template: templates/bump-versions.yaml parameters: VersionPolicyName: rush + BranchName: $(SourceBranch) - script: 'node libraries/rush-lib/scripts/plugins-prepublish.js' displayName: 'Prepublish workaround for rush-lib' - template: templates/publish.yaml parameters: VersionPolicyName: noRush + BranchName: $(SourceBranch) - template: templates/publish.yaml parameters: VersionPolicyName: rush + BranchName: $(SourceBranch) - template: templates/record-published-versions.yaml diff --git a/common/config/azure-pipelines/npm-publish.yaml b/common/config/azure-pipelines/npm-publish.yaml index 4acd224b5dc..c5e60b86b11 100644 --- a/common/config/azure-pipelines/npm-publish.yaml +++ b/common/config/azure-pipelines/npm-publish.yaml @@ -1,16 +1,22 @@ pool: vmImage: 'ubuntu-latest' variables: - NodeVersion: 14 - FORCE_COLOR: 1 + - name: NodeVersion + value: 14 + - name: FORCE_COLOR + value: 1 + - name: SourceBranch + value: $[ replace(replace(resources.repositories.self.ref, 'refs/heads/', ''), 'refs/pull/', 'refs/remotes/pull/') ] steps: - checkout: self persistCredentials: true - template: templates/build.yaml - # - template: templates/bump-versions.yaml - # parameters: - # VersionPolicyName: noRush + - template: templates/bump-versions.yaml + parameters: + VersionPolicyName: noRush + BranchName: $(SourceBranch) - template: templates/publish.yaml parameters: VersionPolicyName: noRush + BranchName: $(SourceBranch) - template: templates/record-published-versions.yaml diff --git a/common/config/azure-pipelines/templates/bump-versions.yaml b/common/config/azure-pipelines/templates/bump-versions.yaml index 35c0a59e549..b2b461b987a 100644 --- a/common/config/azure-pipelines/templates/bump-versions.yaml +++ b/common/config/azure-pipelines/templates/bump-versions.yaml @@ -1,7 +1,10 @@ parameters: - name: VersionPolicyName type: string + - name: BranchName + type: string + default: $(Build.SourceBranchName) steps: - - script: 'node common/scripts/install-run-rush.js version --bump --version-policy ${{ parameters.VersionPolicyName }} --target-branch $(Build.SourceBranchName)' + - script: 'node common/scripts/install-run-rush.js version --bump --version-policy ${{ parameters.VersionPolicyName }} --target-branch ${{ parameters.BranchName }}' displayName: 'Rush Version (Policy: ${{ parameters.VersionPolicyName }})' diff --git a/common/config/azure-pipelines/templates/publish.yaml b/common/config/azure-pipelines/templates/publish.yaml index dcc3c4fdedf..281d7edae9b 100644 --- a/common/config/azure-pipelines/templates/publish.yaml +++ b/common/config/azure-pipelines/templates/publish.yaml @@ -1,9 +1,12 @@ parameters: - name: VersionPolicyName type: string + - name: BranchName + type: string + default: $(Build.SourceBranchName) steps: - - script: 'node common/scripts/install-run-rush.js publish --apply --publish --include-all --target-branch $(Build.SourceBranchName) --add-commit-details --set-access-level public --tag dev' + - script: 'node common/scripts/install-run-rush.js publish --apply --publish --include-all --target-branch ${{ parameters.BranchName }} --add-commit-details --set-access-level public' displayName: 'Rush Publish (Policy: ${{ parameters.VersionPolicyName }})' env: NPM_AUTH_TOKEN: $(npmToken) diff --git a/common/config/rush/.pnpmfile.cjs b/common/config/rush/.pnpmfile.cjs index f73f3ae5d11..64915c96d11 100644 --- a/common/config/rush/.pnpmfile.cjs +++ b/common/config/rush/.pnpmfile.cjs @@ -27,6 +27,13 @@ module.exports = { * The return value is the updated object. */ function readPackage(packageJson, context) { + if (packageJson.name.startsWith('@radix-ui/')) { + if (packageJson.peerDependencies && packageJson.peerDependencies['react']) { + packageJson.peerDependencies['@types/react'] = '*'; + packageJson.peerDependencies['@types/react-dom'] = '*'; + } + } + switch (packageJson.name) { case '@jest/test-result': { // The `@jest/test-result` package takes undeclared dependencies on `jest-haste-map` diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index f5946fe8d28..8a8d72ffe65 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -10,10 +10,34 @@ "name": "@lifaon/path", "allowedCategories": [ "libraries" ] }, + { + "name": "@radix-ui/colors", + "allowedCategories": [ "libraries" ] + }, + { + "name": "@radix-ui/react-checkbox", + "allowedCategories": [ "libraries" ] + }, + { + "name": "@radix-ui/react-icons", + "allowedCategories": [ "libraries" ] + }, + { + "name": "@radix-ui/react-scroll-area", + "allowedCategories": [ "libraries" ] + }, + { + "name": "@radix-ui/react-tabs", + "allowedCategories": [ "libraries" ] + }, { "name": "@reduxjs/toolkit", "allowedCategories": [ "libraries" ] }, + { + "name": "@rushstack/rush-themed-ui", + "allowedCategories": [ "libraries" ] + }, { "name": "axios", "allowedCategories": [ "libraries" ] @@ -22,6 +46,10 @@ "name": "cors", "allowedCategories": [ "libraries" ] }, + { + "name": "dependency-path", + "allowedCategories": [ "libraries" ] + }, { "name": "office-ui-fabric-core", "allowedCategories": [ "libraries" ] diff --git a/common/config/rush/build-cache.json b/common/config/rush/build-cache.json index 65b85ddcb29..fdbd9246a0a 100644 --- a/common/config/rush/build-cache.json +++ b/common/config/rush/build-cache.json @@ -21,7 +21,14 @@ /** * Setting this property overrides the cache entry ID. If this property is set, it must contain - * a [hash] token. It may also contain a [projectName] or a [projectName:normalize] token. + * a [hash] token. + * + * Other available tokens: + * - [projectName] + * - [projectName:normalize] + * - [phaseName] + * - [phaseName:normalize] + * - [phaseName:trimPrefix] */ "cacheEntryNamePattern": "[projectName:normalize]-[phaseName:normalize]-[hash]", @@ -58,20 +65,23 @@ */ "amazonS3Configuration": { /** - * (Required unless s3Endpoint is specified) The name of the bucket to use for build cache (e.g. "my-bucket"). + * (Required unless s3Endpoint is specified) The name of the bucket to use for build cache. + * Example: "my-bucket" */ // "s3Bucket": "my-bucket", /** - * (Required unless s3Bucket is specified) The Amazon S3 endpoint of the bucket to use for build cache (e.g. "my-bucket.s3.us-east-2.amazonaws.com" or "http://localhost:9000"). - * This shold not include any path, use the s3Prefix to set the path. + * (Required unless s3Bucket is specified) The Amazon S3 endpoint of the bucket to use for build cache. + * This should not include any path; use the s3Prefix to set the path. + * Examples: "my-bucket.s3.us-east-2.amazonaws.com" or "http://localhost:9000" */ // "s3Endpoint": "https://my-bucket.s3.us-east-2.amazonaws.com", /** - * (Required) The Amazon S3 region of the bucket to use for build cache (e.g. "us-east-1"). + * (Required) The Amazon S3 region of the bucket to use for build cache. + * Example: "us-east-1" */ // "s3Region": "us-east-1", /** - * An optional prefix ("folder") for cache items. Should not start with / + * An optional prefix ("folder") for cache items. It should not start with "/". */ // "s3Prefix": "my-prefix", /** diff --git a/common/config/rush/command-line.json b/common/config/rush/command-line.json index 995a49b364a..7846e753ae4 100644 --- a/common/config/rush/command-line.json +++ b/common/config/rush/command-line.json @@ -56,17 +56,16 @@ // { // /** // * (Required) Determines the type of custom command. - // * Rush's "bulk" commands are invoked separately for each project. Rush will look in - // * each project's package.json file for a "scripts" entry whose name matches the - // * command name. By default, the command will run for every project in the repo, - // * according to the dependency graph (similar to how "rush build" works). + // * Rush's "bulk" commands are invoked separately for each project. By default, the command will run for + // * every project in the repo, according to the dependency graph (similar to how "rush build" works). // * The set of projects can be restricted e.g. using the "--to" or "--from" parameters. // */ // "commandKind": "bulk", // // /** // * (Required) The name that will be typed as part of the command line. This is also the name - // * of the "scripts" hook in the project's package.json file. + // * of the "scripts" hook in the project's package.json file (if "shellCommand" is not specified). + // * // * The name should be comprised of lower case words separated by hyphens or colons. The name should include an // * English verb (e.g. "deploy"). Use a hyphen to separate words (e.g. "upload-docs"). A group of related commands // * can be prefixed with a colon (e.g. "docs:generate", "docs:deploy", "docs:serve", etc). @@ -103,6 +102,16 @@ // "safeForSimultaneousRushProcesses": false, // // /** + // * (Optional) If the `shellCommand` field is set for a bulk command, Rush will invoke it for each + // * selected project; otherwise, Rush will invoke the package.json `"scripts"` entry matching Rush command name. + // * + // * The string is the path to a script that will be invoked using the OS shell. The working directory will be + // * the folder that contains rush.json. If custom parameters are associated with this command, their + // * values will be appended to the end of this string. + // */ + // // "shellCommand": "node common/scripts/my-bulk-command.js", + // + // /** // * (Required) If true, then this command is safe to be run in parallel, i.e. executed // * simultaneously for multiple projects. Similar to "rush build", regardless of parallelism // * projects will not start processing until their dependencies have completed processing. @@ -288,7 +297,7 @@ // { // /** // * (Required) Determines the type of custom parameter. - // * A "string" is a custom command-line parameter whose value is a simple text string. + // * A "string" is a custom command-line parameter whose argument is a single text string. // */ // "parameterKind": "string", // "longName": "--my-string", @@ -296,13 +305,6 @@ // // "associatedCommands": ["my-global-command"], // - // /** - // * The name of the argument, which will be shown in the command-line help. - // * - // * For example, if the parameter name is '--count" and the argument name is "NUMBER", - // * then the command-line help would display "--count NUMBER". The argument name must - // * be comprised of upper-case letters, numbers, and underscores. It should be kept short. - // */ // "argumentName": "SOME_TEXT", // // /** @@ -315,26 +317,126 @@ // /** // * (Required) Determines the type of custom parameter. // * A "choice" is a custom command-line parameter whose argument must be chosen from a list of - // * allowable alternatives. + // * allowable alternatives (similar to an enum). // */ // "parameterKind": "choice", // "longName": "--my-choice", // "description": "A custom choice parameter for the \"my-global-command\" custom command", // // "associatedCommands": ["my-global-command"], + // "required": false, // // /** - // * If true, this parameter must be included with the command. The default is false. + // * If a "defaultValue" is specified, then if the Rush command line is invoked without + // * this parameter, it will be automatically added with the "defaultValue" as the argument. + // * The value must be one of the defined alternatives. // */ - // "required": false, + // "defaultValue": "vanilla", // // /** - // * Normally if a parameter is omitted from the command line, it will not be passed - // * to the shell command. this value will be inserted by default. Whereas if a "defaultValue" - // * is defined, the parameter will always be passed to the shell command, and will use the - // * default value if unspecified. The value must be one of the defined alternatives. + // * (Required) A list of alternative argument values that can be chosen for this parameter. // */ - // "defaultValue": "vanilla", + // "alternatives": [ + // { + // /** + // * A token that is one of the alternatives that can be used with the choice parameter, + // * e.g. "vanilla" in "--flavor vanilla". + // */ + // "name": "vanilla", + // + // /** + // * A detailed description for the alternative that can be shown in the command-line help. + // * + // * Whenever you introduce commands/parameters, taking a little time to write meaningful + // * documentation can make a big difference for the developer experience in your repo. + // */ + // "description": "Use the vanilla flavor" + // }, + // + // { + // "name": "chocolate", + // "description": "Use the chocolate flavor" + // }, + // + // { + // "name": "strawberry", + // "description": "Use the strawberry flavor" + // } + // ] + // }, + // + // { + // /** + // * (Required) Determines the type of custom parameter. + // * An "integer" is a custom command-line parameter whose value is an integer number. + // */ + // "parameterKind": "integer", + // "longName": "--my-integer", + // "description": "A custom integer parameter for the \"my-global-command\" custom command", + // + // "associatedCommands": ["my-global-command"], + // "argumentName": "SOME_NUMBER", + // "required": false + // }, + // + // { + // /** + // * (Required) Determines the type of custom parameter. + // * An "integerList" is a custom command-line parameter whose argument is an integer. + // * The parameter can be specified multiple times to build a list. + // * + // * For example, if the parameter name is "--my-integer-list", then the custom command + // * might be invoked as + // * `rush my-global-command --my-integer-list 1 --my-integer-list 2 --my-integer-list 3` + // * and the parsed array would be [1,2,3]. + // */ + // "parameterKind": "integerList", + // "longName": "--my-integer-list", + // "description": "A custom integer list parameter for the \"my-global-command\" custom command", + // + // "associatedCommands": ["my-global-command"], + // "argumentName": "SOME_NUMBER", + // "required": false + // }, + // + // { + // /** + // * (Required) Determines the type of custom parameter. + // * An "stringList" is a custom command-line parameter whose argument is a text string. + // * The parameter can be specified multiple times to build a list. + // * + // * For example, if the parameter name is "--my-string-list", then the custom command + // * might be invoked as + // * `rush my-global-command --my-string-list A --my-string-list B --my-string-list C` + // * and the parsed array would be [A,B,C]. + // */ + // "parameterKind": "stringList", + // "longName": "--my-string-list", + // "description": "A custom string list parameter for the \"my-global-command\" custom command", + // + // "associatedCommands": ["my-global-command"], + // "argumentName": "SOME_TEXT", + // "required": false + // }, + // + // { + // /** + // * (Required) Determines the type of custom parameter. + // * A "choice" is a custom command-line parameter whose argument must be chosen from a list of + // * allowable alternatives (similar to an enum). + // * The parameter can be specified multiple times to build a list. + // * + // * For example, if the parameter name is "--my-choice-list", then the custom command + // * might be invoked as + // * `rush my-global-command --my-string-list vanilla --my-string-list chocolate` + // * and the parsed array would be [vanilla,chocolate]. + // */ + // "parameterKind": "choiceList", + // "longName": "--my-choice-list", + // "description": "A custom choice list parameter for the \"my-global-command\" custom command", + // + // "associatedCommands": ["my-global-command"], + // "required": false, // // /** // * (Required) A list of alternative argument values that can be chosen for this parameter. @@ -353,7 +455,7 @@ // * Whenever you introduce commands/parameters, taking a little time to write meaningful // * documentation can make a big difference for the developer experience in your repo. // */ - // "description": "Use the vanilla flavor (the default)" + // "description": "Use the vanilla flavor" // }, // // { diff --git a/common/config/rush/common-versions.json b/common/config/rush/common-versions.json index a7c18b893a0..959371baa05 100644 --- a/common/config/rush/common-versions.json +++ b/common/config/rush/common-versions.json @@ -4,6 +4,7 @@ */ { "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/common-versions.schema.json", + /** * A table that specifies a "preferred version" for a given NPM package. This feature is typically used * to hold back an indirect dependency to a specific older version, or to reduce duplication of indirect dependencies. @@ -33,6 +34,7 @@ // Workaround for https://github.com/microsoft/rushstack/issues/1466 "eslint": "~8.7.0" }, + /** * When set to true, for all projects in the repo, all dependencies will be automatically added as preferredVersions, * except in cases where different projects specify different version ranges for a given dependency. For older @@ -46,6 +48,7 @@ * will recalculate all version selections. */ // "implicitlyPreferredVersions": false, + /** * The "rush check" command can be used to enforce that every project in the repo must specify * the same SemVer range for a given dependency. However, sometimes exceptions are needed. diff --git a/common/config/rush/experiments.json b/common/config/rush/experiments.json index 71cea95ecd9..fef826208c3 100644 --- a/common/config/rush/experiments.json +++ b/common/config/rush/experiments.json @@ -41,4 +41,15 @@ * in common/config/rush/command-line.json. */ "phasedCommands": true + + /** + * If true, perform a clean install after when running `rush install` or `rush update` if the + * `.npmrc` file has changed since the last install. + */ + // "cleanInstallAfterNpmrcChanges": true, + + /** + * If true, print the outputs of shell commands defined in event hooks to the console. + */ + // "printEventHooksOutputToConsole": true } diff --git a/common/config/rush/nonbrowser-approved-packages.json b/common/config/rush/nonbrowser-approved-packages.json index cb8900f3779..baf93c45040 100644 --- a/common/config/rush/nonbrowser-approved-packages.json +++ b/common/config/rush/nonbrowser-approved-packages.json @@ -200,7 +200,7 @@ }, { "name": "@rushstack/rush-sdk", - "allowedCategories": [ "libraries" ] + "allowedCategories": [ "libraries", "tests" ] }, { "name": "@rushstack/set-webpack-public-path-plugin", diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index f24fa886383..50a1128c743 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -1,12 +1,132 @@ +/** + * This configuration file provides settings specific to the PNPM package manager. + * More documentation is available on the Rush website: https://rushjs.io + */ { - "$schema": "https://raw.githubusercontent.com/microsoft/rushstack/main/libraries/rush-lib/src/schemas/pnpm-config.schema.json", + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/pnpm-config.schema.json", + /** + * If true, then `rush install` and `rush update` will use the PNPM workspaces feature + * to perform the install, instead of the old model where Rush generated the symlinks + * for each projects's node_modules folder. + * + * When using workspaces, Rush will generate a `common/temp/pnpm-workspace.yaml` file referencing + * all local projects to install. Rush will also generate a `.pnpmfile.cjs` shim which implements + * Rush-specific features such as preferred versions. The user's `common/config/rush/.pnpmfile.cjs` + * is invoked by the shim. + * + * This option is strongly recommended. The default value is false. + */ + "useWorkspaces": true, + + /** + * If true, then Rush will add the `--strict-peer-dependencies` command-line parameter when + * invoking PNPM. This causes `rush update` to fail if there are unsatisfied peer dependencies, + * which is an invalid state that can cause build failures or incompatible dependency versions. + * (For historical reasons, JavaScript package managers generally do not treat this invalid + * state as an error.) + * + * PNPM documentation: https://pnpm.io/npmrc#strict-peer-dependencies + * + * The default value is false to avoid legacy compatibility issues. + * It is strongly recommended to set `strictPeerDependencies=true`. + */ "strictPeerDependencies": true, - "useWorkspaces": true, + /** + * Environment variables that will be provided to PNPM. + */ + // "environmentVariables": { + // "NODE_OPTIONS": { + // "value": "--max-old-space-size=4096", + // "override": false + // } + // }, + + /** + * Specifies the location of the PNPM store. There are two possible values: + * + * - `local` - use the `pnpm-store` folder in the current configured temp folder: + * `common/temp/pnpm-store` by default. + * - `global` - use PNPM's global store, which has the benefit of being shared + * across multiple repo folders, but the disadvantage of less isolation for builds + * (for example, bugs or incompatibilities when two repos use different releases of PNPM) + * + * In both cases, the store path can be overridden by the environment variable `RUSH_PNPM_STORE_PATH`. + * + * The default value is `local`. + */ + // "pnpmStore": "global", + /** + * If true, then `rush install` will report an error if manual modifications + * were made to the PNPM shrinkwrap file without running `rush update` afterwards. + * + * This feature protects against accidental inconsistencies that may be introduced + * if the PNPM shrinkwrap file (`pnpm-lock.yaml`) is manually edited. When this + * feature is enabled, `rush update` will append a hash to the file as a YAML comment, + * and then `rush update` and `rush install` will validate the hash. Note that this + * does not prohibit manual modifications, but merely requires `rush update` be run + * afterwards, ensuring that PNPM can report or repair any potential inconsistencies. + * + * To temporarily disable this validation when invoking `rush install`, use the + * `--bypass-policy` command-line parameter. + * + * The default value is false. + */ "preventManualShrinkwrapChanges": true, + /** + * The "globalOverrides" setting provides a simple mechanism for overriding version selections + * for all dependencies of all projects in the monorepo workspace. The settings are copied + * into the `pnpm.overrides` field of the `common/temp/package.json` file that is generated + * by Rush during installation. + * + * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by + * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, + * and `globalOverrides` has lowest precedence. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmoverrides + */ + "globalOverrides": { + // "example1": "^1.0.0", + // "example2": "npm:@company/example2@^1.0.0" + // TODO: Remove once https://github.com/dylang/npm-check/issues/499 + // has been closed and a new version of `npm-check` is published. + "package-json": "^7" + }, + + /** + * The `globalPeerDependencyRules` setting provides various settings for suppressing validation errors + * that are reported during installation with `strictPeerDependencies=true`. The settings are copied + * into the `pnpm.peerDependencyRules` field of the `common/temp/package.json` file that is generated + * by Rush during installation. + * + * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by + * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, + * and `globalOverrides` has lowest precedence. + * + * https://pnpm.io/package_json#pnpmpeerdependencyrules + */ + "globalPeerDependencyRules": { + // "ignoreMissing": ["@eslint/*"], + // "allowedVersions": { "react": "17" }, + // "allowAny": ["@babel/*"] + }, + + /** + * The `globalPackageExtension` setting provides a way to patch arbitrary package.json fields + * for any PNPM dependency of the monorepo. The settings are copied into the `pnpm.packageExtensions` + * field of the `common/temp/package.json` file that is generated by Rush during installation. + * The `globalPackageExtension` setting has similar capabilities as `.pnpmfile.cjs` but without + * the downsides of an executable script (nondeterminism, unreliable caching, performance concerns). + * + * Order of precedence: `.pnpmfile.cjs` has the highest precedence, followed by + * `unsupportedPackageJsonSettings`, `globalPeerDependencyRules`, `globalPackageExtensions`, + * and `globalOverrides` has lowest precedence. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmpackageextensions + */ "globalPackageExtensions": { "@emotion/core": { "peerDependencies": { @@ -158,10 +278,65 @@ } }, - // Remove once no longer on an RC branch - // This is needed to allow the RC version of Heft to satisfy peerDependencies on the - // normal version and vice-versa - "globalPeerDependencyRules": { - "allowAny": ["@rushstack/heft"] + /** + * The `globalNeverBuiltDependencies` setting suppresses the `preinstall`, `install`, and `postinstall` + * lifecycle events for the specified NPM dependencies. This is useful for scripts with poor practices + * such as downloading large binaries without retries or attempting to invoke OS tools such as + * a C++ compiler. (PNPM's terminology refers to these lifecycle events as "building" a package; + * it has nothing to do with build system operations such as `rush build` or `rushx build`.) + * The settings are copied into the `pnpm.neverBuiltDependencies` field of the `common/temp/package.json` + * file that is generated by Rush during installation. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmneverbuiltdependencies + */ + "globalNeverBuiltDependencies": [ + // "fsevents" + ], + + /** + * The `globalAllowedDeprecatedVersions` setting suppresses installation warnings for package + * versions that the NPM registry reports as being deprecated. This is useful if the + * deprecated package is an indirect dependency of an external package that has not released a fix. + * The settings are copied into the `pnpm.allowedDeprecatedVersions` field of the `common/temp/package.json` + * file that is generated by Rush during installation. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmalloweddeprecatedversions + * + * If you are working to eliminate a deprecated version, it's better to specify `allowedDeprecatedVersions` + * in the package.json file for individual Rush projects. + */ + "globalAllowedDeprecatedVersions": { + // "request": "*" + }, + + /** + * (THIS FIELD IS MACHINE GENERATED) The "globalPatchedDependencies" field is updated automatically + * by the `rush-pnpm patch-commit` command. It is a dictionary, where the key is an NPM package name + * and exact version, and the value is a relative path to the associated patch file. + * + * PNPM documentation: https://pnpm.io/package_json#pnpmpatcheddependencies + */ + "globalPatchedDependencies": {}, + + /** + * (USE AT YOUR OWN RISK) This is a free-form property bag that will be copied into + * the `common/temp/package.json` file that is generated by Rush during installation. + * This provides a way to experiment with new PNPM features. These settings will override + * any other Rush configuration associated with a given JSON field except for `.pnpmfile.cjs`. + * + * USAGE OF THIS SETTING IS NOT SUPPORTED BY THE RUSH MAINTAINERS AND MAY CAUSE RUSH + * TO MALFUNCTION. If you encounter a missing PNPM setting that you believe should + * be supported, please create a GitHub issue or PR. Note that Rush does not aim to + * support every possible PNPM setting, but rather to promote a battle-tested installation + * strategy that is known to provide a good experience for large teams with lots of projects. + */ + "unsupportedPackageJsonSettings": { + // "dependencies": { + // "not-a-good-practice": "*" + // }, + // "scripts": { + // "do-something": "echo Also not a good practice" + // }, + // "pnpm": { "futurePnpmFeature": true } } } diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 1275727f047..fc0b3e6c509 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -1,5 +1,8 @@ lockfileVersion: 5.4 +overrides: + package-json: ^7 + packageExtensionsChecksum: 41333d2d0915bdc80c909c31c409a3a2 importers: @@ -17,7 +20,7 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/ts-command-line': workspace:* '@types/js-yaml': 3.12.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 colors: ~1.2.1 js-yaml: ~3.13.1 @@ -35,7 +38,7 @@ importers: '@rushstack/heft': link:../heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/js-yaml': 3.12.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 ../../apps/api-extractor: @@ -44,14 +47,14 @@ importers: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': ~0.16.1 '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/node-core-library': workspace:* '@rushstack/rig-package': workspace:* '@rushstack/ts-command-line': workspace:* '@types/heft-jest': 1.0.1 '@types/lodash': 4.14.116 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 '@types/semver': 7.3.5 colors: ~1.2.1 @@ -75,11 +78,11 @@ importers: typescript: 4.8.4 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/heft-jest': 1.0.1 '@types/lodash': 4.14.116 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 '@types/semver': 7.3.5 @@ -89,15 +92,16 @@ importers: '@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.stat': 2.0.5 '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 + '@rushstack/heft': 0.49.3 '@rushstack/heft-config-file': workspace:* - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/node-core-library': workspace:* '@rushstack/rig-package': workspace:* '@rushstack/ts-command-line': workspace:* '@types/argparse': 1.0.38 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 + '@types/semver': 7.3.5 '@types/tapable': 1.0.6 '@types/watchpack': 2.4.0 argparse: ~1.0.9 @@ -128,12 +132,14 @@ importers: '@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.stat': 2.0.5 '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/argparse': 1.0.38 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 - '@types/watchpack': 2.4.0 + '@types/node': 14.18.36 + '@types/semver': 7.3.5 + colors: 1.2.5 + tslint: 5.20.1_typescript@4.8.4 typescript: 4.8.4 ../../apps/lockfile-explorer: @@ -148,7 +154,7 @@ importers: '@types/express': 4.17.13 '@types/heft-jest': 1.0.1 '@types/js-yaml': 3.12.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/update-notifier': ~6.0.1 colors: ~1.2.1 cors: ~2.8.5 @@ -174,7 +180,7 @@ importers: '@types/cors': 2.8.13 '@types/heft-jest': 1.0.1 '@types/js-yaml': 3.12.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/update-notifier': 6.0.1 ../../apps/lockfile-explorer-web: @@ -185,19 +191,20 @@ importers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-web-rig': workspace:* + '@rushstack/rush-themed-ui': workspace:* '@types/heft-jest': 1.0.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 - office-ui-fabric-core: ~11.0.1 + '@types/webpack-env': 1.18.0 react: ~16.13.1 react-dom: ~16.13.1 react-redux: ~8.0.4 redux: ~4.2.0 dependencies: - '@fluentui/react': 8.103.6_tlqvpdqnq63ssdllbmshthdmo4 + '@fluentui/react': 8.104.8_tlqvpdqnq63ssdllbmshthdmo4 '@lifaon/path': 2.1.0 '@reduxjs/toolkit': 1.8.6_qfynotfwlyrsyq662adyrweaoe + '@rushstack/rush-themed-ui': link:../../libraries/rush-themed-ui react: 16.13.1 react-dom: 16.13.1_react@16.13.1 react-redux: 8.0.5_6ue7j6tfp4xzdzadarjwzo6kwu @@ -209,8 +216,7 @@ importers: '@types/heft-jest': 1.0.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 - office-ui-fabric-core: 11.0.1 + '@types/webpack-env': 1.18.0 ../../apps/rundown: specifiers: @@ -219,7 +225,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@rushstack/ts-command-line': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 string-argv: ~0.3.1 dependencies: '@rushstack/node-core-library': link:../../libraries/node-core-library @@ -229,7 +236,8 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../apps/rush: specifiers: @@ -240,7 +248,8 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/rush-amazon-s3-build-cache-plugin': workspace:* '@rushstack/rush-azure-storage-build-cache-plugin': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/semver': 7.3.5 colors: ~1.2.1 semver: ~7.3.0 @@ -255,7 +264,8 @@ importers: '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@rushstack/rush-amazon-s3-build-cache-plugin': link:../../rush-plugins/rush-amazon-s3-build-cache-plugin '@rushstack/rush-azure-storage-build-cache-plugin': link:../../rush-plugins/rush-azure-storage-build-cache-plugin - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/semver': 7.3.5 ../../apps/trace-import: @@ -266,7 +276,7 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/ts-command-line': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 '@types/semver': 7.3.5 colors: ~1.2.1 @@ -285,7 +295,7 @@ importers: '@rushstack/heft': link:../heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 '@types/semver': 7.3.5 @@ -297,7 +307,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 typescript: ~4.8.4 devDependencies: @@ -307,7 +317,7 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 typescript: 4.8.4 @@ -319,7 +329,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 typescript: ~4.8.4 devDependencies: @@ -329,7 +339,7 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 typescript: 4.8.4 @@ -338,12 +348,14 @@ importers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../build-tests-samples/heft-serverless-stack-tutorial: specifiers: @@ -358,7 +370,7 @@ importers: '@serverless-stack/resources': 0.67.0 '@types/aws-lambda': 8.10.93 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 aws-cdk-lib: 2.7.0 constructs: ~10.0.98 eslint: ~8.7.0 @@ -375,7 +387,7 @@ importers: '@serverless-stack/resources': 0.67.0 '@types/aws-lambda': 8.10.93 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 aws-cdk-lib: 2.7.0_constructs@10.0.130 constructs: 10.0.130 eslint: 8.7.0 @@ -383,6 +395,7 @@ importers: ../../build-tests-samples/heft-storybook-react-tutorial: specifiers: + '@babel/core': ~7.20.0 '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-jest-plugin': workspace:* @@ -390,10 +403,12 @@ importers: '@rushstack/heft-storybook-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@rushstack/heft-webpack4-plugin': workspace:* + '@storybook/react': ~6.4.18 '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 css-loader: ~5.2.7 eslint: ~8.7.0 heft-storybook-react-tutorial-storykit: workspace:* @@ -410,6 +425,7 @@ importers: react-dom: 16.13.1_react@16.13.1 tslib: 2.3.1 devDependencies: + '@babel/core': 7.20.12 '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-jest-plugin': link:../../heft-plugins/heft-jest-plugin @@ -417,10 +433,12 @@ importers: '@rushstack/heft-storybook-plugin': link:../../heft-plugins/heft-storybook-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@rushstack/heft-webpack4-plugin': link:../../heft-plugins/heft-webpack4-plugin + '@storybook/react': 6.4.22_7f2tks6pv3f5nmtchaqa577f2q '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 css-loader: 5.2.7_webpack@4.44.2 eslint: 8.7.0 heft-storybook-react-tutorial-storykit: link:../heft-storybook-react-tutorial-storykit @@ -432,7 +450,7 @@ importers: ../../build-tests-samples/heft-storybook-react-tutorial-storykit: specifiers: - '@babel/core': ~7.17.0 + '@babel/core': ~7.20.0 '@storybook/addon-actions': ~6.4.18 '@storybook/addon-essentials': ~6.4.18 '@storybook/addon-links': ~6.4.18 @@ -442,10 +460,10 @@ importers: '@storybook/react': ~6.4.18 '@storybook/theming': ~6.4.18 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 babel-loader: ~8.2.3 css-loader: ~5.2.7 jest: ~29.3.1 @@ -456,23 +474,23 @@ importers: typescript: ~4.8.4 webpack: ~4.44.2 devDependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@storybook/addon-actions': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - '@storybook/addon-essentials': 6.4.22_q2qw673im4ojqxzlijezcm3cd4 + '@storybook/addon-essentials': 6.4.22_hkhg3iiojfv2fz4xaaqqghkthm '@storybook/addon-links': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/cli': 6.4.22_ucjucjjwhnbpf3qpr4bgjq3ada '@storybook/components': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/core-events': 6.4.22 - '@storybook/react': 6.4.22_6pxnn2xtr5yph4wackblrq76km + '@storybook/react': 6.4.22_g3vav2yjvpxundb7gjqt3iemz4 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 - babel-loader: 8.2.5_4bf35c6ryl6gwyrcrj2ykng7ny + '@types/webpack-env': 1.18.0 + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq css-loader: 5.2.7_webpack@4.44.2 - jest: 29.3.1_@types+node@12.20.24 + jest: 29.3.1_@types+node@14.18.36 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 style-loader: 2.0.0_webpack@4.44.2 @@ -487,7 +505,7 @@ importers: '@rushstack/heft-web-rig': workspace:* '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 heft-web-rig-library-tutorial: workspace:* react: ~16.13.1 react-dom: ~16.13.1 @@ -504,7 +522,7 @@ importers: '@rushstack/heft-web-rig': link:../../rigs/heft-web-rig '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 typescript: 4.8.4 ../../build-tests-samples/heft-web-rig-library-tutorial: @@ -514,7 +532,7 @@ importers: '@rushstack/heft-web-rig': workspace:* '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 react: ~16.13.1 react-dom: ~16.13.1 tslib: ~2.3.1 @@ -529,7 +547,7 @@ importers: '@rushstack/heft-web-rig': link:../../rigs/heft-web-rig '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 typescript: 4.8.4 ../../build-tests-samples/heft-webpack-basic-tutorial: @@ -543,7 +561,7 @@ importers: '@types/heft-jest': 1.0.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 css-loader: ~6.6.0 eslint: ~8.7.0 html-webpack-plugin: ~5.5.0 @@ -553,7 +571,7 @@ importers: style-loader: ~3.3.1 tslib: ~2.3.1 typescript: ~4.8.4 - webpack: ~5.68.0 + webpack: ~5.75.0 dependencies: react: 16.13.1 react-dom: 16.13.1_react@16.13.1 @@ -568,30 +586,26 @@ importers: '@types/heft-jest': 1.0.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 - css-loader: 6.6.0_webpack@5.68.0 + '@types/webpack-env': 1.18.0 + css-loader: 6.6.0_webpack@5.75.0 eslint: 8.7.0 - html-webpack-plugin: 5.5.0_webpack@5.68.0 - source-map-loader: 3.0.2_webpack@5.68.0 - style-loader: 3.3.1_webpack@5.68.0 + html-webpack-plugin: 5.5.0_webpack@5.75.0 + source-map-loader: 3.0.2_webpack@5.75.0 + style-loader: 3.3.1_webpack@5.75.0 typescript: 4.8.4 - webpack: 5.68.0 + webpack: 5.75.0 ../../build-tests-samples/packlets-tutorial: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* - '@rushstack/heft-lint-plugin': workspace:* - '@rushstack/heft-typescript-plugin': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 typescript: ~4.8.4 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft - '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin - '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 typescript: 4.8.4 @@ -602,7 +616,7 @@ importers: '@microsoft/teams-js': 1.3.0-beta.4 '@rushstack/node-core-library': workspace:* '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: ~7.0.1 typescript: ~4.8.4 devDependencies: @@ -611,7 +625,7 @@ importers: '@microsoft/teams-js': 1.3.0-beta.4 '@rushstack/node-core-library': link:../../libraries/node-core-library '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 @@ -620,14 +634,14 @@ importers: '@microsoft/api-documenter': workspace:* '@microsoft/api-extractor': workspace:* '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: ~7.0.1 typescript: ~4.8.4 devDependencies: '@microsoft/api-documenter': link:../../apps/api-documenter '@microsoft/api-extractor': link:../../apps/api-extractor '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 @@ -645,13 +659,13 @@ importers: specifiers: '@microsoft/api-extractor': workspace:* '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: ~7.0.1 typescript: ~4.8.4 devDependencies: '@microsoft/api-extractor': link:../../apps/api-extractor '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 @@ -659,7 +673,7 @@ importers: specifiers: '@microsoft/api-extractor': workspace:* '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 api-extractor-lib1-test: workspace:* fs-extra: ~7.0.1 typescript: ~4.8.4 @@ -668,7 +682,7 @@ importers: devDependencies: '@microsoft/api-extractor': link:../../apps/api-extractor '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 @@ -678,7 +692,7 @@ importers: '@microsoft/teams-js': 1.3.0-beta.4 '@rushstack/node-core-library': workspace:* '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 api-extractor-lib1-test: workspace:* api-extractor-lib2-test: workspace:* api-extractor-lib3-test: workspace:* @@ -690,7 +704,7 @@ importers: '@microsoft/teams-js': 1.3.0-beta.4 '@rushstack/node-core-library': link:../../libraries/node-core-library '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 api-extractor-lib1-test: link:../api-extractor-lib1-test api-extractor-lib2-test: link:../api-extractor-lib2-test api-extractor-lib3-test: link:../api-extractor-lib3-test @@ -704,7 +718,7 @@ importers: '@types/heft-jest': 1.0.1 '@types/jest': 29.2.5 '@types/long': 4.0.0 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: ~7.0.1 long: ^4.0.0 typescript: ~4.8.4 @@ -715,14 +729,14 @@ importers: devDependencies: '@microsoft/api-extractor': link:../../apps/api-extractor '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 ../../build-tests/api-extractor-test-02: specifiers: '@microsoft/api-extractor': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/semver': 7.3.5 api-extractor-test-01: workspace:* fs-extra: ~7.0.1 @@ -734,20 +748,20 @@ importers: semver: 7.3.8 devDependencies: '@microsoft/api-extractor': link:../../apps/api-extractor - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 ../../build-tests/api-extractor-test-03: specifiers: '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 api-extractor-test-02: workspace:* fs-extra: ~7.0.1 typescript: ~4.8.4 devDependencies: '@types/jest': 29.2.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 api-extractor-test-02: link:../api-extractor-test-02 fs-extra: 7.0.1 typescript: 4.8.4 @@ -768,16 +782,14 @@ importers: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* - '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/parser': ~5.38.0 eslint: ~7.30.0 typescript: ~4.8.4 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft - '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/parser': 5.38.1_xptyflz73tdwkjjssjsy5r76ri eslint: 7.30.0 typescript: 4.8.4 @@ -791,7 +803,7 @@ importers: '@rushstack/heft-webpack4-plugin': workspace:* '@rushstack/set-webpack-public-path-plugin': workspace:* '@rushstack/webpack4-module-minifier-plugin': workspace:* - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: ~4.5.2 typescript: ~4.8.4 webpack: ~4.44.2 @@ -804,7 +816,7 @@ importers: '@rushstack/heft-webpack4-plugin': link:../../heft-plugins/heft-webpack4-plugin '@rushstack/set-webpack-public-path-plugin': link:../../webpack/set-webpack-public-path-plugin '@rushstack/webpack4-module-minifier-plugin': link:../../webpack/webpack4-module-minifier-plugin - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: 4.5.2_webpack@4.44.2 typescript: 4.8.4 webpack: 4.44.2 @@ -817,10 +829,10 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@rushstack/heft-webpack5-plugin': workspace:* - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: ~4.5.2 typescript: ~4.8.4 - webpack: ~5.68.0 + webpack: ~5.75.0 webpack-bundle-analyzer: ~4.5.0 devDependencies: '@rushstack/hashed-folder-copy-plugin': link:../../webpack/hashed-folder-copy-plugin @@ -828,12 +840,37 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@rushstack/heft-webpack5-plugin': link:../../heft-plugins/heft-webpack5-plugin - '@types/webpack-env': 1.13.0 - html-webpack-plugin: 4.5.2_webpack@5.68.0 + '@types/webpack-env': 1.18.0 + html-webpack-plugin: 4.5.2_webpack@5.75.0 typescript: 4.8.4 - webpack: 5.68.0 + webpack: 5.75.0 webpack-bundle-analyzer: 4.5.0 + ../../build-tests/heft-action-plugin: + specifiers: + '@rushstack/eslint-config': workspace:* + '@rushstack/heft': workspace:* + '@rushstack/node-core-library': workspace:* + '@types/node': 14.18.36 + eslint: ~8.7.0 + typescript: ~4.8.4 + dependencies: + '@rushstack/node-core-library': link:../../libraries/node-core-library + devDependencies: + '@rushstack/eslint-config': link:../../eslint/eslint-config + '@rushstack/heft': link:../../apps/heft + '@types/node': 14.18.36 + eslint: 8.7.0 + typescript: 4.8.4 + + ../../build-tests/heft-action-plugin-test: + specifiers: + '@rushstack/heft': workspace:* + heft-action-plugin: workspace:* + devDependencies: + '@rushstack/heft': link:../../apps/heft + heft-action-plugin: link:../heft-action-plugin + ../../build-tests/heft-copy-files-test: specifiers: '@rushstack/heft': workspace:* @@ -844,9 +881,7 @@ importers: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* - '@rushstack/heft-lint-plugin': workspace:* - '@rushstack/heft-typescript-plugin': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 eslint: ~8.7.0 tapable: 1.1.3 @@ -856,9 +891,7 @@ importers: devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft - '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin - '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 eslint: 8.7.0 typescript: 4.8.4 @@ -867,18 +900,14 @@ importers: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* - '@rushstack/heft-lint-plugin': workspace:* - '@rushstack/heft-typescript-plugin': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 heft-example-plugin-01: workspace:* typescript: ~4.8.4 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft - '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin - '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 heft-example-plugin-01: link:../heft-example-plugin-01 typescript: 4.8.4 @@ -890,7 +919,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 fastify: ~3.16.1 typescript: ~4.8.4 @@ -902,7 +931,7 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 typescript: 4.8.4 @@ -951,13 +980,13 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-jest-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 heft-minimal-rig-test: workspace:* devDependencies: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-jest-plugin': link:../../heft-plugins/heft-jest-plugin '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 heft-minimal-rig-test: link:../heft-minimal-rig-test ../../build-tests/heft-node-everything-esm-module-test: @@ -970,7 +999,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 heft-example-plugin-01: workspace:* heft-example-plugin-02: workspace:* @@ -986,7 +1015,7 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 heft-example-plugin-01: link:../heft-example-plugin-01 heft-example-plugin-02: link:../heft-example-plugin-02 @@ -1004,7 +1033,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 heft-example-plugin-01: workspace:* heft-example-plugin-02: workspace:* @@ -1020,7 +1049,7 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 heft-example-plugin-01: link:../heft-example-plugin-01 heft-example-plugin-02: link:../heft-example-plugin-02 @@ -1035,7 +1064,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 typescript: ~4.8.4 dependencies: @@ -1043,9 +1072,7 @@ importers: devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft - '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin - '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 typescript: 4.8.4 @@ -1081,7 +1108,7 @@ importers: '@types/heft-jest': 1.0.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 autoprefixer: ~10.4.2 buttono: ~1.0.2 css-loader: ~5.2.7 @@ -1109,13 +1136,13 @@ importers: '@types/heft-jest': 1.0.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 - '@types/webpack-env': 1.13.0 - autoprefixer: 10.4.13_postcss@8.4.19 + '@types/webpack-env': 1.18.0 + autoprefixer: 10.4.13_postcss@8.4.21 css-loader: 5.2.7_webpack@4.44.2 eslint: 8.7.0 html-webpack-plugin: 4.5.2_webpack@4.44.2 - postcss: 8.4.19 - postcss-loader: 4.1.0_cevnyqd5mhktybfrpstjugctw4 + postcss: 8.4.21 + postcss-loader: 4.1.0_q6bo6nn7or7rkhjb274oworunu react: 16.13.1 react-dom: 16.13.1_react@16.13.1 sass: 1.3.2 @@ -1133,7 +1160,7 @@ importers: '@rushstack/heft-typescript-plugin': workspace:* '@types/heft-jest': 1.0.1 '@types/jest': 29.2.5 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: ~8.7.0 tslint: ~5.20.1 tslint-microsoft-contrib: ~6.2.0 @@ -1146,7 +1173,7 @@ importers: '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@types/heft-jest': 1.0.1 '@types/jest': 29.2.5 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: 8.7.0 tslint: 5.20.1_typescript@4.8.4 tslint-microsoft-contrib: 6.2.0_is64cncltak2c2767drphpzcku @@ -1170,7 +1197,7 @@ importers: '@rushstack/heft-typescript-plugin': workspace:* '@rushstack/heft-webpack4-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: ~8.7.0 file-loader: ~6.0.0 tslint: ~5.20.1 @@ -1186,7 +1213,7 @@ importers: '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@rushstack/heft-webpack4-plugin': link:../../heft-plugins/heft-webpack4-plugin '@types/heft-jest': 1.0.1 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: 8.7.0 file-loader: 6.0.0_webpack@4.44.2 tslint: 5.20.1_typescript@4.8.4 @@ -1206,13 +1233,13 @@ importers: '@rushstack/module-minifier': workspace:* '@rushstack/webpack5-module-minifier-plugin': workspace:* '@types/heft-jest': 1.0.1 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: ~8.7.0 html-webpack-plugin: ~5.5.0 tslint: ~5.20.1 tslint-microsoft-contrib: ~6.2.0 typescript: ~4.8.4 - webpack: ~5.68.0 + webpack: ~5.75.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft @@ -1224,13 +1251,13 @@ importers: '@rushstack/module-minifier': link:../../libraries/module-minifier '@rushstack/webpack5-module-minifier-plugin': link:../../webpack/webpack5-module-minifier-plugin '@types/heft-jest': 1.0.1 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: 8.7.0 - html-webpack-plugin: 5.5.0_webpack@5.68.0 + html-webpack-plugin: 5.5.0_webpack@5.75.0 tslint: 5.20.1_typescript@4.8.4 tslint-microsoft-contrib: 6.2.0_is64cncltak2c2767drphpzcku typescript: 4.8.4 - webpack: 5.68.0 + webpack: 5.75.0 ../../build-tests/install-test-workspace: specifiers: @@ -1240,6 +1267,7 @@ importers: '@rushstack/heft-lint-plugin': workspace:* '@rushstack/heft-typescript-plugin': workspace:* '@rushstack/node-core-library': workspace:* + '@rushstack/rush-sdk': workspace:* devDependencies: '@microsoft/rush-lib': link:../../libraries/rush-lib '@rushstack/eslint-config': link:../../eslint/eslint-config @@ -1247,6 +1275,7 @@ importers: '@rushstack/heft-lint-plugin': link:../../heft-plugins/heft-lint-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@rushstack/node-core-library': link:../../libraries/node-core-library + '@rushstack/rush-sdk': link:../../libraries/rush-sdk ../../build-tests/localization-plugin-test-01: specifiers: @@ -1254,7 +1283,7 @@ importers: '@rushstack/set-webpack-public-path-plugin': workspace:* '@rushstack/webpack4-localization-plugin': workspace:* '@rushstack/webpack4-module-minifier-plugin': workspace:* - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: ~4.5.2 ts-loader: 6.0.0 typescript: ~4.8.4 @@ -1267,7 +1296,7 @@ importers: '@rushstack/set-webpack-public-path-plugin': link:../../webpack/set-webpack-public-path-plugin '@rushstack/webpack4-localization-plugin': link:../../webpack/webpack4-localization-plugin '@rushstack/webpack4-module-minifier-plugin': link:../../webpack/webpack4-module-minifier-plugin - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: 4.5.2_webpack@4.44.2 ts-loader: 6.0.0_typescript@4.8.4 typescript: 4.8.4 @@ -1283,7 +1312,7 @@ importers: '@rushstack/webpack4-localization-plugin': workspace:* '@rushstack/webpack4-module-minifier-plugin': workspace:* '@types/lodash': 4.14.116 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: ~4.5.2 lodash: ~4.17.15 ts-loader: 6.0.0 @@ -1298,7 +1327,7 @@ importers: '@rushstack/webpack4-localization-plugin': link:../../webpack/webpack4-localization-plugin '@rushstack/webpack4-module-minifier-plugin': link:../../webpack/webpack4-module-minifier-plugin '@types/lodash': 4.14.116 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: 4.5.2_webpack@4.44.2 lodash: 4.17.21 ts-loader: 6.0.0_typescript@4.8.4 @@ -1313,7 +1342,7 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/set-webpack-public-path-plugin': workspace:* '@rushstack/webpack4-localization-plugin': workspace:* - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: ~4.5.2 ts-loader: 6.0.0 typescript: ~4.8.4 @@ -1325,7 +1354,7 @@ importers: '@rushstack/node-core-library': link:../../libraries/node-core-library '@rushstack/set-webpack-public-path-plugin': link:../../webpack/set-webpack-public-path-plugin '@rushstack/webpack4-localization-plugin': link:../../webpack/webpack4-localization-plugin - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 html-webpack-plugin: 4.5.2_webpack@4.44.2 ts-loader: 6.0.0_typescript@4.8.4 typescript: 4.8.4 @@ -1342,7 +1371,7 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/rush-amazon-s3-build-cache-plugin': workspace:* '@types/http-proxy': ~1.17.8 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 http-proxy: ~1.18.1 typescript: ~4.8.4 @@ -1353,7 +1382,7 @@ importers: '@rushstack/node-core-library': link:../../libraries/node-core-library '@rushstack/rush-amazon-s3-build-cache-plugin': link:../../rush-plugins/rush-amazon-s3-build-cache-plugin '@types/http-proxy': 1.17.9 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 http-proxy: 1.18.1 typescript: 4.8.4 @@ -1365,7 +1394,7 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 dependencies: '@microsoft/rush-lib': link:../../libraries/rush-lib devDependencies: @@ -1373,7 +1402,7 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@rushstack/node-core-library': link:../../libraries/node-core-library - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../build-tests/rush-project-change-analyzer-test: specifiers: @@ -1382,7 +1411,7 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 dependencies: '@microsoft/rush-lib': link:../../libraries/rush-lib '@rushstack/node-core-library': link:../../libraries/node-core-library @@ -1390,7 +1419,7 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../build-tests/set-webpack-public-path-plugin-webpack4-test: specifiers: @@ -1400,7 +1429,7 @@ importers: '@rushstack/heft-typescript-plugin': workspace:* '@rushstack/heft-webpack4-plugin': workspace:* '@rushstack/set-webpack-public-path-plugin': workspace:* - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: ~8.7.0 html-webpack-plugin: ~4.5.2 typescript: ~4.8.4 @@ -1412,7 +1441,7 @@ importers: '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@rushstack/heft-webpack4-plugin': link:../../heft-plugins/heft-webpack4-plugin '@rushstack/set-webpack-public-path-plugin': link:../../webpack/set-webpack-public-path-plugin - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 eslint: 8.7.0 html-webpack-plugin: 4.5.2_webpack@4.44.2 typescript: 4.8.4 @@ -1421,12 +1450,12 @@ importers: ../../build-tests/ts-command-line-test: specifiers: '@rushstack/ts-command-line': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: ~7.0.1 typescript: ~4.8.4 devDependencies: '@rushstack/ts-command-line': link:../../libraries/ts-command-line - '@types/node': 12.20.24 + '@types/node': 14.18.36 fs-extra: 7.0.1 typescript: 4.8.4 @@ -1463,23 +1492,23 @@ importers: ../../eslint/eslint-patch: specifiers: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 - '@types/node': 12.20.24 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 + '@types/node': 14.18.36 devDependencies: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq - '@types/node': 12.20.24 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e + '@types/node': 14.18.36 ../../eslint/eslint-plugin: specifiers: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/tree-pattern': workspace:* '@types/eslint': 8.2.0 '@types/estree': 0.0.50 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/experimental-utils': ~5.38.0 '@typescript-eslint/parser': ~5.38.0 '@typescript-eslint/typescript-estree': ~5.38.0 @@ -1489,12 +1518,12 @@ importers: '@rushstack/tree-pattern': link:../../libraries/tree-pattern '@typescript-eslint/experimental-utils': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi devDependencies: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/eslint': 8.2.0 '@types/estree': 0.0.50 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/parser': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 eslint: 8.7.0 @@ -1502,13 +1531,13 @@ importers: ../../eslint/eslint-plugin-packlets: specifiers: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/tree-pattern': workspace:* '@types/eslint': 8.2.0 '@types/estree': 0.0.50 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/experimental-utils': ~5.38.0 '@typescript-eslint/parser': ~5.38.0 '@typescript-eslint/typescript-estree': ~5.38.0 @@ -1518,12 +1547,12 @@ importers: '@rushstack/tree-pattern': link:../../libraries/tree-pattern '@typescript-eslint/experimental-utils': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi devDependencies: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/eslint': 8.2.0 '@types/estree': 0.0.50 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/parser': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 eslint: 8.7.0 @@ -1531,13 +1560,13 @@ importers: ../../eslint/eslint-plugin-security: specifiers: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/tree-pattern': workspace:* '@types/eslint': 8.2.0 '@types/estree': 0.0.50 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/experimental-utils': ~5.38.0 '@typescript-eslint/parser': ~5.38.0 '@typescript-eslint/typescript-estree': ~5.38.0 @@ -1547,12 +1576,12 @@ importers: '@rushstack/tree-pattern': link:../../libraries/tree-pattern '@typescript-eslint/experimental-utils': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi devDependencies: - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/eslint': 8.2.0 '@types/estree': 0.0.50 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@typescript-eslint/parser': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi '@typescript-eslint/typescript-estree': 5.38.1_typescript@4.8.4 eslint: 8.7.0 @@ -1594,8 +1623,12 @@ importers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 + '@rushstack/node-core-library': workspace:* + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 eslint: ~8.7.0 + webpack: ~5.75.0 + webpack-dev-server: ~4.9.3 dependencies: '@rushstack/debug-certificate-manager': link:../../libraries/debug-certificate-manager devDependencies: @@ -1603,8 +1636,11 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 eslint: 8.7.0 + webpack: 5.75.0 + webpack-dev-server: 4.9.3_webpack@5.75.0 ../../heft-plugins/heft-jest-plugin: specifiers: @@ -1612,6 +1648,7 @@ importers: '@jest/reporters': ~29.3.1 '@jest/transform': ~29.3.1 '@jest/types': 29.3.1 + '@microsoft/api-extractor': workspace:* '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-config-file': workspace:* @@ -1621,7 +1658,7 @@ importers: '@rushstack/node-core-library': workspace:* '@types/heft-jest': 1.0.1 '@types/lodash': 4.14.116 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~8.7.0 jest-config: ~29.3.1 jest-environment-jsdom: ~29.3.1 @@ -1637,12 +1674,13 @@ importers: '@jest/transform': 29.3.1 '@rushstack/heft-config-file': link:../../libraries/heft-config-file '@rushstack/node-core-library': link:../../libraries/node-core-library - jest-config: 29.3.1_@types+node@12.20.24 + jest-config: 29.3.1_@types+node@14.18.36 jest-resolve: 29.3.1 jest-snapshot: 29.3.1 lodash: 4.17.21 devDependencies: '@jest/types': 29.3.1 + '@microsoft/api-extractor': link:../../apps/api-extractor '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-legacy': /@rushstack/heft/0.47.0 @@ -1650,7 +1688,7 @@ importers: '@rushstack/heft-typescript-plugin': link:../heft-typescript-plugin '@types/heft-jest': 1.0.1 '@types/lodash': 4.14.116 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 8.7.0 jest-environment-jsdom: 29.3.1 jest-environment-node: 29.3.1 @@ -1699,7 +1737,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@rushstack/typings-generator': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 eslint: ~8.7.0 postcss: ~8.4.6 postcss-modules: ~1.5.0 @@ -1708,7 +1747,7 @@ importers: '@rushstack/heft-config-file': link:../../libraries/heft-config-file '@rushstack/node-core-library': link:../../libraries/node-core-library '@rushstack/typings-generator': link:../../libraries/typings-generator - postcss: 8.4.19 + postcss: 8.4.21 postcss-modules: 1.5.0 sass: 1.49.11 devDependencies: @@ -1716,7 +1755,8 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 eslint: 8.7.0 ../../heft-plugins/heft-serverless-stack-plugin: @@ -1727,16 +1767,14 @@ importers: '@rushstack/heft-webpack4-plugin': workspace:* '@rushstack/heft-webpack5-plugin': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 dependencies: '@rushstack/node-core-library': link:../../libraries/node-core-library devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@rushstack/heft-webpack4-plugin': link:../heft-webpack4-plugin - '@rushstack/heft-webpack5-plugin': link:../heft-webpack5-plugin - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../heft-plugins/heft-storybook-plugin: specifiers: @@ -1746,45 +1784,14 @@ importers: '@rushstack/heft-webpack4-plugin': workspace:* '@rushstack/heft-webpack5-plugin': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/node': 14.18.36 dependencies: '@rushstack/node-core-library': link:../../libraries/node-core-library devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@rushstack/heft-webpack4-plugin': link:../heft-webpack4-plugin - '@rushstack/heft-webpack5-plugin': link:../heft-webpack5-plugin - '@types/node': 12.20.24 - - ../../heft-plugins/heft-typescript-plugin: - specifiers: - '@rushstack/eslint-config': workspace:* - '@rushstack/heft': workspace:* - '@rushstack/heft-config-file': workspace:* - '@rushstack/heft-legacy': npm:@rushstack/heft@0.47.0 - '@rushstack/heft-node-rig': 1.11.0 - '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 - '@types/semver': 7.3.5 - '@types/tapable': 1.0.6 - semver: ~7.3.0 - tapable: 1.1.3 - typescript: ~4.8.4 - dependencies: - '@rushstack/heft-config-file': link:../../libraries/heft-config-file - '@rushstack/node-core-library': link:../../libraries/node-core-library - '@types/tapable': 1.0.6 - semver: 7.3.8 - tapable: 1.1.3 - devDependencies: - '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': link:../../apps/heft - '@rushstack/heft-legacy': /@rushstack/heft/0.47.0 - '@rushstack/heft-node-rig': 1.11.0_ljisdvnpfstpdcqj3migsfn35m - '@types/node': 12.20.24 - '@types/semver': 7.3.5 - typescript: 4.8.4 + '@types/node': 14.18.36 ../../heft-plugins/heft-webpack4-plugin: specifiers: @@ -1793,9 +1800,7 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 - '@types/tapable': 1.0.6 - '@types/watchpack': 2.4.0 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 tapable: 1.1.3 watchpack: 2.4.0 @@ -1812,8 +1817,7 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 - '@types/watchpack': 2.4.0 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 webpack: 4.44.2 @@ -1824,48 +1828,40 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 - '@types/tapable': 1.0.6 - '@types/watchpack': 2.4.0 - tapable: 1.1.3 - watchpack: 2.4.0 - webpack: ~5.68.0 + '@types/node': 14.18.36 + webpack: ~5.75.0 webpack-dev-server: ~4.9.3 dependencies: '@rushstack/debug-certificate-manager': link:../../libraries/debug-certificate-manager '@rushstack/node-core-library': link:../../libraries/node-core-library - '@types/tapable': 1.0.6 - tapable: 1.1.3 - watchpack: 2.4.0 - webpack-dev-server: 4.9.3_webpack@5.68.0 + webpack-dev-server: 4.9.3_webpack@5.75.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 - '@types/watchpack': 2.4.0 - webpack: 5.68.0 + '@types/node': 14.18.36 + webpack: 5.75.0 ../../libraries/api-extractor-model: specifiers: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': ~0.16.1 '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/node-core-library': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 dependencies: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 '@rushstack/node-core-library': link:../node-core-library devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../libraries/debug-certificate-manager: specifiers: @@ -1873,7 +1869,8 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/node-forge': 1.0.4 node-forge: ~1.3.1 sudo: ~1.0.3 @@ -1885,18 +1882,19 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/node-forge': 1.0.4 ../../libraries/heft-config-file: specifiers: '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@rushstack/node-core-library': workspace:* '@rushstack/rig-package': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jsonpath-plus: ~4.0.0 dependencies: '@rushstack/node-core-library': link:../node-core-library @@ -1904,22 +1902,24 @@ importers: jsonpath-plus: 4.0.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../libraries/load-themed-styles: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-web-rig': workspace:* - '@types/webpack-env': 1.13.0 + '@types/heft-jest': 1.0.1 + '@types/webpack-env': 1.18.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-web-rig': link:../../rigs/heft-web-rig - '@types/webpack-env': 1.13.0 + '@types/heft-jest': 1.0.1 + '@types/webpack-env': 1.18.0 ../../libraries/localization-utilities: specifiers: @@ -1928,7 +1928,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@rushstack/typings-generator': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/xmldoc': 1.1.4 pseudolocale: ~1.1.0 xmldoc: ~1.1.2 @@ -1941,7 +1942,8 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/xmldoc': 1.1.4 ../../libraries/module-minifier: @@ -1950,32 +1952,34 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/worker-pool': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/serialize-javascript': 5.0.2 serialize-javascript: 6.0.0 source-map: ~0.7.3 - terser: 5.9.0 + terser: 5.16.1 dependencies: '@rushstack/worker-pool': link:../worker-pool - '@types/node': 12.20.24 serialize-javascript: 6.0.0 source-map: 0.7.4 - terser: 5.9.0 + terser: 5.16.1 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/serialize-javascript': 5.0.2 ../../libraries/node-core-library: specifiers: '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@types/fs-extra': 7.0.0 '@types/heft-jest': 1.0.1 '@types/jju': 1.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 '@types/semver': 7.3.5 colors: ~1.2.1 @@ -1986,21 +1990,21 @@ importers: semver: ~7.3.0 z-schema: ~5.0.2 dependencies: - '@types/node': 12.20.24 colors: 1.2.5 fs-extra: 7.0.1 import-lazy: 4.0.0 jju: 1.4.0 resolve: 1.22.1 semver: 7.3.8 - z-schema: 5.0.4 + z-schema: 5.0.5 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/fs-extra': 7.0.0 '@types/heft-jest': 1.0.1 '@types/jju': 1.4.1 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 '@types/semver': 7.3.5 @@ -2010,22 +2014,24 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 dependencies: '@rushstack/node-core-library': link:../node-core-library devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../libraries/rig-package: specifiers: '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 ajv: ~6.12.5 resolve: ~1.22.1 @@ -2035,10 +2041,10 @@ importers: strip-json-comments: 3.1.1 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/resolve': 1.20.2 ajv: 6.12.6 @@ -2064,8 +2070,8 @@ importers: '@types/inquirer': 7.3.1 '@types/js-yaml': 3.12.1 '@types/lodash': 4.14.116 - '@types/node': 12.20.24 - '@types/node-fetch': 1.6.9 + '@types/node': 14.18.36 + '@types/node-fetch': 2.6.2 '@types/npm-package-arg': 6.1.0 '@types/npm-packlist': ~1.1.1 '@types/read-package-tree': 5.1.0 @@ -2074,11 +2080,12 @@ importers: '@types/ssri': ~7.1.0 '@types/strict-uri-encode': 2.0.0 '@types/tar': 6.1.1 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 '@yarnpkg/lockfile': ~1.0.2 builtin-modules: ~3.1.0 cli-table: ~0.3.1 colors: ~1.2.1 + dependency-path: ~9.2.8 figures: 3.0.0 git-repo-info: ~2.1.0 glob: ~7.0.5 @@ -2102,7 +2109,7 @@ importers: tapable: 2.2.1 tar: ~6.1.11 true-case-path: ~2.2.1 - webpack: ~5.68.0 + webpack: ~5.75.0 dependencies: '@pnpm/link-bins': 5.3.25 '@rushstack/heft-config-file': link:../heft-config-file @@ -2112,11 +2119,12 @@ importers: '@rushstack/stream-collator': link:../stream-collator '@rushstack/terminal': link:../terminal '@rushstack/ts-command-line': link:../ts-command-line - '@types/node-fetch': 1.6.9 + '@types/node-fetch': 2.6.2 '@yarnpkg/lockfile': 1.0.2 builtin-modules: 3.1.0 cli-table: 0.3.11 colors: 1.2.5 + dependency-path: 9.2.8 figures: 3.0.0 git-repo-info: 2.1.1 glob: 7.0.6 @@ -2153,7 +2161,7 @@ importers: '@types/inquirer': 7.3.1 '@types/js-yaml': 3.12.1 '@types/lodash': 4.14.116 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/npm-package-arg': 6.1.0 '@types/npm-packlist': 1.1.2 '@types/read-package-tree': 5.1.0 @@ -2162,8 +2170,8 @@ importers: '@types/ssri': 7.1.1 '@types/strict-uri-encode': 2.0.0 '@types/tar': 6.1.1 - '@types/webpack-env': 1.13.0 - webpack: 5.68.0 + '@types/webpack-env': 1.18.0 + webpack: 5.75.0 ../../libraries/rush-sdk: specifiers: @@ -2175,13 +2183,14 @@ importers: '@rushstack/stream-collator': workspace:* '@rushstack/terminal': workspace:* '@rushstack/ts-command-line': workspace:* - '@types/node-fetch': 1.6.9 + '@types/heft-jest': 1.0.1 + '@types/node-fetch': 2.6.2 '@types/semver': 7.3.5 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 tapable: 2.2.1 dependencies: '@rushstack/node-core-library': link:../node-core-library - '@types/node-fetch': 1.6.9 + '@types/node-fetch': 2.6.2 tapable: 2.2.1 devDependencies: '@microsoft/rush-lib': link:../rush-lib @@ -2192,7 +2201,40 @@ importers: '@rushstack/terminal': link:../terminal '@rushstack/ts-command-line': link:../ts-command-line '@types/semver': 7.3.5 - '@types/webpack-env': 1.13.0 + '@types/webpack-env': 1.18.0 + + ../../libraries/rush-themed-ui: + specifiers: + '@radix-ui/colors': ~0.1.8 + '@radix-ui/react-checkbox': ~1.0.1 + '@radix-ui/react-icons': ~1.1.1 + '@radix-ui/react-scroll-area': ~1.0.2 + '@radix-ui/react-tabs': ~1.0.1 + '@rushstack/eslint-config': workspace:* + '@rushstack/heft': workspace:* + '@rushstack/heft-web-rig': workspace:* + '@types/heft-jest': 1.0.1 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + '@types/webpack-env': 1.18.0 + react: ~16.13.1 + react-dom: ~16.13.1 + dependencies: + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + devDependencies: + '@radix-ui/colors': 0.1.8 + '@radix-ui/react-checkbox': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-icons': 1.1.1_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-scroll-area': 1.0.2_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-tabs': 1.0.2_tlqvpdqnq63ssdllbmshthdmo4 + '@rushstack/eslint-config': link:../../eslint/eslint-config + '@rushstack/heft': link:../../apps/heft + '@rushstack/heft-web-rig': link:../../rigs/heft-web-rig + '@types/heft-jest': 1.0.1 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + '@types/webpack-env': 1.18.0 ../../libraries/rushell: specifiers: @@ -2200,14 +2242,16 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 dependencies: '@rushstack/node-core-library': link:../node-core-library devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../libraries/stream-collator: specifiers: @@ -2216,7 +2260,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@rushstack/terminal': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 dependencies: '@rushstack/node-core-library': link:../node-core-library '@rushstack/terminal': link:../terminal @@ -2224,7 +2269,8 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../libraries/terminal: specifiers: @@ -2232,47 +2278,49 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/wordwrap': ~1.0.0 colors: ~1.2.1 wordwrap: ~1.0.0 dependencies: '@rushstack/node-core-library': link:../node-core-library - '@types/node': 12.20.24 wordwrap: 1.0.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/wordwrap': 1.0.1 colors: 1.2.5 ../../libraries/tree-pattern: specifiers: '@rushstack/eslint-config': 3.1.0 - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: ~7.30.0 typescript: ~4.8.4 devDependencies: '@rushstack/eslint-config': 3.1.0_xptyflz73tdwkjjssjsy5r76ri - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 eslint: 7.30.0 typescript: 4.8.4 ../../libraries/ts-command-line: specifiers: '@rushstack/eslint-config': workspace:* - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14 '@types/argparse': 1.0.38 '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 argparse: ~1.0.9 colors: ~1.2.1 string-argv: ~0.3.1 @@ -2283,10 +2331,10 @@ importers: string-argv: 0.3.1 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config - '@rushstack/heft': 0.48.0 - '@rushstack/heft-node-rig': 1.11.0_h3gpn2xakmccf6skk6kolq2tyq + '@rushstack/heft': 0.49.3 + '@rushstack/heft-node-rig': 1.11.14_liyhohr23xqmxapsqf2leh242e '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../libraries/typings-generator: specifiers: @@ -2295,12 +2343,11 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@types/glob': 7.1.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chokidar: ~3.4.0 glob: ~7.0.5 dependencies: '@rushstack/node-core-library': link:../node-core-library - '@types/node': 12.20.24 chokidar: 3.4.3 glob: 7.0.6 devDependencies: @@ -2308,19 +2355,21 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/glob': 7.1.1 + '@types/node': 14.18.36 ../../libraries/worker-pool: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 - dependencies: - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../repo-scripts/doc-plugin-rush-stack: specifiers: @@ -2332,7 +2381,7 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@types/js-yaml': 3.12.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 js-yaml: ~3.13.1 dependencies: '@microsoft/api-documenter': link:../../apps/api-documenter @@ -2345,7 +2394,7 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/js-yaml': 3.12.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../repo-scripts/generate-api-docs: specifiers: @@ -2366,7 +2415,7 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/ts-command-line': workspace:* '@types/diff': 5.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 diff: ~5.0.0 dependencies: '@microsoft/rush-lib': link:../../libraries/rush-lib @@ -2378,7 +2427,7 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/diff': 5.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ../../rigs/heft-node-rig: specifiers: @@ -2432,7 +2481,7 @@ importers: terser-webpack-plugin: ~5.3.1 typescript: ~4.8.4 url-loader: ~4.1.1 - webpack: ~5.68.0 + webpack: ~5.75.0 webpack-bundle-analyzer: ~4.5.0 webpack-merge: ~5.8.0 dependencies: @@ -2443,24 +2492,23 @@ importers: '@rushstack/heft-sass-plugin': link:../../heft-plugins/heft-sass-plugin '@rushstack/heft-typescript-plugin': link:../../heft-plugins/heft-typescript-plugin '@rushstack/heft-webpack5-plugin': link:../../heft-plugins/heft-webpack5-plugin - '@types/heft-jest': 1.0.1 - autoprefixer: 10.4.13_postcss@8.4.19 - css-loader: 6.6.0_webpack@5.68.0 - css-minimizer-webpack-plugin: 3.4.1_webpack@5.68.0 + autoprefixer: 10.4.13_postcss@8.4.21 + css-loader: 6.6.0_webpack@5.75.0 + css-minimizer-webpack-plugin: 3.4.1_webpack@5.75.0 eslint: 8.7.0 - html-webpack-plugin: 5.5.0_webpack@5.68.0 + html-webpack-plugin: 5.5.0_webpack@5.75.0 jest-environment-jsdom: 29.3.1 - mini-css-extract-plugin: 2.5.3_webpack@5.68.0 - postcss: 8.4.19 - postcss-loader: 6.2.1_otbl66ncbxio5b4wlrri4josmi + mini-css-extract-plugin: 2.5.3_webpack@5.75.0 + postcss: 8.4.21 + postcss-loader: 6.2.1_6jdsrmfenkuhhw3gx4zvjlznce sass: 1.49.11 - sass-loader: 12.4.0_ldtenuersk6xjw5tkzwiywgimy - source-map-loader: 3.0.2_webpack@5.68.0 - style-loader: 3.3.1_webpack@5.68.0 - terser-webpack-plugin: 5.3.6_webpack@5.68.0 + sass-loader: 12.4.0_cjd2qsdkq5hfjhufx2mctdcnzy + source-map-loader: 3.0.2_webpack@5.75.0 + style-loader: 3.3.1_webpack@5.75.0 + terser-webpack-plugin: 5.3.6_webpack@5.75.0 typescript: 4.8.4 - url-loader: 4.1.1_webpack@5.68.0 - webpack: 5.68.0 + url-loader: 4.1.1_webpack@5.75.0 + webpack: 5.75.0 webpack-bundle-analyzer: 4.5.0 webpack-merge: 5.8.0 devDependencies: @@ -2474,8 +2522,9 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@rushstack/rush-sdk': workspace:* - '@types/node': 12.20.24 - '@types/node-fetch': 1.6.9 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 + '@types/node-fetch': 2.6.2 https-proxy-agent: ~5.0.0 node-fetch: 2.6.7 dependencies: @@ -2488,8 +2537,9 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 - '@types/node-fetch': 1.6.9 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 + '@types/node-fetch': 2.6.2 ../../rush-plugins/rush-azure-storage-build-cache-plugin: specifiers: @@ -2502,7 +2552,8 @@ importers: '@rushstack/node-core-library': workspace:* '@rushstack/rush-sdk': workspace:* '@rushstack/terminal': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 dependencies: '@azure/identity': 2.1.0 '@azure/storage-blob': 12.11.0 @@ -2514,7 +2565,8 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../rush-plugins/rush-litewatch-plugin: specifiers: @@ -2523,7 +2575,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@rushstack/rush-sdk': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 dependencies: '@rushstack/node-core-library': link:../../libraries/node-core-library '@rushstack/rush-sdk': link:../../libraries/rush-sdk @@ -2531,7 +2584,8 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../rush-plugins/rush-serve-plugin: specifiers: @@ -2545,7 +2599,8 @@ importers: '@rushstack/rush-sdk': workspace:* '@rushstack/ts-command-line': workspace:* '@types/express': 4.17.13 - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 express: 4.18.1 dependencies: '@rushstack/debug-certificate-manager': link:../../libraries/debug-certificate-manager @@ -2560,7 +2615,8 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/express': 4.17.13 - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../webpack/hashed-folder-copy-plugin: specifiers: @@ -2572,7 +2628,8 @@ importers: '@rushstack/webpack-plugin-utilities': workspace:* '@types/enhanced-resolve': 3.0.7 '@types/glob': 7.1.1 - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 glob: ~7.0.5 webpack: ~4.44.2 @@ -2587,7 +2644,8 @@ importers: '@rushstack/heft-webpack5-plugin': link:../../heft-plugins/heft-webpack5-plugin '@types/enhanced-resolve': 3.0.7 '@types/glob': 7.1.1 - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 webpack: 4.44.2 @@ -2598,7 +2656,7 @@ importers: '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* '@types/loader-utils': 1.1.3 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 loader-utils: 1.4.2 dependencies: @@ -2609,7 +2667,7 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/loader-utils': 1.1.3 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 ../../webpack/loader-raw-script: @@ -2617,7 +2675,8 @@ importers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 loader-utils: 1.4.2 dependencies: loader-utils: 1.4.2 @@ -2625,21 +2684,24 @@ importers: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 ../../webpack/preserve-dynamic-require-plugin: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 - webpack: ~5.68.0 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 + webpack: ~5.75.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 - webpack: 5.68.0 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 + webpack: 5.75.0 ../../webpack/set-webpack-public-path-plugin: specifiers: @@ -2648,7 +2710,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/heft-webpack5-plugin': workspace:* '@rushstack/webpack-plugin-utilities': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 '@types/webpack': 4.41.32 dependencies: @@ -2658,7 +2721,8 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@rushstack/heft-webpack5-plugin': link:../../heft-plugins/heft-webpack5-plugin - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 '@types/webpack': 4.41.32 @@ -2669,8 +2733,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/node-core-library': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 - webpack: ~5.68.0 + '@types/node': 14.18.36 + webpack: ~5.75.0 dependencies: '@rushstack/node-core-library': link:../../libraries/node-core-library devDependencies: @@ -2678,24 +2742,54 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 - webpack: 5.68.0 + '@types/node': 14.18.36 + webpack: 5.75.0 + + ../../webpack/webpack-embedded-dependencies-plugin: + specifiers: + '@rushstack/eslint-config': workspace:* + '@rushstack/heft': workspace:* + '@rushstack/heft-node-rig': workspace:* + '@rushstack/node-core-library': workspace:* + '@rushstack/webpack-plugin-utilities': workspace:* + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 + memfs: 3.4.3 + webpack: ~5.75.0 + dependencies: + '@rushstack/node-core-library': link:../../libraries/node-core-library + devDependencies: + '@rushstack/eslint-config': link:../../eslint/eslint-config + '@rushstack/heft': link:../../apps/heft + '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@rushstack/webpack-plugin-utilities': link:../webpack-plugin-utilities + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 + memfs: 3.4.3 + webpack: 5.75.0 ../../webpack/webpack-plugin-utilities: specifiers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 - webpack: ~5.68.0 + memfs: 3.4.3 + webpack: ~5.75.0 + webpack-merge: ~5.8.0 + dependencies: + memfs: 3.4.3 + webpack-merge: 5.8.0 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 - webpack: 5.68.0 + webpack: 5.75.0 ../../webpack/webpack4-localization-plugin: specifiers: @@ -2708,7 +2802,7 @@ importers: '@types/loader-utils': 1.1.3 '@types/lodash': 4.14.116 '@types/minimatch': 3.0.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 '@types/webpack': 4.41.32 loader-utils: 1.4.2 @@ -2718,7 +2812,6 @@ importers: dependencies: '@rushstack/localization-utilities': link:../../libraries/localization-utilities '@rushstack/node-core-library': link:../../libraries/node-core-library - '@types/node': 12.20.24 '@types/tapable': 1.0.6 loader-utils: 1.4.2 lodash: 4.17.21 @@ -2731,6 +2824,7 @@ importers: '@types/loader-utils': 1.1.3 '@types/lodash': 4.14.116 '@types/minimatch': 3.0.5 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 webpack: 4.44.2 @@ -2741,7 +2835,8 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/module-minifier': workspace:* '@rushstack/worker-pool': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 '@types/webpack': 4.41.32 '@types/webpack-sources': 1.4.2 @@ -2751,13 +2846,14 @@ importers: dependencies: '@rushstack/module-minifier': link:../../libraries/module-minifier '@rushstack/worker-pool': link:../../libraries/worker-pool - '@types/node': 12.20.24 '@types/tapable': 1.0.6 tapable: 1.1.3 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 '@types/webpack-sources': 1.4.2 webpack: 4.44.2 @@ -2769,21 +2865,23 @@ importers: '@rushstack/eslint-config': workspace:* '@rushstack/heft': workspace:* '@rushstack/heft-node-rig': workspace:* + '@rushstack/node-core-library': workspace:* '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 css-loader: ~6.6.0 memfs: 3.4.3 - webpack: ~5.68.0 + webpack: ~5.75.0 devDependencies: '@microsoft/load-themed-styles': link:../../libraries/load-themed-styles '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@rushstack/node-core-library': link:../../libraries/node-core-library '@types/heft-jest': 1.0.1 - '@types/node': 12.20.24 - css-loader: 6.6.0_webpack@5.68.0 + '@types/node': 14.18.36 + css-loader: 6.6.0_webpack@5.75.0 memfs: 3.4.3 - webpack: 5.68.0 + webpack: 5.75.0 ../../webpack/webpack5-localization-plugin: specifiers: @@ -2792,19 +2890,21 @@ importers: '@rushstack/heft-node-rig': workspace:* '@rushstack/localization-utilities': workspace:* '@rushstack/node-core-library': workspace:* - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 memfs: 3.4.3 - webpack: ~5.68.0 + webpack: ~5.75.0 dependencies: '@rushstack/localization-utilities': link:../../libraries/localization-utilities '@rushstack/node-core-library': link:../../libraries/node-core-library - '@types/node': 12.20.24 devDependencies: '@rushstack/eslint-config': link:../../eslint/eslint-config '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 memfs: 3.4.3 - webpack: 5.68.0 + webpack: 5.75.0 ../../webpack/webpack5-module-minifier-plugin: specifiers: @@ -2814,15 +2914,15 @@ importers: '@rushstack/module-minifier': workspace:* '@rushstack/worker-pool': workspace:* '@types/estree': 0.0.50 - '@types/node': 12.20.24 + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 memfs: 3.4.3 tapable: 2.2.1 - webpack: ~5.68.0 + webpack: ~5.75.0 dependencies: '@rushstack/worker-pool': link:../../libraries/worker-pool '@types/estree': 0.0.50 - '@types/node': 12.20.24 '@types/tapable': 1.0.6 tapable: 2.2.1 devDependencies: @@ -2830,8 +2930,10 @@ importers: '@rushstack/heft': link:../../apps/heft '@rushstack/heft-node-rig': link:../../rigs/heft-node-rig '@rushstack/module-minifier': link:../../libraries/module-minifier + '@types/heft-jest': 1.0.1 + '@types/node': 14.18.36 memfs: 3.4.3 - webpack: 5.68.0 + webpack: 5.75.0 packages: @@ -2951,13 +3053,13 @@ packages: tslib: 2.3.1 dev: false - /@azure/core-client/1.6.1: - resolution: {integrity: sha512-mZ1MSKhZBYoV8GAWceA+PEJFWV2VpdNSpxxcj1wjIAOi00ykRuIQChT99xlQGZWLY3/NApWhSImlFwsmCEs4vA==} - engines: {node: '>=12.0.0'} + /@azure/core-client/1.7.0: + resolution: {integrity: sha512-fgaLVlF3xGg8JAt7Hl7vkKIJcCAA9NpsvIvb44qaEOW6CaJ+IaHKL7oWe5+oGOVR+y/z2Gd2joyvslqwDvRfTw==} + engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.4.0 - '@azure/core-rest-pipeline': 1.10.0 + '@azure/core-rest-pipeline': 1.10.1 '@azure/core-tracing': 1.0.1 '@azure/core-util': 1.1.1 '@azure/logger': 1.0.3 @@ -2989,9 +3091,9 @@ packages: - encoding dev: false - /@azure/core-lro/2.4.0: - resolution: {integrity: sha512-F65+rYkll1dpw3RGm8/SSiSj+/QkMeYDanzS/QKlM1dmuneVyXbO46C88V1MRHluLGdMP6qfD3vDRYALn0z0tQ==} - engines: {node: '>=12.0.0'} + /@azure/core-lro/2.5.0: + resolution: {integrity: sha512-Vsd5Sl04RG/p5ui/p0dAFMov5I/W4dmRjOrtWGXVs4vY/hNMPefiFH7cZEOr+1u0XrBKkpvt634IyUUD9bVRuQ==} + engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 '@azure/logger': 1.0.3 @@ -3005,8 +3107,8 @@ packages: tslib: 2.3.1 dev: false - /@azure/core-rest-pipeline/1.10.0: - resolution: {integrity: sha512-m6c4iAalfaf6sytOOQhLKFprEHSkSjQuRgkW7MTMnAN+GENDDL4XZJp7WKFnq9VpKUE+ggq+rp5xX9GI93lumw==} + /@azure/core-rest-pipeline/1.10.1: + resolution: {integrity: sha512-Kji9k6TOFRDB5ZMTw8qUf2IJ+CeJtsuMdAHox9eqpTf1cefiNMpzrfnF6sINEBZJsaVaWgQ0o48B6kcUH68niA==} engines: {node: '>=14.0.0'} dependencies: '@azure/abort-controller': 1.1.0 @@ -3027,7 +3129,7 @@ packages: resolution: {integrity: sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==} engines: {node: '>=12.0.0'} dependencies: - '@opentelemetry/api': 1.3.0 + '@opentelemetry/api': 1.4.0 tslib: 2.3.1 dev: false @@ -3052,14 +3154,14 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-auth': 1.4.0 - '@azure/core-client': 1.6.1 - '@azure/core-rest-pipeline': 1.10.0 + '@azure/core-client': 1.7.0 + '@azure/core-rest-pipeline': 1.10.1 '@azure/core-tracing': 1.0.1 '@azure/core-util': 1.1.1 '@azure/logger': 1.0.3 - '@azure/msal-browser': 2.32.1 + '@azure/msal-browser': 2.32.2 '@azure/msal-common': 7.6.0 - '@azure/msal-node': 1.14.5 + '@azure/msal-node': 1.14.6 events: 3.3.0 jws: 4.0.0 open: 8.4.0 @@ -3077,11 +3179,11 @@ packages: tslib: 2.3.1 dev: false - /@azure/msal-browser/2.32.1: - resolution: {integrity: sha512-2G3B12ZEIpiimi6/Yqq7KLk4ud1zZWoHvVd2kJ2VthN1HjMsZjdMUxeHkwMWaQ6RzO6mv9rZiuKmRX64xkXW9g==} + /@azure/msal-browser/2.32.2: + resolution: {integrity: sha512-1YqGzXtPG3QrZPFBKaMWr2WQdukDj+PelqUCv351+p+hlw/AhdRrb8haY73/iqkhT6Cdrbnh7sL4gikVsF4O1g==} engines: {node: '>=0.8.0'} dependencies: - '@azure/msal-common': 9.0.1 + '@azure/msal-common': 9.1.1 dev: false /@azure/msal-common/7.6.0: @@ -3089,17 +3191,17 @@ packages: engines: {node: '>=0.8.0'} dev: false - /@azure/msal-common/9.0.1: - resolution: {integrity: sha512-eNNHIW/cwPTZDWs9KtYgb1X6gtQ+cC+FGX2YN+t4AUVsBdUbqlMTnUs6/c/VBxC2AAGIhgLREuNnO3F66AN2zQ==} + /@azure/msal-common/9.1.1: + resolution: {integrity: sha512-we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==} engines: {node: '>=0.8.0'} dev: false - /@azure/msal-node/1.14.5: - resolution: {integrity: sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==} + /@azure/msal-node/1.14.6: + resolution: {integrity: sha512-em/qqFL5tLMxMPl9vormAs13OgZpmQoJbiQ/GlWr+BA77eCLoL+Ehr5xRHowYo+LFe5b+p+PJVkRvT+mLvOkwA==} engines: {node: 10 || 12 || 14 || 16 || 18} dependencies: - '@azure/msal-common': 9.0.1 - jsonwebtoken: 8.5.1 + '@azure/msal-common': 9.1.1 + jsonwebtoken: 9.0.0 uuid: 8.3.2 dev: false @@ -3109,7 +3211,7 @@ packages: dependencies: '@azure/abort-controller': 1.1.0 '@azure/core-http': 2.3.1 - '@azure/core-lro': 2.4.0 + '@azure/core-lro': 2.5.0 '@azure/core-paging': 1.4.0 '@azure/core-tracing': 1.0.0-preview.13 '@azure/logger': 1.0.3 @@ -3131,8 +3233,8 @@ packages: dependencies: '@babel/highlight': 7.18.6 - /@babel/compat-data/7.20.5: - resolution: {integrity: sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==} + /@babel/compat-data/7.20.14: + resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} engines: {node: '>=6.9.0'} /@babel/core/7.12.9: @@ -3140,17 +3242,17 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.5 - '@babel/helper-module-transforms': 7.20.2 - '@babel/helpers': 7.20.6 - '@babel/parser': 7.20.5 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/generator': 7.20.14 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.13 + '@babel/parser': 7.20.13 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.1 + json5: 2.2.3 lodash: 4.17.21 resolve: 1.22.1 semver: 5.7.1 @@ -3159,33 +3261,33 @@ packages: - supports-color dev: true - /@babel/core/7.17.12: - resolution: {integrity: sha512-44ODe6O1IVz9s2oJE3rZ4trNNKTX9O7KpQpfAP4t8QII/zwrVRHL7i2pxhqtcY7tqMLrrKfMlBKnm1QlrRFs5w==} + /@babel/core/7.20.12: + resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.0 '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.5 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 - '@babel/helper-module-transforms': 7.20.2 - '@babel/helpers': 7.20.6 - '@babel/parser': 7.20.5 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/generator': 7.20.14 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 + '@babel/helper-module-transforms': 7.20.11 + '@babel/helpers': 7.20.13 + '@babel/parser': 7.20.13 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 - json5: 2.2.1 + json5: 2.2.3 semver: 6.3.0 transitivePeerDependencies: - supports-color - /@babel/generator/7.20.5: - resolution: {integrity: sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==} + /@babel/generator/7.20.14: + resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 '@jridgewell/gen-mapping': 0.3.2 jsesc: 2.5.2 @@ -3193,7 +3295,7 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 dev: true /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: @@ -3201,60 +3303,62 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 dev: true - /@babel/helper-compilation-targets/7.20.0_@babel+core@7.17.12: - resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.20.5 - '@babel/core': 7.17.12 + '@babel/compat-data': 7.20.14 + '@babel/core': 7.20.12 '@babel/helper-validator-option': 7.18.6 browserslist: 4.21.4 + lru-cache: 5.1.1 semver: 6.3.0 - /@babel/helper-create-class-features-plugin/7.20.5_@babel+core@7.17.12: - resolution: {integrity: sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==} + /@babel/helper-create-class-features-plugin/7.20.12_@babel+core@7.20.12: + resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 - '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/helper-split-export-declaration': 7.18.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.17.12: + /@babel/helper-create-regexp-features-plugin/7.20.5_@babel+core@7.20.12: resolution: {integrity: sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 regexpu-core: 5.2.2 dev: true - /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.17.12: + /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.20.12: resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.20.2 - '@babel/traverse': 7.20.5 + '@babel/traverse': 7.20.13 debug: 4.3.4 lodash.debounce: 4.0.8 resolve: 1.22.1 @@ -3263,13 +3367,13 @@ packages: - supports-color dev: true - /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.17.12: + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.20.12: resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: '@babel/core': ^7.4.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 debug: 4.3.4 lodash.debounce: 4.0.8 @@ -3287,37 +3391,37 @@ packages: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 dev: true /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.20.5 + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 - /@babel/helper-member-expression-to-functions/7.18.9: - resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} + /@babel/helper-member-expression-to-functions/7.20.7: + resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 - /@babel/helper-module-transforms/7.20.2: - resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==} + /@babel/helper-module-transforms/7.20.11: + resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 @@ -3325,9 +3429,9 @@ packages: '@babel/helper-simple-access': 7.20.2 '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -3335,7 +3439,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 dev: true /@babel/helper-plugin-utils/7.10.4: @@ -3346,30 +3450,31 @@ packages: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.17.12: + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-replace-supers/7.19.1: - resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} + /@babel/helper-replace-supers/7.20.7: + resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color dev: true @@ -3378,20 +3483,20 @@ packages: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 /@babel/helper-skip-transparent-expression-wrappers/7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 dev: true /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} @@ -3410,20 +3515,20 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.19.0 - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helpers/7.20.6: - resolution: {integrity: sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==} + /@babel/helpers/7.20.13: + resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/template': 7.20.7 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -3441,166 +3546,166 @@ packages: hasBin: true dev: false - /@babel/parser/7.20.5: - resolution: {integrity: sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==} + /@babel/parser/7.20.13: + resolution: {integrity: sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==} engines: {node: '>=6.0.0'} hasBin: true - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.17.12: + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.17.12: - resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.17.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-async-generator-functions/7.20.1_@babel+core@7.17.12: - resolution: {integrity: sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==} + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.12 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.17.12: - resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} + /@babel/plugin-proposal-class-static-block/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.12 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-decorators/7.20.5_@babel+core@7.17.12: - resolution: {integrity: sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==} + /@babel/plugin-proposal-decorators/7.20.13_@babel+core@7.20.12: + resolution: {integrity: sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-replace-supers': 7.20.7 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.17.12 + '@babel/plugin-syntax-decorators': 7.19.0_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-export-default-from/7.18.10_@babel+core@7.17.12: + /@babel/plugin-proposal-export-default-from/7.18.10_@babel+core@7.20.12: resolution: {integrity: sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-export-default-from': 7.18.6_@babel+core@7.17.12 + '@babel/plugin-syntax-export-default-from': 7.18.6_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.17.12: + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.12 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.12 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.17.12: - resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.12 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.12 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.12 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 dev: true /@babel/plugin-proposal-object-rest-spread/7.12.1_@babel+core@7.12.9: @@ -3611,191 +3716,191 @@ packages: '@babel/core': 7.12.9 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.12.9 - '@babel/plugin-transform-parameters': 7.20.5_@babel+core@7.12.9 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.12.9 dev: true - /@babel/plugin-proposal-object-rest-spread/7.20.2_@babel+core@7.17.12: - resolution: {integrity: sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==} + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.5 - '@babel/core': 7.17.12 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 + '@babel/compat-data': 7.20.14 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-transform-parameters': 7.20.5_@babel+core@7.17.12 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.12 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-optional-chaining/7.18.9_@babel+core@7.17.12: - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + /@babel/plugin-proposal-optional-chaining/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.12 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 dev: true - /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-private-property-in-object/7.20.5_@babel+core@7.17.12: + /@babel/plugin-proposal-private-property-in-object/7.20.5_@babel+core@7.20.12: resolution: {integrity: sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.12 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.17.12: + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.12: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.12: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.17.12: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.12: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.17.12: + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.17.12: + /@babel/plugin-syntax-decorators/7.19.0_@babel+core@7.20.12: resolution: {integrity: sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.17.12: + /@babel/plugin-syntax-export-default-from/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.17.12: + /@babel/plugin-syntax-flow/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.17.12: + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.20.12: resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.17.12: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-jsx/7.12.1_@babel+core@7.12.9: @@ -3807,37 +3912,37 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.17.12: + /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.12: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.12: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.12: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.9: @@ -3849,318 +3954,319 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.12: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.12: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.12: + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.17.12: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.12: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.17.12: + /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.12: resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.17.12: - resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.17.12: - resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.17.12 + '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-block-scoping/7.20.5_@babel+core@7.17.12: - resolution: {integrity: sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==} + /@babel/plugin-transform-block-scoping/7.20.14_@babel+core@7.20.12: + resolution: {integrity: sha512-sMPepQtsOs5fM1bwNvuJJHvaCfOEQfmc01FGw0ELlTpTJj5Ql/zuNRRldYhAPys4ghXdBIQJbRVYi44/7QflQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-classes/7.20.2_@babel+core@7.17.12: - resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} + /@babel/plugin-transform-classes/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-replace-supers': 7.20.7 '@babel/helper-split-export-declaration': 7.18.6 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.17.12: - resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 + '@babel/template': 7.20.7 dev: true - /@babel/plugin-transform-destructuring/7.20.2_@babel+core@7.17.12: - resolution: {integrity: sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==} + /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.17.12: + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.17.12: + /@babel/plugin-transform-flow-strip-types/7.19.0_@babel+core@7.20.12: resolution: {integrity: sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.17.12 + '@babel/plugin-syntax-flow': 7.18.6_@babel+core@7.20.12 dev: true - /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.17.12: + /@babel/plugin-transform-for-of/7.18.8_@babel+core@7.20.12: resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.17.12: + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-function-name': 7.19.0 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-literals/7.18.9_@babel+core@7.17.12: + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-modules-amd/7.19.6_@babel+core@7.17.12: - resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.20.12: + resolution: {integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-module-transforms': 7.20.2 + '@babel/core': 7.20.12 + '@babel/helper-module-transforms': 7.20.11 '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.17.12: - resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} + /@babel/plugin-transform-modules-commonjs/7.20.11_@babel+core@7.20.12: + resolution: {integrity: sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-module-transforms': 7.20.2 + '@babel/core': 7.20.12 + '@babel/helper-module-transforms': 7.20.11 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-simple-access': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.17.12: - resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.20.12: + resolution: {integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.20.2 + '@babel/helper-module-transforms': 7.20.11 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-identifier': 7.19.1 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-module-transforms': 7.20.2 + '@babel/core': 7.20.12 + '@babel/helper-module-transforms': 7.20.11 '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.17.12: + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.20.12: resolution: {integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-replace-supers': 7.20.7 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-parameters/7.20.5_@babel+core@7.12.9: - resolution: {integrity: sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==} + /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.12.9: + resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -4169,325 +4275,325 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-parameters/7.20.5_@babel+core@7.17.12: - resolution: {integrity: sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==} + /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-react-display-name/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12 dev: true - /@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.17.12: - resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} + /@babel/plugin-transform-react-jsx/7.20.13_@babel+core@7.20.12: + resolution: {integrity: sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-module-imports': 7.18.6 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.17.12 - '@babel/types': 7.20.5 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 + '@babel/types': 7.20.7 dev: true - /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-react-pure-annotations/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.17.12: + /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.20.12: resolution: {integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 regenerator-transform: 0.15.1 dev: true - /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-spread/7.19.0_@babel+core@7.17.12: - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.20.12: + resolution: {integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 dev: true - /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.17.12: + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.17.12: + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-typescript/7.20.2_@babel+core@7.17.12: - resolution: {integrity: sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==} + /@babel/plugin-transform-typescript/7.20.13_@babel+core@7.20.12: + resolution: {integrity: sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-class-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-class-features-plugin': 7.20.12_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.17.12 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.17.12: + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.20.12: resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.17.12: + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-create-regexp-features-plugin': 7.20.5_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/preset-env/7.20.2_@babel+core@7.17.12: + /@babel/preset-env/7.20.2_@babel+core@7.20.12: resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.5 - '@babel/core': 7.17.12 - '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.17.12 + '@babel/compat-data': 7.20.14 + '@babel/core': 7.20.12 + '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-proposal-async-generator-functions': 7.20.1_@babel+core@7.17.12 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-class-static-block': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-logical-assignment-operators': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.12 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.17.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.17.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.17.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.12 - '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-async-to-generator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-block-scoping': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-transform-computed-properties': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.17.12 - '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-modules-amd': 7.19.6_@babel+core@7.17.12 - '@babel/plugin-transform-modules-commonjs': 7.19.6_@babel+core@7.17.12 - '@babel/plugin-transform-modules-systemjs': 7.19.6_@babel+core@7.17.12 - '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-parameters': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.17.12 - '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.17.12 - '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.17.12 - '@babel/preset-modules': 0.1.5_@babel+core@7.17.12 - '@babel/types': 7.20.5 - babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.17.12 - babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.17.12 - babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.17.12 - core-js-compat: 3.26.1 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-async-generator-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-class-static-block': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-dynamic-import': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-export-namespace-from': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-proposal-json-strings': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-numeric-separator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-catch-binding': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-private-property-in-object': 7.20.5_@babel+core@7.20.12 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-import-assertions': 7.20.0_@babel+core@7.20.12 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-async-to-generator': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoped-functions': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-computed-properties': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-duplicate-keys': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-exponentiation-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12 + '@babel/plugin-transform-function-name': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-literals': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-member-expression-literals': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-modules-amd': 7.20.11_@babel+core@7.20.12 + '@babel/plugin-transform-modules-commonjs': 7.20.11_@babel+core@7.20.12 + '@babel/plugin-transform-modules-systemjs': 7.20.11_@babel+core@7.20.12 + '@babel/plugin-transform-modules-umd': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-named-capturing-groups-regex': 7.20.5_@babel+core@7.20.12 + '@babel/plugin-transform-new-target': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-object-super': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-property-literals': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-regenerator': 7.20.5_@babel+core@7.20.12 + '@babel/plugin-transform-reserved-words': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-sticky-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-typeof-symbol': 7.18.9_@babel+core@7.20.12 + '@babel/plugin-transform-unicode-escapes': 7.18.10_@babel+core@7.20.12 + '@babel/plugin-transform-unicode-regex': 7.18.6_@babel+core@7.20.12 + '@babel/preset-modules': 0.1.5_@babel+core@7.20.12 + '@babel/types': 7.20.7 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.20.12 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.20.12 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.20.12 + core-js-compat: 3.27.2 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /@babel/preset-flow/7.18.6_@babel+core@7.17.12: + /@babel/preset-flow/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.17.12 + '@babel/plugin-transform-flow-strip-types': 7.19.0_@babel+core@7.20.12 dev: true - /@babel/preset-modules/0.1.5_@babel+core@7.17.12: + /@babel/preset-modules/0.1.5_@babel+core@7.20.12: resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 - '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.17.12 - '@babel/types': 7.20.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.20.12 + '@babel/types': 7.20.7 esutils: 2.0.3 dev: true - /@babel/preset-react/7.18.6_@babel+core@7.17.12: + /@babel/preset-react/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.17.12 - '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.17.12 + '@babel/plugin-transform-react-display-name': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12 + '@babel/plugin-transform-react-jsx-development': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-react-pure-annotations': 7.18.6_@babel+core@7.20.12 dev: true - /@babel/preset-typescript/7.18.6_@babel+core@7.17.12: + /@babel/preset-typescript/7.18.6_@babel+core@7.20.12: resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-validator-option': 7.18.6 - '@babel/plugin-transform-typescript': 7.20.2_@babel+core@7.17.12 + '@babel/plugin-transform-typescript': 7.20.13_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true - /@babel/register/7.18.9_@babel+core@7.17.12: + /@babel/register/7.18.9_@babel+core@7.20.12: resolution: {integrity: sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -4495,39 +4601,39 @@ packages: source-map-support: 0.5.21 dev: true - /@babel/runtime/7.20.6: - resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} + /@babel/runtime/7.20.13: + resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 - /@babel/template/7.18.10: - resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} + /@babel/template/7.20.7: + resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/parser': 7.20.5 - '@babel/types': 7.20.5 + '@babel/parser': 7.20.13 + '@babel/types': 7.20.7 - /@babel/traverse/7.20.5: - resolution: {integrity: sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==} + /@babel/traverse/7.20.13: + resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.18.6 - '@babel/generator': 7.20.5 + '@babel/generator': 7.20.14 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-function-name': 7.19.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.20.5 - '@babel/types': 7.20.5 + '@babel/parser': 7.20.13 + '@babel/types': 7.20.7 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types/7.20.5: - resolution: {integrity: sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==} + /@babel/types/7.20.7: + resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.19.4 @@ -4587,7 +4693,7 @@ packages: '@types/react': '>=16' react: '>=16.3.0' dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 '@emotion/cache': 10.0.29 '@emotion/css': 10.0.27 '@emotion/serialize': 0.11.16 @@ -4658,7 +4764,7 @@ packages: '@types/react': '>=16' react: '>=16.3.0' dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 '@emotion/core': 10.3.1_qjwx5m6wssz3lnb35xwkc3pz6q '@emotion/is-prop-valid': 0.8.8 '@emotion/serialize': 0.11.16 @@ -4705,8 +4811,8 @@ packages: resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} dev: true - /@esbuild/android-arm/0.16.3: - resolution: {integrity: sha512-mueuEoh+s1eRbSJqq9KNBQwI4QhQV6sRXIfTyLXSHGMpyew61rOK4qY21uKbXl1iBoMb0AdL1deWFCQVlN2qHA==} + /@esbuild/android-arm/0.17.5: + resolution: {integrity: sha512-crmPUzgCmF+qZXfl1YkiFoUta2XAfixR1tEnr/gXIixE+WL8Z0BGqfydP5oox0EUOgQMMRgtATtakyAcClQVqQ==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -4714,8 +4820,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64/0.16.3: - resolution: {integrity: sha512-RolFVeinkeraDvN/OoRf1F/lP0KUfGNb5jxy/vkIMeRRChkrX/HTYN6TYZosRJs3a1+8wqpxAo5PI5hFmxyPRg==} + /@esbuild/android-arm64/0.17.5: + resolution: {integrity: sha512-KHWkDqYAMmKZjY4RAN1PR96q6UOtfkWlTS8uEwWxdLtkRt/0F/csUhXIrVfaSIFxnscIBMPynGfhsMwQDRIBQw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -4723,8 +4829,8 @@ packages: dev: true optional: true - /@esbuild/android-x64/0.16.3: - resolution: {integrity: sha512-SFpTUcIT1bIJuCCBMCQWq1bL2gPTjWoLZdjmIhjdcQHaUfV41OQfho6Ici5uvvkMmZRXIUGpM3GxysP/EU7ifQ==} + /@esbuild/android-x64/0.17.5: + resolution: {integrity: sha512-8fI/AnIdmWz/+1iza2WrCw8kwXK9wZp/yZY/iS8ioC+U37yJCeppi9EHY05ewJKN64ASoBIseufZROtcFnX5GA==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -4732,8 +4838,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64/0.16.3: - resolution: {integrity: sha512-DO8WykMyB+N9mIDfI/Hug70Dk1KipavlGAecxS3jDUwAbTpDXj0Lcwzw9svkhxfpCagDmpaTMgxWK8/C/XcXvw==} + /@esbuild/darwin-arm64/0.17.5: + resolution: {integrity: sha512-EAvaoyIySV6Iif3NQCglUNpnMfHSUgC5ugt2efl3+QDntucJe5spn0udNZjTgNi6tKVqSceOw9tQ32liNZc1Xw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -4741,8 +4847,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64/0.16.3: - resolution: {integrity: sha512-uEqZQ2omc6BvWqdCiyZ5+XmxuHEi1SPzpVxXCSSV2+Sh7sbXbpeNhHIeFrIpRjAs0lI1FmA1iIOxFozKBhKgRQ==} + /@esbuild/darwin-x64/0.17.5: + resolution: {integrity: sha512-ha7QCJh1fuSwwCgoegfdaljowwWozwTDjBgjD3++WAy/qwee5uUi1gvOg2WENJC6EUyHBOkcd3YmLDYSZ2TPPA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -4750,8 +4856,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64/0.16.3: - resolution: {integrity: sha512-nJansp3sSXakNkOD5i5mIz2Is/HjzIhFs49b1tjrPrpCmwgBmH9SSzhC/Z1UqlkivqMYkhfPwMw1dGFUuwmXhw==} + /@esbuild/freebsd-arm64/0.17.5: + resolution: {integrity: sha512-VbdXJkn2aI2pQ/wxNEjEcnEDwPpxt3CWWMFYmO7CcdFBoOsABRy2W8F3kjbF9F/pecEUDcI3b5i2w+By4VQFPg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -4759,8 +4865,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64/0.16.3: - resolution: {integrity: sha512-TfoDzLw+QHfc4a8aKtGSQ96Wa+6eimljjkq9HKR0rHlU83vw8aldMOUSJTUDxbcUdcgnJzPaX8/vGWm7vyV7ug==} + /@esbuild/freebsd-x64/0.17.5: + resolution: {integrity: sha512-olgGYND1/XnnWxwhjtY3/ryjOG/M4WfcA6XH8dBTH1cxMeBemMODXSFhkw71Kf4TeZFFTN25YOomaNh0vq2iXg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -4768,8 +4874,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm/0.16.3: - resolution: {integrity: sha512-VwswmSYwVAAq6LysV59Fyqk3UIjbhuc6wb3vEcJ7HEJUtFuLK9uXWuFoH1lulEbE4+5GjtHi3MHX+w1gNHdOWQ==} + /@esbuild/linux-arm/0.17.5: + resolution: {integrity: sha512-YBdCyQwA3OQupi6W2/WO4FnI+NWFWe79cZEtlbqSESOHEg7a73htBIRiE6uHPQe7Yp5E4aALv+JxkRLGEUL7tw==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -4777,8 +4883,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64/0.16.3: - resolution: {integrity: sha512-7I3RlsnxEFCHVZNBLb2w7unamgZ5sVwO0/ikE2GaYvYuUQs9Qte/w7TqWcXHtCwxvZx/2+F97ndiUQAWs47ZfQ==} + /@esbuild/linux-arm64/0.17.5: + resolution: {integrity: sha512-8a0bqSwu3OlLCfu2FBbDNgQyBYdPJh1B9PvNX7jMaKGC9/KopgHs37t+pQqeMLzcyRqG6z55IGNQAMSlCpBuqg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -4786,8 +4892,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32/0.16.3: - resolution: {integrity: sha512-X8FDDxM9cqda2rJE+iblQhIMYY49LfvW4kaEjoFbTTQ4Go8G96Smj2w3BRTwA8IHGoi9dPOPGAX63dhuv19UqA==} + /@esbuild/linux-ia32/0.17.5: + resolution: {integrity: sha512-uCwm1r/+NdP7vndctgq3PoZrnmhmnecWAr114GWMRwg2QMFFX+kIWnp7IO220/JLgnXK/jP7VKAFBGmeOYBQYQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -4804,8 +4910,8 @@ packages: dev: true optional: true - /@esbuild/linux-loong64/0.16.3: - resolution: {integrity: sha512-hIbeejCOyO0X9ujfIIOKjBjNAs9XD/YdJ9JXAy1lHA+8UXuOqbFe4ErMCqMr8dhlMGBuvcQYGF7+kO7waj2KHw==} + /@esbuild/linux-loong64/0.17.5: + resolution: {integrity: sha512-3YxhSBl5Sb6TtBjJu+HP93poBruFzgXmf3PVfIe4xOXMj1XpxboYZyw3W8BhoX/uwxzZz4K1I99jTE/5cgDT1g==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -4813,8 +4919,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el/0.16.3: - resolution: {integrity: sha512-znFRzICT/V8VZQMt6rjb21MtAVJv/3dmKRMlohlShrbVXdBuOdDrGb+C2cZGQAR8RFyRe7HS6klmHq103WpmVw==} + /@esbuild/linux-mips64el/0.17.5: + resolution: {integrity: sha512-Hy5Z0YVWyYHdtQ5mfmfp8LdhVwGbwVuq8mHzLqrG16BaMgEmit2xKO+iDakHs+OetEx0EN/2mUzDdfdktI+Nmg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -4822,8 +4928,8 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64/0.16.3: - resolution: {integrity: sha512-EV7LuEybxhXrVTDpbqWF2yehYRNz5e5p+u3oQUS2+ZFpknyi1NXxr8URk4ykR8Efm7iu04//4sBg249yNOwy5Q==} + /@esbuild/linux-ppc64/0.17.5: + resolution: {integrity: sha512-5dbQvBLbU/Y3Q4ABc9gi23hww1mQcM7KZ9KBqabB7qhJswYMf8WrDDOSw3gdf3p+ffmijMd28mfVMvFucuECyg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -4831,8 +4937,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64/0.16.3: - resolution: {integrity: sha512-uDxqFOcLzFIJ+r/pkTTSE9lsCEaV/Y6rMlQjUI9BkzASEChYL/aSQjZjchtEmdnVxDKETnUAmsaZ4pqK1eE5BQ==} + /@esbuild/linux-riscv64/0.17.5: + resolution: {integrity: sha512-fp/KUB/ZPzEWGTEUgz9wIAKCqu7CjH1GqXUO2WJdik1UNBQ7Xzw7myIajpxztE4Csb9504ERiFMxZg5KZ6HlZQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -4840,8 +4946,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x/0.16.3: - resolution: {integrity: sha512-NbeREhzSxYwFhnCAQOQZmajsPYtX71Ufej3IQ8W2Gxskfz9DK58ENEju4SbpIj48VenktRASC52N5Fhyf/aliQ==} + /@esbuild/linux-s390x/0.17.5: + resolution: {integrity: sha512-kRV3yw19YDqHTp8SfHXfObUFXlaiiw4o2lvT1XjsPZ++22GqZwSsYWJLjMi1Sl7j9qDlDUduWDze/nQx0d6Lzw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -4849,8 +4955,8 @@ packages: dev: true optional: true - /@esbuild/linux-x64/0.16.3: - resolution: {integrity: sha512-SDiG0nCixYO9JgpehoKgScwic7vXXndfasjnD5DLbp1xltANzqZ425l7LSdHynt19UWOcDjG9wJJzSElsPvk0w==} + /@esbuild/linux-x64/0.17.5: + resolution: {integrity: sha512-vnxuhh9e4pbtABNLbT2ANW4uwQ/zvcHRCm1JxaYkzSehugoFd5iXyC4ci1nhXU13mxEwCnrnTIiiSGwa/uAF1g==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -4858,8 +4964,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64/0.16.3: - resolution: {integrity: sha512-AzbsJqiHEq1I/tUvOfAzCY15h4/7Ivp3ff/o1GpP16n48JMNAtbW0qui2WCgoIZArEHD0SUQ95gvR0oSO7ZbdA==} + /@esbuild/netbsd-x64/0.17.5: + resolution: {integrity: sha512-cigBpdiSx/vPy7doUyImsQQBnBjV5f1M99ZUlaJckDAJjgXWl6y9W17FIfJTy8TxosEF6MXq+fpLsitMGts2nA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -4867,8 +4973,8 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64/0.16.3: - resolution: {integrity: sha512-gSABi8qHl8k3Cbi/4toAzHiykuBuWLZs43JomTcXkjMZVkp0gj3gg9mO+9HJW/8GB5H89RX/V0QP4JGL7YEEVg==} + /@esbuild/openbsd-x64/0.17.5: + resolution: {integrity: sha512-VdqRqPVIjjZfkf40LrqOaVuhw9EQiAZ/GNCSM2UplDkaIzYVsSnycxcFfAnHdWI8Gyt6dO15KHikbpxwx+xHbw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -4876,8 +4982,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64/0.16.3: - resolution: {integrity: sha512-SF9Kch5Ete4reovvRO6yNjMxrvlfT0F0Flm+NPoUw5Z4Q3r1d23LFTgaLwm3Cp0iGbrU/MoUI+ZqwCv5XJijCw==} + /@esbuild/sunos-x64/0.17.5: + resolution: {integrity: sha512-ItxPaJ3MBLtI4nK+mALLEoUs6amxsx+J1ibnfcYMkqaCqHST1AkF4aENpBehty3czqw64r/XqL+W9WqU6kc2Qw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -4885,8 +4991,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64/0.16.3: - resolution: {integrity: sha512-u5aBonZIyGopAZyOnoPAA6fGsDeHByZ9CnEzyML9NqntK6D/xl5jteZUKm/p6nD09+v3pTM6TuUIqSPcChk5gg==} + /@esbuild/win32-arm64/0.17.5: + resolution: {integrity: sha512-4u2Q6qsJTYNFdS9zHoAi80spzf78C16m2wla4eJPh4kSbRv+BpXIfl6TmBSWupD8e47B1NrTfrOlEuco7mYQtg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -4894,8 +5000,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32/0.16.3: - resolution: {integrity: sha512-GlgVq1WpvOEhNioh74TKelwla9KDuAaLZrdxuuUgsP2vayxeLgVc+rbpIv0IYF4+tlIzq2vRhofV+KGLD+37EQ==} + /@esbuild/win32-ia32/0.17.5: + resolution: {integrity: sha512-KYlm+Xu9TXsfTWAcocLuISRtqxKp/Y9ZBVg6CEEj0O5J9mn7YvBKzAszo2j1ndyzUPk+op+Tie2PJeN+BnXGqQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -4903,8 +5009,8 @@ packages: dev: true optional: true - /@esbuild/win32-x64/0.16.3: - resolution: {integrity: sha512-5/JuTd8OWW8UzEtyf19fbrtMJENza+C9JoPIkvItgTBQ1FO2ZLvjbPO6Xs54vk0s5JB5QsfieUEshRQfu7ZHow==} + /@esbuild/win32-x64/0.17.5: + resolution: {integrity: sha512-XgA9qWRqby7xdYXuF6KALsn37QGBMHsdhmnpjfZtYxKxbTOwfnDM6MYi2WuUku5poNaX2n9XGVr20zgT/2QwCw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -4919,7 +5025,7 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 7.3.1 - globals: 13.18.0 + globals: 13.19.0 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.13.1 @@ -4929,15 +5035,15 @@ packages: - supports-color dev: true - /@eslint/eslintrc/1.3.3: - resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + /@eslint/eslintrc/1.4.1: + resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.4.1 - globals: 13.18.0 - ignore: 5.2.1 + globals: 13.19.0 + ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -4963,85 +5069,85 @@ packages: ipaddr.js: 2.0.1 dev: false - /@fluentui/date-time-utilities/8.5.3: - resolution: {integrity: sha512-jwbwcJlnerdjENIAfn/YHxl5H2sQruReOMWXWMgmvX0CmcbqsN9VBxBt+E35Tlr4Ds3MbGs60eyfZUIPpaB5RQ==} + /@fluentui/date-time-utilities/8.5.4: + resolution: {integrity: sha512-PHLrbKs/s80xVkvFLQkaYb78a9nRUlohj8FCDBFQ8F1qPJj3iVH1RuSLyTiCIRJy/v1hW6KMEIXqLu/EoMefXw==} dependencies: - '@fluentui/set-version': 8.2.3 + '@fluentui/set-version': 8.2.4 tslib: 2.3.1 dev: false - /@fluentui/dom-utilities/2.2.3: - resolution: {integrity: sha512-Ml/xwpTC6vb9lHHVAbSUD9jMbt9nVzV208D0FEoQn0c0+dP2vdMXSvXC/QHs/57B6JicttVQPuX6EcPwR3Mkpg==} + /@fluentui/dom-utilities/2.2.4: + resolution: {integrity: sha512-X4fN5zbvAETw9LE8bw9x5otKcpS3A3cB9wn/BookbTD4hkBESx06SzmX/WdabFq7qqbDqbURiQMpmdGUUlLsqw==} dependencies: - '@fluentui/set-version': 8.2.3 + '@fluentui/set-version': 8.2.4 tslib: 2.3.1 dev: false - /@fluentui/font-icons-mdl2/8.5.4_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-sIf1ND1Qr1Y1A/XAYG3vCAVnjNljXZxrwenv36VGBqjG/xwJ0Lu5bNAUqjmPy6biKiMttz73zcL2ST3QNlYvhw==} + /@fluentui/font-icons-mdl2/8.5.7_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-IAZ4nLWW6JDzGsCAymLS7ncaxWpQDY48K8650IfIlcsdhxv027joQEgd+HiIIImgusMl+OS9nAQE04a68mE6Zw==} dependencies: - '@fluentui/set-version': 8.2.3 - '@fluentui/style-utilities': 8.8.3_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/set-version': 8.2.4 + '@fluentui/style-utilities': 8.9.0_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q tslib: 2.3.1 transitivePeerDependencies: - '@types/react' - react dev: false - /@fluentui/foundation-legacy/8.2.24_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-ccGbQmXW2qXSl/xtFVuAkCFH5TJMJX4+qoQ/CwAq+43ZCJaMQaz0KHmk3t3u+TXUWLCc8EGSEgYAIxMPzHI53A==} + /@fluentui/foundation-legacy/8.2.27_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-KIK7N6thJ9EzwQBLysavdsJHt6mnsA1O2ZHLI9d4yDQlx17EVa0aXrdsSNgqfa1czya3OmBDVQMFR2gqy38voQ==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/merge-styles': 8.5.4 - '@fluentui/set-version': 8.2.3 - '@fluentui/style-utilities': 8.8.3_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/merge-styles': 8.5.5 + '@fluentui/set-version': 8.2.4 + '@fluentui/style-utilities': 8.9.0_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q '@types/react': 16.14.23 react: 16.13.1 tslib: 2.3.1 dev: false - /@fluentui/keyboard-key/0.4.3: - resolution: {integrity: sha512-uLiwx+UyXDN7tShv/s2NzDPtqeT/BZCHvY9yxEeb6LgEkos8TZvT5ep/7G8BpxA/SuBnviZ8xpDB5JObyZikqQ==} + /@fluentui/keyboard-key/0.4.4: + resolution: {integrity: sha512-nx0bQ9B5QtUym9a21ig5eHPt2T6EWaqrleFb37d6ImikP6xVXUHrWQJFuVS1CSg0n63KOPsmh1QvAUfxfmyLhw==} dependencies: tslib: 2.3.1 dev: false - /@fluentui/merge-styles/8.5.4: - resolution: {integrity: sha512-CeQIEcEgZu0cxqqyhJyTqySXoUL1vXfdWDJ8WMzchaNnhvOvoXISw8xXHpNXUtEn+HgPrcy9mHQwFcAc+jv3Wg==} + /@fluentui/merge-styles/8.5.5: + resolution: {integrity: sha512-+cyN28iRAn8BWlZkMSEWzXpsJJiy3wWFxdJx5UnvU3iLK1slwog94inJak/BmnQKk3dFXK9vVPtDp2s3l+2/hg==} dependencies: - '@fluentui/set-version': 8.2.3 + '@fluentui/set-version': 8.2.4 tslib: 2.3.1 dev: false - /@fluentui/react-focus/8.8.10_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-CB1/VXRCvy6qLFLY8dCxOF8PPYxM2vayTRSNva4/uDqg60jlMSsdZiPJE1PnC9FQKUKXgMZp78kak/ckGc8VZQ==} + /@fluentui/react-focus/8.8.13_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-Y9RlqjJdWB7of/GJt/M8Ezf5tP2JSFjfEqe7W6Ttjr7wxiZZr4X8hJISWOksPSzvWyc0CT5J9uPEX0IWBHFsFQ==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/keyboard-key': 0.4.3 - '@fluentui/merge-styles': 8.5.4 - '@fluentui/set-version': 8.2.3 - '@fluentui/style-utilities': 8.8.3_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/keyboard-key': 0.4.4 + '@fluentui/merge-styles': 8.5.5 + '@fluentui/set-version': 8.2.4 + '@fluentui/style-utilities': 8.9.0_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q '@types/react': 16.14.23 react: 16.13.1 tslib: 2.3.1 dev: false - /@fluentui/react-hooks/8.6.14_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-mM2bW7xIRGGx7thBXKDR64SaZB1tYwICdM9qpM/Jfiu0H+VPQhhhtMPJ+ImmG+DM8MxX9n5Su8ePo2QWtz9mYA==} + /@fluentui/react-hooks/8.6.15_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-oh1OdXAUwPyhMRum8TU2/C8V4hb69qGFTh/XYzyfiAwa0UzODszq/LoaDyVThEJEi5OBPdeuXturAvgqCT8kNw==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/react-window-provider': 2.2.4_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/set-version': 8.2.3 - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/react-window-provider': 2.2.5_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/set-version': 8.2.4 + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q '@types/react': 16.14.23 react: 16.13.1 tslib: 2.3.1 @@ -5058,38 +5164,38 @@ packages: tslib: 2.3.1 dev: false - /@fluentui/react-window-provider/2.2.4_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-tCiIGQSILSipcn8DwwRgYq5IMtwBKiSQ+/cVRNq54cJZoq5ie/kMGFpldZ+vREDbM8wjmO3eNgNi63A3QRx39g==} + /@fluentui/react-window-provider/2.2.5_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-uct8xpHLFoECeoM8xRsw98yrxLV1MY2rA/Ml0M65JSWREdDUk+btgu7HLZp4QV/GpfPvP1WiNFLSLhrZFSnIAg==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/set-version': 8.2.3 + '@fluentui/set-version': 8.2.4 '@types/react': 16.14.23 react: 16.13.1 tslib: 2.3.1 dev: false - /@fluentui/react/8.103.6_tlqvpdqnq63ssdllbmshthdmo4: - resolution: {integrity: sha512-smcqJUL6EMoIp1bWOLetT+vg9GyopbegwenzHVQ+AqA+WYP1EgDoxFd78rMM1gGGTk5/iJ2x3uk2Jz9qlZYxiw==} + /@fluentui/react/8.104.8_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-FVpyhZwPfpkHcP9d7Q5lQ7PPeSD2tLPaWGCGNhPHBsD0BS/A5Sv1+XN2LN1E+wbJUIvKrdVfxoWmUqDaNlpZjg==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' '@types/react-dom': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' react-dom: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/date-time-utilities': 8.5.3 - '@fluentui/font-icons-mdl2': 8.5.4_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/foundation-legacy': 8.2.24_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/merge-styles': 8.5.4 - '@fluentui/react-focus': 8.8.10_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/react-hooks': 8.6.14_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/date-time-utilities': 8.5.4 + '@fluentui/font-icons-mdl2': 8.5.7_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/foundation-legacy': 8.2.27_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/merge-styles': 8.5.5 + '@fluentui/react-focus': 8.8.13_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/react-hooks': 8.6.15_qjwx5m6wssz3lnb35xwkc3pz6q '@fluentui/react-portal-compat-context': 9.0.4_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/react-window-provider': 2.2.4_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/set-version': 8.2.3 - '@fluentui/style-utilities': 8.8.3_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/theme': 2.6.19_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/react-window-provider': 2.2.5_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/set-version': 8.2.4 + '@fluentui/style-utilities': 8.9.0_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/theme': 2.6.21_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q '@microsoft/load-themed-styles': 1.10.295 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 @@ -5098,19 +5204,19 @@ packages: tslib: 2.3.1 dev: false - /@fluentui/set-version/8.2.3: - resolution: {integrity: sha512-/+5vrI1Bq/ZsNDEK9++RClnDOeCILS8RXxZb7OAqmOc8GnPScxKcIN8e/1bosUxTjb2EB1KbVk6XeUpk0WvQIg==} + /@fluentui/set-version/8.2.4: + resolution: {integrity: sha512-v12VUrpThYcJESFrnu3LdL7/s957hoSCJ3t8C014Hp2IOmk3dnZRZJymf1k/RAOXztS4w9dF2Zhs8uP31qwcZw==} dependencies: tslib: 2.3.1 dev: false - /@fluentui/style-utilities/8.8.3_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-DxcCIHnKdaBpzdIawZIMcVyn8xVbK6A37J0Q7MPdjb9VV4Nsp/ohWnM9nPrPlbB+RSsKWrIssgWJdn5yZM9Wxg==} + /@fluentui/style-utilities/8.9.0_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-n64tj38ndvT9WSwzt3tQl5MuOaRQmRBzfv7GM2dCjJ6CblWHpSV8jRXX44RnkOFr/QRCrq+gv8sEveXKsyRtag==} dependencies: - '@fluentui/merge-styles': 8.5.4 - '@fluentui/set-version': 8.2.3 - '@fluentui/theme': 2.6.19_qjwx5m6wssz3lnb35xwkc3pz6q - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/merge-styles': 8.5.5 + '@fluentui/set-version': 8.2.4 + '@fluentui/theme': 2.6.21_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q '@microsoft/load-themed-styles': 1.10.295 tslib: 2.3.1 transitivePeerDependencies: @@ -5118,29 +5224,29 @@ packages: - react dev: false - /@fluentui/theme/2.6.19_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-Pk4STq3WAM3Mq4fGCBrq3F43o1u2SitO7CZ6A3/ALreaxTA1LC4bbyKQTYH3tvxapqEOYaEPYZ3dFjWjqYlFfg==} + /@fluentui/theme/2.6.21_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-jqPOo375pt1bQ4WuzP2GP5gfgeBK/PDHUf4+DxDTZ9y0TXp8KxV4jCp5Rq2rnVYlXi51JQ2Y+snFtMDcMTyfRQ==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/merge-styles': 8.5.4 - '@fluentui/set-version': 8.2.3 - '@fluentui/utilities': 8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q + '@fluentui/merge-styles': 8.5.5 + '@fluentui/set-version': 8.2.4 + '@fluentui/utilities': 8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q '@types/react': 16.14.23 react: 16.13.1 tslib: 2.3.1 dev: false - /@fluentui/utilities/8.13.4_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-oJ6q8BvVdr0eEG5RgI/VBtKX2JvJV2h0AUkR7FwZoT8fvUUH/iykPZO/5CAVcQDyiXj73hmBibiEGkWNFFuPfw==} + /@fluentui/utilities/8.13.5_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-YusKxwTEQmsJidEWxn8blf5ehBmBDMZDrOjQkSX4piCvi/57MfigQZ57L3Bdic8kDKsabVtS1IVMHLZzGy4zcQ==} peerDependencies: '@types/react': '>=16.8.0 <19.0.0' react: '>=16.8.0 <19.0.0' dependencies: - '@fluentui/dom-utilities': 2.2.3 - '@fluentui/merge-styles': 8.5.4 - '@fluentui/set-version': 8.2.3 + '@fluentui/dom-utilities': 2.2.4 + '@fluentui/merge-styles': 8.5.5 + '@fluentui/set-version': 8.2.4 '@types/react': 16.14.23 react: 16.13.1 tslib: 2.3.1 @@ -5157,7 +5263,7 @@ packages: dependencies: globby: 11.1.0 graphql: 15.8.0 - tslib: 2.4.1 + tslib: 2.5.0 unixify: 1.0.0 dev: true @@ -5179,7 +5285,7 @@ packages: dependencies: '@graphql-tools/utils': 8.9.0_graphql@15.8.0 graphql: 15.8.0 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /@graphql-tools/schema/8.5.1_graphql@15.8.0: @@ -5190,7 +5296,7 @@ packages: '@graphql-tools/merge': 8.3.1_graphql@15.8.0 '@graphql-tools/utils': 8.9.0_graphql@15.8.0 graphql: 15.8.0 - tslib: 2.4.1 + tslib: 2.5.0 value-or-promise: 1.0.11 dev: true @@ -5209,11 +5315,11 @@ packages: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 dependencies: graphql: 15.8.0 - tslib: 2.4.1 + tslib: 2.5.0 dev: true - /@humanwhocodes/config-array/0.11.7: - resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + /@humanwhocodes/config-array/0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -5271,7 +5377,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -5283,7 +5389,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 jest-message-util: 29.4.1 jest-util: 29.4.1 @@ -5300,24 +5406,24 @@ packages: dependencies: '@jest/console': 27.5.1 '@jest/reporters': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 27.5.1 - jest-config: 27.5.1_@types+node@12.20.24 + jest-config: 27.5.1_@types+node@14.18.36 jest-haste-map: 27.5.1 jest-message-util: 27.5.1 jest-regex-util: 27.5.1 jest-resolve: 27.5.1 jest-resolve-dependencies: 27.5.1 jest-runner: 27.5.1 - jest-runtime: 27.5.1_@types+node@12.20.24 + jest-runtime: 27.5.1_@types+node@14.18.36 jest-snapshot: 27.5.1 jest-util: 27.5.1 jest-validate: 27.5.1 @@ -5345,17 +5451,17 @@ packages: dependencies: '@jest/console': 29.4.1 '@jest/reporters': 29.3.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/transform': 29.3.1 '@jest/types': 29.3.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.4.0 - jest-config: 29.3.1_@types+node@12.20.24 + jest-config: 29.3.1_@types+node@14.18.36 jest-haste-map: 29.4.1 jest-message-util: 29.4.1 jest-regex-util: 29.2.0 @@ -5386,17 +5492,17 @@ packages: dependencies: '@jest/console': 29.4.1 '@jest/reporters': 29.4.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/transform': 29.4.1 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.4.0 - jest-config: 29.4.1_@types+node@12.20.24 + jest-config: 29.4.1_@types+node@14.18.36 jest-haste-map: 29.4.1 jest-message-util: 29.4.1 jest-regex-util: 29.2.0 @@ -5423,7 +5529,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 27.5.1 dev: true @@ -5433,7 +5539,7 @@ packages: dependencies: '@jest/fake-timers': 29.4.1 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 29.4.1 /@jest/expect-utils/29.4.1: @@ -5457,7 +5563,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -5469,7 +5575,7 @@ packages: dependencies: '@jest/types': 29.4.1 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-message-util: 29.4.1 jest-mock: 29.4.1 jest-util: 29.4.1 @@ -5505,13 +5611,13 @@ packages: dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/istanbul-lib-coverage': 2.0.4 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -5544,13 +5650,13 @@ packages: dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/istanbul-lib-coverage': 2.0.4 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -5583,14 +5689,14 @@ packages: dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.4.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/transform': 29.3.1 '@jest/types': 29.3.1 '@jridgewell/trace-mapping': 0.3.17 '@types/istanbul-lib-coverage': 2.0.4 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -5620,14 +5726,14 @@ packages: dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 29.4.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/transform': 29.4.1 '@jest/types': 29.4.1 '@jridgewell/trace-mapping': 0.3.17 '@types/istanbul-lib-coverage': 2.0.4 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -5670,51 +5776,51 @@ packages: callsites: 3.1.0 graceful-fs: 4.2.10 - /@jest/test-result/27.5.1_@types+node@12.20.24: + /@jest/test-result/27.5.1_@types+node@14.18.36: resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/console': 27.5.1 '@jest/types': 27.5.1 '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 jest-haste-map: 27.5.1 jest-resolve: 27.5.1 transitivePeerDependencies: - '@types/node' dev: true - /@jest/test-result/29.4.1_@types+node@12.20.24: + /@jest/test-result/29.4.1_@types+node@14.18.36: resolution: {integrity: sha512-WRt29Lwt+hEgfN8QDrXqXGgCTidq1rLyFqmZ4lmJOpVArC8daXrZWkWjiaijQvgd3aOUj2fM8INclKHsQW9YyQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/console': 29.4.1 '@jest/types': 29.4.1 '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 jest-haste-map: 29.4.1 jest-resolve: 29.4.1 transitivePeerDependencies: - '@types/node' - /@jest/test-sequencer/27.5.1_@types+node@12.20.24: + /@jest/test-sequencer/27.5.1_@types+node@14.18.36: resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 graceful-fs: 4.2.10 jest-haste-map: 27.5.1 - jest-runtime: 27.5.1_@types+node@12.20.24 + jest-runtime: 27.5.1_@types+node@14.18.36 transitivePeerDependencies: - '@types/node' - supports-color dev: true - /@jest/test-sequencer/29.4.1_@types+node@12.20.24: + /@jest/test-sequencer/29.4.1_@types+node@14.18.36: resolution: {integrity: sha512-v5qLBNSsM0eHzWLXsQ5fiB65xi49A3ILPSFQKPXzGL4Vyux0DPZAIN7NAFJa9b4BiTDP9MBF/Zqc/QA1vuiJ0w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 graceful-fs: 4.2.10 jest-haste-map: 29.4.1 slash: 3.0.0 @@ -5725,7 +5831,7 @@ packages: resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} engines: {node: '>= 10.14.2'} dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@jest/types': 26.6.2 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -5748,7 +5854,7 @@ packages: resolution: {integrity: sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -5771,7 +5877,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -5794,7 +5900,7 @@ packages: resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@jest/types': 29.3.1 '@jridgewell/trace-mapping': 0.3.17 babel-plugin-istanbul: 6.1.1 @@ -5816,7 +5922,7 @@ packages: resolution: {integrity: sha512-5w6YJrVAtiAgr0phzKjYd83UPbCXsBRTeYI4BXokv9Er9CcrH9hfXL/crCvP2d2nGOcovPUnlYiLPFLZrkG5Hg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@jest/types': 29.4.1 '@jridgewell/trace-mapping': 0.3.17 babel-plugin-istanbul: 6.1.1 @@ -5840,8 +5946,8 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.24 - '@types/yargs': 15.0.14 + '@types/node': 14.18.36 + '@types/yargs': 15.0.15 chalk: 4.1.2 dev: true @@ -5851,8 +5957,8 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.24 - '@types/yargs': 16.0.4 + '@types/node': 14.18.36 + '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -5863,8 +5969,8 @@ packages: '@jest/schemas': 29.4.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.24 - '@types/yargs': 17.0.22 + '@types/node': 14.18.36 + '@types/yargs': 17.0.20 chalk: 4.1.2 /@jest/types/29.4.1: @@ -5874,8 +5980,8 @@ packages: '@jest/schemas': 29.4.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 12.20.24 - '@types/yargs': 17.0.22 + '@types/node': 14.18.36 + '@types/yargs': 17.0.20 chalk: 4.1.2 /@jridgewell/gen-mapping/0.1.1: @@ -5981,27 +6087,27 @@ packages: resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} dev: true - /@microsoft/api-extractor-model/7.24.3: - resolution: {integrity: sha512-JElpLULqYDXQb0YIKKQhOJaNWBXsYeYu5J51Z4O6RGbOq7Tby9ViVfpDuXVXa87AMOSR5WKuaxG/5SnQVVNxiw==} + /@microsoft/api-extractor-model/7.26.0: + resolution: {integrity: sha512-iUlscM9a3/scqgaL+sipTYsfbkF/frrZhdYWXm5+zEVMW6QlP5jDV6cYNeIEIdMeGSbzk1yxpBjyeBDAZQLdyA==} dependencies: - '@microsoft/tsdoc': 0.14.1 + '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.53.0 + '@rushstack/node-core-library': 3.53.3 dev: true - /@microsoft/api-extractor/7.32.0: - resolution: {integrity: sha512-BfvPpeVzWLFTdairVItzWQGsZr82fR4RH+8Q4I7t0f9xq66v4Qz9K+u25jbL5R42X01b/vvJMuRhX5KhU8J1Ug==} + /@microsoft/api-extractor/7.34.0: + resolution: {integrity: sha512-U9opcYpFrN0eIVunEx90SDSYzmjgO2mEVbttHwtJBjOHUhK2cY2QykH8uiBnJuVtuBvHVCdEFUGt6i/8LVexYA==} hasBin: true dependencies: - '@microsoft/api-extractor-model': 7.24.3 - '@microsoft/tsdoc': 0.14.1 + '@microsoft/api-extractor-model': 7.26.0 + '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 3.53.0 - '@rushstack/rig-package': 0.3.16 - '@rushstack/ts-command-line': 4.12.4 + '@rushstack/node-core-library': 3.53.3 + '@rushstack/rig-package': 0.3.17 + '@rushstack/ts-command-line': 4.13.1 colors: 1.2.5 lodash: 4.17.21 - resolve: 1.17.0 + resolve: 1.22.1 semver: 7.3.8 source-map: 0.6.1 typescript: 4.8.4 @@ -6023,10 +6129,6 @@ packages: jju: 1.4.0 resolve: 1.19.0 - /@microsoft/tsdoc/0.14.1: - resolution: {integrity: sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw==} - dev: true - /@microsoft/tsdoc/0.14.2: resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} @@ -6059,7 +6161,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.14.0 + fastq: 1.15.0 /@npmcli/fs/1.1.1: resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} @@ -6077,8 +6179,8 @@ packages: rimraf: 3.0.2 dev: true - /@opentelemetry/api/1.3.0: - resolution: {integrity: sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ==} + /@opentelemetry/api/1.4.0: + resolution: {integrity: sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g==} engines: {node: '>=8.0.0'} dev: false @@ -6110,7 +6212,7 @@ packages: dependencies: ansi-html-community: 0.0.8 common-path-prefix: 3.0.0 - core-js-pure: 3.26.1 + core-js-pure: 3.27.2 error-stack-parser: 2.1.4 find-up: 5.0.0 html-entities: 2.3.3 @@ -6121,6 +6223,13 @@ packages: webpack: 4.44.2 dev: true + /@pnpm/crypto.base32-hash/1.0.1: + resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} + engines: {node: '>=14.6'} + dependencies: + rfc4648: 1.5.2 + dev: false + /@pnpm/error/1.4.0: resolution: {integrity: sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==} engines: {node: '>=10.16'} @@ -6136,7 +6245,7 @@ packages: '@pnpm/read-package-json': 4.0.0 '@pnpm/read-project-manifest': 1.1.7 '@pnpm/types': 6.4.0 - '@zkochan/cmd-shim': 5.3.1 + '@zkochan/cmd-shim': 5.4.1 is-subdir: 1.2.0 is-windows: 1.0.2 mz: 2.7.0 @@ -6190,7 +6299,7 @@ packages: fast-deep-equal: 3.1.3 graceful-fs: 4.2.4 is-windows: 1.0.2 - json5: 2.2.1 + json5: 2.2.3 parse-json: 5.2.0 read-yaml-file: 2.1.0 sort-keys: 4.2.0 @@ -6202,12 +6311,17 @@ packages: engines: {node: '>=10.16'} dev: false + /@pnpm/types/8.9.0: + resolution: {integrity: sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==} + engines: {node: '>=14.6'} + dev: false + /@pnpm/write-project-manifest/1.1.7: resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} engines: {node: '>=10.16'} dependencies: '@pnpm/types': 6.4.0 - json5: 2.2.1 + json5: 2.2.3 mz: 2.7.0 write-file-atomic: 3.0.3 write-yaml-file: 4.2.0 @@ -6220,6 +6334,314 @@ packages: resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} dev: true + /@radix-ui/colors/0.1.8: + resolution: {integrity: sha512-jwRMXYwC0hUo0mv6wGpuw254Pd9p/R6Td5xsRpOmaWkUHlooNWqVcadgyzlRumMq3xfOTXwJReU0Jv+EIy4Jbw==} + dev: true + + /@radix-ui/number/1.0.0: + resolution: {integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==} + dependencies: + '@babel/runtime': 7.20.13 + dev: true + + /@radix-ui/primitive/1.0.0: + resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + dependencies: + '@babel/runtime': 7.20.13 + dev: true + + /@radix-ui/react-checkbox/1.0.1_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-TisH0B8hWmYP3ONRduYCyN04rR9yLPIw/Rwyn1RoC1suSoGCa8Wn+YPdSSSarSszeIbcg3p2lBkDp2XXit4sZw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-context': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-presence': 1.0.0_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-primitive': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-use-controllable-state': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-use-previous': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-use-size': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-collection/1.0.1_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-compose-refs': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-context': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-primitive': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-slot': 1.0.1_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-compose-refs/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-context/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-direction/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-icons/1.1.1_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-xc3wQC59rsFylVbSusQCrrM+6695ppF730Q6yqzhRdqDcRNWIm2R6ngpzBoSOQMcwnq4p805F+Gr7xo4fmtN1A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.x || ^17.x || ^18.x + dependencies: + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-id/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-use-layout-effect': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-presence/1.0.0_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-compose-refs': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-use-layout-effect': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-primitive/1.0.1_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-slot': 1.0.1_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-roving-focus/1.0.2_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-HLK+CqD/8pN6GfJm3U+cqpqhSKYAWiOJDe+A+8MfxBnOue39QEeMa43csUn2CXCHQT0/mewh1LrrG4tfkM9DMA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-collection': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-compose-refs': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-context': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-direction': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-id': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-primitive': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-use-callback-ref': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-use-controllable-state': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-scroll-area/1.0.2_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/number': 1.0.0 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-context': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-direction': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-presence': 1.0.0_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-primitive': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-use-callback-ref': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-use-layout-effect': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-slot/1.0.1_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-compose-refs': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-tabs/1.0.2_tlqvpdqnq63ssdllbmshthdmo4: + resolution: {integrity: sha512-gOUwh+HbjCuL0UCo8kZ+kdUEG8QtpdO4sMQduJ34ZEz0r4922g9REOBM+vIsfwtGxSug4Yb1msJMJYN2Bk8TpQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-context': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-direction': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-id': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@radix-ui/react-presence': 1.0.0_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-primitive': 1.0.1_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-roving-focus': 1.0.2_tlqvpdqnq63ssdllbmshthdmo4 + '@radix-ui/react-use-controllable-state': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + dev: true + + /@radix-ui/react-use-callback-ref/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-use-controllable-state/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-use-callback-ref': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-use-layout-effect/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-use-previous/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-RG2K8z/K7InnOKpq6YLDmT49HGjNmrK+fr82UCVKT2sW0GYfVnYp4wZWBooT/EYfQ5faA9uIjvsuMMhH61rheg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + + /@radix-ui/react-use-size/1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm: + resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.20.13 + '@radix-ui/react-use-layout-effect': 1.0.0_sftehf4lpwv3vmg4pl5jfvkfmm + '@types/react': 16.14.23 + '@types/react-dom': 16.9.14 + react: 16.13.1 + dev: true + /@reduxjs/toolkit/1.8.6_qfynotfwlyrsyq662adyrweaoe: resolution: {integrity: sha512-4Ia/Loc6WLmdSOzi7k5ff7dLK8CgG2b8aqpLsCAJhazAzGdp//YBUSaj0ceW6a3kDBDNRrq5CRwyCS0wBiL1ig==} peerDependencies: @@ -6231,7 +6653,7 @@ packages: react-redux: optional: true dependencies: - immer: 9.0.16 + immer: 9.0.19 react: 16.13.1 react-redux: 8.0.5_6ue7j6tfp4xzdzadarjwzo6kwu redux: 4.2.0 @@ -6239,8 +6661,8 @@ packages: reselect: 4.1.7 dev: false - /@remix-run/router/1.0.5: - resolution: {integrity: sha512-my0Mycd+jruq/1lQuO5LBB6WTlL/e8DTCYWp44DfMTDcXz8DcTlgF0ISaLsGewt+ctHN+yA8xMq3q/N7uWJPug==} + /@remix-run/router/1.3.1: + resolution: {integrity: sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==} engines: {node: '>=14'} dev: true @@ -6310,63 +6732,27 @@ packages: - typescript dev: true - /@rushstack/heft-config-file/0.11.1: - resolution: {integrity: sha512-Yh3M4B64SsDlF6A18JJDtoyNRNK2ql1QeQHpGQdt4Btv5Dya/kF0sbRvF3JXcE7pFDY0rJLu67OumGUc8nN9pw==} + /@rushstack/heft-config-file/0.11.5: + resolution: {integrity: sha512-R6kZyvoZrNmhST3nyYd53N+N4RicQVOCciiglAj6/Y44bscAKIUijAMEHF17JD1+1xAYh/G3R+XIaWLbBpZDSw==} engines: {node: '>=10.13.0'} dependencies: - '@rushstack/node-core-library': 3.53.0 - '@rushstack/rig-package': 0.3.16 + '@rushstack/node-core-library': 3.53.3 + '@rushstack/rig-package': 0.3.17 jsonpath-plus: 4.0.0 dev: true - /@rushstack/heft-config-file/0.9.2: - resolution: {integrity: sha512-n0v98vyf+/zgh6UblHQUhENTSegS4R1P31XQUzsXYedwd8pysIPntkVOkmUtYgfizUS3Er+JeAb+BkwVAXAasA==} - engines: {node: '>=10.13.0'} - dependencies: - '@rushstack/node-core-library': 3.50.1 - '@rushstack/rig-package': 0.3.14 - jsonpath-plus: 4.0.0 - dev: true - - /@rushstack/heft-jest-plugin/0.3.37_h3gpn2xakmccf6skk6kolq2tyq: - resolution: {integrity: sha512-4WJ7KDQ6qjPwYowdWM/ywUjwD1NeiX5ecK/NG7OC9zA/WKXNW4m1zDEmjJdIHOWIPvDVK5VtXGFH5Q0tP6DUtg==} - requiresBuild: true - peerDependencies: - '@rushstack/heft': '*' - dependencies: - '@jest/core': 27.4.7 - '@jest/reporters': 27.4.6 - '@jest/transform': 27.4.6 - '@rushstack/heft': 0.48.0 - '@rushstack/heft-config-file': 0.11.1 - '@rushstack/node-core-library': 3.53.0 - jest-config: 27.4.7_@types+node@12.20.24 - jest-resolve: 27.4.6 - jest-snapshot: 27.4.6 - lodash: 4.17.21 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - canvas - - node-notifier - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@rushstack/heft-jest-plugin/0.3.37_ljisdvnpfstpdcqj3migsfn35m: - resolution: {integrity: sha512-4WJ7KDQ6qjPwYowdWM/ywUjwD1NeiX5ecK/NG7OC9zA/WKXNW4m1zDEmjJdIHOWIPvDVK5VtXGFH5Q0tP6DUtg==} - requiresBuild: true + /@rushstack/heft-jest-plugin/0.4.5_liyhohr23xqmxapsqf2leh242e: + resolution: {integrity: sha512-9YABiy8/olIIWT0EJijFw6o8KRGjVy5nKoxwOuiUa0Dj0QNIivbq9gUV1qluK1wrghJGNnrvRCdQET7US8DuaQ==} peerDependencies: - '@rushstack/heft': '*' + '@rushstack/heft': ^0.49.3 dependencies: '@jest/core': 27.4.7 '@jest/reporters': 27.4.6 '@jest/transform': 27.4.6 - '@rushstack/heft': link:..\..\apps\heft - '@rushstack/heft-config-file': 0.11.1 - '@rushstack/node-core-library': 3.53.0 - jest-config: 27.4.7_@types+node@12.20.24 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-config-file': 0.11.5 + '@rushstack/node-core-library': 3.53.3 + jest-config: 27.4.7_@types+node@14.18.36 jest-resolve: 27.4.6 jest-snapshot: 27.4.6 lodash: 4.17.21 @@ -6380,14 +6766,14 @@ packages: - utf-8-validate dev: true - /@rushstack/heft-node-rig/1.11.0_h3gpn2xakmccf6skk6kolq2tyq: - resolution: {integrity: sha512-XTEFPbpm7hBpOgmDt2q4j7AoRn6tgtjPQsph9bTVHpV8j3o8Hg06pKd/djKdG71wafC909uPGdlYawXX0pLfVw==} + /@rushstack/heft-node-rig/1.11.14_liyhohr23xqmxapsqf2leh242e: + resolution: {integrity: sha512-GIeKIgzupUQdrnCItZ5y/LKW6HUYDJzz/k5b97yH2NflPk4vFXfLuaPm3FpwIdbxv8gFdNrYTi9KxhEmFEQ4GQ==} peerDependencies: - '@rushstack/heft': '*' + '@rushstack/heft': ^0.49.3 dependencies: - '@microsoft/api-extractor': 7.32.0 - '@rushstack/heft': 0.48.0 - '@rushstack/heft-jest-plugin': 0.3.37_h3gpn2xakmccf6skk6kolq2tyq + '@microsoft/api-extractor': 7.34.0 + '@rushstack/heft': 0.49.3 + '@rushstack/heft-jest-plugin': 0.4.5_liyhohr23xqmxapsqf2leh242e eslint: 8.7.0 jest-environment-node: 27.4.6 typescript: 4.8.4 @@ -6401,57 +6787,15 @@ packages: - utf-8-validate dev: true - /@rushstack/heft-node-rig/1.11.0_ljisdvnpfstpdcqj3migsfn35m: - resolution: {integrity: sha512-XTEFPbpm7hBpOgmDt2q4j7AoRn6tgtjPQsph9bTVHpV8j3o8Hg06pKd/djKdG71wafC909uPGdlYawXX0pLfVw==} - peerDependencies: - '@rushstack/heft': '*' - dependencies: - '@microsoft/api-extractor': 7.32.0 - '@rushstack/heft': link:..\..\apps\heft - '@rushstack/heft-jest-plugin': 0.3.37_ljisdvnpfstpdcqj3migsfn35m - eslint: 8.7.0 - jest-environment-node: 27.4.6 - typescript: 4.8.4 - transitivePeerDependencies: - - '@types/node' - - bufferutil - - canvas - - node-notifier - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@rushstack/heft/0.47.0: - resolution: {integrity: sha512-V4g2TbWDqT4TI8TCL2hYbd+GOoj50AMMDSCmlSQONG6ac7w/RvF+U6RBoEqAdyVHt+1z6Dhql0NZ+ah1PwzCbw==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@rushstack/heft-config-file': 0.9.2 - '@rushstack/node-core-library': 3.50.1 - '@rushstack/rig-package': 0.3.14 - '@rushstack/ts-command-line': 4.12.2 - '@types/tapable': 1.0.6 - argparse: 1.0.10 - chokidar: 3.4.3 - fast-glob: 3.2.12 - glob: 7.0.6 - glob-escape: 0.0.2 - prettier: 2.3.2 - semver: 7.3.8 - tapable: 1.1.3 - true-case-path: 2.2.1 - dev: true - - /@rushstack/heft/0.48.0: - resolution: {integrity: sha512-HVhChSxmbfOiyKG7vSNLkNEuLZ3mVFzr6bw5vZDlr6Uo8ikb4Yt6K3PXCmdli03lbW9vnPZdLQapDtPlBPbhow==} + /@rushstack/heft/0.49.3: + resolution: {integrity: sha512-expPVgvB1TJhs4LYTAYv3qcpXnWeExidymgTQ0nCXEBAZPgcjAwS3uYGaCmguh9jd1OKnRAwhZeV9+lgZJXXCQ==} engines: {node: '>=10.13.0'} hasBin: true dependencies: - '@rushstack/heft-config-file': 0.11.1 - '@rushstack/node-core-library': 3.53.0 - '@rushstack/rig-package': 0.3.16 - '@rushstack/ts-command-line': 4.12.4 + '@rushstack/heft-config-file': 0.11.5 + '@rushstack/node-core-library': 3.53.3 + '@rushstack/rig-package': 0.3.17 + '@rushstack/ts-command-line': 4.13.1 '@types/tapable': 1.0.6 argparse: 1.0.10 chokidar: 3.4.3 @@ -6464,8 +6808,8 @@ packages: true-case-path: 2.2.1 dev: true - /@rushstack/node-core-library/3.50.1: - resolution: {integrity: sha512-9d2xE7E9yQEBS6brTptdP8cslt6iL5+UnkY2lRxQQ4Q/jlXtsrWCCJCxwr56W/eJEe9YT/yHR4mMn5QY64Ps2w==} + /@rushstack/node-core-library/3.53.3: + resolution: {integrity: sha512-H0+T5koi5MFhJUd5ND3dI3bwLhvlABetARl78L3lWftJVQEPyzcgTStvTTRiIM5mCltyTM8VYm6BuCtNUuxD0Q==} dependencies: '@types/node': 12.20.24 colors: 1.2.5 @@ -6474,32 +6818,11 @@ packages: jju: 1.4.0 resolve: 1.17.0 semver: 7.3.8 - timsort: 0.3.0 - z-schema: 5.0.4 + z-schema: 5.0.5 dev: true - /@rushstack/node-core-library/3.53.0: - resolution: {integrity: sha512-FXk3eDtTHKnaUq+fLyNY867ioRhMa6CJDJO5hZ3wuGlxm184nckAFiU+hx027AodjpnqjX6pYF0zZGq7k7P/vg==} - dependencies: - '@types/node': 12.20.24 - colors: 1.2.5 - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.17.0 - semver: 7.3.8 - z-schema: 5.0.4 - dev: true - - /@rushstack/rig-package/0.3.14: - resolution: {integrity: sha512-Ic9EN3kWJCK6iOxEDtwED9nrM146zCDrQaUxbeGOF+q/VLZ/HNHPw+aLqrqmTl0ZT66Sf75Qk6OG+rySjTorvQ==} - dependencies: - resolve: 1.17.0 - strip-json-comments: 3.1.1 - dev: true - - /@rushstack/rig-package/0.3.16: - resolution: {integrity: sha512-FoSQng2RtapEUe+CBPKxbpZUhUht5s2+mMiztRH95qqp81dsUpfEWojtV6XrUVyWIRk2/cY1CDZUKJWxMrT26Q==} + /@rushstack/rig-package/0.3.17: + resolution: {integrity: sha512-nxvAGeIMnHl1LlZSQmacgcRV4y1EYtgcDIrw6KkeVjudOMonlxO482PhDj3LVZEp6L7emSf6YSO2s5JkHlwfZA==} dependencies: resolve: 1.17.0 strip-json-comments: 3.1.1 @@ -6509,17 +6832,8 @@ packages: resolution: {integrity: sha512-H8i0OinWsdKM1TKEKPeRRTw85e+/7AIFpxm7q1blceZJhuxRBjCGAUZvQXZK4CMLx75xPqh/h1t5WHwFmElAPA==} dev: true - /@rushstack/ts-command-line/4.12.2: - resolution: {integrity: sha512-poBtnumLuWmwmhCEkVAgynWgtnF9Kygekxyp4qtQUSbBrkuyPQTL85c8Cva1YfoUpOdOXxezMAkUt0n5SNKGqw==} - dependencies: - '@types/argparse': 1.0.38 - argparse: 1.0.10 - colors: 1.2.5 - string-argv: 0.3.1 - dev: true - - /@rushstack/ts-command-line/4.12.4: - resolution: {integrity: sha512-ckZHEfPiJCmBdWd/syve5zu2TNsPIqbFie3jWzM/izZa6ZOkDwex/K1ww+kJ12hFBnN44lMD7voJvKXajUCEDA==} + /@rushstack/ts-command-line/4.13.1: + resolution: {integrity: sha512-UTQMRyy/jH1IS2U+6pyzyn9xQ2iMcoUKkTcZUzOP/aaMiKlWLwCTDiBVwhw/M1crDx6apF9CwyjuWO9r1SBdJQ==} dependencies: '@types/argparse': 1.0.38 argparse: 1.0.10 @@ -6547,7 +6861,7 @@ packages: '@serverless-stack/resources': 0.67.0 aws-cdk: 2.7.0 aws-cdk-lib: 2.7.0_constructs@10.0.130 - aws-sdk: 2.1271.0 + aws-sdk: 2.1304.0 body-parser: 1.20.1 chalk: 4.1.2 chokidar: 3.5.3 @@ -6571,26 +6885,26 @@ packages: /@serverless-stack/core/0.67.2: resolution: {integrity: sha512-9Z7dDCWRu38EGR9XL9cD2pZBNtX1vrpij9r4mOAae5PUk3XqROfzoEqObIhkU78Qzl/N74bKMu75z0IzXqa2rA==} dependencies: - '@trpc/server': 9.27.4 + '@trpc/server': 9.27.3 async-retry: 1.3.3 aws-cdk: 2.7.0 aws-cdk-lib: 2.7.0_constructs@10.0.130 - aws-sdk: 2.1271.0 + aws-sdk: 2.1304.0 chalk: 4.1.2 chokidar: 3.5.3 - ci-info: 3.7.0 + ci-info: 3.7.1 conf: 10.2.0 constructs: 10.0.130 cross-spawn: 7.0.3 dataloader: 2.1.0 - dendriform-immer-patch-optimiser: 2.1.3_immer@9.0.16 + dendriform-immer-patch-optimiser: 2.1.3_immer@9.0.19 dotenv: 10.0.0 dotenv-expand: 5.1.0 esbuild: 0.14.54 - eslint: 8.29.0 + eslint: 8.32.0 express: 4.18.1 fs-extra: 9.1.0 - immer: 9.0.16 + immer: 9.0.19 js-yaml: 4.1.0 log4js: 6.7.1 picomatch: 2.3.1 @@ -6598,7 +6912,7 @@ packages: typescript: 4.8.4 uuid: 8.3.2 xstate: 4.26.1 - zod: 3.19.1 + zod: 3.20.2 transitivePeerDependencies: - supports-color dev: true @@ -6618,7 +6932,7 @@ packages: chalk: 4.1.2 constructs: 10.0.130 cross-spawn: 7.0.3 - esbuild: 0.16.3 + esbuild: 0.17.5 fs-extra: 9.1.0 glob: 7.2.3 graphql: 15.8.0 @@ -6630,9 +6944,9 @@ packages: /@sinclair/typebox/0.25.21: resolution: {integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==} - /@sindresorhus/is/0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} + /@sindresorhus/is/4.6.0: + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} /@sinonjs/commons/1.8.6: resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} @@ -6673,7 +6987,7 @@ packages: '@storybook/core-events': 6.4.22 '@storybook/csf': 0.0.2--canary.87bc651.0 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - core-js: 3.26.1 + core-js: 3.27.2 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -6709,7 +7023,7 @@ packages: '@storybook/core-events': 6.4.22 '@storybook/csf': 0.0.2--canary.87bc651.0 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 memoizerific: 1.11.3 react: 16.13.1 @@ -6741,7 +7055,7 @@ packages: '@storybook/node-logger': 6.4.22 '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - core-js: 3.26.1 + core-js: 3.27.2 lodash: 4.17.21 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 @@ -6803,11 +7117,11 @@ packages: webpack: optional: true dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/parser': 7.20.5 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.17.12 - '@babel/preset-env': 7.20.2_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/parser': 7.20.13 + '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 '@jest/transform': 26.6.2 '@mdx-js/loader': 1.6.22_react@16.13.1 '@mdx-js/mdx': 1.6.22 @@ -6824,14 +7138,14 @@ packages: '@storybook/node-logger': 6.4.22 '@storybook/postinstall': 6.4.22 '@storybook/preview-web': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - '@storybook/react': 6.4.22_6pxnn2xtr5yph4wackblrq76km + '@storybook/react': 6.4.22_g3vav2yjvpxundb7gjqt3iemz4 '@storybook/source-loader': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma acorn: 7.4.1 acorn-jsx: 5.3.2_acorn@7.4.1 acorn-walk: 7.2.0 - core-js: 3.26.1 + core-js: 3.27.2 doctrine: 3.0.0 escodegen: 2.0.0 fast-deep-equal: 3.1.3 @@ -6868,7 +7182,7 @@ packages: - webpack-command dev: true - /@storybook/addon-essentials/6.4.22_q2qw673im4ojqxzlijezcm3cd4: + /@storybook/addon-essentials/6.4.22_hkhg3iiojfv2fz4xaaqqghkthm: resolution: {integrity: sha512-GTv291fqvWq2wzm7MruBvCGuWaCUiuf7Ca3kzbQ/WqWtve7Y/1PDsqRNQLGZrQxkXU0clXCqY1XtkTrtA3WGFQ==} peerDependencies: '@babel/core': ^7.9.6 @@ -6893,7 +7207,7 @@ packages: webpack: optional: true dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@storybook/addon-actions': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/addon-backgrounds': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/addon-controls': 6.4.22_xf6r4yukfywdkj47txjlawutqi @@ -6905,8 +7219,8 @@ packages: '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/api': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/node-logger': 6.4.22 - babel-loader: 8.2.5_4bf35c6ryl6gwyrcrj2ykng7ny - core-js: 3.26.1 + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq + core-js: 3.27.2 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 regenerator-runtime: 0.13.11 @@ -6952,7 +7266,7 @@ packages: '@storybook/csf': 0.0.2--canary.87bc651.0 '@storybook/router': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@types/qs': 6.9.7 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 prop-types: 15.8.1 qs: 6.11.0 @@ -6981,7 +7295,7 @@ packages: '@storybook/components': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/core-events': 6.4.22 '@storybook/csf': 0.0.2--canary.87bc651.0 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 @@ -7006,7 +7320,7 @@ packages: '@storybook/components': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/core-events': 6.4.22 '@storybook/csf': 0.0.2--canary.87bc651.0 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 @@ -7031,7 +7345,7 @@ packages: '@storybook/api': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/components': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - core-js: 3.26.1 + core-js: 3.27.2 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 regenerator-runtime: 0.13.11 @@ -7056,7 +7370,7 @@ packages: '@storybook/components': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/core-events': 6.4.22 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 memoizerific: 1.11.3 prop-types: 15.8.1 @@ -7083,7 +7397,7 @@ packages: '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@types/react': 16.14.23 '@types/webpack-env': 1.18.0 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 @@ -7105,7 +7419,7 @@ packages: '@storybook/semver': 7.3.2 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@types/react': 16.14.23 - core-js: 3.26.1 + core-js: 3.27.2 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -7119,6 +7433,97 @@ packages: util-deprecate: 1.0.2 dev: true + /@storybook/builder-webpack4/6.4.22_bdyrplxautjia6yrmekhzrb64q: + resolution: {integrity: sha512-A+GgGtKGnBneRFSFkDarUIgUTI8pYFdLmUVKEAGdh2hL+vLXAz9A46sEY7C8LQ85XWa8TKy3OTDxqR4+4iWj3A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-decorators': 7.20.13_@babel+core@7.20.12 + '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 + '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 + '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/api': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/channel-postmessage': 6.4.22 + '@storybook/channels': 6.4.22 + '@storybook/client-api': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/client-logger': 6.4.22 + '@storybook/components': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/core-common': 6.4.22_rvw4ma2iutwk6zwdf7hk54htde + '@storybook/core-events': 6.4.22 + '@storybook/node-logger': 6.4.22 + '@storybook/preview-web': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/router': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/semver': 7.3.2 + '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/ui': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@types/node': 14.18.36 + '@types/webpack': 4.41.32 + autoprefixer: 9.8.8 + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq + babel-plugin-macros: 2.8.0 + babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.20.12 + case-sensitive-paths-webpack-plugin: 2.4.0 + core-js: 3.27.2 + css-loader: 3.6.0_webpack@4.44.2 + file-loader: 6.2.0_webpack@4.44.2 + find-up: 5.0.0 + fork-ts-checker-webpack-plugin: 4.1.6 + glob: 7.2.3 + glob-promise: 3.4.0_glob@7.2.3 + global: 4.4.0 + html-webpack-plugin: 4.5.2_webpack@4.44.2 + pnp-webpack-plugin: 1.6.4_typescript@4.8.4 + postcss: 7.0.39 + postcss-flexbugs-fixes: 4.2.1 + postcss-loader: 4.3.0_4a2i7aa2i6hzz4ngguaxzo4tzi + raw-loader: 4.0.2_webpack@4.44.2 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + stable: 0.1.8 + style-loader: 1.3.0_webpack@4.44.2 + terser-webpack-plugin: 4.2.3_webpack@4.44.2 + ts-dedent: 2.2.0 + typescript: 4.8.4 + url-loader: 4.1.1_zmzwotvrfu62vdeozbyveyswza + util-deprecate: 1.0.2 + webpack: 4.44.2 + webpack-dev-middleware: 3.7.3_2jhnw6fokymnjfoumvhvkjoyjq + webpack-filter-warnings-plugin: 1.2.1_webpack@4.44.2 + webpack-hot-middleware: 2.25.3 + webpack-virtual-modules: 0.2.2 + transitivePeerDependencies: + - '@types/react' + - eslint + - supports-color + - vue-template-compiler + - webpack-cli + - webpack-command + dev: true + /@storybook/builder-webpack4/6.4.22_xf6r4yukfywdkj47txjlawutqi: resolution: {integrity: sha512-A+GgGtKGnBneRFSFkDarUIgUTI8pYFdLmUVKEAGdh2hL+vLXAz9A46sEY7C8LQ85XWa8TKy3OTDxqR4+4iWj3A==} peerDependencies: @@ -7129,27 +7534,27 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.17.12 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-decorators': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.17.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-block-scoping': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.17.12 - '@babel/plugin-transform-parameters': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.17.12 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.17.12 - '@babel/preset-env': 7.20.2_@babel+core@7.17.12 - '@babel/preset-react': 7.18.6_@babel+core@7.17.12 - '@babel/preset-typescript': 7.18.6_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-decorators': 7.20.13_@babel+core@7.20.12 + '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 + '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/api': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/channel-postmessage': 6.4.22 @@ -7166,14 +7571,14 @@ packages: '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/ui': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - '@types/node': 14.18.34 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 autoprefixer: 9.8.8 - babel-loader: 8.2.5_4bf35c6ryl6gwyrcrj2ykng7ny + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq babel-plugin-macros: 2.8.0 - babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.17.12 + babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.20.12 case-sensitive-paths-webpack-plugin: 2.4.0 - core-js: 3.26.1 + core-js: 3.27.2 css-loader: 3.6.0_webpack@4.44.2 file-loader: 6.2.0_webpack@4.44.2 find-up: 5.0.0 @@ -7216,7 +7621,7 @@ packages: '@storybook/channels': 6.4.22 '@storybook/client-logger': 6.4.22 '@storybook/core-events': 6.4.22 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 qs: 6.11.0 telejson: 5.3.3 @@ -7227,7 +7632,7 @@ packages: dependencies: '@storybook/channels': 6.4.22 '@storybook/client-logger': 6.4.22 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 telejson: 5.3.3 dev: true @@ -7235,7 +7640,7 @@ packages: /@storybook/channels/6.4.22: resolution: {integrity: sha512-cfR74tu7MLah1A8Rru5sak71I+kH2e/sY6gkpVmlvBj4hEmdZp4Puj9PTeaKcMXh9DgIDPNA5mb8yvQH6VcyxQ==} dependencies: - core-js: 3.26.1 + core-js: 3.27.2 ts-dedent: 2.2.0 util-deprecate: 1.0.2 dev: true @@ -7246,8 +7651,8 @@ packages: peerDependencies: jest: '*' dependencies: - '@babel/core': 7.17.12 - '@babel/preset-env': 7.20.2_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 '@storybook/codemod': 6.4.22_@babel+preset-env@7.20.2 '@storybook/core-common': 6.4.22_4o36x7vjmnuefo3jox56hgoacm '@storybook/csf-tools': 6.4.22 @@ -7256,7 +7661,7 @@ packages: boxen: 5.1.2 chalk: 4.1.2 commander: 6.2.1 - core-js: 3.26.1 + core-js: 3.27.2 cross-spawn: 7.0.3 envinfo: 7.8.1 express: 4.18.1 @@ -7264,9 +7669,9 @@ packages: fs-extra: 9.1.0 get-port: 5.1.1 globby: 11.1.0 - jest: 29.3.1_@types+node@12.20.24 + jest: 29.3.1_@types+node@14.18.36 jscodeshift: 0.13.1_@babel+preset-env@7.20.2 - json5: 2.2.1 + json5: 2.2.3 leven: 3.1.0 prompts: 2.4.2 puppeteer-core: 2.1.1 @@ -7301,7 +7706,7 @@ packages: '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@types/qs': 6.9.7 '@types/webpack-env': 1.18.0 - core-js: 3.26.1 + core-js: 3.27.2 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -7311,7 +7716,7 @@ packages: react-dom: 16.13.1_react@16.13.1 regenerator-runtime: 0.13.11 store2: 2.14.2 - synchronous-promise: 2.0.16 + synchronous-promise: 2.0.17 ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: @@ -7321,19 +7726,19 @@ packages: /@storybook/client-logger/6.4.22: resolution: {integrity: sha512-LXhxh/lcDsdGnK8kimqfhu3C0+D2ylCSPPQNbU0IsLRmTfbpQYMdyl0XBjPdHiRVwlL7Gkw5OMjYemQgJ02zlw==} dependencies: - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 dev: true /@storybook/codemod/6.4.22_@babel+preset-env@7.20.2: resolution: {integrity: sha512-xqnTKUQU2W3vS3dce9s4bYhy15tIfAHIzog37jqpKYOHnByXpPj/KkluGePtv5I6cvMxqP8IhQzn+Eh/lVjM4Q==} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 '@mdx-js/mdx': 1.6.22 '@storybook/csf': 0.0.2--canary.87bc651.0 '@storybook/csf-tools': 6.4.22 '@storybook/node-logger': 6.4.22 - core-js: 3.26.1 + core-js: 3.27.2 cross-spawn: 7.0.3 globby: 11.1.0 jscodeshift: 0.13.1_@babel+preset-env@7.20.2 @@ -7360,7 +7765,7 @@ packages: '@types/overlayscrollbars': 1.12.1 '@types/react-syntax-highlighter': 11.0.5 color-convert: 2.0.1 - core-js: 3.26.1 + core-js: 3.27.2 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -7405,7 +7810,7 @@ packages: '@storybook/ui': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma airbnb-js-shims: 2.2.1 ansi-to-html: 0.6.15 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 lodash: 4.17.21 qs: 6.11.0 @@ -7431,36 +7836,36 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.17.12 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-decorators': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.17.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-object-rest-spread': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-transform-arrow-functions': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-block-scoping': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-classes': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-transform-destructuring': 7.20.2_@babel+core@7.17.12 - '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.17.12 - '@babel/plugin-transform-parameters': 7.20.5_@babel+core@7.17.12 - '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-transform-spread': 7.19.0_@babel+core@7.17.12 - '@babel/preset-env': 7.20.2_@babel+core@7.17.12 - '@babel/preset-react': 7.18.6_@babel+core@7.17.12 - '@babel/preset-typescript': 7.18.6_@babel+core@7.17.12 - '@babel/register': 7.18.9_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-decorators': 7.20.13_@babel+core@7.20.12 + '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 + '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 + '@babel/register': 7.18.9_@babel+core@7.20.12 '@storybook/node-logger': 6.4.22 '@storybook/semver': 7.3.2 - '@types/node': 14.18.34 + '@types/node': 14.18.36 '@types/pretty-hrtime': 1.0.1 - babel-loader: 8.2.5_4bf35c6ryl6gwyrcrj2ykng7ny + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq babel-plugin-macros: 3.1.0 - babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.17.12 + babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.20.12 chalk: 4.1.2 - core-js: 3.26.1 + core-js: 3.27.2 express: 4.18.1 file-system-cache: 1.1.0 find-up: 5.0.0 @@ -7469,7 +7874,77 @@ packages: glob: 7.2.3 handlebars: 4.7.7 interpret: 2.2.0 - json5: 2.2.1 + json5: 2.2.3 + lazy-universal-dotenv: 3.0.1 + picomatch: 2.3.1 + pkg-dir: 5.0.0 + pretty-hrtime: 1.0.3 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + resolve-from: 5.0.0 + slash: 3.0.0 + telejson: 5.3.3 + ts-dedent: 2.2.0 + typescript: 4.8.4 + util-deprecate: 1.0.2 + webpack: 4.44.2 + transitivePeerDependencies: + - eslint + - supports-color + - vue-template-compiler + - webpack-cli + - webpack-command + dev: true + + /@storybook/core-common/6.4.22_rvw4ma2iutwk6zwdf7hk54htde: + resolution: {integrity: sha512-PD3N/FJXPNRHeQS2zdgzYFtqPLdi3MLwAicbnw+U3SokcsspfsAuyYHZOYZgwO8IAEKy6iCc7TpBdiSJZ/vAKQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-decorators': 7.20.13_@babel+core@7.20.12 + '@babel/plugin-proposal-export-default-from': 7.18.10_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-transform-arrow-functions': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-block-scoping': 7.20.14_@babel+core@7.20.12 + '@babel/plugin-transform-classes': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-for-of': 7.18.8_@babel+core@7.20.12 + '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-shorthand-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-transform-spread': 7.20.7_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 + '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 + '@babel/register': 7.18.9_@babel+core@7.20.12 + '@storybook/node-logger': 6.4.22 + '@storybook/semver': 7.3.2 + '@types/node': 14.18.36 + '@types/pretty-hrtime': 1.0.1 + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq + babel-plugin-macros: 3.1.0 + babel-plugin-polyfill-corejs3: 0.1.7_@babel+core@7.20.12 + chalk: 4.1.2 + core-js: 3.27.2 + express: 4.18.1 + file-system-cache: 1.1.0 + find-up: 5.0.0 + fork-ts-checker-webpack-plugin: 6.5.2_l3j2csrdyqgod4lcwxvazi2dg4 + fs-extra: 9.1.0 + glob: 7.2.3 + handlebars: 4.7.7 + interpret: 2.2.0 + json5: 2.2.3 lazy-universal-dotenv: 3.0.1 picomatch: 2.3.1 pkg-dir: 5.0.0 @@ -7491,12 +7966,85 @@ packages: - webpack-command dev: true - /@storybook/core-events/6.4.22: - resolution: {integrity: sha512-5GYY5+1gd58Gxjqex27RVaX6qbfIQmJxcbzbNpXGNSqwqAuIIepcV1rdCVm6I4C3Yb7/AQ3cN5dVbf33QxRIwA==} - dependencies: - core-js: 3.26.1 - dev: true - + /@storybook/core-events/6.4.22: + resolution: {integrity: sha512-5GYY5+1gd58Gxjqex27RVaX6qbfIQmJxcbzbNpXGNSqwqAuIIepcV1rdCVm6I4C3Yb7/AQ3cN5dVbf33QxRIwA==} + dependencies: + core-js: 3.27.2 + dev: true + + /@storybook/core-server/6.4.22_bdyrplxautjia6yrmekhzrb64q: + resolution: {integrity: sha512-wFh3e2fa0un1d4+BJP+nd3FVWUO7uHTqv3OGBfOmzQMKp4NU1zaBNdSQG7Hz6mw0fYPBPZgBjPfsJRwIYLLZyw==} + peerDependencies: + '@storybook/builder-webpack5': 6.4.22 + '@storybook/manager-webpack5': 6.4.22 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + typescript: '*' + peerDependenciesMeta: + '@storybook/builder-webpack5': + optional: true + '@storybook/manager-webpack5': + optional: true + typescript: + optional: true + dependencies: + '@discoveryjs/json-ext': 0.5.7 + '@storybook/builder-webpack4': 6.4.22_bdyrplxautjia6yrmekhzrb64q + '@storybook/core-client': 6.4.22_m2ha4wqgs5y6chnytfqlahqmme + '@storybook/core-common': 6.4.22_rvw4ma2iutwk6zwdf7hk54htde + '@storybook/core-events': 6.4.22 + '@storybook/csf': 0.0.2--canary.87bc651.0 + '@storybook/csf-tools': 6.4.22 + '@storybook/manager-webpack4': 6.4.22_bdyrplxautjia6yrmekhzrb64q + '@storybook/node-logger': 6.4.22 + '@storybook/semver': 7.3.2 + '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@types/node': 14.18.36 + '@types/node-fetch': 2.6.2 + '@types/pretty-hrtime': 1.0.1 + '@types/webpack': 4.41.32 + better-opn: 2.1.1 + boxen: 5.1.2 + chalk: 4.1.2 + cli-table3: 0.6.3 + commander: 6.2.1 + compression: 1.7.4 + core-js: 3.27.2 + cpy: 8.1.2 + detect-port: 1.5.1 + express: 4.18.1 + file-system-cache: 1.1.0 + fs-extra: 9.1.0 + globby: 11.1.0 + ip: 1.1.8 + lodash: 4.17.21 + node-fetch: 2.6.7 + pretty-hrtime: 1.0.3 + prompts: 2.4.2 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + regenerator-runtime: 0.13.11 + serve-favicon: 2.5.0 + slash: 3.0.0 + telejson: 5.3.3 + ts-dedent: 2.2.0 + typescript: 4.8.4 + util-deprecate: 1.0.2 + watchpack: 2.4.0 + webpack: 4.44.2 + ws: 8.12.0 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - encoding + - eslint + - supports-color + - utf-8-validate + - vue-template-compiler + - webpack-cli + - webpack-command + dev: true + /@storybook/core-server/6.4.22_xf6r4yukfywdkj47txjlawutqi: resolution: {integrity: sha512-wFh3e2fa0un1d4+BJP+nd3FVWUO7uHTqv3OGBfOmzQMKp4NU1zaBNdSQG7Hz6mw0fYPBPZgBjPfsJRwIYLLZyw==} peerDependencies: @@ -7524,7 +8072,7 @@ packages: '@storybook/node-logger': 6.4.22 '@storybook/semver': 7.3.2 '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - '@types/node': 14.18.34 + '@types/node': 14.18.36 '@types/node-fetch': 2.6.2 '@types/pretty-hrtime': 1.0.1 '@types/webpack': 4.41.32 @@ -7534,7 +8082,7 @@ packages: cli-table3: 0.6.3 commander: 6.2.1 compression: 1.7.4 - core-js: 3.26.1 + core-js: 3.27.2 cpy: 8.1.2 detect-port: 1.5.1 express: 4.18.1 @@ -7557,8 +8105,41 @@ packages: util-deprecate: 1.0.2 watchpack: 2.4.0 webpack: 4.44.2 - ws: 8.11.0 + ws: 8.12.0 + transitivePeerDependencies: + - '@types/react' + - bufferutil + - encoding + - eslint + - supports-color + - utf-8-validate + - vue-template-compiler + - webpack-cli + - webpack-command + dev: true + + /@storybook/core/6.4.22_alscxlewyk2uyylj2zm57mo5wy: + resolution: {integrity: sha512-KZYJt7GM5NgKFXbPRZZZPEONZ5u/tE/cRbMdkn/zWN3He8+VP+65/tz8hbriI/6m91AWVWkBKrODSkeq59NgRA==} + peerDependencies: + '@storybook/builder-webpack5': 6.4.22 + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + typescript: '*' + webpack: '*' + peerDependenciesMeta: + '@storybook/builder-webpack5': + optional: true + typescript: + optional: true + dependencies: + '@storybook/core-client': 6.4.22_m2ha4wqgs5y6chnytfqlahqmme + '@storybook/core-server': 6.4.22_bdyrplxautjia6yrmekhzrb64q + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + typescript: 4.8.4 + webpack: 4.44.2 transitivePeerDependencies: + - '@storybook/manager-webpack5' - '@types/react' - bufferutil - encoding @@ -7606,16 +8187,16 @@ packages: /@storybook/csf-tools/6.4.22: resolution: {integrity: sha512-LMu8MZAiQspJAtMBLU2zitsIkqQv7jOwX7ih5JrXlyaDticH7l2j6Q+1mCZNWUOiMTizj0ivulmUsSaYbpToSw==} dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/parser': 7.20.5 - '@babel/plugin-transform-react-jsx': 7.19.0_@babel+core@7.17.12 - '@babel/preset-env': 7.20.2_@babel+core@7.17.12 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/parser': 7.20.13 + '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 '@mdx-js/mdx': 1.6.22 '@storybook/csf': 0.0.2--canary.87bc651.0 - core-js: 3.26.1 + core-js: 3.27.2 fs-extra: 9.1.0 global: 4.4.0 js-string-escape: 1.0.1 @@ -7633,6 +8214,65 @@ packages: lodash: 4.17.21 dev: true + /@storybook/manager-webpack4/6.4.22_bdyrplxautjia6yrmekhzrb64q: + resolution: {integrity: sha512-nzhDMJYg0vXdcG0ctwE6YFZBX71+5NYaTGkxg3xT7gbgnP1YFXn9gVODvgq3tPb3gcRapjyOIxUa20rV+r8edA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 + '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/core-client': 6.4.22_m2ha4wqgs5y6chnytfqlahqmme + '@storybook/core-common': 6.4.22_rvw4ma2iutwk6zwdf7hk54htde + '@storybook/node-logger': 6.4.22 + '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/ui': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@types/node': 14.18.36 + '@types/webpack': 4.41.32 + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq + case-sensitive-paths-webpack-plugin: 2.4.0 + chalk: 4.1.2 + core-js: 3.27.2 + css-loader: 3.6.0_webpack@4.44.2 + express: 4.18.1 + file-loader: 6.2.0_webpack@4.44.2 + file-system-cache: 1.1.0 + find-up: 5.0.0 + fs-extra: 9.1.0 + html-webpack-plugin: 4.5.2_webpack@4.44.2 + node-fetch: 2.6.7 + pnp-webpack-plugin: 1.6.4_typescript@4.8.4 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + read-pkg-up: 7.0.1 + regenerator-runtime: 0.13.11 + resolve-from: 5.0.0 + style-loader: 1.3.0_webpack@4.44.2 + telejson: 5.3.3 + terser-webpack-plugin: 4.2.3_webpack@4.44.2 + ts-dedent: 2.2.0 + typescript: 4.8.4 + url-loader: 4.1.1_zmzwotvrfu62vdeozbyveyswza + util-deprecate: 1.0.2 + webpack: 4.44.2 + webpack-dev-middleware: 3.7.3_2jhnw6fokymnjfoumvhvkjoyjq + webpack-virtual-modules: 0.2.2 + transitivePeerDependencies: + - '@types/react' + - encoding + - eslint + - supports-color + - vue-template-compiler + - webpack-cli + - webpack-command + dev: true + /@storybook/manager-webpack4/6.4.22_xf6r4yukfywdkj47txjlawutqi: resolution: {integrity: sha512-nzhDMJYg0vXdcG0ctwE6YFZBX71+5NYaTGkxg3xT7gbgnP1YFXn9gVODvgq3tPb3gcRapjyOIxUa20rV+r8edA==} peerDependencies: @@ -7643,21 +8283,21 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.17.12 - '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.17.12 - '@babel/preset-react': 7.18.6_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/plugin-transform-template-literals': 7.18.9_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/core-client': 6.4.22_m2ha4wqgs5y6chnytfqlahqmme '@storybook/core-common': 6.4.22_4o36x7vjmnuefo3jox56hgoacm '@storybook/node-logger': 6.4.22 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/ui': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - '@types/node': 14.18.34 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 - babel-loader: 8.2.5_4bf35c6ryl6gwyrcrj2ykng7ny + babel-loader: 8.2.5_tb555f6titdaodihyrbadfrjbq case-sensitive-paths-webpack-plugin: 2.4.0 chalk: 4.1.2 - core-js: 3.26.1 + core-js: 3.27.2 css-loader: 3.6.0_webpack@4.44.2 express: 4.18.1 file-loader: 6.2.0_webpack@4.44.2 @@ -7697,7 +8337,7 @@ packages: dependencies: '@types/npmlog': 4.1.4 chalk: 4.1.2 - core-js: 3.26.1 + core-js: 3.27.2 npmlog: 5.0.1 pretty-hrtime: 1.0.3 dev: true @@ -7705,7 +8345,7 @@ packages: /@storybook/postinstall/6.4.22: resolution: {integrity: sha512-LdIvA+l70Mp5FSkawOC16uKocefc+MZLYRHqjTjgr7anubdi6y7W4n9A7/Yw4IstZHoknfL88qDj/uK5N+Ahzw==} dependencies: - core-js: 3.26.1 + core-js: 3.27.2 dev: true /@storybook/preview-web/6.4.22_e4p5kqppx5gth2ijr2xdvk24ma: @@ -7721,14 +8361,14 @@ packages: '@storybook/csf': 0.0.2--canary.87bc651.0 '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma ansi-to-html: 0.6.15 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 lodash: 4.17.21 qs: 6.11.0 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 regenerator-runtime: 0.13.11 - synchronous-promise: 2.0.16 + synchronous-promise: 2.0.17 ts-dedent: 2.2.0 unfetch: 4.2.0 util-deprecate: 1.0.2 @@ -7755,7 +8395,7 @@ packages: - supports-color dev: true - /@storybook/react/6.4.22_6pxnn2xtr5yph4wackblrq76km: + /@storybook/react/6.4.22_7f2tks6pv3f5nmtchaqa577f2q: resolution: {integrity: sha512-5BFxtiguOcePS5Ty/UoH7C6odmvBYIZutfiy4R3Ua6FYmtxac5vP9r5KjCz1IzZKT8mCf4X+PuK1YvDrPPROgQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -7772,9 +8412,75 @@ packages: typescript: optional: true dependencies: - '@babel/core': 7.17.12 - '@babel/preset-flow': 7.18.6_@babel+core@7.17.12 - '@babel/preset-react': 7.18.6_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/preset-flow': 7.18.6_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 + '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_yceubsmjd6jm3woocckpqejnhy + '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@storybook/core': 6.4.22_alscxlewyk2uyylj2zm57mo5wy + '@storybook/core-common': 6.4.22_rvw4ma2iutwk6zwdf7hk54htde + '@storybook/csf': 0.0.2--canary.87bc651.0 + '@storybook/node-logger': 6.4.22 + '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.253f8c1.0_l2tljvf7qg4dnwbeffjdh4wj4e + '@storybook/semver': 7.3.2 + '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma + '@types/node': 14.18.36 + '@types/react': 16.14.23 + '@types/webpack-env': 1.18.0 + babel-plugin-add-react-displayname: 0.0.5 + babel-plugin-named-asset-import: 0.3.8_@babel+core@7.20.12 + babel-plugin-react-docgen: 4.2.1 + core-js: 3.27.2 + global: 4.4.0 + lodash: 4.17.21 + prop-types: 15.8.1 + react: 16.13.1 + react-dom: 16.13.1_react@16.13.1 + react-refresh: 0.11.0 + read-pkg-up: 7.0.1 + regenerator-runtime: 0.13.11 + ts-dedent: 2.2.0 + typescript: 4.8.4 + webpack: 4.44.2 + transitivePeerDependencies: + - '@storybook/builder-webpack5' + - '@storybook/manager-webpack5' + - '@types/webpack' + - bufferutil + - encoding + - eslint + - sockjs-client + - supports-color + - type-fest + - utf-8-validate + - vue-template-compiler + - webpack-cli + - webpack-command + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: true + + /@storybook/react/6.4.22_g3vav2yjvpxundb7gjqt3iemz4: + resolution: {integrity: sha512-5BFxtiguOcePS5Ty/UoH7C6odmvBYIZutfiy4R3Ua6FYmtxac5vP9r5KjCz1IzZKT8mCf4X+PuK1YvDrPPROgQ==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.11.5 + '@types/node': '>=12' + '@types/react': '>=16' + react: ^16.8.0 || ^17.0.0 + react-dom: ^16.8.0 || ^17.0.0 + typescript: '*' + peerDependenciesMeta: + '@babel/core': + optional: true + typescript: + optional: true + dependencies: + '@babel/core': 7.20.12 + '@babel/preset-flow': 7.18.6_@babel+core@7.20.12 + '@babel/preset-react': 7.18.6_@babel+core@7.20.12 '@pmmmwh/react-refresh-webpack-plugin': 0.5.10_yceubsmjd6jm3woocckpqejnhy '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/core': 6.4.22_m2ha4wqgs5y6chnytfqlahqmme @@ -7784,13 +8490,13 @@ packages: '@storybook/react-docgen-typescript-plugin': 1.0.2-canary.253f8c1.0_l2tljvf7qg4dnwbeffjdh4wj4e '@storybook/semver': 7.3.2 '@storybook/store': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/react': 16.14.23 '@types/webpack-env': 1.18.0 babel-plugin-add-react-displayname: 0.0.5 - babel-plugin-named-asset-import: 0.3.8_@babel+core@7.17.12 + babel-plugin-named-asset-import: 0.3.8_@babel+core@7.20.12 babel-plugin-react-docgen: 4.2.1 - core-js: 3.26.1 + core-js: 3.27.2 global: 4.4.0 lodash: 4.17.21 prop-types: 15.8.1 @@ -7830,7 +8536,7 @@ packages: dependencies: '@storybook/client-logger': 6.4.22 '@types/react': 16.14.23 - core-js: 3.26.1 + core-js: 3.27.2 fast-deep-equal: 3.1.3 global: 4.4.0 history: 5.0.0 @@ -7839,8 +8545,8 @@ packages: qs: 6.11.0 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 - react-router: 6.4.5_qjwx5m6wssz3lnb35xwkc3pz6q - react-router-dom: 6.4.5_e4p5kqppx5gth2ijr2xdvk24ma + react-router: 6.8.0_qjwx5m6wssz3lnb35xwkc3pz6q + react-router-dom: 6.8.0_e4p5kqppx5gth2ijr2xdvk24ma ts-dedent: 2.2.0 dev: true @@ -7849,7 +8555,7 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - core-js: 3.26.1 + core-js: 3.27.2 find-up: 4.1.0 dev: true @@ -7862,7 +8568,7 @@ packages: '@storybook/addons': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma '@storybook/client-logger': 6.4.22 '@storybook/csf': 0.0.2--canary.87bc651.0 - core-js: 3.26.1 + core-js: 3.27.2 estraverse: 5.3.0 global: 4.4.0 loader-utils: 2.0.4 @@ -7885,7 +8591,7 @@ packages: '@storybook/client-logger': 6.4.22 '@storybook/core-events': 6.4.22 '@storybook/csf': 0.0.2--canary.87bc651.0 - core-js: 3.26.1 + core-js: 3.27.2 fast-deep-equal: 3.1.3 global: 4.4.0 lodash: 4.17.21 @@ -7895,7 +8601,7 @@ packages: regenerator-runtime: 0.13.11 slash: 3.0.0 stable: 0.1.8 - synchronous-promise: 2.0.16 + synchronous-promise: 2.0.17 ts-dedent: 2.2.0 util-deprecate: 1.0.2 transitivePeerDependencies: @@ -7914,7 +8620,7 @@ packages: '@emotion/styled': 10.3.0_tpm53lxjhhnjmtj6wgjp3t3pxi '@emotion/utils': 1.2.0 '@storybook/client-logger': 6.4.22 - core-js: 3.26.1 + core-js: 3.27.2 deep-object-diff: 1.1.9 emotion-theming: 10.3.0_tpm53lxjhhnjmtj6wgjp3t3pxi global: 4.4.0 @@ -7945,8 +8651,8 @@ packages: '@storybook/semver': 7.3.2 '@storybook/theming': 6.4.22_e4p5kqppx5gth2ijr2xdvk24ma copy-to-clipboard: 3.3.3 - core-js: 3.26.1 - core-js-pure: 3.26.1 + core-js: 3.27.2 + core-js-pure: 3.27.2 downshift: 6.1.12_react@16.13.1 emotion-theming: 10.3.0_tpm53lxjhhnjmtj6wgjp3t3pxi fuse.js: 3.6.1 @@ -7968,11 +8674,11 @@ packages: - '@types/react' dev: true - /@szmarczak/http-timer/1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} + /@szmarczak/http-timer/4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} dependencies: - defer-to-connect: 1.1.3 + defer-to-connect: 2.0.1 /@tootallnate/once/1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} @@ -7983,8 +8689,8 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - /@trpc/server/9.27.4: - resolution: {integrity: sha512-yw0omUrxGp8+gEAuieZFeXB4bCqFvmyCDL3GOBv+Q6+cK0m5824ViHZKPgK5DYG1ijN/lbi1hP3UVKywPN7rbQ==} + /@trpc/server/9.27.3: + resolution: {integrity: sha512-RHWD9xjE+A9UaQCVYkqjl0sbGaHfvlUqJH3e1I57F2ztJbMeFYoP47pVgjkg0CLYSuRDa3imtD4dVDZ4DcODjQ==} dev: true /@trysound/sax/0.2.0: @@ -7999,11 +8705,11 @@ packages: resolution: {integrity: sha512-Vsyi9ogDAY3REZDjYnXMRJJa62SDvxHXxJI5nGDQdZW058dDE+av/anynN2rLKbCKXDRNw3D/sQmqxVflZFi4A==} dev: true - /@types/babel__core/7.1.20: - resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==} + /@types/babel__core/7.20.0: + resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} dependencies: - '@babel/parser': 7.20.5 - '@babel/types': 7.20.5 + '@babel/parser': 7.20.13 + '@babel/types': 7.20.7 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.3 @@ -8011,30 +8717,37 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.20.5 - '@babel/types': 7.20.5 + '@babel/parser': 7.20.13 + '@babel/types': 7.20.7 /@types/babel__traverse/7.18.3: resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} dependencies: - '@babel/types': 7.20.5 + '@babel/types': 7.20.7 /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 12.20.24 + '@types/node': 14.18.36 /@types/bonjour/3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 12.20.24 - dev: false + '@types/node': 14.18.36 + + /@types/cacheable-request/6.0.3: + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + dependencies: + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.4 + '@types/node': 14.18.36 + '@types/responselike': 1.0.0 /@types/cli-table/0.3.0: resolution: {integrity: sha512-QnZUISJJXyhyD6L1e5QwXDV/A5i2W1/gl6D6YMc8u0ncPepbv/B4w3S+izVvtAg60m6h+JP09+Y/0zF2mojlFQ==} @@ -8057,19 +8770,18 @@ packages: /@types/connect-history-api-fallback/1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: - '@types/express-serve-static-core': 4.17.31 - '@types/node': 12.20.24 - dev: false + '@types/express-serve-static-core': 4.17.33 + '@types/node': 14.18.36 /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 /@types/cors/2.8.13: resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /@types/diff/5.0.1: @@ -8079,17 +8791,10 @@ packages: /@types/enhanced-resolve/3.0.7: resolution: {integrity: sha512-H23Fzk0BCz4LoKq1ricnLSRQuzoXTv57bGUwC+Cn84kKPaoHIS7bhFhfy4DzMeSBxoXc6jFziYoqpCab1U511w==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/tapable': 0.2.5 dev: true - /@types/error-stack-parser/2.0.0: - resolution: {integrity: sha512-O2ZQvaCuvqgpSOFzHST/VELij9sm5P84bouCz6z8DysloeY47JpeUyvv00TE0LrZPsG2qleUK00anUaLsvUMHQ==} - deprecated: This is a stub types definition for error-stack-parser (https://github.com/stacktracejs/error-stack-parser). error-stack-parser provides its own type definitions, so you don't need @types/error-stack-parser installed! - dependencies: - error-stack-parser: 2.1.4 - dev: false - /@types/eslint-scope/3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: @@ -8105,14 +8810,17 @@ packages: /@types/estree/0.0.50: resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==} + /@types/estree/0.0.51: + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + /@types/events/3.0.0: resolution: {integrity: sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==} dev: true - /@types/express-serve-static-core/4.17.31: - resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + /@types/express-serve-static-core/4.17.33: + resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -8120,14 +8828,14 @@ packages: resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} dependencies: '@types/body-parser': 1.19.2 - '@types/express-serve-static-core': 4.17.31 + '@types/express-serve-static-core': 4.17.33 '@types/qs': 6.9.7 '@types/serve-static': 1.15.0 /@types/fs-extra/7.0.0: resolution: {integrity: sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /@types/glob/7.1.1: @@ -8135,13 +8843,13 @@ packages: dependencies: '@types/events': 3.0.0 '@types/minimatch': 3.0.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true - /@types/graceful-fs/4.1.5: - resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} + /@types/graceful-fs/4.1.6: + resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 /@types/hast/2.3.4: resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} @@ -8153,6 +8861,7 @@ packages: resolution: {integrity: sha512-cF2iEUpvGh2WgLowHVAdjI05xuDo+GwCA8hGV3Q5PBl8apjd6BTcpPFQ2uPlfUM7BLpgur2xpYo8VeBXopMI4A==} dependencies: '@types/jest': 29.2.5 + dev: true /@types/hoist-non-react-statics/3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} @@ -8167,10 +8876,13 @@ packages: /@types/html-minifier-terser/6.1.0: resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + /@types/http-cache-semantics/4.0.1: + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} + /@types/http-proxy/1.17.9: resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 /@types/inquirer/7.3.1: resolution: {integrity: sha512-osD38QVIfcdgsPCT0V3lD7eH0OFurX71Jft18bZrsVQWVRt6TuxRzlr0GJLrxoHZR2V5ph7/qP8se/dcnI7o0g==} @@ -8213,17 +8925,22 @@ packages: /@types/jsdom/20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/tough-cookie': 4.0.2 parse5: 7.1.2 /@types/json-schema/7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + /@types/keyv/3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 14.18.36 + /@types/loader-utils/1.1.3: resolution: {integrity: sha512-euKGFr2oCB3ASBwG39CYJMR3N9T0nanVqXdiH7Zu/Nqddt6SmFRxytq/i2w9LQYNQekEtGBz+pE3qG6fQTNvRg==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/webpack': 4.41.32 dev: true @@ -8261,21 +8978,16 @@ packages: minipass: 4.0.0 dev: true - /@types/node-fetch/1.6.9: - resolution: {integrity: sha512-n2r6WLoY7+uuPT7pnEtKJCmPUGyJ+cbyBR8Avnu4+m1nzz7DwBVuyIvvlBzCZ/nrpC7rIgb3D6pNavL7rFEa9g==} - dependencies: - '@types/node': 12.20.24 - /@types/node-fetch/2.6.2: resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 form-data: 3.0.1 /@types/node-forge/1.0.4: resolution: {integrity: sha512-UpX8LTRrarEZPQvQqF5/6KQAqZolOVckH7txWdlsWIJrhBFFtwEUTcqeDouhrJl6t0F7Wg5cyUOAqqF8a6hheg==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /@types/node/10.17.60: @@ -8284,11 +8996,11 @@ packages: /@types/node/12.20.24: resolution: {integrity: sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ==} - - /@types/node/14.18.34: - resolution: {integrity: sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA==} dev: true + /@types/node/14.18.36: + resolution: {integrity: sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==} + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -8315,8 +9027,8 @@ packages: resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} dev: true - /@types/prettier/2.7.1: - resolution: {integrity: sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==} + /@types/prettier/2.7.2: + resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} /@types/pretty-hrtime/1.0.1: resolution: {integrity: sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==} @@ -8357,6 +9069,11 @@ packages: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true + /@types/responselike/1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 14.18.36 + /@types/retry/0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: false @@ -8381,13 +9098,12 @@ packages: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 /@types/sockjs/0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 12.20.24 - dev: false + '@types/node': 14.18.36 /@types/source-list-map/0.1.2: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==} @@ -8395,7 +9111,7 @@ packages: /@types/ssri/7.1.1: resolution: {integrity: sha512-DPP/jkDaqGiyU75MyMURxLWyYLwKSjnAuGe9ZCsLp9QZOpXmDfuevk769F0BS86TmRuD5krnp06qw9nSoNO+0g==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /@types/stack-utils/2.0.1: @@ -8416,13 +9132,13 @@ packages: resolution: {integrity: sha512-8mto3YZfVpqB1CHMaYz1TUYIQfZFbh/QbEq5Hsn6D0ilCfqRVCdalmc89B7vi3jhl9UYIk+dWDABShNfOkv5HA==} dependencies: '@types/minipass': 3.3.5 - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /@types/through/0.0.30: resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /@types/tough-cookie/4.0.2: @@ -8431,7 +9147,7 @@ packages: /@types/tunnel/0.0.3: resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: false /@types/uglify-js/3.17.1: @@ -8454,31 +9170,20 @@ packages: resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} dev: false - /@types/watchpack/2.4.0: - resolution: {integrity: sha512-PSAD+o9hezvfUFFzrYB/PO6Je7kwiZ2BSnB3/EZ9le+jTDKB6x5NJ96WWzQz1h/AyGJ/de3/1KpuBTkUFZm77A==} - dependencies: - '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.24 - dev: true - - /@types/webpack-env/1.13.0: - resolution: {integrity: sha512-0BANcVFVqkAD1i7/fWy9Vu6KjB9whuAmkfFX0GFwNzubu2i0qXDsLvGZSbU1QimJHWH4rqjJDQ/PX9v5OVepEA==} - /@types/webpack-env/1.18.0: resolution: {integrity: sha512-56/MAlX5WMsPVbOg7tAxnYvNYMMWr/QJiIp6BxVSW3JJXUVzzOn64qW8TzQyMSqSUFM2+PVI4aUHcHOzIz/1tg==} - dev: true /@types/webpack-sources/1.4.2: resolution: {integrity: sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/source-list-map': 0.1.2 source-map: 0.7.4 /@types/webpack/4.41.32: resolution: {integrity: sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 '@types/tapable': 1.0.6 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 1.4.2 @@ -8489,11 +9194,10 @@ packages: resolution: {integrity: sha512-xe+rWyom8xn0laMWH3M7elOpWj2rDQk+3f13RAur89GKsf4FO5qmBNtXXtwepFo2XNgQI0nePdCEStoHFnNvWg==} dev: true - /@types/ws/8.5.3: - resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + /@types/ws/8.5.4: + resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 12.20.24 - dev: false + '@types/node': 14.18.36 /@types/xmldoc/1.1.4: resolution: {integrity: sha512-a/ONNCf9itbmzEz1ohx0Fv5TLJzXIPQTapxFu+DlYlDtn9UcAa1OhnrOOMwbU8125hFjrkJKL3qllD7vO5Bivw==} @@ -8502,14 +9206,20 @@ packages: /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - /@types/yargs/15.0.14: - resolution: {integrity: sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==} + /@types/yargs/15.0.15: + resolution: {integrity: sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true + + /@types/yargs/16.0.5: + resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==} dependencies: '@types/yargs-parser': 21.0.0 dev: true - /@types/yargs/16.0.4: - resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} + /@types/yargs/17.0.20: + resolution: {integrity: sha512-eknWrTHofQuPk2iuqDm1waA7V6xPlbgBoaaXEgYkClhLOnB0TtbW+srJaOToAgawPxPlHQzwypFA2bhZaUGP5A==} dependencies: '@types/yargs-parser': 21.0.0 dev: true @@ -8536,7 +9246,7 @@ packages: '@typescript-eslint/utils': 5.38.1_esueefhpt5ql6xiqdj4wcgwfzi debug: 4.3.4 eslint: 8.7.0 - ignore: 5.2.1 + ignore: 5.2.4 regexpp: 3.2.0 semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 @@ -8562,7 +9272,7 @@ packages: '@typescript-eslint/utils': 5.38.1_xptyflz73tdwkjjssjsy5r76ri debug: 4.3.4 eslint: 7.30.0 - ignore: 5.2.1 + ignore: 5.2.4 regexpp: 3.2.0 semver: 7.3.8 tsutils: 3.21.0_typescript@4.8.4 @@ -8761,7 +9471,7 @@ packages: /@vue/compiler-core/3.2.45: resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==} dependencies: - '@babel/parser': 7.20.5 + '@babel/parser': 7.20.13 '@vue/shared': 3.2.45 estree-walker: 2.0.2 source-map: 0.6.1 @@ -8777,7 +9487,7 @@ packages: /@vue/compiler-sfc/3.2.45: resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==} dependencies: - '@babel/parser': 7.20.5 + '@babel/parser': 7.20.13 '@vue/compiler-core': 3.2.45 '@vue/compiler-dom': 3.2.45 '@vue/compiler-ssr': 3.2.45 @@ -8785,7 +9495,7 @@ packages: '@vue/shared': 3.2.45 estree-walker: 2.0.2 magic-string: 0.25.9 - postcss: 8.4.19 + postcss: 8.4.21 source-map: 0.6.1 dev: false @@ -8799,7 +9509,7 @@ packages: /@vue/reactivity-transform/3.2.45: resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==} dependencies: - '@babel/parser': 7.20.5 + '@babel/parser': 7.20.13 '@vue/compiler-core': 3.2.45 '@vue/shared': 3.2.45 estree-walker: 2.0.2 @@ -9020,11 +9730,12 @@ packages: resolution: {integrity: sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==} dev: false - /@zkochan/cmd-shim/5.3.1: - resolution: {integrity: sha512-xoSqbd1iuV/dSID+OjTjQc/0wId/vhEqYBXbFu9SzpXGxhuzK6QN6CaF8i8v86q0FXX4n3/qD9ewUT6N5ngFQg==} + /@zkochan/cmd-shim/5.4.1: + resolution: {integrity: sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==} engines: {node: '>=10.13'} dependencies: cmd-extension: 1.0.2 + graceful-fs: 4.2.10 is-windows: 1.0.2 dev: false @@ -9056,15 +9767,15 @@ packages: /acorn-globals/7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.1 + acorn: 8.8.2 acorn-walk: 8.2.0 - /acorn-import-assertions/1.8.0_acorn@8.8.1: + /acorn-import-assertions/1.8.0_acorn@8.8.2: resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.8.1 + acorn: 8.8.2 /acorn-jsx/5.3.2_acorn@7.4.1: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} @@ -9074,12 +9785,12 @@ packages: acorn: 7.4.1 dev: true - /acorn-jsx/5.3.2_acorn@8.8.1: + /acorn-jsx/5.3.2_acorn@8.8.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.1 + acorn: 8.8.2 /acorn-walk/7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} @@ -9101,13 +9812,13 @@ packages: hasBin: true dev: true - /acorn/8.8.1: - resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + /acorn/8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} hasBin: true - /address/1.2.1: - resolution: {integrity: sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==} + /address/1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} engines: {node: '>= 10.0.0'} dev: true @@ -9150,7 +9861,7 @@ packages: array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 es5-shim: 4.6.7 - es6-shim: 0.35.6 + es6-shim: 0.35.7 function.prototype.name: 1.1.5 globalthis: 1.0.3 object.entries: 1.1.6 @@ -9178,7 +9889,7 @@ packages: ajv: optional: true dependencies: - ajv: 8.11.2 + ajv: 8.12.0 /ajv-keywords/3.5.2_ajv@6.12.6: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} @@ -9187,12 +9898,12 @@ packages: dependencies: ajv: 6.12.6 - /ajv-keywords/5.1.0_ajv@8.11.2: + /ajv-keywords/5.1.0_ajv@8.12.0: resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: ajv: ^8.8.2 dependencies: - ajv: 8.11.2 + ajv: 8.12.0 fast-deep-equal: 3.1.3 dev: false @@ -9204,8 +9915,8 @@ packages: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv/8.11.2: - resolution: {integrity: sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==} + /ajv/8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -9404,8 +10115,8 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 - get-intrinsic: 1.1.3 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 is-string: 1.0.7 /array-union/1.0.2: @@ -9434,7 +10145,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 es-shim-unscopables: 1.0.0 dev: true @@ -9444,7 +10155,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 es-shim-unscopables: 1.0.0 /array.prototype.map/1.0.5: @@ -9453,7 +10164,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 dev: true @@ -9464,7 +10175,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 es-array-method-boxes-properly: 1.0.0 is-string: 1.0.7 @@ -9523,8 +10234,8 @@ packages: engines: {node: '>=8'} dev: true - /async-each/1.0.3: - resolution: {integrity: sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==} + /async-each/1.0.4: + resolution: {integrity: sha512-qL5v0vnRtD4rxlrzLz3WMnMfTvTrMf3IK1xFCF0Q5vqXJkULhM13gO2ynE8RZMjE+bPcH0AUHgcd5BU1FtO1tA==} optional: true /async-limiter/1.0.1: @@ -9568,7 +10279,7 @@ packages: engines: {node: '>=10.12.0'} dev: true - /autoprefixer/10.4.13_postcss@8.4.19: + /autoprefixer/10.4.13_postcss@8.4.21: resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -9576,11 +10287,11 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001439 + caniuse-lite: 1.0.30001449 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 /autoprefixer/9.8.8: @@ -9588,7 +10299,7 @@ packages: hasBin: true dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001439 + caniuse-lite: 1.0.30001449 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -9599,14 +10310,13 @@ packages: /available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: true /avvio/7.2.5: resolution: {integrity: sha512-AOhBxyLVdpOad3TujtC9kL/9r3HnTkxwQ5ggOsYrvvZP1cCFvzHWJd5XxZDFuTn+IN8vkKSG5SEJrd27vCSbeA==} dependencies: archy: 1.0.0 debug: 4.3.4 - fastq: 1.14.0 + fastq: 1.15.0 queue-microtask: 1.2.3 transitivePeerDependencies: - supports-color @@ -9622,10 +10332,10 @@ packages: case: 1.6.3 constructs: 10.0.130 fs-extra: 9.1.0 - ignore: 5.2.1 + ignore: 5.2.4 jsonschema: 1.4.1 minimatch: 3.1.2 - punycode: 2.1.1 + punycode: 2.3.0 semver: 7.3.8 yaml: 1.10.2 dev: true @@ -9651,7 +10361,7 @@ packages: '@aws-cdk/region-info': 2.7.0 '@jsii/check-node': 1.50.0 archiver: 5.3.1 - aws-sdk: 2.1271.0 + aws-sdk: 2.1304.0 camelcase: 6.3.0 cdk-assets: 2.7.0 chalk: 4.1.2 @@ -9675,8 +10385,8 @@ packages: - supports-color dev: true - /aws-sdk/2.1271.0: - resolution: {integrity: sha512-hQF+mjwe2FXFKOMNQGlfqn9InIL1bRp650ftctRqDo+VpnrYnKqF9eZa5Hk2kugs3/WUa4J2aqQa+foGWeH+Fg==} + /aws-sdk/2.1304.0: + resolution: {integrity: sha512-9mf2uafa2M9yFC5IlMe85TIc7OUo1HSProCQWzpRmAAYhcSwmfbRyt02Wtr5YSVvJJPmcSgcyI92snsQR1c3nw==} engines: {node: '>= 10.0.0'} dependencies: buffer: 4.9.2 @@ -9691,26 +10401,44 @@ packages: xml2js: 0.4.19 dev: true - /babel-core/7.0.0-bridge.0_@babel+core@7.17.12: + /babel-core/7.0.0-bridge.0_@babel+core@7.20.12: resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 dev: true - /babel-jest/27.5.1_@babel+core@7.17.12: + /babel-jest/27.5.1_@babel+core@7.20.12: resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__core': 7.1.20 + '@types/babel__core': 7.20.0 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 27.5.1_@babel+core@7.20.12 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-jest/29.4.1_@babel+core@7.20.12: + resolution: {integrity: sha512-xBZa/pLSsF/1sNpkgsiT3CmY7zV1kAsZ9OxxtrFqYucnOuRftXAfcJqcDVyOPeN4lttWTwhLdu0T9f8uvoPEUg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.20.12 + '@jest/transform': 29.4.1 + '@types/babel__core': 7.20.0 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1_@babel+core@7.17.12 + babel-preset-jest: 29.4.0_@babel+core@7.20.12 chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -9735,14 +10463,14 @@ packages: transitivePeerDependencies: - supports-color - /babel-loader/8.2.5_4bf35c6ryl6gwyrcrj2ykng7ny: + /babel-loader/8.2.5_tb555f6titdaodihyrbadfrjbq: resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 @@ -9801,9 +10529,19 @@ packages: resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.20.5 - '@types/babel__core': 7.1.20 + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 + '@types/babel__core': 7.20.0 + '@types/babel__traverse': 7.18.3 + dev: true + + /babel-plugin-jest-hoist/29.4.0: + resolution: {integrity: sha512-a/sZRLQJEmsmejQ2rPEUe35nO1+C9dc9O1gplH1SXmJxveQSRUYdBk8yGZG/VOUuZs1u2aHZJusEGoRMbhhwCg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.20.7 + '@types/babel__core': 7.20.0 '@types/babel__traverse': 7.18.3 dev: true @@ -9819,7 +10557,7 @@ packages: /babel-plugin-macros/2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 cosmiconfig: 6.0.0 resolve: 1.22.1 dev: true @@ -9828,63 +10566,63 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 cosmiconfig: 7.1.0 resolve: 1.22.1 dev: true - /babel-plugin-named-asset-import/0.3.8_@babel+core@7.17.12: + /babel-plugin-named-asset-import/0.3.8_@babel+core@7.20.12: resolution: {integrity: sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==} peerDependencies: '@babel/core': ^7.1.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 dev: true - /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.17.12: + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.20.12: resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/compat-data': 7.20.5 - '@babel/core': 7.17.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.17.12 + '@babel/compat-data': 7.20.14 + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 semver: 6.3.0 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.17.12: + /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.20.12: resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.17.12 - core-js-compat: 3.26.1 + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.1.5_@babel+core@7.20.12 + core-js-compat: 3.27.2 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.17.12: + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.20.12: resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.17.12 - core-js-compat: 3.26.1 + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 + core-js-compat: 3.27.2 transitivePeerDependencies: - supports-color dev: true - /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.17.12: + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.20.12: resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.17.12 - '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.20.12 transitivePeerDependencies: - supports-color dev: true @@ -9903,45 +10641,45 @@ packages: resolution: {integrity: sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==} dev: true - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.17.12: + /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.12: resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.17.12 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.17.12 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.17.12 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.12 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.17.12 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.12 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.17.12 - - /babel-preset-jest/27.5.1_@babel+core@7.17.12: + '@babel/core': 7.20.12 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.12 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.12 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.12 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.12 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.12 + + /babel-preset-jest/27.5.1_@babel+core@7.20.12: resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.12 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 dev: true - /babel-preset-jest/29.4.0_@babel+core@7.17.12: + /babel-preset-jest/29.4.0_@babel+core@7.20.12: resolution: {integrity: sha512-fUB9vZflUSM3dO/6M2TCAepTzvA4VkOvl67PjErcrQMGt9Eve7uazaeyCZ2th3UtI7ljpiBJES0F7A1vBRsLZA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.17.12 + '@babel/core': 7.20.12 babel-plugin-jest-hoist: 29.4.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.12 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 /bail/1.0.5: resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} @@ -10064,8 +10802,8 @@ packages: individual: 3.0.0 dev: true - /bonjour-service/1.0.14: - resolution: {integrity: sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==} + /bonjour-service/1.1.0: + resolution: {integrity: sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==} dependencies: array-flatten: 2.1.2 dns-equal: 1.0.0 @@ -10100,7 +10838,7 @@ packages: string-width: 5.1.2 type-fest: 2.19.0 widest-line: 4.0.1 - wrap-ansi: 8.0.1 + wrap-ansi: 8.1.0 dev: true /brace-expansion/1.1.11: @@ -10197,9 +10935,9 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001439 + caniuse-lite: 1.0.30001449 electron-to-chromium: 1.4.284 - node-releases: 2.0.6 + node-releases: 2.0.8 update-browserslist-db: 1.0.10_browserslist@4.21.4 /bser/2.1.1: @@ -10339,33 +11077,36 @@ packages: union-value: 1.0.1 unset-value: 1.0.0 - /cacheable-request/6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + /cacheable-lookup/5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + /cacheable-request/7.0.2: + resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} engines: {node: '>=8'} dependencies: clone-response: 1.0.3 get-stream: 5.2.0 - http-cache-semantics: 4.1.0 - keyv: 3.1.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.2 lowercase-keys: 2.0.0 - normalize-url: 4.5.1 - responselike: 1.0.2 + normalize-url: 6.1.0 + responselike: 2.0.1 /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 /call-me-maybe/1.0.2: resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} dev: true - /callsite-record/4.1.4: - resolution: {integrity: sha512-dJDrDR/pDvsf7GaDAQB+ZVmM0zEHU7I3km5EtwxmTVBwaJuOy+dmTN63/u3Lbm0gDdQN4skEtKa67Oety2dGIA==} + /callsite-record/4.1.5: + resolution: {integrity: sha512-OqeheDucGKifjQRx524URgV4z4NaKjocGhygTptDea+DLROre4ZEecA4KXDq+P7qlGCohYVNOh3qr+y5XH5Ftg==} dependencies: '@devexpress/error-stack-parser': 2.0.6 - '@types/error-stack-parser': 2.0.0 '@types/lodash': 4.14.116 callsite: 1.0.0 chalk: 2.4.2 @@ -10419,13 +11160,13 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.21.4 - caniuse-lite: 1.0.30001439 + caniuse-lite: 1.0.30001449 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: false - /caniuse-lite/1.0.30001439: - resolution: {integrity: sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==} + /caniuse-lite/1.0.30001449: + resolution: {integrity: sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==} /capture-exit/2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -10456,7 +11197,7 @@ packages: '@aws-cdk/cloud-assembly-schema': 2.7.0 '@aws-cdk/cx-api': 2.7.0 archiver: 5.3.1 - aws-sdk: 2.1271.0 + aws-sdk: 2.1304.0 glob: 7.2.3 mime: 2.6.0 yargs: 16.2.0 @@ -10530,7 +11271,7 @@ packages: deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies dependencies: anymatch: 2.0.0 - async-each: 1.0.3 + async-each: 1.0.4 braces: 2.3.2 glob-parent: 3.1.0 inherits: 2.0.4 @@ -10586,8 +11327,8 @@ packages: /ci-info/2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - /ci-info/3.7.0: - resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} + /ci-info/3.7.1: + resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==} engines: {node: '>=8'} /cipher-base/1.0.4: @@ -10614,8 +11355,8 @@ packages: dependencies: source-map: 0.6.1 - /clean-css/5.3.1: - resolution: {integrity: sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==} + /clean-css/5.3.2: + resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==} engines: {node: '>= 10.0'} dependencies: source-map: 0.6.1 @@ -10751,12 +11492,12 @@ packages: resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} dev: true - /collect-v8-coverage/1.0.1_@types+node@12.20.24: + /collect-v8-coverage/1.0.1_@types+node@14.18.36: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} peerDependencies: '@types/node': '>=12' dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 /collection-visit/1.0.0: resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} @@ -10814,6 +11555,11 @@ packages: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} dev: true + /commander/10.0.0: + resolution: {integrity: sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==} + engines: {node: '>=14'} + dev: false + /commander/2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -10834,10 +11580,11 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - /commander/9.4.1: - resolution: {integrity: sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==} + /commander/9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - dev: false + requiresBuild: true + optional: true /common-path-prefix/3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -10897,7 +11644,7 @@ packages: resolution: {integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==} engines: {node: '>=12'} dependencies: - ajv: 8.11.2 + ajv: 8.12.0 ajv-formats: 2.1.1 atomically: 1.7.0 debounce-fn: 4.0.0 @@ -10983,19 +11730,19 @@ packages: toggle-selection: 1.0.6 dev: true - /core-js-compat/3.26.1: - resolution: {integrity: sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==} + /core-js-compat/3.27.2: + resolution: {integrity: sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==} dependencies: browserslist: 4.21.4 dev: true - /core-js-pure/3.26.1: - resolution: {integrity: sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==} + /core-js-pure/3.27.2: + resolution: {integrity: sha512-Cf2jqAbXgWH3VVzjyaaFkY1EBazxugUepGymDoeteyYr9ByX51kD2jdHZlsEF/xnJMyN3Prua7mQuzwMg6Zc9A==} requiresBuild: true dev: true - /core-js/3.26.1: - resolution: {integrity: sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==} + /core-js/3.27.2: + resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==} requiresBuild: true dev: true @@ -11136,13 +11883,13 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - /css-declaration-sorter/6.3.1_postcss@8.4.19: + /css-declaration-sorter/6.3.1_postcss@8.4.21: resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false /css-loader/3.6.0_webpack@4.44.2: @@ -11173,36 +11920,36 @@ packages: peerDependencies: webpack: ^4.27.0 || ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.19 + icss-utils: 5.1.0_postcss@8.4.21 loader-utils: 2.0.4 - postcss: 8.4.19 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.19 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.19 - postcss-modules-scope: 3.0.0_postcss@8.4.19 - postcss-modules-values: 4.0.0_postcss@8.4.19 + postcss: 8.4.21 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 + postcss-modules-scope: 3.0.0_postcss@8.4.21 + postcss-modules-values: 4.0.0_postcss@8.4.21 postcss-value-parser: 4.2.0 schema-utils: 3.1.1 semver: 7.3.8 webpack: 4.44.2 dev: true - /css-loader/6.6.0_webpack@5.68.0: + /css-loader/6.6.0_webpack@5.75.0: resolution: {integrity: sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.19 - postcss: 8.4.19 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.19 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.19 - postcss-modules-scope: 3.0.0_postcss@8.4.19 - postcss-modules-values: 4.0.0_postcss@8.4.19 + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.21 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.21 + postcss-modules-scope: 3.0.0_postcss@8.4.21 + postcss-modules-values: 4.0.0_postcss@8.4.21 postcss-value-parser: 4.2.0 semver: 7.3.8 - webpack: 5.68.0 + webpack: 5.75.0 - /css-minimizer-webpack-plugin/3.4.1_webpack@5.68.0: + /css-minimizer-webpack-plugin/3.4.1_webpack@5.75.0: resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -11221,13 +11968,13 @@ packages: esbuild: optional: true dependencies: - cssnano: 5.1.14_postcss@8.4.19 + cssnano: 5.1.14_postcss@8.4.21 jest-worker: 27.5.1 - postcss: 8.4.19 + postcss: 8.4.21 schema-utils: 4.0.0 serialize-javascript: 6.0.0 source-map: 0.6.1 - webpack: 5.68.0 + webpack: 5.75.0 dev: false /css-modules-loader-core/1.1.0: @@ -11274,62 +12021,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default/5.2.13_postcss@8.4.19: + /cssnano-preset-default/5.2.13_postcss@8.4.21: resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1_postcss@8.4.19 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 - postcss-calc: 8.2.4_postcss@8.4.19 - postcss-colormin: 5.3.0_postcss@8.4.19 - postcss-convert-values: 5.1.3_postcss@8.4.19 - postcss-discard-comments: 5.1.2_postcss@8.4.19 - postcss-discard-duplicates: 5.1.0_postcss@8.4.19 - postcss-discard-empty: 5.1.1_postcss@8.4.19 - postcss-discard-overridden: 5.1.0_postcss@8.4.19 - postcss-merge-longhand: 5.1.7_postcss@8.4.19 - postcss-merge-rules: 5.1.3_postcss@8.4.19 - postcss-minify-font-values: 5.1.0_postcss@8.4.19 - postcss-minify-gradients: 5.1.1_postcss@8.4.19 - postcss-minify-params: 5.1.4_postcss@8.4.19 - postcss-minify-selectors: 5.2.1_postcss@8.4.19 - postcss-normalize-charset: 5.1.0_postcss@8.4.19 - postcss-normalize-display-values: 5.1.0_postcss@8.4.19 - postcss-normalize-positions: 5.1.1_postcss@8.4.19 - postcss-normalize-repeat-style: 5.1.1_postcss@8.4.19 - postcss-normalize-string: 5.1.0_postcss@8.4.19 - postcss-normalize-timing-functions: 5.1.0_postcss@8.4.19 - postcss-normalize-unicode: 5.1.1_postcss@8.4.19 - postcss-normalize-url: 5.1.0_postcss@8.4.19 - postcss-normalize-whitespace: 5.1.1_postcss@8.4.19 - postcss-ordered-values: 5.1.3_postcss@8.4.19 - postcss-reduce-initial: 5.1.1_postcss@8.4.19 - postcss-reduce-transforms: 5.1.0_postcss@8.4.19 - postcss-svgo: 5.1.0_postcss@8.4.19 - postcss-unique-selectors: 5.1.1_postcss@8.4.19 - dev: false - - /cssnano-utils/3.1.0_postcss@8.4.19: + css-declaration-sorter: 6.3.1_postcss@8.4.21 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 + postcss-calc: 8.2.4_postcss@8.4.21 + postcss-colormin: 5.3.0_postcss@8.4.21 + postcss-convert-values: 5.1.3_postcss@8.4.21 + postcss-discard-comments: 5.1.2_postcss@8.4.21 + postcss-discard-duplicates: 5.1.0_postcss@8.4.21 + postcss-discard-empty: 5.1.1_postcss@8.4.21 + postcss-discard-overridden: 5.1.0_postcss@8.4.21 + postcss-merge-longhand: 5.1.7_postcss@8.4.21 + postcss-merge-rules: 5.1.3_postcss@8.4.21 + postcss-minify-font-values: 5.1.0_postcss@8.4.21 + postcss-minify-gradients: 5.1.1_postcss@8.4.21 + postcss-minify-params: 5.1.4_postcss@8.4.21 + postcss-minify-selectors: 5.2.1_postcss@8.4.21 + postcss-normalize-charset: 5.1.0_postcss@8.4.21 + postcss-normalize-display-values: 5.1.0_postcss@8.4.21 + postcss-normalize-positions: 5.1.1_postcss@8.4.21 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.21 + postcss-normalize-string: 5.1.0_postcss@8.4.21 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.21 + postcss-normalize-unicode: 5.1.1_postcss@8.4.21 + postcss-normalize-url: 5.1.0_postcss@8.4.21 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.21 + postcss-ordered-values: 5.1.3_postcss@8.4.21 + postcss-reduce-initial: 5.1.1_postcss@8.4.21 + postcss-reduce-transforms: 5.1.0_postcss@8.4.21 + postcss-svgo: 5.1.0_postcss@8.4.21 + postcss-unique-selectors: 5.1.1_postcss@8.4.21 + dev: false + + /cssnano-utils/3.1.0_postcss@8.4.21: resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false - /cssnano/5.1.14_postcss@8.4.19: + /cssnano/5.1.14_postcss@8.4.21: resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.13_postcss@8.4.19 + cssnano-preset-default: 5.2.13_postcss@8.4.21 lilconfig: 2.0.6 - postcss: 8.4.19 + postcss: 8.4.21 yaml: 1.10.2 dev: false @@ -11461,11 +12208,11 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} - /decompress-response/3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} + /decompress-response/6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} dependencies: - mimic-response: 1.0.1 + mimic-response: 3.1.0 /dedent/0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} @@ -11498,8 +12245,9 @@ packages: clone: 1.0.4 dev: false - /defer-to-connect/1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + /defer-to-connect/2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} /define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -11550,13 +12298,13 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true - /dendriform-immer-patch-optimiser/2.1.3_immer@9.0.16: + /dendriform-immer-patch-optimiser/2.1.3_immer@9.0.19: resolution: {integrity: sha512-QG2IegUCdlhycVwsBOJ7SNd18PgzyWPxBivTzuF0E1KFxaU47fHy/frud74A9E66a4WXyFFp9FLLC2XQDkVj7g==} engines: {node: '>=10'} peerDependencies: immer: '9' dependencies: - immer: 9.0.16 + immer: 9.0.19 dev: true /depcheck/1.4.3: @@ -11565,21 +12313,21 @@ packages: hasBin: true dependencies: '@babel/parser': 7.16.4 - '@babel/traverse': 7.20.5 + '@babel/traverse': 7.20.13 '@vue/compiler-sfc': 3.2.45 camelcase: 6.3.0 cosmiconfig: 7.1.0 debug: 4.3.4 deps-regex: 0.1.4 - ignore: 5.2.1 + ignore: 5.2.4 is-core-module: 2.11.0 js-yaml: 3.14.1 - json5: 2.2.1 + json5: 2.2.3 lodash: 4.17.21 minimatch: 3.1.2 multimatch: 5.0.0 please-upgrade-node: 3.2.0 - query-ast: 1.0.4 + query-ast: 1.0.5 readdirp: 3.6.0 require-package-name: 2.0.1 resolve: 1.22.1 @@ -11599,6 +12347,16 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + /dependency-path/9.2.8: + resolution: {integrity: sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==} + engines: {node: '>=14.6'} + dependencies: + '@pnpm/crypto.base32-hash': 1.0.1 + '@pnpm/types': 8.9.0 + encode-registry: 3.0.0 + semver: 7.3.8 + dev: false + /deps-regex/0.1.4: resolution: {integrity: sha512-3tzwGYogSJi8HoG93R5x9NrdefZQOXgHgGih/7eivloOq6yC6O+yoFxZnkgP661twvfILONfoKRdF9GQOGx2RA==} dev: false @@ -11642,7 +12400,7 @@ packages: engines: {node: '>= 4.2.1'} hasBin: true dependencies: - address: 1.2.1 + address: 1.2.2 debug: 2.6.9 dev: true @@ -11650,7 +12408,7 @@ packages: resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} hasBin: true dependencies: - address: 1.2.1 + address: 1.2.2 debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -11817,7 +12575,7 @@ packages: peerDependencies: react: '>=16.12.0' dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 compute-scroll-into-view: 1.0.20 prop-types: 15.8.1 react: 16.13.1 @@ -11835,9 +12593,6 @@ packages: /duplexer/0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - /duplexer3/0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - /duplexify/3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} dependencies: @@ -11910,7 +12665,7 @@ packages: '@types/react': '>=16' react: '>=16.3.0' dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 '@emotion/core': 10.3.1_qjwx5m6wssz3lnb35xwkc3pz6q '@emotion/weak-memoize': 0.2.5 '@types/react': 16.14.23 @@ -11918,6 +12673,13 @@ packages: react: 16.13.1 dev: true + /encode-registry/3.0.0: + resolution: {integrity: sha512-2fRYji8K6FwYuQ6EPBKR/J9mcqb7kIoNqt1vGvJr3NrvKfncRiNm00Oxo6gi/YJF8R5Sp2bNFSFdGKTG0rje1Q==} + engines: {node: '>=10'} + dependencies: + mem: 8.1.1 + dev: false + /encodeurl/1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -12002,56 +12764,74 @@ packages: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} dependencies: stackframe: 1.3.4 + dev: true - /es-abstract/1.20.5: - resolution: {integrity: sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==} + /es-abstract/1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} engines: {node: '>= 0.4'} dependencies: + available-typed-arrays: 1.0.5 call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 function-bind: 1.1.1 function.prototype.name: 1.1.5 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 get-symbol-description: 1.0.0 + globalthis: 1.0.3 gopd: 1.0.1 has: 1.0.3 has-property-descriptors: 1.0.0 + has-proto: 1.0.1 has-symbols: 1.0.3 - internal-slot: 1.0.3 + internal-slot: 1.0.4 + is-array-buffer: 3.0.1 is-callable: 1.2.7 is-negative-zero: 2.0.2 is-regex: 1.1.4 is-shared-array-buffer: 1.0.2 is-string: 1.0.7 + is-typed-array: 1.1.10 is-weakref: 1.0.2 - object-inspect: 1.12.2 + object-inspect: 1.12.3 object-keys: 1.1.1 object.assign: 4.1.4 regexp.prototype.flags: 1.4.3 safe-regex-test: 1.0.0 string.prototype.trimend: 1.0.6 string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 /es-array-method-boxes-properly/1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - /es-get-iterator/1.1.2: - resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} + /es-get-iterator/1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 has-symbols: 1.0.3 is-arguments: 1.1.1 is-map: 2.0.2 is-set: 2.0.2 is-string: 1.0.7 isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 dev: true /es-module-lexer/0.9.3: resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + /es-set-tostringtag/2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + /es-shim-unscopables/1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} dependencies: @@ -12088,8 +12868,8 @@ packages: es6-symbol: 3.1.3 dev: true - /es6-shim/0.35.6: - resolution: {integrity: sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==} + /es6-shim/0.35.7: + resolution: {integrity: sha512-baZkUfTDSx7X69+NA8imbvGrsPfqH0MX7ADdIDjqwsI8lkTgLIiD2QWrUCSGsUQ0YMnSCA/4pNgSyXdnLHWf3A==} dev: true /es6-symbol/3.1.3: @@ -12334,34 +13114,34 @@ packages: esbuild-windows-arm64: 0.14.54 dev: true - /esbuild/0.16.3: - resolution: {integrity: sha512-71f7EjPWTiSguen8X/kxEpkAS7BFHwtQKisCDDV3Y4GLGWBaoSCyD5uXkaUew6JDzA9FEN1W23mdnSwW9kqCeg==} + /esbuild/0.17.5: + resolution: {integrity: sha512-Bu6WLCc9NMsNoMJUjGl3yBzTjVLXdysMltxQWiLAypP+/vQrf+3L1Xe8fCXzxaECus2cEJ9M7pk4yKatEwQMqQ==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.3 - '@esbuild/android-arm64': 0.16.3 - '@esbuild/android-x64': 0.16.3 - '@esbuild/darwin-arm64': 0.16.3 - '@esbuild/darwin-x64': 0.16.3 - '@esbuild/freebsd-arm64': 0.16.3 - '@esbuild/freebsd-x64': 0.16.3 - '@esbuild/linux-arm': 0.16.3 - '@esbuild/linux-arm64': 0.16.3 - '@esbuild/linux-ia32': 0.16.3 - '@esbuild/linux-loong64': 0.16.3 - '@esbuild/linux-mips64el': 0.16.3 - '@esbuild/linux-ppc64': 0.16.3 - '@esbuild/linux-riscv64': 0.16.3 - '@esbuild/linux-s390x': 0.16.3 - '@esbuild/linux-x64': 0.16.3 - '@esbuild/netbsd-x64': 0.16.3 - '@esbuild/openbsd-x64': 0.16.3 - '@esbuild/sunos-x64': 0.16.3 - '@esbuild/win32-arm64': 0.16.3 - '@esbuild/win32-ia32': 0.16.3 - '@esbuild/win32-x64': 0.16.3 + '@esbuild/android-arm': 0.17.5 + '@esbuild/android-arm64': 0.17.5 + '@esbuild/android-x64': 0.17.5 + '@esbuild/darwin-arm64': 0.17.5 + '@esbuild/darwin-x64': 0.17.5 + '@esbuild/freebsd-arm64': 0.17.5 + '@esbuild/freebsd-x64': 0.17.5 + '@esbuild/linux-arm': 0.17.5 + '@esbuild/linux-arm64': 0.17.5 + '@esbuild/linux-ia32': 0.17.5 + '@esbuild/linux-loong64': 0.17.5 + '@esbuild/linux-mips64el': 0.17.5 + '@esbuild/linux-ppc64': 0.17.5 + '@esbuild/linux-riscv64': 0.17.5 + '@esbuild/linux-s390x': 0.17.5 + '@esbuild/linux-x64': 0.17.5 + '@esbuild/netbsd-x64': 0.17.5 + '@esbuild/openbsd-x64': 0.17.5 + '@esbuild/sunos-x64': 0.17.5 + '@esbuild/win32-arm64': 0.17.5 + '@esbuild/win32-ia32': 0.17.5 + '@esbuild/win32-x64': 0.17.5 dev: true /escalade/3.1.1: @@ -12520,13 +13300,13 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /eslint-utils/3.0.0_eslint@8.29.0: + /eslint-utils/3.0.0_eslint@8.32.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.29.0 + eslint: 8.32.0 eslint-visitor-keys: 2.1.0 dev: true @@ -12577,7 +13357,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.2 - globals: 13.18.0 + globals: 13.19.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -12601,13 +13381,13 @@ packages: - supports-color dev: true - /eslint/8.29.0: - resolution: {integrity: sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==} + /eslint/8.32.0: + resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.3 - '@humanwhocodes/config-array': 0.11.7 + '@eslint/eslintrc': 1.4.1 + '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -12617,7 +13397,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.29.0 + eslint-utils: 3.0.0_eslint@8.32.0 eslint-visitor-keys: 3.3.0 espree: 9.4.1 esquery: 1.4.0 @@ -12626,14 +13406,14 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.18.0 + globals: 13.19.0 grapheme-splitter: 1.0.4 - ignore: 5.2.1 + ignore: 5.2.4 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-sdsl: 4.2.0 + js-sdsl: 4.3.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -12654,7 +13434,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.3.3 + '@eslint/eslintrc': 1.4.1 '@humanwhocodes/config-array': 0.9.5 ajv: 6.12.6 chalk: 4.1.2 @@ -12672,8 +13452,8 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 6.0.2 - globals: 13.18.0 - ignore: 5.2.1 + globals: 13.19.0 + ignore: 5.2.4 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 @@ -12705,8 +13485,8 @@ packages: resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.1 - acorn-jsx: 5.3.2_acorn@8.8.1 + acorn: 8.8.2 + acorn-jsx: 5.3.2_acorn@8.8.2 eslint-visitor-keys: 3.3.0 /esprima/4.0.1: @@ -12738,8 +13518,8 @@ packages: resolution: {integrity: sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==} engines: {node: '>=8.3.0'} dependencies: - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 c8: 7.12.0 transitivePeerDependencies: - supports-color @@ -13030,7 +13810,7 @@ packages: pino: 6.14.0 readable-stream: 3.6.0 rfdc: 1.3.0 - secure-json-parse: 2.6.0 + secure-json-parse: 2.7.0 semver: 7.3.8 tiny-lru: 7.0.6 transitivePeerDependencies: @@ -13041,8 +13821,8 @@ packages: resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} dev: false - /fastq/1.14.0: - resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} + /fastq/1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 @@ -13234,8 +14014,8 @@ packages: /flatted/3.2.7: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} - /flow-parser/0.195.0: - resolution: {integrity: sha512-vO9b3GJQHHsRgwe2wB7lkKLhB+2Nw3QcpVKt/yYpoGVTJo51HS7GAvLE47XJ1u/5ILNQ41A+q+SZdyq+uRvkKQ==} + /flow-parser/0.198.2: + resolution: {integrity: sha512-tCQzqXbRAz0ZadIhAXGwdp/xsusADo8IK9idgc/2qCK5RmazbKDGedyykfRtzWgy7Klt4f4NZxq0o/wFUg6plQ==} engines: {node: '>=0.4.0'} dev: true @@ -13258,7 +14038,6 @@ packages: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - dev: true /for-in/1.0.2: resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} @@ -13316,6 +14095,38 @@ packages: webpack: 4.44.2 dev: true + /fork-ts-checker-webpack-plugin/6.5.2_l3j2csrdyqgod4lcwxvazi2dg4: + resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + dependencies: + '@babel/code-frame': 7.18.6 + '@types/json-schema': 7.0.11 + chalk: 4.1.2 + chokidar: 3.5.3 + cosmiconfig: 6.0.0 + deepmerge: 4.2.2 + eslint: 8.7.0 + fs-extra: 9.1.0 + glob: 7.2.3 + memfs: 3.4.3 + minimatch: 3.1.2 + schema-utils: 2.7.0 + semver: 7.3.8 + tapable: 1.1.3 + typescript: 4.8.4 + webpack: 4.44.2 + dev: true + /form-data/3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -13463,7 +14274,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 functions-have-names: 1.2.3 /functional-red-black-tree/1.0.1: @@ -13519,8 +14330,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-intrinsic/1.1.3: - resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + /get-intrinsic/1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 @@ -13540,6 +14351,7 @@ packages: engines: {node: '>=6'} dependencies: pump: 3.0.0 + dev: true /get-stream/5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} @@ -13556,7 +14368,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 /get-uri/3.0.2: resolution: {integrity: sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==} @@ -13702,8 +14514,8 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals/13.18.0: - resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} + /globals/13.19.0: + resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -13713,7 +14525,6 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.1.4 - dev: true /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -13722,7 +14533,7 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.2.12 - ignore: 5.2.1 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -13743,23 +14554,23 @@ packages: /gopd/1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 - /got/9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} + /got/11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} dependencies: - '@sindresorhus/is': 0.14.0 - '@szmarczak/http-timer': 1.1.2 - cacheable-request: 6.1.0 - decompress-response: 3.3.0 - duplexer3: 0.1.5 - get-stream: 4.1.0 - lowercase-keys: 1.0.1 - mimic-response: 1.0.1 - p-cancelable: 1.1.0 - to-readable-stream: 1.0.0 - url-parse-lax: 3.0.0 + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 /graceful-fs/4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} @@ -13838,7 +14649,11 @@ packages: /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 + + /has-proto/1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} /has-symbols/1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} @@ -13990,7 +14805,7 @@ packages: /history/5.0.0: resolution: {integrity: sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 dev: true /hmac-drbg/1.0.1: @@ -14069,7 +14884,7 @@ packages: hasBin: true dependencies: camel-case: 4.1.2 - clean-css: 5.3.1 + clean-css: 5.3.2 commander: 8.3.0 he: 1.2.0 param-case: 3.0.4 @@ -14102,7 +14917,7 @@ packages: util.promisify: 1.0.0 webpack: 4.44.2 - /html-webpack-plugin/4.5.2_webpack@5.68.0: + /html-webpack-plugin/4.5.2_webpack@5.75.0: resolution: {integrity: sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==} engines: {node: '>=6.9'} peerDependencies: @@ -14117,10 +14932,10 @@ packages: pretty-error: 2.1.2 tapable: 1.1.3 util.promisify: 1.0.0 - webpack: 5.68.0 + webpack: 5.75.0 dev: true - /html-webpack-plugin/5.5.0_webpack@5.68.0: + /html-webpack-plugin/5.5.0_webpack@5.75.0: resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} engines: {node: '>=10.13.0'} peerDependencies: @@ -14131,7 +14946,7 @@ packages: lodash: 4.17.21 pretty-error: 4.0.0 tapable: 2.2.1 - webpack: 5.68.0 + webpack: 5.75.0 /htmlparser2/6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} @@ -14141,8 +14956,8 @@ packages: domutils: 2.8.0 entities: 2.2.0 - /http-cache-semantics/4.1.0: - resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + /http-cache-semantics/4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} /http-deceiver/1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} @@ -14220,6 +15035,13 @@ packages: transitivePeerDependencies: - debug + /http2-wrapper/1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + /https-browserify/1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} @@ -14275,13 +15097,13 @@ packages: postcss: 7.0.39 dev: true - /icss-utils/5.1.0_postcss@8.4.19: + /icss-utils/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 /ieee754/1.1.13: resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} @@ -14309,19 +15131,19 @@ packages: engines: {node: '>= 4'} dev: false - /ignore/5.2.1: - resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} + /ignore/5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} /immediate/3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} dev: false - /immer/9.0.16: - resolution: {integrity: sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==} + /immer/9.0.19: + resolution: {integrity: sha512-eY+Y0qcsB4TZKwgQzLaE/lqYMlKhv5J9dyd2RhhtGhNo2njPXDqU9XPfcNfa3MIDsdtZt5KlkIsirlo4dHsWdQ==} - /immutable/4.1.0: - resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} + /immutable/4.2.2: + resolution: {integrity: sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==} dev: false /import-fresh/3.3.0: @@ -14421,11 +15243,11 @@ packages: through: 2.3.8 dev: false - /internal-slot/1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + /internal-slot/1.0.4: + resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 has: 1.0.3 side-channel: 1.0.4 @@ -14496,6 +15318,13 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-array-buffer/3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -14803,7 +15632,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true /is-typedarray/1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -14884,8 +15712,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.17.12 - '@babel/parser': 7.20.5 + '@babel/core': 7.20.12 + '@babel/parser': 7.20.13 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.0 @@ -14924,7 +15752,7 @@ packages: /iterate-value/1.0.2: resolution: {integrity: sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==} dependencies: - es-get-iterator: 1.1.2 + es-get-iterator: 1.1.3 iterate-iterator: 1.0.2 dev: true @@ -14934,7 +15762,7 @@ packages: dependencies: '@jest/types': 27.5.1 execa: 5.1.1 - throat: 6.0.1 + throat: 6.0.2 dev: true /jest-changed-files/29.4.0: @@ -14949,9 +15777,9 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -14960,13 +15788,13 @@ packages: jest-each: 27.5.1 jest-matcher-utils: 27.5.1 jest-message-util: 27.5.1 - jest-runtime: 27.5.1_@types+node@12.20.24 + jest-runtime: 27.5.1_@types+node@14.18.36 jest-snapshot: 27.5.1 jest-util: 27.5.1 pretty-format: 27.5.1 slash: 3.0.0 stack-utils: 2.0.6 - throat: 6.0.1 + throat: 6.0.2 transitivePeerDependencies: - supports-color dev: true @@ -14977,9 +15805,9 @@ packages: dependencies: '@jest/environment': 29.4.1 '@jest/expect': 29.4.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -14997,7 +15825,7 @@ packages: transitivePeerDependencies: - supports-color - /jest-cli/29.4.1_@types+node@12.20.24: + /jest-cli/29.4.1_@types+node@14.18.36: resolution: {integrity: sha512-jz7GDIhtxQ37M+9dlbv5K+/FVcIo1O/b1sX3cJgzlQUf/3VG25nvuWzlDC4F1FLLzUThJeWLu8I7JF9eWpuURQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -15008,13 +15836,13 @@ packages: optional: true dependencies: '@jest/core': 29.4.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/types': 29.4.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.4.1_@types+node@12.20.24 + jest-config: 29.4.1_@types+node@14.18.36 jest-util: 29.4.1 jest-validate: 29.4.1 prompts: 2.4.2 @@ -15025,7 +15853,7 @@ packages: - ts-node dev: true - /jest-config/27.4.7_@types+node@12.20.24: + /jest-config/27.4.7_@types+node@14.18.36: resolution: {integrity: sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: @@ -15034,12 +15862,12 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.17.12 - '@jest/test-sequencer': 27.5.1_@types+node@12.20.24 + '@babel/core': 7.20.12 + '@jest/test-sequencer': 27.5.1_@types+node@14.18.36 '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.17.12 + babel-jest: 27.5.1_@babel+core@7.20.12 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -15064,7 +15892,7 @@ packages: - utf-8-validate dev: true - /jest-config/27.5.1_@types+node@12.20.24: + /jest-config/27.5.1_@types+node@14.18.36: resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: @@ -15073,12 +15901,12 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.17.12 - '@jest/test-sequencer': 27.5.1_@types+node@12.20.24 + '@babel/core': 7.20.12 + '@jest/test-sequencer': 27.5.1_@types+node@14.18.36 '@jest/types': 27.5.1 - babel-jest: 27.5.1_@babel+core@7.17.12 + babel-jest: 27.5.1_@babel+core@7.20.12 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -15105,7 +15933,7 @@ packages: - utf-8-validate dev: true - /jest-config/29.3.1_@types+node@12.20.24: + /jest-config/29.3.1_@types+node@14.18.36: resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -15117,13 +15945,13 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.17.12 - '@jest/test-sequencer': 29.4.1_@types+node@12.20.24 + '@babel/core': 7.20.12 + '@jest/test-sequencer': 29.4.1_@types+node@14.18.36 '@jest/types': 29.3.1 - '@types/node': 12.20.24 - babel-jest: 29.4.1_@babel+core@7.17.12 + '@types/node': 14.18.36 + babel-jest: 29.4.1_@babel+core@7.20.12 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -15143,7 +15971,7 @@ packages: transitivePeerDependencies: - supports-color - /jest-config/29.4.1_@types+node@12.20.24: + /jest-config/29.4.1_@types+node@14.18.36: resolution: {integrity: sha512-g7p3q4NuXiM4hrS4XFATTkd+2z0Ml2RhFmFPM8c3WyKwVDNszbl4E7cV7WIx1YZeqqCtqbtTtZhGZWJlJqngzg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -15155,13 +15983,13 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.17.12 - '@jest/test-sequencer': 29.4.1_@types+node@12.20.24 + '@babel/core': 7.20.12 + '@jest/test-sequencer': 29.4.1_@types+node@14.18.36 '@jest/types': 29.4.1 - '@types/node': 12.20.24 - babel-jest: 29.4.1_@babel+core@7.17.12 + '@types/node': 14.18.36 + babel-jest: 29.4.1_@babel+core@7.20.12 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 @@ -15242,7 +16070,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -15266,7 +16094,7 @@ packages: '@jest/fake-timers': 29.4.1 '@jest/types': 29.3.1 '@types/jsdom': 20.0.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 29.4.1 jest-util: 29.4.1 jsdom: 20.0.3 @@ -15282,7 +16110,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -15294,7 +16122,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -15306,7 +16134,7 @@ packages: '@jest/environment': 29.4.1 '@jest/fake-timers': 29.4.1 '@jest/types': 29.3.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 29.4.1 jest-util: 29.4.1 @@ -15317,7 +16145,7 @@ packages: '@jest/environment': 29.4.1 '@jest/fake-timers': 29.4.1 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-mock: 29.4.1 jest-util: 29.4.1 @@ -15335,8 +16163,8 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.24 + '@types/graceful-fs': 4.1.6 + '@types/node': 14.18.36 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -15356,8 +16184,8 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.24 + '@types/graceful-fs': 4.1.6 + '@types/node': 14.18.36 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -15376,8 +16204,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.1 - '@types/graceful-fs': 4.1.5 - '@types/node': 12.20.24 + '@types/graceful-fs': 4.1.6 + '@types/node': 14.18.36 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -15395,9 +16223,9 @@ packages: dependencies: '@jest/environment': 27.5.1 '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -15405,11 +16233,11 @@ packages: jest-each: 27.5.1 jest-matcher-utils: 27.5.1 jest-message-util: 27.5.1 - jest-runtime: 27.5.1_@types+node@12.20.24 + jest-runtime: 27.5.1_@types+node@14.18.36 jest-snapshot: 27.5.1 jest-util: 27.5.1 pretty-format: 27.5.1 - throat: 6.0.1 + throat: 6.0.2 transitivePeerDependencies: - supports-color dev: true @@ -15482,7 +16310,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 dev: true /jest-mock/29.4.1: @@ -15490,10 +16318,10 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-util: 29.4.1 - /jest-pnp-resolver/1.2.3_jest-resolve@27.4.6: + /jest-pnp-resolver/1.2.3_jest-resolve@29.3.1: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} peerDependencies: @@ -15505,7 +16333,7 @@ packages: jest-resolve: 27.4.6 dev: true - /jest-pnp-resolver/1.2.3_jest-resolve@27.5.1: + /jest-pnp-resolver/1.2.3_jest-resolve@29.4.1: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} peerDependencies: @@ -15585,7 +16413,7 @@ packages: jest-util: 27.5.1 jest-validate: 27.5.1 resolve: 1.22.1 - resolve.exports: 1.1.0 + resolve.exports: 1.1.1 slash: 3.0.0 dev: true @@ -15601,7 +16429,36 @@ packages: jest-util: 27.5.1 jest-validate: 27.5.1 resolve: 1.22.1 - resolve.exports: 1.1.0 + resolve.exports: 1.1.1 + slash: 3.0.0 + dev: true + + /jest-resolve/29.3.1: + resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-haste-map: 29.4.1 + jest-pnp-resolver: 1.2.3_jest-resolve@29.3.1 + jest-util: 29.4.1 + jest-validate: 29.4.1 + resolve: 1.22.1 + resolve.exports: 1.1.1 + slash: 3.0.0 + + /jest-resolve/29.4.1: + resolution: {integrity: sha512-j/ZFNV2lm9IJ2wmlq1uYK0Y/1PiyDq9g4HEGsNTNr3viRbJdV+8Lf1SXIiLZXFvyiisu0qUyIXGBnw+OKWkJwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.10 + jest-haste-map: 29.4.1 + jest-pnp-resolver: 1.2.3_jest-resolve@29.4.1 + jest-util: 29.4.1 + jest-validate: 29.4.1 + resolve: 1.22.1 + resolve.exports: 2.0.0 slash: 3.0.0 dev: true @@ -15639,10 +16496,10 @@ packages: dependencies: '@jest/console': 27.5.1 '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.10 @@ -15653,11 +16510,11 @@ packages: jest-leak-detector: 27.5.1 jest-message-util: 27.5.1 jest-resolve: 27.5.1 - jest-runtime: 27.5.1_@types+node@12.20.24 + jest-runtime: 27.5.1_@types+node@14.18.36 jest-util: 27.5.1 jest-worker: 27.5.1 source-map-support: 0.5.21 - throat: 6.0.1 + throat: 6.0.2 transitivePeerDependencies: - bufferutil - canvas @@ -15671,10 +16528,10 @@ packages: dependencies: '@jest/console': 29.4.1 '@jest/environment': 29.4.1 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/transform': 29.4.1 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -15693,7 +16550,7 @@ packages: transitivePeerDependencies: - supports-color - /jest-runtime/27.5.1_@types+node@12.20.24: + /jest-runtime/27.5.1_@types+node@14.18.36: resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: @@ -15701,12 +16558,12 @@ packages: '@jest/fake-timers': 27.5.1 '@jest/globals': 27.5.1 '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 chalk: 4.1.2 cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 execa: 5.1.1 glob: 7.2.3 graceful-fs: 4.2.10 @@ -15732,13 +16589,13 @@ packages: '@jest/fake-timers': 29.4.1 '@jest/globals': 29.4.1 '@jest/source-map': 29.2.0 - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/transform': 29.4.1 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1_@types+node@12.20.24 + collect-v8-coverage: 1.0.1_@types+node@14.18.36 glob: 7.2.3 graceful-fs: 4.2.10 jest-haste-map: 29.4.1 @@ -15758,7 +16615,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 graceful-fs: 4.2.10 dev: true @@ -15766,7 +16623,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 graceful-fs: 4.2.10 dev: true @@ -15774,16 +16631,16 @@ packages: resolution: {integrity: sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.17.12 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.12 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.10 @@ -15804,16 +16661,16 @@ packages: resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.17.12 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.12 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.10 @@ -15834,18 +16691,18 @@ packages: resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.17.12 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 '@jest/expect-utils': 29.4.1 '@jest/transform': 29.3.1 '@jest/types': 29.3.1 '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.12 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 chalk: 4.1.2 expect: 29.4.1 graceful-fs: 4.2.10 @@ -15865,18 +16722,18 @@ packages: resolution: {integrity: sha512-l4iV8EjGgQWVz3ee/LR9sULDk2pCkqb71bjvlqn+qp90lFwpnulHj4ZBT8nm1hA1C5wowXLc7MGnw321u0tsYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.17.12 - '@babel/traverse': 7.20.5 - '@babel/types': 7.20.5 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 + '@babel/traverse': 7.20.13 + '@babel/types': 7.20.7 '@jest/expect-utils': 29.4.1 '@jest/transform': 29.4.1 '@jest/types': 29.4.1 '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.1 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.17.12 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 chalk: 4.1.2 expect: 29.4.1 graceful-fs: 4.2.10 @@ -15897,7 +16754,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 graceful-fs: 4.2.10 is-ci: 2.0.0 @@ -15909,9 +16766,21 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 chalk: 4.1.2 - ci-info: 3.7.0 + ci-info: 3.7.1 + graceful-fs: 4.2.10 + picomatch: 2.3.1 + dev: true + + /jest-util/29.4.1: + resolution: {integrity: sha512-bQy9FPGxVutgpN4VRc0hk6w7Hx/m6L53QxpDreTZgJd9gfx/AV2MjyPde9tGyZRINAUrSv57p2inGBu2dRLmkQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.4.1 + '@types/node': 14.18.36 + chalk: 4.1.2 + ci-info: 3.7.1 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true @@ -15962,9 +16831,9 @@ packages: resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@jest/test-result': 27.5.1_@types+node@12.20.24 + '@jest/test-result': 27.5.1_@types+node@14.18.36 '@jest/types': 27.5.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -15975,9 +16844,9 @@ packages: resolution: {integrity: sha512-vFOzflGFs27nU6h8dpnVRER3O2rFtL+VMEwnG0H3KLHcllLsU8y9DchSh0AL/Rg5nN1/wSiQ+P4ByMGpuybaVw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.4.1_@types+node@12.20.24 + '@jest/test-result': 29.4.1_@types+node@14.18.36 '@jest/types': 29.4.1 - '@types/node': 12.20.24 + '@types/node': 14.18.36 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -15988,7 +16857,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -15997,7 +16866,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -16005,12 +16874,12 @@ packages: resolution: {integrity: sha512-O9doU/S1EBe+yp/mstQ0VpPwpv0Clgn68TkNwGxL6/usX/KUW9Arnn4ag8C3jc6qHcXznhsT5Na1liYzAsuAbQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 12.20.24 + '@types/node': 14.18.36 jest-util: 29.4.1 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest/29.3.1_@types+node@12.20.24: + /jest/29.3.1_@types+node@14.18.36: resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -16023,7 +16892,7 @@ packages: '@jest/core': 29.3.1 '@jest/types': 29.3.1 import-local: 3.1.0 - jest-cli: 29.4.1_@types+node@12.20.24 + jest-cli: 29.4.1_@types+node@14.18.36 transitivePeerDependencies: - '@types/node' - supports-color @@ -16038,8 +16907,8 @@ packages: engines: {node: '>= 0.6.0'} dev: true - /js-sdsl/4.2.0: - resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} + /js-sdsl/4.3.0: + resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} dev: true /js-string-escape/1.0.1: @@ -16081,19 +16950,19 @@ packages: peerDependencies: '@babel/preset-env': ^7.1.6 dependencies: - '@babel/core': 7.17.12 - '@babel/parser': 7.20.5 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.17.12 - '@babel/plugin-proposal-optional-chaining': 7.18.9_@babel+core@7.17.12 - '@babel/plugin-transform-modules-commonjs': 7.19.6_@babel+core@7.17.12 - '@babel/preset-env': 7.20.2_@babel+core@7.17.12 - '@babel/preset-flow': 7.18.6_@babel+core@7.17.12 - '@babel/preset-typescript': 7.18.6_@babel+core@7.17.12 - '@babel/register': 7.18.9_@babel+core@7.17.12 - babel-core: 7.0.0-bridge.0_@babel+core@7.17.12 + '@babel/core': 7.20.12 + '@babel/parser': 7.20.13 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.20.12 + '@babel/plugin-proposal-optional-chaining': 7.20.7_@babel+core@7.20.12 + '@babel/plugin-transform-modules-commonjs': 7.20.11_@babel+core@7.20.12 + '@babel/preset-env': 7.20.2_@babel+core@7.20.12 + '@babel/preset-flow': 7.18.6_@babel+core@7.20.12 + '@babel/preset-typescript': 7.18.6_@babel+core@7.20.12 + '@babel/register': 7.18.9_@babel+core@7.20.12 + babel-core: 7.0.0-bridge.0_@babel+core@7.20.12 chalk: 4.1.2 - flow-parser: 0.195.0 + flow-parser: 0.198.2 graceful-fs: 4.2.10 micromatch: 3.1.10 neo-async: 2.6.2 @@ -16115,7 +16984,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.1 + acorn: 8.8.2 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 @@ -16157,7 +17026,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.1 + acorn: 8.8.2 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -16180,7 +17049,7 @@ packages: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.11.0 + ws: 8.12.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -16197,8 +17066,8 @@ packages: engines: {node: '>=4'} hasBin: true - /json-buffer/3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + /json-buffer/3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} /json-diff/0.7.4: resolution: {integrity: sha512-FJ2P+ShDbzu9epF+kCKgoSUhPIUW7Ta7A4XlIT0L5LzgaR/z1TBF1mm0XhRGj8RlA3Xm0j+c/FsWOHDtuoYejA==} @@ -16232,14 +17101,14 @@ packages: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} dev: true - /json5/1.0.1: - resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + /json5/1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true dependencies: minimist: 1.2.7 - /json5/2.2.1: - resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} + /json5/2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true @@ -16264,20 +17133,14 @@ packages: resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} dev: true - /jsonwebtoken/8.5.1: - resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} - engines: {node: '>=4', npm: '>=1.4.28'} + /jsonwebtoken/9.0.0: + resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==} + engines: {node: '>=12', npm: '>=6'} dependencies: jws: 3.2.2 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 + lodash: 4.17.21 ms: 2.1.3 - semver: 5.7.1 + semver: 7.3.8 dev: false /jsx-ast-utils/3.3.3: @@ -16337,10 +17200,10 @@ packages: safe-buffer: 5.2.1 dev: false - /keyv/3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + /keyv/4.5.2: + resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==} dependencies: - json-buffer: 3.0.0 + json-buffer: 3.0.1 /kind-of/3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -16367,23 +17230,23 @@ packages: engines: {node: '>=6'} dev: true - /klona/2.0.5: - resolution: {integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==} + /klona/2.0.6: + resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} /latest-version/5.1.0: resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} engines: {node: '>=8'} dependencies: - package-json: 6.5.0 + package-json: 7.0.0 /lazy-universal-dotenv/3.0.1: resolution: {integrity: sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==} engines: {node: '>=6.0.0', npm: '>=6.0.0', yarn: '>=1.0.0'} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 app-root-dir: 1.0.2 - core-js: 3.26.1 + core-js: 3.27.2 dotenv: 8.6.0 dotenv-expand: 5.1.0 dev: true @@ -16422,7 +17285,7 @@ packages: /light-my-request/4.12.0: resolution: {integrity: sha512-0y+9VIfJEsPVzK5ArSIJ8Dkxp8QMP7/aCuxCUtG/tr9a2NoOf/snATE/OUc05XUplJCEnRh6gTkH7xh9POt1DQ==} dependencies: - ajv: 8.11.2 + ajv: 8.12.0 cookie: 0.5.0 process-warning: 1.0.0 set-cookie-parser: 2.5.1 @@ -16470,7 +17333,7 @@ packages: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 - json5: 1.0.1 + json5: 1.0.2 /loader-utils/2.0.0: resolution: {integrity: sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==} @@ -16478,7 +17341,7 @@ packages: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 - json5: 2.2.1 + json5: 2.2.3 dev: true /loader-utils/2.0.4: @@ -16487,7 +17350,7 @@ packages: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 - json5: 2.2.1 + json5: 2.2.3 /locate-path/3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} @@ -16531,31 +17394,12 @@ packages: /lodash.get/4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - /lodash.includes/4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - dev: false - - /lodash.isboolean/3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - dev: false - /lodash.isequal/4.5.0: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - /lodash.isinteger/4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - dev: false - - /lodash.isnumber/3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - dev: false - /lodash.isplainobject/4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - /lodash.isstring/4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: false + dev: true /lodash.memoize/4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -16564,10 +17408,6 @@ packages: /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - /lodash.once/4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - dev: false - /lodash.truncate/4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true @@ -16598,7 +17438,7 @@ packages: debug: 4.3.4 flatted: 3.2.7 rfdc: 1.3.0 - streamroller: 3.1.3 + streamroller: 3.1.4 transitivePeerDependencies: - supports-color dev: true @@ -16618,10 +17458,6 @@ packages: dependencies: tslib: 2.3.1 - /lowercase-keys/1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - /lowercase-keys/2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} @@ -16675,7 +17511,7 @@ packages: dependencies: agentkeepalive: 4.2.1 cacache: 15.3.0 - http-cache-semantics: 4.1.0 + http-cache-semantics: 4.1.1 http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-lambda: 1.0.1 @@ -16697,6 +17533,13 @@ packages: dependencies: tmpl: 1.0.5 + /map-age-cleaner/0.1.3: + resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} + engines: {node: '>=6'} + dependencies: + p-defer: 1.0.0 + dev: false + /map-cache/0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} @@ -16790,6 +17633,14 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + /mem/8.1.1: + resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} + engines: {node: '>=10'} + dependencies: + map-age-cleaner: 0.1.3 + mimic-fn: 3.1.0 + dev: false + /memfs/3.4.3: resolution: {integrity: sha512-eivjfi7Ahr6eQTn44nvTnR60e4a1Fs1Via2kCR5lHo/kyNoiMWaXCNJ/GpSd0ilXas2JSOl9B5FTIhflXu0hlg==} engines: {node: '>= 4.0.0'} @@ -16924,12 +17775,15 @@ packages: /mimic-fn/3.1.0: resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} engines: {node: '>=8'} - dev: true /mimic-response/1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} + /mimic-response/3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + /min-document/2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} dependencies: @@ -16940,14 +17794,14 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - /mini-css-extract-plugin/2.5.3_webpack@5.68.0: + /mini-css-extract-plugin/2.5.3_webpack@5.75.0: resolution: {integrity: sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.68.0 + webpack: 5.75.0 dev: false /minimalistic-assert/1.0.1: @@ -16966,8 +17820,8 @@ packages: dependencies: brace-expansion: 1.1.11 - /minimatch/5.1.1: - resolution: {integrity: sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==} + /minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 @@ -17285,8 +18139,8 @@ packages: util: 0.11.1 vm-browserify: 1.1.2 - /node-releases/2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + /node-releases/2.0.8: + resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==} /nopt/5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} @@ -17328,14 +18182,9 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - /normalize-url/4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - /normalize-url/6.1.0: resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} engines: {node: '>=10'} - dev: false /npm-bundled/1.1.2: resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} @@ -17348,7 +18197,7 @@ packages: engines: {node: '>=10.9.0'} hasBin: true dependencies: - callsite-record: 4.1.4 + callsite-record: 4.1.5 chalk: 4.1.2 co: 4.6.0 depcheck: 1.4.3 @@ -17363,16 +18212,16 @@ packages: minimatch: 3.0.8 node-emoji: 1.11.0 ora: 5.4.1 - package-json: 6.5.0 + package-json: 7.0.0 path-exists: 4.0.0 pkg-dir: 5.0.0 preferred-pm: 3.0.3 - rc-config-loader: 4.1.1 + rc-config-loader: 4.1.2 semver: 7.3.8 semver-diff: 3.1.1 strip-ansi: 6.0.1 text-table: 0.2.0 - throat: 6.0.1 + throat: 6.0.2 update-notifier: 5.1.0 xtend: 4.0.2 transitivePeerDependencies: @@ -17463,8 +18312,8 @@ packages: define-property: 0.2.5 kind-of: 3.2.2 - /object-inspect/1.12.2: - resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + /object-inspect/1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -17491,7 +18340,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /object.fromentries/2.0.6: resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} @@ -17499,7 +18348,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /object.getownpropertydescriptors/2.1.5: resolution: {integrity: sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==} @@ -17508,13 +18357,13 @@ packages: array.prototype.reduce: 1.0.5 call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /object.hasown/1.1.2: resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} dependencies: define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /object.pick/1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} @@ -17528,7 +18377,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /objectorarray/1.0.5: resolution: {integrity: sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==} @@ -17538,10 +18387,6 @@ packages: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} dev: false - /office-ui-fabric-core/11.0.1: - resolution: {integrity: sha512-jcfycbVOm2aUoI+AGtHW24HvM7nUVFr44hR5NIE56EobK67bVwbNAQL15CJj3vNz5PBrnitsV9ROOB+KOEWn8g==} - dev: true - /on-finished/2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -17652,9 +18497,14 @@ packages: p-map: 2.1.0 dev: true - /p-cancelable/1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} + /p-cancelable/2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + /p-defer/1.0.0: + resolution: {integrity: sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==} + engines: {node: '>=4'} + dev: false /p-event/4.2.0: resolution: {integrity: sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==} @@ -17782,14 +18632,14 @@ packages: netmask: 2.0.2 dev: true - /package-json/6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} + /package-json/7.0.0: + resolution: {integrity: sha512-CHJqc94AA8YfSLHGQT3DbvSIuE12NLFekpM4n7LRrAd3dOJtA911+4xe9q6nC3/jcKraq7nNS9VxgtT0KC+diA==} + engines: {node: '>=12'} dependencies: - got: 9.6.0 + got: 11.8.6 registry-auth-token: 4.2.2 registry-url: 5.1.0 - semver: 6.3.0 + semver: 7.3.8 /pako/1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -18027,24 +18877,24 @@ packages: resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 dev: true /posix-character-classes/0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} - /postcss-calc/8.2.4_postcss@8.4.19: + /postcss-calc/8.2.4_postcss@8.4.21: resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin/5.3.0_postcss@8.4.19: + /postcss-colormin/5.3.0_postcss@8.4.21: resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -18053,55 +18903,55 @@ packages: browserslist: 4.21.4 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values/5.1.3_postcss@8.4.19: + /postcss-convert-values/5.1.3_postcss@8.4.21: resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-discard-comments/5.1.2_postcss@8.4.19: + /postcss-discard-comments/5.1.2_postcss@8.4.21: resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false - /postcss-discard-duplicates/5.1.0_postcss@8.4.19: + /postcss-discard-duplicates/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false - /postcss-discard-empty/5.1.1_postcss@8.4.19: + /postcss-discard-empty/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false - /postcss-discard-overridden/5.1.0_postcss@8.4.19: + /postcss-discard-overridden/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false /postcss-flexbugs-fixes/4.2.1: @@ -18110,7 +18960,7 @@ packages: postcss: 7.0.39 dev: true - /postcss-loader/4.1.0_cevnyqd5mhktybfrpstjugctw4: + /postcss-loader/4.1.0_q6bo6nn7or7rkhjb274oworunu: resolution: {integrity: sha512-vbCkP70F3Q9PIk6d47aBwjqAMI4LfkXCoyxj+7NPNuVIwfTGdzv2KVQes59/RuxMniIgsYQCFSY42P3+ykJfaw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -18118,9 +18968,9 @@ packages: webpack: ^4.0.0 || ^5.0.0 dependencies: cosmiconfig: 7.1.0 - klona: 2.0.5 + klona: 2.0.6 loader-utils: 2.0.4 - postcss: 8.4.19 + postcss: 8.4.21 schema-utils: 3.1.1 semver: 7.3.8 webpack: 4.44.2 @@ -18134,7 +18984,7 @@ packages: webpack: ^4.0.0 || ^5.0.0 dependencies: cosmiconfig: 7.1.0 - klona: 2.0.5 + klona: 2.0.6 loader-utils: 2.0.4 postcss: 7.0.39 schema-utils: 3.1.1 @@ -18142,7 +18992,7 @@ packages: webpack: 4.44.2 dev: true - /postcss-loader/6.2.1_otbl66ncbxio5b4wlrri4josmi: + /postcss-loader/6.2.1_6jdsrmfenkuhhw3gx4zvjlznce: resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -18150,24 +19000,24 @@ packages: webpack: ^5.0.0 dependencies: cosmiconfig: 7.1.0 - klona: 2.0.5 - postcss: 8.4.19 + klona: 2.0.6 + postcss: 8.4.21 semver: 7.3.8 - webpack: 5.68.0 + webpack: 5.75.0 dev: false - /postcss-merge-longhand/5.1.7_postcss@8.4.19: + /postcss-merge-longhand/5.1.7_postcss@8.4.21: resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1_postcss@8.4.19 + stylehacks: 5.1.1_postcss@8.4.21 dev: false - /postcss-merge-rules/5.1.3_postcss@8.4.19: + /postcss-merge-rules/5.1.3_postcss@8.4.21: resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -18175,52 +19025,52 @@ packages: dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false - /postcss-minify-font-values/5.1.0_postcss@8.4.19: + /postcss-minify-font-values/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients/5.1.1_postcss@8.4.19: + /postcss-minify-gradients/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params/5.1.4_postcss@8.4.19: + /postcss-minify-params/5.1.4_postcss@8.4.21: resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors/5.2.1_postcss@8.4.19: + /postcss-minify-selectors/5.2.1_postcss@8.4.21: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false @@ -18237,13 +19087,13 @@ packages: postcss: 7.0.39 dev: true - /postcss-modules-extract-imports/3.0.0_postcss@8.4.19: + /postcss-modules-extract-imports/3.0.0_postcss@8.4.21: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 /postcss-modules-local-by-default/1.2.0: resolution: {integrity: sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==} @@ -18262,14 +19112,14 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-modules-local-by-default/4.0.0_postcss@8.4.19: + /postcss-modules-local-by-default/4.0.0_postcss@8.4.21: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.19 - postcss: 8.4.19 + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 @@ -18288,13 +19138,13 @@ packages: postcss-selector-parser: 6.0.11 dev: true - /postcss-modules-scope/3.0.0_postcss@8.4.19: + /postcss-modules-scope/3.0.0_postcss@8.4.21: resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 /postcss-modules-values/1.3.0: @@ -18311,14 +19161,14 @@ packages: postcss: 7.0.39 dev: true - /postcss-modules-values/4.0.0_postcss@8.4.19: + /postcss-modules-values/4.0.0_postcss@8.4.21: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.19 - postcss: 8.4.19 + icss-utils: 5.1.0_postcss@8.4.21 + postcss: 8.4.21 /postcss-modules/1.5.0: resolution: {integrity: sha512-KiAihzcV0TxTTNA5OXreyIXctuHOfR50WIhqBpc8pe0Q5dcs/Uap9EVlifOI9am7zGGdGOJQ6B1MPYKo2UxgOg==} @@ -18330,109 +19180,109 @@ packages: string-hash: 1.1.3 dev: false - /postcss-normalize-charset/5.1.0_postcss@8.4.19: + /postcss-normalize-charset/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 dev: false - /postcss-normalize-display-values/5.1.0_postcss@8.4.19: + /postcss-normalize-display-values/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions/5.1.1_postcss@8.4.19: + /postcss-normalize-positions/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style/5.1.1_postcss@8.4.19: + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string/5.1.0_postcss@8.4.19: + /postcss-normalize-string/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions/5.1.0_postcss@8.4.19: + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode/5.1.1_postcss@8.4.19: + /postcss-normalize-unicode/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url/5.1.0_postcss@8.4.19: + /postcss-normalize-url/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace/5.1.1_postcss@8.4.19: + /postcss-normalize-whitespace/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values/5.1.3_postcss@8.4.19: + /postcss-ordered-values/5.1.3_postcss@8.4.21: resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0_postcss@8.4.19 - postcss: 8.4.19 + cssnano-utils: 3.1.0_postcss@8.4.21 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial/5.1.1_postcss@8.4.19: + /postcss-reduce-initial/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: @@ -18440,16 +19290,16 @@ packages: dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 - postcss: 8.4.19 + postcss: 8.4.21 dev: false - /postcss-reduce-transforms/5.1.0_postcss@8.4.19: + /postcss-reduce-transforms/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 dev: false @@ -18460,24 +19310,24 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo/5.1.0_postcss@8.4.19: + /postcss-svgo/5.1.0_postcss@8.4.21: resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: false - /postcss-unique-selectors/5.1.1_postcss@8.4.19: + /postcss-unique-selectors/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.19 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false @@ -18500,8 +19350,8 @@ packages: picocolors: 0.2.1 source-map: 0.6.1 - /postcss/8.4.19: - resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==} + /postcss/8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.4 @@ -18526,10 +19376,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prepend-http/2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - /prettier/2.3.0: resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} engines: {node: '>=10.13.0'} @@ -18625,8 +19471,8 @@ packages: array.prototype.map: 1.0.5 call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 - get-intrinsic: 1.1.3 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 iterate-value: 1.0.2 dev: true @@ -18636,7 +19482,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 dev: true /promptly/3.2.0: @@ -18699,7 +19545,7 @@ packages: /pseudolocale/1.1.0: resolution: {integrity: sha512-OZ8I/hwYEJ3beN3IEcNnt8EpcqblH0/x23hulKBXjs+WhTTEle+ijCHCkh2bd+cIIeCuCwSCbBe93IthGG6hLw==} dependencies: - commander: 9.4.1 + commander: 10.0.0 dev: false /psl/1.9.0: @@ -18740,8 +19586,8 @@ packages: /punycode/1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + /punycode/2.3.0: + resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} /pupa/2.1.1: @@ -18786,8 +19632,8 @@ packages: side-channel: 1.0.4 dev: true - /query-ast/1.0.4: - resolution: {integrity: sha512-KFJFSvODCBjIH5HbHvITj9EEZKYUU6VX0T5CuB1ayvjUoUaZkKMi6eeby5Tf8DMukyZHlJQOE1+f3vevKUe6eg==} + /query-ast/1.0.5: + resolution: {integrity: sha512-JK+1ma4YDuLjvKKcz9JZ70G+CM9qEOs/l1cZzstMMfwKUabTJ9sud5jvDGrUNuv03yKUgs82bLkHXJkDyhRmBw==} dependencies: invariant: 2.2.4 lodash: 4.17.21 @@ -18817,6 +19663,10 @@ packages: engines: {node: '>=8'} dev: false + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + /ramda/0.27.2: resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} dev: false @@ -18860,12 +19710,12 @@ packages: webpack: 4.44.2 dev: true - /rc-config-loader/4.1.1: - resolution: {integrity: sha512-S10o85x/szboh7FOxUyU+KuED+gr9V7SEnUBOzSn+vd1K8J2MtkP1RCPWg8Sw5kkuZKr7976bFzacCM6QtAApQ==} + /rc-config-loader/4.1.2: + resolution: {integrity: sha512-qKTnVWFl9OQYKATPzdfaZIbTxcHziQl92zYSxYC6umhOqyAsoj8H8Gq/+aFjAso68sBdjTz3A7omqeAkkF1MWg==} dependencies: debug: 4.3.4 js-yaml: 4.1.0 - json5: 2.2.1 + json5: 2.2.3 require-from-string: 2.0.2 transitivePeerDependencies: - supports-color @@ -18903,9 +19753,9 @@ packages: engines: {node: '>=8.10.0'} hasBin: true dependencies: - '@babel/core': 7.17.12 - '@babel/generator': 7.20.5 - '@babel/runtime': 7.20.6 + '@babel/core': 7.20.12 + '@babel/generator': 7.20.14 + '@babel/runtime': 7.20.13 ast-types: 0.14.2 commander: 2.20.3 doctrine: 3.0.0 @@ -18963,7 +19813,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 invariant: 2.2.4 prop-types: 15.8.1 react: 16.13.1 @@ -18977,7 +19827,7 @@ packages: peerDependencies: react: ^16.8.4 || ^17.0.0 dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 is-dom: 1.1.0 prop-types: 15.8.1 react: 16.13.1 @@ -18999,7 +19849,7 @@ packages: react: ^16.6.0 || ^17.0.0 react-dom: ^16.6.0 || ^17.0.0 dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 '@popperjs/core': 2.11.6 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 @@ -19041,7 +19891,7 @@ packages: redux: optional: true dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 '@types/hoist-non-react-statics': 3.3.1 '@types/react': 16.14.23 '@types/react-dom': 16.9.14 @@ -19059,29 +19909,29 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom/6.4.5_e4p5kqppx5gth2ijr2xdvk24ma: - resolution: {integrity: sha512-a7HsgikBR0wNfroBHcZUCd9+mLRqZS8R5U1Z1mzLWxFXEkUT3vR1XXmSIVoVpxVX8Bar0nQYYYc9Yipq8dWwAA==} + /react-router-dom/6.8.0_e4p5kqppx5gth2ijr2xdvk24ma: + resolution: {integrity: sha512-hQouduSTywGJndE86CXJ2h7YEy4HYC6C/uh19etM+79FfQ6cFFFHnHyDlzO4Pq0eBUI96E4qVE5yUjA00yJZGQ==} engines: {node: '>=14'} peerDependencies: '@types/react': '>=16' react: '>=16.8' react-dom: '>=16.8' dependencies: - '@remix-run/router': 1.0.5 + '@remix-run/router': 1.3.1 '@types/react': 16.14.23 react: 16.13.1 react-dom: 16.13.1_react@16.13.1 - react-router: 6.4.5_qjwx5m6wssz3lnb35xwkc3pz6q + react-router: 6.8.0_qjwx5m6wssz3lnb35xwkc3pz6q dev: true - /react-router/6.4.5_qjwx5m6wssz3lnb35xwkc3pz6q: - resolution: {integrity: sha512-1RQJ8bM70YEumHIlNUYc6mFfUDoWa5EgPDenK/fq0bxD8DYpQUi/S6Zoft+9DBrh2xmtg92N5HMAJgGWDhKJ5Q==} + /react-router/6.8.0_qjwx5m6wssz3lnb35xwkc3pz6q: + resolution: {integrity: sha512-760bk7y3QwabduExtudhWbd88IBbuD1YfwzpuDUAlJUJ7laIIcqhMvdhSVh1Fur1PE8cGl84L0dxhR3/gvHF7A==} engines: {node: '>=14'} peerDependencies: '@types/react': '>=16' react: '>=16.8' dependencies: - '@remix-run/router': 1.0.5 + '@remix-run/router': 1.3.1 '@types/react': 16.14.23 react: 16.13.1 dev: true @@ -19100,7 +19950,7 @@ packages: peerDependencies: react: '>= 0.14.0' dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 highlight.js: 10.7.3 lowlight: 1.20.0 prismjs: 1.29.0 @@ -19114,7 +19964,7 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 react: 16.13.1 use-composed-ref: 1.3.0_react@16.13.1 use-latest: 1.2.1_qjwx5m6wssz3lnb35xwkc3pz6q @@ -19212,7 +20062,7 @@ packages: /readdir-glob/1.1.2: resolution: {integrity: sha512-6RLVvwJtVwEDfPdn6X6Ille4/lxGl0ATOY4FN/B9nxQcgOazvvI0nodiD19ScKq0PvA/29VpaOQML36o5IzZWA==} dependencies: - minimatch: 5.1.1 + minimatch: 5.1.6 dev: true /readdir-scoped-modules/1.1.0: @@ -19292,7 +20142,7 @@ packages: /redux/4.2.0: resolution: {integrity: sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 dev: false /refractor/3.6.0: @@ -19320,7 +20170,7 @@ packages: /regenerator-transform/0.15.1: resolution: {integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==} dependencies: - '@babel/runtime': 7.20.6 + '@babel/runtime': 7.20.13 dev: true /regex-not/1.0.2: @@ -19500,6 +20350,9 @@ packages: resolution: {integrity: sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==} dev: false + /resolve-alpn/1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + /resolve-cwd/2.0.0: resolution: {integrity: sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==} engines: {node: '>=4'} @@ -19539,8 +20392,12 @@ packages: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated - /resolve.exports/1.1.0: - resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} + /resolve.exports/1.1.1: + resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + engines: {node: '>=10'} + + /resolve.exports/2.0.0: + resolution: {integrity: sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==} engines: {node: '>=10'} /resolve.exports/2.0.0: @@ -19575,10 +20432,10 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /responselike/1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + /responselike/2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} dependencies: - lowercase-keys: 1.0.1 + lowercase-keys: 2.0.0 /restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -19610,6 +20467,10 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + /rfc4648/1.5.2: + resolution: {integrity: sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==} + dev: false + /rfdc/1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} @@ -19678,7 +20539,7 @@ packages: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.3 + get-intrinsic: 1.2.0 is-regex: 1.1.4 /safe-regex/1.1.0: @@ -19728,7 +20589,7 @@ packages: sass: optional: true dependencies: - klona: 2.0.5 + klona: 2.0.6 loader-utils: 2.0.4 neo-async: 2.6.2 sass: 1.3.2 @@ -19737,7 +20598,7 @@ packages: webpack: 4.44.2 dev: true - /sass-loader/12.4.0_ldtenuersk6xjw5tkzwiywgimy: + /sass-loader/12.4.0_cjd2qsdkq5hfjhufx2mctdcnzy: resolution: {integrity: sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -19753,10 +20614,10 @@ packages: sass: optional: true dependencies: - klona: 2.0.5 + klona: 2.0.6 neo-async: 2.6.2 sass: 1.49.11 - webpack: 5.68.0 + webpack: 5.75.0 dev: false /sass/1.3.2: @@ -19771,7 +20632,7 @@ packages: hasBin: true dependencies: chokidar: 3.4.3 - immutable: 4.1.0 + immutable: 4.2.2 source-map-js: 1.0.2 dev: false @@ -19841,10 +20702,9 @@ packages: engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.11 - ajv: 8.11.2 + ajv: 8.12.0 ajv-formats: 2.1.1 - ajv-keywords: 5.1.0_ajv@8.11.2 - dev: false + ajv-keywords: 5.1.0_ajv@8.12.0 /scss-parser/1.0.6: resolution: {integrity: sha512-SH3TaoaJFzfAtqs3eG1j5IuHJkeEW5rKUPIjIN+ZorLAyJLHItQGnsgwHk76v25GtLtpT9IqfAcqK4vFWdiw+w==} @@ -19854,8 +20714,8 @@ packages: lodash: 4.17.21 dev: false - /secure-json-parse/2.6.0: - resolution: {integrity: sha512-B9osKohb6L+EZ6Kve3wHKfsAClzOC/iISA2vSuCe5Jx5NAKiwitfxx8ZKYapHXr0sYRj7UZInT7pLb3rp2Yx6A==} + /secure-json-parse/2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} dev: false /select-hose/2.0.0: @@ -20047,8 +20907,8 @@ packages: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.3 - object-inspect: 1.12.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -20178,7 +21038,7 @@ packages: whatwg-mimetype: 2.3.0 dev: true - /source-map-loader/3.0.2_webpack@5.68.0: + /source-map-loader/3.0.2_webpack@5.75.0: resolution: {integrity: sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -20187,7 +21047,7 @@ packages: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.0.2 - webpack: 5.68.0 + webpack: 5.75.0 /source-map-resolve/0.5.3: resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} @@ -20339,6 +21199,13 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + /stop-iteration-iterator/1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.4 + dev: true + /stoppable/1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} engines: {node: '>=4', npm: '>=6'} @@ -20372,8 +21239,8 @@ packages: /stream-shift/1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} - /streamroller/3.1.3: - resolution: {integrity: sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w==} + /streamroller/3.1.4: + resolution: {integrity: sha512-Ha1Ccw2/N5C/IF8Do6zgNe8F3jQo8MPBnMBGvX0QjNv/I97BcNRzK6/mzOpZHHK7DjMLTI3c7Xw7Y1KvdChkvw==} engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 @@ -20447,10 +21314,10 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 - get-intrinsic: 1.1.3 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 has-symbols: 1.0.3 - internal-slot: 1.0.3 + internal-slot: 1.0.4 regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 @@ -20460,7 +21327,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 dev: true /string.prototype.padstart/3.1.4: @@ -20469,7 +21336,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 dev: true /string.prototype.trimend/1.0.6: @@ -20477,14 +21344,14 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /string.prototype.trimstart/1.0.6: resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} dependencies: call-bind: 1.0.2 define-properties: 1.1.4 - es-abstract: 1.20.5 + es-abstract: 1.21.1 /string_decoder/0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} @@ -20580,13 +21447,13 @@ packages: webpack: 4.44.2 dev: true - /style-loader/3.3.1_webpack@5.68.0: + /style-loader/3.3.1_webpack@5.75.0: resolution: {integrity: sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - webpack: 5.68.0 + webpack: 5.75.0 /style-to-object/0.3.0: resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} @@ -20594,14 +21461,14 @@ packages: inline-style-parser: 0.1.1 dev: true - /stylehacks/5.1.1_postcss@8.4.19: + /stylehacks/5.1.1_postcss@8.4.21: resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.4 - postcss: 8.4.19 + postcss: 8.4.21 postcss-selector-parser: 6.0.11 dev: false @@ -20690,15 +21557,15 @@ packages: object.getownpropertydescriptors: 2.1.5 dev: true - /synchronous-promise/2.0.16: - resolution: {integrity: sha512-qImOD23aDfnIDNqlG1NOehdB9IYsn1V9oByPjKY1nakv2MQYCEMyX033/q+aEtYCpmYK1cv2+NTmlH+ra6GA5A==} + /synchronous-promise/2.0.17: + resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} dev: true /table/6.8.1: resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==} engines: {node: '>=10.0.0'} dependencies: - ajv: 8.11.2 + ajv: 8.12.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 @@ -20811,12 +21678,12 @@ packages: schema-utils: 3.1.1 serialize-javascript: 5.0.1 source-map: 0.6.1 - terser: 5.9.0 + terser: 5.16.1 webpack: 4.44.2 webpack-sources: 1.4.3 dev: true - /terser-webpack-plugin/5.3.6_webpack@5.68.0: + /terser-webpack-plugin/5.3.6_webpack@5.75.0: resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -20837,7 +21704,7 @@ packages: schema-utils: 3.1.1 serialize-javascript: 6.0.0 terser: 5.16.1 - webpack: 5.68.0 + webpack: 5.75.0 /terser/4.8.1: resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} @@ -20854,19 +21721,10 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.1 + acorn: 8.8.2 commander: 2.20.3 source-map-support: 0.5.21 - /terser/5.9.0: - resolution: {integrity: sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - commander: 2.20.3 - source-map: 0.7.4 - source-map-support: 0.5.21 - /test-exclude/6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -20891,8 +21749,8 @@ packages: any-promise: 1.3.0 dev: false - /throat/6.0.1: - resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} + /throat/6.0.2: + resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} /throttle-debounce/3.0.1: resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} @@ -20964,10 +21822,6 @@ packages: dependencies: kind-of: 3.2.2 - /to-readable-stream/1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - /to-regex-range/2.1.1: resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} engines: {node: '>=0.10.0'} @@ -21007,7 +21861,7 @@ packages: engines: {node: '>=6'} dependencies: psl: 1.9.0 - punycode: 2.1.1 + punycode: 2.3.0 universalify: 0.2.0 url-parse: 1.5.10 @@ -21018,14 +21872,14 @@ packages: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} engines: {node: '>=8'} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 dev: true /tr46/3.0.0: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} @@ -21088,8 +21942,8 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: true /tslint-microsoft-contrib/6.2.0_is64cncltak2c2767drphpzcku: @@ -21218,6 +22072,13 @@ packages: resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} dev: true + /typed-array-length/1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: @@ -21440,13 +22301,13 @@ packages: /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.1.1 + punycode: 2.3.0 /urix/0.1.0: resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} deprecated: Please see https://github.com/lydell/urix#deprecated - /url-loader/4.1.1_webpack@5.68.0: + /url-loader/4.1.1_webpack@5.75.0: resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -21459,7 +22320,7 @@ packages: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.1.1 - webpack: 5.68.0 + webpack: 5.75.0 dev: false /url-loader/4.1.1_zmzwotvrfu62vdeozbyveyswza: @@ -21479,12 +22340,6 @@ packages: webpack: 4.44.2 dev: true - /url-parse-lax/3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} - dependencies: - prepend-http: 2.0.0 - /url-parse/1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} dependencies: @@ -21679,7 +22534,7 @@ packages: engines: {node: '>=6.0'} hasBin: true dependencies: - acorn: 8.8.1 + acorn: 8.8.2 acorn-walk: 8.2.0 dev: true @@ -21775,7 +22630,7 @@ packages: engines: {node: '>= 10.13.0'} hasBin: true dependencies: - acorn: 8.8.1 + acorn: 8.8.2 acorn-walk: 8.2.0 chalk: 4.1.2 commander: 7.2.0 @@ -21865,7 +22720,7 @@ packages: webpack: 4.44.2_webpack-cli@3.3.12 dev: false - /webpack-dev-middleware/5.3.3_webpack@5.68.0: + /webpack-dev-middleware/5.3.3_webpack@5.75.0: resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -21880,8 +22735,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.68.0 - dev: false + webpack: 5.75.0 /webpack-dev-server/4.9.3_2jhnw6fokymnjfoumvhvkjoyjq: resolution: {integrity: sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==} @@ -21900,15 +22754,15 @@ packages: '@types/bonjour': 3.5.10 '@types/connect-history-api-fallback': 1.3.5 '@types/express': 4.17.13 - '@types/express-serve-static-core': 4.17.31 + '@types/express-serve-static-core': 4.17.33 '@types/serve-index': 1.9.1 '@types/serve-static': 1.15.0 '@types/sockjs': 0.3.33 '@types/webpack': 4.41.32 - '@types/ws': 8.5.3 + '@types/ws': 8.5.4 ansi-html-community: 0.0.8 anymatch: 3.1.3 - bonjour-service: 1.0.14 + bonjour-service: 1.1.0 chokidar: 3.5.3 colorette: 2.0.19 compression: 1.7.4 @@ -21929,7 +22783,7 @@ packages: spdy: 4.0.2 webpack: 4.44.2 webpack-dev-middleware: 5.3.3_2jhnw6fokymnjfoumvhvkjoyjq - ws: 8.11.0 + ws: 8.12.0 transitivePeerDependencies: - bufferutil - debug @@ -21954,14 +22808,14 @@ packages: '@types/bonjour': 3.5.10 '@types/connect-history-api-fallback': 1.3.5 '@types/express': 4.17.13 - '@types/express-serve-static-core': 4.17.31 + '@types/express-serve-static-core': 4.17.33 '@types/serve-index': 1.9.1 '@types/serve-static': 1.15.0 '@types/sockjs': 0.3.33 - '@types/ws': 8.5.3 + '@types/ws': 8.5.4 ansi-html-community: 0.0.8 anymatch: 3.1.3 - bonjour-service: 1.0.14 + bonjour-service: 1.1.0 chokidar: 3.5.3 colorette: 2.0.19 compression: 1.7.4 @@ -21983,7 +22837,7 @@ packages: webpack: 4.44.2_webpack-cli@3.3.12 webpack-cli: 3.3.12_webpack@4.44.2 webpack-dev-middleware: 5.3.3_webpack@4.44.2 - ws: 8.11.0 + ws: 8.12.0 transitivePeerDependencies: - bufferutil - debug @@ -21991,7 +22845,7 @@ packages: - utf-8-validate dev: false - /webpack-dev-server/4.9.3_webpack@5.68.0: + /webpack-dev-server/4.9.3_webpack@5.75.0: resolution: {integrity: sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==} engines: {node: '>= 12.13.0'} hasBin: true @@ -22008,14 +22862,14 @@ packages: '@types/bonjour': 3.5.10 '@types/connect-history-api-fallback': 1.3.5 '@types/express': 4.17.13 - '@types/express-serve-static-core': 4.17.31 + '@types/express-serve-static-core': 4.17.33 '@types/serve-index': 1.9.1 '@types/serve-static': 1.15.0 '@types/sockjs': 0.3.33 - '@types/ws': 8.5.3 + '@types/ws': 8.5.4 ansi-html-community: 0.0.8 anymatch: 3.1.3 - bonjour-service: 1.0.14 + bonjour-service: 1.1.0 chokidar: 3.5.3 colorette: 2.0.19 compression: 1.7.4 @@ -22034,9 +22888,9 @@ packages: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack: 5.68.0 - webpack-dev-middleware: 5.3.3_webpack@5.68.0 - ws: 8.11.0 + webpack: 5.75.0 + webpack-dev-middleware: 5.3.3_webpack@5.75.0 + ws: 8.12.0 transitivePeerDependencies: - bufferutil - debug @@ -22169,8 +23023,8 @@ packages: webpack-sources: 1.4.3 dev: false - /webpack/5.68.0: - resolution: {integrity: sha512-zUcqaUO0772UuuW2bzaES2Zjlm/y3kRBQDVFVCge+s2Y8mwuUTdperGaAv65/NtRL/1zanpSJOq/MD8u61vo6g==} + /webpack/5.75.0: + resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -22180,12 +23034,12 @@ packages: optional: true dependencies: '@types/eslint-scope': 3.7.4 - '@types/estree': 0.0.50 + '@types/estree': 0.0.51 '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.8.1 - acorn-import-assertions: 1.8.0_acorn@8.8.1 + acorn: 8.8.2 + acorn-import-assertions: 1.8.0_acorn@8.8.2 browserslist: 4.21.4 chrome-trace-event: 1.0.3 enhanced-resolve: 5.12.0 @@ -22194,13 +23048,13 @@ packages: events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.10 - json-parse-better-errors: 1.0.2 + json-parse-even-better-errors: 2.3.1 loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.1 - terser-webpack-plugin: 5.3.6_webpack@5.68.0 + terser-webpack-plugin: 5.3.6_webpack@5.75.0 watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -22294,7 +23148,6 @@ packages: gopd: 1.0.1 has-tostringtag: 1.0.0 is-typed-array: 1.1.10 - dev: true /which/1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} @@ -22376,8 +23229,8 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi/8.0.1: - resolution: {integrity: sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==} + /wrap-ansi/8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} dependencies: ansi-styles: 6.2.1 @@ -22444,12 +23297,12 @@ packages: utf-8-validate: optional: true - /ws/8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + /ws/8.12.0: + resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 + utf-8-validate: '>=5.0.2' peerDependenciesMeta: bufferutil: optional: true @@ -22623,8 +23476,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - /z-schema/5.0.4: - resolution: {integrity: sha512-gm/lx3hDzJNcLwseIeQVm1UcwhWIKpSB4NqH89pTBtFns4k/HDHudsICtvG05Bvw/Mv3jMyk700y5dadueLHdA==} + /z-schema/5.0.5: + resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} engines: {node: '>=8.0.0'} hasBin: true dependencies: @@ -22632,7 +23485,7 @@ packages: lodash.isequal: 4.5.0 validator: 13.7.0 optionalDependencies: - commander: 2.20.3 + commander: 9.5.0 /zip-local/0.3.5: resolution: {integrity: sha512-GRV3D5TJY+/PqyeRm5CYBs7xVrKTKzljBoEXvocZu0HJ7tPEcgpSOYa2zFIsCZWgKWMuc4U3yMFgFkERGFIB9w==} @@ -22652,8 +23505,8 @@ packages: readable-stream: 3.6.0 dev: true - /zod/3.19.1: - resolution: {integrity: sha512-LYjZsEDhCdYET9ikFu6dVPGp2YH9DegXjdJToSzD9rO6fy4qiRYFoyEYwps88OseJlPyl2NOe2iJuhEhL7IpEA==} + /zod/3.20.2: + resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} dev: true /zwitch/1.0.5: diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index 335327e0b02..9d0e76159ca 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "749275a59b75d8878c924ec24f01a06a49cfd292", + "pnpmShrinkwrapHash": "b7c7c11ce97089924eb38eb913f8062e986ae06a", "preferredVersionsHash": "5222ca779ae69ebfd201e39c17f48ce9eaf8c3c2" } diff --git a/common/config/rush/rush-plugins.json b/common/config/rush/rush-plugins.json index fbc34d4c912..bee0e46c491 100644 --- a/common/config/rush/rush-plugins.json +++ b/common/config/rush/rush-plugins.json @@ -5,21 +5,25 @@ "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json", "plugins": [ /** - * Each item defines a plugin configuration used by Rush. + * Each item configures a plugin to be loaded by Rush. */ // { // /** - // * The name of the rush plugin package. + // * The name of the NPM package that provides the plugin. // */ // "packageName": "@scope/my-rush-plugin", // /** - // * The name of the plugin provided by rush plugin package + // * The name of the plugin. This can be found in the "pluginName" + // * field of the "rush-plugin-manifest.json" file in the NPM package folder. // */ // "pluginName": "my-plugin-name", // /** - // * Autoinstaller name used to install the plugin. + // * The name of a Rush autoinstaller that will be used for installation, which + // * can be created using "rush init-autoinstaller". Add the plugin's NPM package + // * to the package.json "dependencies" of your autoinstaller, then run + // * "rush update-autoinstaller". // */ - // "autoinstallerName": "plugins" + // "autoinstallerName": "rush-plugins" // } ] } diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index d5c0cdd25a8..8c0d68db824 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -102,8 +102,8 @@ { "policyName": "rush", "definitionName": "lockStepVersion", - "version": "5.88.0", - "nextBump": "patch", + "version": "5.95.0", + "nextBump": "minor", "mainProject": "@microsoft/rush" } ] diff --git a/common/git-hooks/commit-msg.sample b/common/git-hooks/commit-msg.sample index e24e365755a..59cacb80ca1 100644 --- a/common/git-hooks/commit-msg.sample +++ b/common/git-hooks/commit-msg.sample @@ -1,25 +1,25 @@ -#!/bin/sh -# -# This is an example Git hook for use with Rush. To enable this hook, rename this file -# to "commit-msg" and then run "rush install", which will copy it from common/git-hooks -# to the .git/hooks folder. -# -# TO LEARN MORE ABOUT GIT HOOKS -# -# The Git documentation is here: https://git-scm.com/docs/githooks -# Some helpful resources: https://githooks.com -# -# ABOUT THIS EXAMPLE -# -# The commit-msg hook is called by "git commit" with one argument, the name of the file -# that has the commit message. The hook should exit with non-zero status after issuing -# an appropriate message if it wants to stop the commit. The hook is allowed to edit -# the commit message file. - -# This example enforces that commit message should contain a minimum amount of -# description text. -if [ `cat $1 | wc -w` -lt 3 ]; then - echo "" - echo "Invalid commit message: The message must contain at least 3 words." - exit 1 -fi +#!/bin/sh +# +# This is an example Git hook for use with Rush. To enable this hook, rename this file +# to "commit-msg" and then run "rush install", which will copy it from common/git-hooks +# to the .git/hooks folder. +# +# TO LEARN MORE ABOUT GIT HOOKS +# +# The Git documentation is here: https://git-scm.com/docs/githooks +# Some helpful resources: https://githooks.com +# +# ABOUT THIS EXAMPLE +# +# The commit-msg hook is called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero status after issuing +# an appropriate message if it wants to stop the commit. The hook is allowed to edit +# the commit message file. + +# This example enforces that commit message should contain a minimum amount of +# description text. +if [ `cat $1 | wc -w` -lt 3 ]; then + echo "" + echo "Invalid commit message: The message must contain at least 3 words." + exit 1 +fi diff --git a/common/reviews/api/api-extractor-model.api.md b/common/reviews/api/api-extractor-model.api.md index 89310eb180e..dd3f5dab530 100644 --- a/common/reviews/api/api-extractor-model.api.md +++ b/common/reviews/api/api-extractor-model.api.md @@ -26,6 +26,23 @@ export class AedocDefinitions { static get tsdocConfiguration(): TSDocConfiguration; } +// @public +export function ApiAbstractMixin(baseClass: TBaseClass): TBaseClass & (new (...args: any[]) => ApiAbstractMixin); + +// @public +export interface ApiAbstractMixin extends ApiItem { + readonly isAbstract: boolean; + // Warning: (ae-forgotten-export) The symbol "IApiItemJson" needs to be exported by the entry point index.d.ts + // + // (undocumented) + serializeInto(jsonObject: Partial): void; +} + +// @public +export namespace ApiAbstractMixin { + export function isBaseClassOf(apiItem: ApiItem): apiItem is ApiAbstractMixin; +} + // Warning: (ae-forgotten-export) The symbol "ApiCallSignature_base" needs to be exported by the entry point index.d.ts // // @public @@ -115,8 +132,6 @@ export class ApiDeclaredItem extends ApiDocumentedItem { // @public export class ApiDocumentedItem extends ApiItem { constructor(options: IApiDocumentedItemOptions); - // Warning: (ae-forgotten-export) The symbol "IApiItemJson" needs to be exported by the entry point index.d.ts - // // @override (undocumented) static onDeserializeInto(options: Partial, context: DeserializerContext, jsonObject: IApiItemJson): void; // Warning: (ae-forgotten-export) The symbol "IApiDocumentedItemJson" needs to be exported by the entry point index.d.ts @@ -727,12 +742,18 @@ export class HeritageType { readonly excerpt: Excerpt; } +// @public +export interface IApiAbstractMixinOptions extends IApiItemOptions { + // (undocumented) + isAbstract: boolean; +} + // @public export interface IApiCallSignatureOptions extends IApiTypeParameterListMixinOptions, IApiParameterListMixinOptions, IApiReleaseTagMixinOptions, IApiReturnTypeMixinOptions, IApiDeclaredItemOptions { } // @public -export interface IApiClassOptions extends IApiItemContainerMixinOptions, IApiNameMixinOptions, IApiReleaseTagMixinOptions, IApiDeclaredItemOptions, IApiTypeParameterListMixinOptions, IApiExportedMixinOptions { +export interface IApiClassOptions extends IApiItemContainerMixinOptions, IApiNameMixinOptions, IApiAbstractMixinOptions, IApiReleaseTagMixinOptions, IApiDeclaredItemOptions, IApiTypeParameterListMixinOptions, IApiExportedMixinOptions { // (undocumented) extendsTokenRange: IExcerptTokenRange | undefined; // (undocumented) @@ -816,7 +837,7 @@ export interface IApiItemOptions { } // @public -export interface IApiMethodOptions extends IApiNameMixinOptions, IApiOptionalMixinOptions, IApiParameterListMixinOptions, IApiProtectedMixinOptions, IApiReleaseTagMixinOptions, IApiReturnTypeMixinOptions, IApiStaticMixinOptions, IApiTypeParameterListMixinOptions, IApiDeclaredItemOptions { +export interface IApiMethodOptions extends IApiNameMixinOptions, IApiAbstractMixinOptions, IApiOptionalMixinOptions, IApiParameterListMixinOptions, IApiProtectedMixinOptions, IApiReleaseTagMixinOptions, IApiReturnTypeMixinOptions, IApiStaticMixinOptions, IApiTypeParameterListMixinOptions, IApiDeclaredItemOptions { } // @public (undocumented) @@ -879,7 +900,7 @@ export interface IApiPropertyItemOptions extends IApiNameMixinOptions, IApiRelea } // @public -export interface IApiPropertyOptions extends IApiPropertyItemOptions, IApiProtectedMixinOptions, IApiStaticMixinOptions, IApiInitializerMixinOptions { +export interface IApiPropertyOptions extends IApiPropertyItemOptions, IApiAbstractMixinOptions, IApiProtectedMixinOptions, IApiStaticMixinOptions, IApiInitializerMixinOptions { } // @public diff --git a/common/reviews/api/heft-config-file.api.md b/common/reviews/api/heft-config-file.api.md index f5d4572340d..0bda735760b 100644 --- a/common/reviews/api/heft-config-file.api.md +++ b/common/reviews/api/heft-config-file.api.md @@ -117,6 +117,4 @@ export enum PathResolutionMethod { // @beta (undocumented) export type PropertyInheritanceCustomFunction = (currentObject: TObject, parentObject: TObject) => TObject; -// (No @packageDocumentation comment for this package) - ``` diff --git a/common/reviews/api/heft-storybook-plugin.api.md b/common/reviews/api/heft-storybook-plugin.api.md index 0fe6373cd61..01834ab9ec2 100644 --- a/common/reviews/api/heft-storybook-plugin.api.md +++ b/common/reviews/api/heft-storybook-plugin.api.md @@ -12,7 +12,9 @@ export default _default; // @public export interface IStorybookPluginOptions { - startupModulePath: string; + startupModulePath?: string; + staticBuildModulePath?: string; + staticBuildOutputFolder?: string; storykitPackageName: string; } diff --git a/common/reviews/api/heft.api.md b/common/reviews/api/heft.api.md index 4f406086b21..7614b2d5b51 100644 --- a/common/reviews/api/heft.api.md +++ b/common/reviews/api/heft.api.md @@ -305,6 +305,4 @@ export class _MetricsCollector { // @public export type WatchGlobFn = (pattern: string | string[], options?: IGlobOptions | undefined) => Promise>; -// (No @packageDocumentation comment for this package) - ``` diff --git a/common/reviews/api/localization-utilities.api.md b/common/reviews/api/localization-utilities.api.md index df7ad1e5dcf..8496e99298c 100644 --- a/common/reviews/api/localization-utilities.api.md +++ b/common/reviews/api/localization-utilities.api.md @@ -110,6 +110,4 @@ export class TypingsGenerator extends StringValuesTypingsGenerator { constructor(options: ITypingsGeneratorOptions); } -// (No @packageDocumentation comment for this package) - ``` diff --git a/common/reviews/api/module-minifier.api.md b/common/reviews/api/module-minifier.api.md index ad5c23f471b..126078c517f 100644 --- a/common/reviews/api/module-minifier.api.md +++ b/common/reviews/api/module-minifier.api.md @@ -118,6 +118,4 @@ export class WorkerPoolMinifier implements IModuleMinifier { minify(request: IModuleMinificationRequest, callback: IModuleMinificationCallback): void; } -// (No @packageDocumentation comment for this package) - ``` diff --git a/common/reviews/api/node-core-library.api.md b/common/reviews/api/node-core-library.api.md index 2c01fe5142c..ae22448ef35 100644 --- a/common/reviews/api/node-core-library.api.md +++ b/common/reviews/api/node-core-library.api.md @@ -519,6 +519,7 @@ export interface INodePackageJson { name: string; optionalDependencies?: IPackageJsonDependencyTable; peerDependencies?: IPackageJsonDependencyTable; + peerDependenciesMeta?: IPeerDependenciesMetaTable; private?: boolean; repository?: string | IPackageJsonRepository; resolutions?: Record; @@ -599,6 +600,14 @@ export interface IPathFormatFileLocationOptions { pathToFormat: string; } +// @public +export interface IPeerDependenciesMetaTable { + // (undocumented) + [dependencyName: string]: { + optional?: boolean; + }; +} + // @public export interface IProtectableMapParameters { onClear?: (source: ProtectableMap) => void; diff --git a/common/reviews/api/package-deps-hash.api.md b/common/reviews/api/package-deps-hash.api.md index cd2808a61ee..def3204392e 100644 --- a/common/reviews/api/package-deps-hash.api.md +++ b/common/reviews/api/package-deps-hash.api.md @@ -20,7 +20,7 @@ export function getRepoChanges(currentWorkingDirectory: string, revision?: strin export function getRepoRoot(currentWorkingDirectory: string, gitPath?: string): string; // @beta -export function getRepoState(currentWorkingDirectory: string, gitPath?: string): Map; +export function getRepoStateAsync(rootDirectory: string, additionalRelativePathsToHash?: string[], gitPath?: string): Promise>; // @beta export interface IFileDiffStatus { diff --git a/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md b/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md index 0062151703b..15ad72b0b0f 100644 --- a/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md +++ b/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md @@ -22,7 +22,7 @@ export abstract class AzureAuthenticationBase { // (undocumented) protected abstract readonly _credentialNameForCache: string; // (undocumented) - protected abstract readonly _credentialUpdateCommandForLogging: string | undefined; + protected readonly _credentialUpdateCommandForLogging: string | undefined; // (undocumented) deleteCachedCredentialsAsync(terminal: ITerminal): Promise; protected abstract _getCacheIdParts(): string[]; @@ -48,8 +48,6 @@ export class AzureStorageAuthentication extends AzureAuthenticationBase { // (undocumented) protected readonly _credentialNameForCache: string; // (undocumented) - protected readonly _credentialUpdateCommandForLogging: string; - // (undocumented) protected _getCacheIdParts(): string[]; // (undocumented) protected _getCredentialFromDeviceCodeAsync(terminal: ITerminal, deviceCodeCredential: DeviceCodeCredential): Promise; @@ -70,6 +68,8 @@ export type ExpiredCredentialBehavior = 'logWarning' | 'throwError' | 'ignore'; export interface IAzureAuthenticationBaseOptions { // (undocumented) azureEnvironment?: AzureEnvironmentName; + // (undocumented) + credentialUpdateCommandForLogging?: string | undefined; } // @public (undocumented) diff --git a/common/reviews/api/rush-lib.api.md b/common/reviews/api/rush-lib.api.md index 2a0de769dcd..cbf4bb27366 100644 --- a/common/reviews/api/rush-lib.api.md +++ b/common/reviews/api/rush-lib.api.md @@ -177,6 +177,7 @@ export enum EnvironmentVariableNames { RUSH_GIT_BINARY_PATH = "RUSH_GIT_BINARY_PATH", RUSH_GLOBAL_FOLDER = "RUSH_GLOBAL_FOLDER", RUSH_INVOKED_FOLDER = "RUSH_INVOKED_FOLDER", + RUSH_LIB_PATH = "_RUSH_LIB_PATH", RUSH_PARALLELISM = "RUSH_PARALLELISM", RUSH_PNPM_STORE_PATH = "RUSH_PNPM_STORE_PATH", RUSH_PNPM_VERIFY_STORE_INTEGRITY = "RUSH_PNPM_VERIFY_STORE_INTEGRITY", @@ -262,6 +263,7 @@ export interface ICreateOperationsContext { readonly isIncrementalBuildAllowed: boolean; readonly isInitial: boolean; readonly isWatch: boolean; + readonly phaseOriginal: ReadonlySet; readonly phaseSelection: ReadonlySet; readonly projectChangeAnalyzer: ProjectChangeAnalyzer; readonly projectSelection: ReadonlySet; @@ -304,6 +306,7 @@ export interface IExperimentsJson { noChmodFieldInTarHeaderNormalization?: boolean; omitImportersFromPreventManualShrinkwrapChanges?: boolean; phasedCommands?: boolean; + printEventHooksOutputToConsole?: boolean; usePnpmFrozenLockfileForRushInstall?: boolean; usePnpmPreferFrozenLockfileForRushUpdate?: boolean; } @@ -389,6 +392,24 @@ export interface IOperationExecutionResult { readonly stopwatch: IStopwatchResult; } +// @internal (undocumented) +export interface _IOperationMetadata { + // (undocumented) + durationInSeconds: number; + // (undocumented) + errorLogPath: string; + // (undocumented) + logPath: string; +} + +// @internal (undocumented) +export interface _IOperationMetadataManagerOptions { + // (undocumented) + phase: IPhase; + // (undocumented) + rushProject: RushConfigurationProject; +} + // @alpha export interface IOperationOptions { phase?: IPhase | undefined; @@ -412,7 +433,7 @@ export interface IOperationRunnerContext { collatedWriter: CollatedWriter; debugMode: boolean; // @internal - _operationStateFile?: _OperationStateFile; + _operationMetadataManager?: _OperationMetadataManager; quietMode: boolean; stdioSummarizer: StdioSummarizer; stopwatch: IStopwatchResult; @@ -421,9 +442,9 @@ export interface IOperationRunnerContext { // @internal (undocumented) export interface _IOperationStateFileOptions { // (undocumented) - phase: IPhase; + metadataFolder: string; // (undocumented) - rushProject: RushConfigurationProject; + projectFolder: string; } // @internal (undocumented) @@ -449,6 +470,7 @@ export interface IPhase { isSynthetic: boolean; logFilenameIdentifier: string; name: string; + shellCommand?: string; } // @beta @@ -474,6 +496,14 @@ export interface _IPnpmOptionsJson extends IPackageManagerOptionsJsonBase { useWorkspaces?: boolean; } +// @beta +export interface IPrefixMatch { + // (undocumented) + index: number; + // (undocumented) + value: TItem; +} + // @beta export interface IRushCommand { readonly actionName: string; @@ -590,6 +620,7 @@ export class LookupByPath { readonly delimiter: string; findChildPath(childPath: string): TItem | undefined; findChildPathFromSegments(childPathSegments: Iterable): TItem | undefined; + findLongestPrefixMatch(query: string): IPrefixMatch | undefined; static iteratePathSegments(serializedPath: string, delimiter?: string): Iterable; setItem(serializedPath: string, value: TItem): this; setItemFromSegments(pathSegments: Iterable, value: TItem): this; @@ -615,11 +646,29 @@ export class Operation { weight: number; } +// @internal +export class _OperationMetadataManager { + constructor(options: _IOperationMetadataManagerOptions); + get relativeFilepaths(): string[]; + // (undocumented) + saveAsync({ durationInSeconds, logPath, errorLogPath }: _IOperationMetadata): Promise; + // (undocumented) + readonly stateFile: _OperationStateFile; + // (undocumented) + tryRestoreAsync({ terminal, logPath, errorLogPath }: { + terminal: ITerminal; + logPath: string; + errorLogPath: string; + }): Promise; +} + // @internal export class _OperationStateFile { constructor(options: _IOperationStateFileOptions); - readonly filename: string; - static getFilenameRelativeToProjectRoot(phase: IPhase): string; + // (undocumented) + static filename: string; + readonly filepath: string; + readonly relativeFilepath: string; // (undocumented) get state(): _IOperationStateJson | undefined; // (undocumented) @@ -656,6 +705,8 @@ export class PackageJsonDependency { // @public (undocumented) export class PackageJsonEditor { + // @internal + protected constructor(filepath: string, data: IPackageJson); // (undocumented) addOrUpdateDependency(packageName: string, newVersion: string, dependencyType: DependencyType): void; get dependencyList(): ReadonlyArray; @@ -704,7 +755,9 @@ export abstract class PackageManagerOptionsConfigurationBase implements IPackage // @alpha export class PhasedCommandHooks { readonly afterExecuteOperations: AsyncSeriesHook<[IExecutionResult, ICreateOperationsContext]>; + readonly beforeExecuteOperations: AsyncSeriesHook<[Map]>; readonly createOperations: AsyncSeriesWaterfallHook<[Set, ICreateOperationsContext]>; + readonly onOperationStatusChanged: SyncHook<[IOperationExecutionResult]>; readonly waitingForChanges: SyncHook; } @@ -740,7 +793,7 @@ export class ProjectChangeAnalyzer { // Warning: (ae-forgotten-export) The symbol "IRawRepoState" needs to be exported by the entry point index.d.ts // // @internal (undocumented) - _ensureInitialized(terminal: ITerminal): IRawRepoState | undefined; + _ensureInitializedAsync(terminal: ITerminal): Promise; // (undocumented) _filterProjectDataAsync(project: RushConfigurationProject, unfilteredProjectData: Map, rootDir: string, terminal: ITerminal): Promise>; getChangedProjectsAsync(options: IGetChangedProjectsOptions): Promise>; @@ -765,6 +818,8 @@ export class Rush { static launch(launcherVersion: string, arg: ILaunchOptions): void; static launchRushPnpm(launcherVersion: string, options: ILaunchOptions): void; static launchRushX(launcherVersion: string, options: ILaunchOptions): void; + // (undocumented) + static get _rushLibPackageFolder(): string; // @internal (undocumented) static get _rushLibPackageJson(): IPackageJson; static get version(): string; @@ -881,7 +936,7 @@ export class RushConfigurationProject { get isMainProject(): boolean; // @deprecated get localDependencyProjects(): ReadonlyArray; - readonly packageJson: IPackageJson; + get packageJson(): IPackageJson; // @beta readonly packageJsonEditor: PackageJsonEditor; readonly packageName: string; @@ -963,6 +1018,11 @@ export class _RushGlobalFolder { readonly path: string; } +// @internal +export class _RushInternals { + static loadModule(srcImportPath: string): unknown; +} + // @beta export class RushLifecycleHooks { beforeInstall: AsyncSeriesHook; diff --git a/common/reviews/api/rush-themed-ui.api.md b/common/reviews/api/rush-themed-ui.api.md new file mode 100644 index 00000000000..69176682dd2 --- /dev/null +++ b/common/reviews/api/rush-themed-ui.api.md @@ -0,0 +1,107 @@ +## API Report File for "@rushstack/rush-themed-ui" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { default as React_2 } from 'react'; + +// @public +export const Button: ({ children, disabled, onClick }: IButtonProps) => JSX.Element; + +// @public +export const Checkbox: ({ label, isChecked, onChecked }: ICheckboxProps) => JSX.Element; + +// @public +export interface IButtonProps { + // (undocumented) + children: JSX.Element | string; + // (undocumented) + disabled?: boolean; + // (undocumented) + onClick: () => void; +} + +// @public +export interface ICheckboxProps { + // (undocumented) + isChecked: boolean; + // (undocumented) + label: string; + // (undocumented) + onChecked: (checked: boolean) => void; +} + +// @public +export interface IInputProps { + // (undocumented) + onChange: (e: React_2.ChangeEvent) => void; + // (undocumented) + placeholder?: string; + // (undocumented) + type?: string; + // (undocumented) + value: string; +} + +// @public +export const Input: ({ value, placeholder, onChange, type }: IInputProps) => JSX.Element; + +// @public +export interface IScrollAreaProps { + // (undocumented) + children: React_2.ReactNode; +} + +// @public +export interface ITabsItem { + // (undocumented) + body?: React_2.ReactNode; + // (undocumented) + header: string; + // (undocumented) + value?: string; +} + +// @public +export interface ITabsProps { + // (undocumented) + def?: string; + // (undocumented) + items: ITabsItem[]; + // (undocumented) + onChange?: (value: any) => void; + // (undocumented) + renderChildren?: () => JSX.Element; + // (undocumented) + value: string; +} + +// @public +export interface ITextProps { + // (undocumented) + bold?: boolean; + // (undocumented) + children: React_2.ReactNode; + // (undocumented) + className?: string; + // (undocumented) + size?: number; + // (undocumented) + type: TextType; +} + +// @public +export const ScrollArea: ({ children }: IScrollAreaProps) => JSX.Element; + +// @public +export const Tabs: ({ items, def, value, onChange, renderChildren }: ITabsProps) => JSX.Element; + +// @public +const Text_2: ({ type, bold, children, className, size }: ITextProps) => JSX.Element; +export { Text_2 as Text } + +// @public +export type TextType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span'; + +``` diff --git a/common/reviews/api/typings-generator.api.md b/common/reviews/api/typings-generator.api.md index 8ef630234c9..b3fdbc77b42 100644 --- a/common/reviews/api/typings-generator.api.md +++ b/common/reviews/api/typings-generator.api.md @@ -73,6 +73,4 @@ export class TypingsGenerator { readonly sourceFolderPath: string; } -// (No @packageDocumentation comment for this package) - ``` diff --git a/common/reviews/api/webpack-embedded-dependencies-plugin.api.md b/common/reviews/api/webpack-embedded-dependencies-plugin.api.md new file mode 100644 index 00000000000..1fa9db5337d --- /dev/null +++ b/common/reviews/api/webpack-embedded-dependencies-plugin.api.md @@ -0,0 +1,46 @@ +## API Report File for "@rushstack/webpack-embedded-dependencies-plugin" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { Compiler } from 'webpack'; +import type { IPackageJson } from '@rushstack/node-core-library'; +import type { WebpackPluginInstance } from 'webpack'; + +// @beta +class EmbeddedDependenciesWebpackPlugin implements WebpackPluginInstance { + constructor(options?: IEmbeddedDependenciesWebpackPluginOptions); + apply(compiler: Compiler): void; +} +export default EmbeddedDependenciesWebpackPlugin; + +// @beta +export interface IEmbeddedDependenciesWebpackPluginOptions { + generatedLicenseFilename?: LicenseFileName; + generateLicenseFile?: boolean; + generateLicenseFileFunction?: LicenseFileGeneratorFunction; + outputFileName?: string; + packageFilterPredicate?: (packageJson: IPackageData, filePath: string) => boolean; +} + +// @beta +export interface IPackageData extends IPackageJson { + author?: string | { + name?: string; + }; + copyright: string | undefined; + licenses?: { + type: string; + url: string; + }[]; + licenseSource?: string; +} + +// @beta +export type LicenseFileGeneratorFunction = (packages: IPackageData[]) => string; + +// @beta +export type LicenseFileName = `${string}.${'html' | 'md' | 'txt'}`; + +``` diff --git a/common/reviews/api/webpack-plugin-utilities.api.md b/common/reviews/api/webpack-plugin-utilities.api.md index cbf1cc93af3..3b2bf0ac56f 100644 --- a/common/reviews/api/webpack-plugin-utilities.api.md +++ b/common/reviews/api/webpack-plugin-utilities.api.md @@ -4,8 +4,15 @@ ```ts +import type { Configuration } from 'webpack'; +import { IFs } from 'memfs'; +import type { MultiStats } from 'webpack'; +import type { Stats } from 'webpack'; import type * as Webpack from 'webpack'; +// @public +function getTestingWebpackCompilerAsync(entry: string, additionalConfig?: Configuration, memFs?: IFs): Promise<(Stats | MultiStats) | undefined>; + // @public function isWebpack3OrEarlier(compiler: Webpack.Compiler): boolean; @@ -15,6 +22,13 @@ function isWebpack4(compiler: Webpack.Compiler): boolean; // @public function isWebpack5(compiler: Webpack.Compiler): boolean; +declare namespace Testing { + export { + getTestingWebpackCompilerAsync + } +} +export { Testing } + declare namespace VersionDetection { export { isWebpack3OrEarlier, diff --git a/common/reviews/api/worker-pool.api.md b/common/reviews/api/worker-pool.api.md index 76b1572c2a9..83d458d5576 100644 --- a/common/reviews/api/worker-pool.api.md +++ b/common/reviews/api/worker-pool.api.md @@ -43,6 +43,4 @@ export class WorkerPool { reset(): void; } -// (No @packageDocumentation comment for this package) - ``` diff --git a/common/scripts/install-run-rush-pnpm.js b/common/scripts/install-run-rush-pnpm.js new file mode 100644 index 00000000000..5c149955de6 --- /dev/null +++ b/common/scripts/install-run-rush-pnpm.js @@ -0,0 +1,28 @@ +// THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. +// +// This script is intended for usage in an automated build environment where the Rush command may not have +// been preinstalled, or may have an unpredictable version. This script will automatically install the version of Rush +// specified in the rush.json configuration file (if not already installed), and then pass a command-line to the +// rush-pnpm command. +// +// An example usage would be: +// +// node common/scripts/install-run-rush-pnpm.js pnpm-command +// +// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +var __webpack_exports__ = {}; +/*!*****************************************************!*\ + !*** ./lib-esnext/scripts/install-run-rush-pnpm.js ***! + \*****************************************************/ + +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for license information. +require('./install-run-rush'); +//# sourceMappingURL=install-run-rush-pnpm.js.map +module.exports = __webpack_exports__; +/******/ })() +; +//# sourceMappingURL=install-run-rush-pnpm.js.map \ No newline at end of file diff --git a/common/scripts/install-run-rush.js b/common/scripts/install-run-rush.js index ff569fa92a8..cada1eded21 100644 --- a/common/scripts/install-run-rush.js +++ b/common/scripts/install-run-rush.js @@ -1,30 +1,3 @@ -"use strict"; -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); // THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. // // This script is intended for usage in an automated build environment where the Rush command may not have @@ -35,21 +8,128 @@ Object.defineProperty(exports, "__esModule", { value: true }); // node common/scripts/install-run-rush.js install // // For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ -const path = __importStar(require("path")); -const fs = __importStar(require("fs")); -const install_run_1 = require("./install-run"); + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ 657147: +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +module.exports = require("fs"); + +/***/ }), + +/***/ 371017: +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("path"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!************************************************!*\ + !*** ./lib-esnext/scripts/install-run-rush.js ***! + \************************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ 371017); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ 657147); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for license information. + + +const { installAndRun, findRushJsonFolder, RUSH_JSON_FILENAME, runWithErrorAndStatusCode } = require('./install-run'); const PACKAGE_NAME = '@microsoft/rush'; const RUSH_PREVIEW_VERSION = 'RUSH_PREVIEW_VERSION'; +const INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE = 'INSTALL_RUN_RUSH_LOCKFILE_PATH'; function _getRushVersion(logger) { const rushPreviewVersion = process.env[RUSH_PREVIEW_VERSION]; if (rushPreviewVersion !== undefined) { logger.info(`Using Rush version from environment variable ${RUSH_PREVIEW_VERSION}=${rushPreviewVersion}`); return rushPreviewVersion; } - const rushJsonFolder = (0, install_run_1.findRushJsonFolder)(); - const rushJsonPath = path.join(rushJsonFolder, install_run_1.RUSH_JSON_FILENAME); + const rushJsonFolder = findRushJsonFolder(); + const rushJsonPath = path__WEBPACK_IMPORTED_MODULE_0__.join(rushJsonFolder, RUSH_JSON_FILENAME); try { - const rushJsonContents = fs.readFileSync(rushJsonPath, 'utf-8'); + const rushJsonContents = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(rushJsonPath, 'utf-8'); // Use a regular expression to parse out the rushVersion value because rush.json supports comments, // but JSON.parse does not and we don't want to pull in more dependencies than we need to in this script. const rushJsonMatches = rushJsonContents.match(/\"rushVersion\"\s*\:\s*\"([0-9a-zA-Z.+\-]+)\"/); @@ -61,12 +141,22 @@ function _getRushVersion(logger) { 'using an unexpected syntax.'); } } +function _getBin(scriptName) { + switch (scriptName.toLowerCase()) { + case 'install-run-rush-pnpm.js': + return 'rush-pnpm'; + case 'install-run-rushx.js': + return 'rushx'; + default: + return 'rush'; + } +} function _run() { const [nodePath /* Ex: /bin/node */, scriptPath /* /repo/common/scripts/install-run-rush.js */, ...packageBinArgs /* [build, --to, myproject] */] = process.argv; // Detect if this script was directly invoked, or if the install-run-rushx script was invokved to select the // appropriate binary inside the rush package to run - const scriptName = path.basename(scriptPath); - const bin = scriptName.toLowerCase() === 'install-run-rushx.js' ? 'rushx' : 'rush'; + const scriptName = path__WEBPACK_IMPORTED_MODULE_0__.basename(scriptPath); + const bin = _getBin(scriptName); if (!nodePath || !scriptPath) { throw new Error('Unexpected exception: could not detect node path or script path'); } @@ -93,7 +183,10 @@ function _run() { } if (!commandFound) { console.log(`Usage: ${scriptName} [args...]`); - if (scriptName === 'install-run-rush.js') { + if (scriptName === 'install-run-rush-pnpm.js') { + console.log(`Example: ${scriptName} pnpm-command`); + } + else if (scriptName === 'install-run-rush.js') { console.log(`Example: ${scriptName} build --to myproject`); } else { @@ -101,11 +194,21 @@ function _run() { } process.exit(1); } - (0, install_run_1.runWithErrorAndStatusCode)(logger, () => { + runWithErrorAndStatusCode(logger, () => { const version = _getRushVersion(logger); logger.info(`The rush.json configuration requests Rush version ${version}`); - return (0, install_run_1.installAndRun)(logger, PACKAGE_NAME, version, bin, packageBinArgs); + const lockFilePath = process.env[INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE]; + if (lockFilePath) { + logger.info(`Found ${INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE}="${lockFilePath}", installing with lockfile.`); + } + return installAndRun(logger, PACKAGE_NAME, version, bin, packageBinArgs, lockFilePath); }); } _run(); +//# sourceMappingURL=install-run-rush.js.map +})(); + +module.exports = __webpack_exports__; +/******/ })() +; //# sourceMappingURL=install-run-rush.js.map \ No newline at end of file diff --git a/common/scripts/install-run-rushx.js b/common/scripts/install-run-rushx.js index bf26eb5e50a..b05df262bc2 100644 --- a/common/scripts/install-run-rushx.js +++ b/common/scripts/install-run-rushx.js @@ -1,7 +1,3 @@ -"use strict"; -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. -Object.defineProperty(exports, "__esModule", { value: true }); // THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. // // This script is intended for usage in an automated build environment where the Rush command may not have @@ -14,5 +10,19 @@ Object.defineProperty(exports, "__esModule", { value: true }); // node common/scripts/install-run-rushx.js custom-command // // For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ -require("./install-run-rush"); + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +var __webpack_exports__ = {}; +/*!*************************************************!*\ + !*** ./lib-esnext/scripts/install-run-rushx.js ***! + \*************************************************/ + +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for license information. +require('./install-run-rush'); +//# sourceMappingURL=install-run-rushx.js.map +module.exports = __webpack_exports__; +/******/ })() +; //# sourceMappingURL=install-run-rushx.js.map \ No newline at end of file diff --git a/common/scripts/install-run.js b/common/scripts/install-run.js index 208b99c83ce..68b1b56fc58 100644 --- a/common/scripts/install-run.js +++ b/common/scripts/install-run.js @@ -1,31 +1,3 @@ -"use strict"; -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for license information. -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.runWithErrorAndStatusCode = exports.installAndRun = exports.findRushJsonFolder = exports.getNpmPath = exports.RUSH_JSON_FILENAME = void 0; // THIS FILE WAS GENERATED BY A TOOL. ANY MANUAL MODIFICATIONS WILL GET OVERWRITTEN WHENEVER RUSH IS UPGRADED. // // This script is intended for usage in an automated build environment where a Node tool may not have @@ -36,40 +8,30 @@ exports.runWithErrorAndStatusCode = exports.installAndRun = exports.findRushJson // node common/scripts/install-run.js qrcode@1.2.2 qrcode https://rushjs.io // // For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ -const childProcess = __importStar(require("child_process")); -const fs = __importStar(require("fs")); -const os = __importStar(require("os")); -const path = __importStar(require("path")); -exports.RUSH_JSON_FILENAME = 'rush.json'; -const RUSH_TEMP_FOLDER_ENV_VARIABLE_NAME = 'RUSH_TEMP_FOLDER'; -const INSTALLED_FLAG_FILENAME = 'installed.flag'; -const NODE_MODULES_FOLDER_NAME = 'node_modules'; -const PACKAGE_JSON_FILENAME = 'package.json'; -/** - * Parse a package specifier (in the form of name\@version) into name and version parts. - */ -function _parsePackageSpecifier(rawPackageSpecifier) { - rawPackageSpecifier = (rawPackageSpecifier || '').trim(); - const separatorIndex = rawPackageSpecifier.lastIndexOf('@'); - let name; - let version = undefined; - if (separatorIndex === 0) { - // The specifier starts with a scope and doesn't have a version specified - name = rawPackageSpecifier; - } - else if (separatorIndex === -1) { - // The specifier doesn't have a version - name = rawPackageSpecifier; - } - else { - name = rawPackageSpecifier.substring(0, separatorIndex); - version = rawPackageSpecifier.substring(separatorIndex + 1); - } - if (!name) { - throw new Error(`Invalid package specifier: ${rawPackageSpecifier}`); - } - return { name, version }; -} + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({ + +/***/ 679877: +/*!************************************************!*\ + !*** ./lib-esnext/utilities/npmrcUtilities.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "syncNpmrc": () => (/* binding */ syncNpmrc) +/* harmony export */ }); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ 657147); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ 371017); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__); +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. +// IMPORTANT - do not use any non-built-in libraries in this file + + /** * As a workaround, copyAndTrimNpmrcFile() copies the .npmrc file to the target folder, and also trims * unusable lines from the .npmrc file. @@ -81,12 +43,13 @@ function _parsePackageSpecifier(rawPackageSpecifier) { * we'd prefer to skip that line and continue looking in other places such as the user's * home directory. * - * IMPORTANT: THIS CODE SHOULD BE KEPT UP TO DATE WITH Utilities.copyAndTrimNpmrcFile() + * @returns + * The text of the the .npmrc. */ function _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath) { logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose logger.info(` --> "${targetNpmrcPath}"`); - let npmrcFileLines = fs.readFileSync(sourceNpmrcPath).toString().split('\n'); + let npmrcFileLines = fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(sourceNpmrcPath).toString().split('\n'); npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim()); const resultLines = []; // This finds environment variable tokens that look like "${VAR_NAME}" @@ -121,31 +84,212 @@ function _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath) { resultLines.push(line); } } - fs.writeFileSync(targetNpmrcPath, resultLines.join(os.EOL)); + const combinedNpmrc = resultLines.join('\n'); + fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync(targetNpmrcPath, combinedNpmrc); + return combinedNpmrc; } /** * syncNpmrc() copies the .npmrc file to the target folder, and also trims unusable lines from the .npmrc file. * If the source .npmrc file not exist, then syncNpmrc() will delete an .npmrc that is found in the target folder. * * IMPORTANT: THIS CODE SHOULD BE KEPT UP TO DATE WITH Utilities._syncNpmrc() + * + * @returns + * The text of the the synced .npmrc, if one exists. If one does not exist, then undefined is returned. */ -function _syncNpmrc(logger, sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish) { - const sourceNpmrcPath = path.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish'); - const targetNpmrcPath = path.join(targetNpmrcFolder, '.npmrc'); +function syncNpmrc(sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = { + info: console.log, + error: console.error +}) { + const sourceNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(sourceNpmrcFolder, !useNpmrcPublish ? '.npmrc' : '.npmrc-publish'); + const targetNpmrcPath = path__WEBPACK_IMPORTED_MODULE_1__.join(targetNpmrcFolder, '.npmrc'); try { - if (fs.existsSync(sourceNpmrcPath)) { - _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath); + if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { + return _copyAndTrimNpmrcFile(logger, sourceNpmrcPath, targetNpmrcPath); } - else if (fs.existsSync(targetNpmrcPath)) { + else if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcPath)) { // If the source .npmrc doesn't exist and there is one in the target, delete the one in the target logger.info(`Deleting ${targetNpmrcPath}`); // Verbose - fs.unlinkSync(targetNpmrcPath); + fs__WEBPACK_IMPORTED_MODULE_0__.unlinkSync(targetNpmrcPath); } } catch (e) { throw new Error(`Error syncing .npmrc file: ${e}`); } } +//# sourceMappingURL=npmrcUtilities.js.map + +/***/ }), + +/***/ 532081: +/*!********************************!*\ + !*** external "child_process" ***! + \********************************/ +/***/ ((module) => { + +module.exports = require("child_process"); + +/***/ }), + +/***/ 657147: +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +module.exports = require("fs"); + +/***/ }), + +/***/ 822037: +/*!*********************!*\ + !*** external "os" ***! + \*********************/ +/***/ ((module) => { + +module.exports = require("os"); + +/***/ }), + +/***/ 371017: +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("path"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +/*!*******************************************!*\ + !*** ./lib-esnext/scripts/install-run.js ***! + \*******************************************/ +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "RUSH_JSON_FILENAME": () => (/* binding */ RUSH_JSON_FILENAME), +/* harmony export */ "findRushJsonFolder": () => (/* binding */ findRushJsonFolder), +/* harmony export */ "getNpmPath": () => (/* binding */ getNpmPath), +/* harmony export */ "installAndRun": () => (/* binding */ installAndRun), +/* harmony export */ "runWithErrorAndStatusCode": () => (/* binding */ runWithErrorAndStatusCode) +/* harmony export */ }); +/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ 532081); +/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ 657147); +/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! os */ 822037); +/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ 371017); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utilities/npmrcUtilities */ 679877); +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See the @microsoft/rush package's LICENSE file for license information. + + + + + +const RUSH_JSON_FILENAME = 'rush.json'; +const RUSH_TEMP_FOLDER_ENV_VARIABLE_NAME = 'RUSH_TEMP_FOLDER'; +const INSTALL_RUN_LOCKFILE_PATH_VARIABLE = 'INSTALL_RUN_LOCKFILE_PATH'; +const INSTALLED_FLAG_FILENAME = 'installed.flag'; +const NODE_MODULES_FOLDER_NAME = 'node_modules'; +const PACKAGE_JSON_FILENAME = 'package.json'; +/** + * Parse a package specifier (in the form of name\@version) into name and version parts. + */ +function _parsePackageSpecifier(rawPackageSpecifier) { + rawPackageSpecifier = (rawPackageSpecifier || '').trim(); + const separatorIndex = rawPackageSpecifier.lastIndexOf('@'); + let name; + let version = undefined; + if (separatorIndex === 0) { + // The specifier starts with a scope and doesn't have a version specified + name = rawPackageSpecifier; + } + else if (separatorIndex === -1) { + // The specifier doesn't have a version + name = rawPackageSpecifier; + } + else { + name = rawPackageSpecifier.substring(0, separatorIndex); + version = rawPackageSpecifier.substring(separatorIndex + 1); + } + if (!name) { + throw new Error(`Invalid package specifier: ${rawPackageSpecifier}`); + } + return { name, version }; +} let _npmPath = undefined; /** * Get the absolute path to the npm executable @@ -153,35 +297,34 @@ let _npmPath = undefined; function getNpmPath() { if (!_npmPath) { try { - if (os.platform() === 'win32') { + if (os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32') { // We're on Windows - const whereOutput = childProcess.execSync('where npm', { stdio: [] }).toString(); - const lines = whereOutput.split(os.EOL).filter((line) => !!line); + const whereOutput = child_process__WEBPACK_IMPORTED_MODULE_0__.execSync('where npm', { stdio: [] }).toString(); + const lines = whereOutput.split(os__WEBPACK_IMPORTED_MODULE_2__.EOL).filter((line) => !!line); // take the last result, we are looking for a .cmd command // see https://github.com/microsoft/rushstack/issues/759 _npmPath = lines[lines.length - 1]; } else { // We aren't on Windows - assume we're on *NIX or Darwin - _npmPath = childProcess.execSync('command -v npm', { stdio: [] }).toString(); + _npmPath = child_process__WEBPACK_IMPORTED_MODULE_0__.execSync('command -v npm', { stdio: [] }).toString(); } } catch (e) { throw new Error(`Unable to determine the path to the NPM tool: ${e}`); } _npmPath = _npmPath.trim(); - if (!fs.existsSync(_npmPath)) { + if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(_npmPath)) { throw new Error('The NPM executable does not exist'); } } return _npmPath; } -exports.getNpmPath = getNpmPath; function _ensureFolder(folderPath) { - if (!fs.existsSync(folderPath)) { - const parentDir = path.dirname(folderPath); + if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(folderPath)) { + const parentDir = path__WEBPACK_IMPORTED_MODULE_3__.dirname(folderPath); _ensureFolder(parentDir); - fs.mkdirSync(folderPath); + fs__WEBPACK_IMPORTED_MODULE_1__.mkdirSync(folderPath); } } /** @@ -195,14 +338,14 @@ function _ensureAndJoinPath(baseFolder, ...pathSegments) { try { for (let pathSegment of pathSegments) { pathSegment = pathSegment.replace(/[\\\/]/g, '+'); - joinedPath = path.join(joinedPath, pathSegment); - if (!fs.existsSync(joinedPath)) { - fs.mkdirSync(joinedPath); + joinedPath = path__WEBPACK_IMPORTED_MODULE_3__.join(joinedPath, pathSegment); + if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(joinedPath)) { + fs__WEBPACK_IMPORTED_MODULE_1__.mkdirSync(joinedPath); } } } catch (e) { - throw new Error(`Error building local installation folder (${path.join(baseFolder, ...pathSegments)}): ${e}`); + throw new Error(`Error building local installation folder (${path__WEBPACK_IMPORTED_MODULE_3__.join(baseFolder, ...pathSegments)}): ${e}`); } return joinedPath; } @@ -232,8 +375,8 @@ function _resolvePackageVersion(logger, rushCommonFolder, { name, version }) { // version resolves to try { const rushTempFolder = _getRushTempFolder(rushCommonFolder); - const sourceNpmrcFolder = path.join(rushCommonFolder, 'config', 'rush'); - _syncNpmrc(logger, sourceNpmrcFolder, rushTempFolder); + const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); + (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)(sourceNpmrcFolder, rushTempFolder, undefined, logger); const npmPath = getNpmPath(); // This returns something that looks like: // @microsoft/rush@3.0.0 '3.0.0' @@ -241,7 +384,7 @@ function _resolvePackageVersion(logger, rushCommonFolder, { name, version }) { // ... // @microsoft/rush@3.0.20 '3.0.20' // - const npmVersionSpawnResult = childProcess.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier'], { + const npmVersionSpawnResult = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier'], { cwd: rushTempFolder, stdio: [] }); @@ -274,58 +417,72 @@ function findRushJsonFolder() { let basePath = __dirname; let tempPath = __dirname; do { - const testRushJsonPath = path.join(basePath, exports.RUSH_JSON_FILENAME); - if (fs.existsSync(testRushJsonPath)) { + const testRushJsonPath = path__WEBPACK_IMPORTED_MODULE_3__.join(basePath, RUSH_JSON_FILENAME); + if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(testRushJsonPath)) { _rushJsonFolder = basePath; break; } else { basePath = tempPath; } - } while (basePath !== (tempPath = path.dirname(basePath))); // Exit the loop when we hit the disk root + } while (basePath !== (tempPath = path__WEBPACK_IMPORTED_MODULE_3__.dirname(basePath))); // Exit the loop when we hit the disk root if (!_rushJsonFolder) { throw new Error('Unable to find rush.json.'); } } return _rushJsonFolder; } -exports.findRushJsonFolder = findRushJsonFolder; /** * Detects if the package in the specified directory is installed */ function _isPackageAlreadyInstalled(packageInstallFolder) { try { - const flagFilePath = path.join(packageInstallFolder, INSTALLED_FLAG_FILENAME); - if (!fs.existsSync(flagFilePath)) { + const flagFilePath = path__WEBPACK_IMPORTED_MODULE_3__.join(packageInstallFolder, INSTALLED_FLAG_FILENAME); + if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(flagFilePath)) { return false; } - const fileContents = fs.readFileSync(flagFilePath).toString(); + const fileContents = fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync(flagFilePath).toString(); return fileContents.trim() === process.version; } catch (e) { return false; } } +/** + * Delete a file. Fail silently if it does not exist. + */ +function _deleteFile(file) { + try { + fs__WEBPACK_IMPORTED_MODULE_1__.unlinkSync(file); + } + catch (err) { + if (err.code !== 'ENOENT' && err.code !== 'ENOTDIR') { + throw err; + } + } +} /** * Removes the following files and directories under the specified folder path: * - installed.flag * - * - node_modules */ -function _cleanInstallFolder(rushTempFolder, packageInstallFolder) { +function _cleanInstallFolder(rushTempFolder, packageInstallFolder, lockFilePath) { try { - const flagFile = path.resolve(packageInstallFolder, INSTALLED_FLAG_FILENAME); - if (fs.existsSync(flagFile)) { - fs.unlinkSync(flagFile); - } - const packageLockFile = path.resolve(packageInstallFolder, 'package-lock.json'); - if (fs.existsSync(packageLockFile)) { - fs.unlinkSync(packageLockFile); + const flagFile = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, INSTALLED_FLAG_FILENAME); + _deleteFile(flagFile); + const packageLockFile = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, 'package-lock.json'); + if (lockFilePath) { + fs__WEBPACK_IMPORTED_MODULE_1__.copyFileSync(lockFilePath, packageLockFile); } - const nodeModulesFolder = path.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME); - if (fs.existsSync(nodeModulesFolder)) { - const rushRecyclerFolder = _ensureAndJoinPath(rushTempFolder, 'rush-recycler'); - fs.renameSync(nodeModulesFolder, path.join(rushRecyclerFolder, `install-run-${Date.now().toString()}`)); + else { + // Not running `npm ci`, so need to cleanup + _deleteFile(packageLockFile); + const nodeModulesFolder = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME); + if (fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(nodeModulesFolder)) { + const rushRecyclerFolder = _ensureAndJoinPath(rushTempFolder, 'rush-recycler'); + fs__WEBPACK_IMPORTED_MODULE_1__.renameSync(nodeModulesFolder, path__WEBPACK_IMPORTED_MODULE_3__.join(rushRecyclerFolder, `install-run-${Date.now().toString()}`)); + } } } catch (e) { @@ -344,8 +501,8 @@ function _createPackageJson(packageInstallFolder, name, version) { repository: "DON'T WARN", license: 'MIT' }; - const packageJsonPath = path.join(packageInstallFolder, PACKAGE_JSON_FILENAME); - fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, undefined, 2)); + const packageJsonPath = path__WEBPACK_IMPORTED_MODULE_3__.join(packageInstallFolder, PACKAGE_JSON_FILENAME); + fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContents, undefined, 2)); } catch (e) { throw new Error(`Unable to create package.json: ${e}`); @@ -354,17 +511,17 @@ function _createPackageJson(packageInstallFolder, name, version) { /** * Run "npm install" in the package install folder. */ -function _installPackage(logger, packageInstallFolder, name, version) { +function _installPackage(logger, packageInstallFolder, name, version, command) { try { logger.info(`Installing ${name}...`); const npmPath = getNpmPath(); - const result = childProcess.spawnSync(npmPath, ['install'], { + const result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, [command], { stdio: 'inherit', cwd: packageInstallFolder, env: process.env }); if (result.status !== 0) { - throw new Error('"npm install" encountered an error'); + throw new Error(`"npm ${command}" encountered an error`); } logger.info(`Successfully installed ${name}@${version}`); } @@ -376,41 +533,42 @@ function _installPackage(logger, packageInstallFolder, name, version) { * Get the ".bin" path for the package. */ function _getBinPath(packageInstallFolder, binName) { - const binFolderPath = path.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); - const resolvedBinName = os.platform() === 'win32' ? `${binName}.cmd` : binName; - return path.resolve(binFolderPath, resolvedBinName); + const binFolderPath = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); + const resolvedBinName = os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32' ? `${binName}.cmd` : binName; + return path__WEBPACK_IMPORTED_MODULE_3__.resolve(binFolderPath, resolvedBinName); } /** * Write a flag file to the package's install directory, signifying that the install was successful. */ function _writeFlagFile(packageInstallFolder) { try { - const flagFilePath = path.join(packageInstallFolder, INSTALLED_FLAG_FILENAME); - fs.writeFileSync(flagFilePath, process.version); + const flagFilePath = path__WEBPACK_IMPORTED_MODULE_3__.join(packageInstallFolder, INSTALLED_FLAG_FILENAME); + fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync(flagFilePath, process.version); } catch (e) { throw new Error(`Unable to create installed.flag file in ${packageInstallFolder}`); } } -function installAndRun(logger, packageName, packageVersion, packageBinName, packageBinArgs) { +function installAndRun(logger, packageName, packageVersion, packageBinName, packageBinArgs, lockFilePath = process.env[INSTALL_RUN_LOCKFILE_PATH_VARIABLE]) { const rushJsonFolder = findRushJsonFolder(); - const rushCommonFolder = path.join(rushJsonFolder, 'common'); + const rushCommonFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushJsonFolder, 'common'); const rushTempFolder = _getRushTempFolder(rushCommonFolder); const packageInstallFolder = _ensureAndJoinPath(rushTempFolder, 'install-run', `${packageName}@${packageVersion}`); if (!_isPackageAlreadyInstalled(packageInstallFolder)) { // The package isn't already installed - _cleanInstallFolder(rushTempFolder, packageInstallFolder); - const sourceNpmrcFolder = path.join(rushCommonFolder, 'config', 'rush'); - _syncNpmrc(logger, sourceNpmrcFolder, packageInstallFolder); + _cleanInstallFolder(rushTempFolder, packageInstallFolder, lockFilePath); + const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); + (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)(sourceNpmrcFolder, packageInstallFolder, undefined, logger); _createPackageJson(packageInstallFolder, packageName, packageVersion); - _installPackage(logger, packageInstallFolder, packageName, packageVersion); + const command = lockFilePath ? 'ci' : 'install'; + _installPackage(logger, packageInstallFolder, packageName, packageVersion, command); _writeFlagFile(packageInstallFolder); } const statusMessage = `Invoking "${packageBinName} ${packageBinArgs.join(' ')}"`; const statusMessageLine = new Array(statusMessage.length + 1).join('-'); - logger.info(os.EOL + statusMessage + os.EOL + statusMessageLine + os.EOL); + logger.info('\n' + statusMessage + '\n' + statusMessageLine + '\n'); const binPath = _getBinPath(packageInstallFolder, packageBinName); - const binFolderPath = path.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); + const binFolderPath = path__WEBPACK_IMPORTED_MODULE_3__.resolve(packageInstallFolder, NODE_MODULES_FOLDER_NAME, '.bin'); // Windows environment variables are case-insensitive. Instead of using SpawnSyncOptions.env, we need to // assign via the process.env proxy to ensure that we append to the right PATH key. const originalEnvPath = process.env.PATH || ''; @@ -418,10 +576,10 @@ function installAndRun(logger, packageName, packageVersion, packageBinName, pack try { // Node.js on Windows can not spawn a file when the path has a space on it // unless the path gets wrapped in a cmd friendly way and shell mode is used - const shouldUseShell = binPath.includes(' ') && os.platform() === 'win32'; + const shouldUseShell = binPath.includes(' ') && os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32'; const platformBinPath = shouldUseShell ? `"${binPath}"` : binPath; - process.env.PATH = [binFolderPath, originalEnvPath].join(path.delimiter); - result = childProcess.spawnSync(platformBinPath, packageBinArgs, { + process.env.PATH = [binFolderPath, originalEnvPath].join(path__WEBPACK_IMPORTED_MODULE_3__.delimiter); + result = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(platformBinPath, packageBinArgs, { stdio: 'inherit', windowsVerbatimArguments: false, shell: shouldUseShell, @@ -439,7 +597,6 @@ function installAndRun(logger, packageName, packageVersion, packageBinName, pack throw result.error || new Error('An unknown error occurred.'); } } -exports.installAndRun = installAndRun; function runWithErrorAndStatusCode(logger, fn) { process.exitCode = 1; try { @@ -447,16 +604,15 @@ function runWithErrorAndStatusCode(logger, fn) { process.exitCode = exitCode; } catch (e) { - logger.error(os.EOL + os.EOL + e.toString() + os.EOL + os.EOL); + logger.error('\n\n' + e.toString() + '\n\n'); } } -exports.runWithErrorAndStatusCode = runWithErrorAndStatusCode; function _run() { const [nodePath /* Ex: /bin/node */, scriptPath /* /repo/common/scripts/install-run-rush.js */, rawPackageSpecifier /* qrcode@^1.2.0 */, packageBinName /* qrcode */, ...packageBinArgs /* [-f, myproject/lib] */] = process.argv; if (!nodePath) { throw new Error('Unexpected exception: could not detect node path'); } - if (path.basename(scriptPath).toLowerCase() !== 'install-run.js') { + if (path__WEBPACK_IMPORTED_MODULE_3__.basename(scriptPath).toLowerCase() !== 'install-run.js') { // If install-run.js wasn't directly invoked, don't execute the rest of this function. Return control // to the script that (presumably) imported this file return; @@ -480,4 +636,10 @@ function _run() { }); } _run(); +//# sourceMappingURL=install-run.js.map +})(); + +module.exports = __webpack_exports__; +/******/ })() +; //# sourceMappingURL=install-run.js.map \ No newline at end of file diff --git a/eslint/eslint-config/CHANGELOG.json b/eslint/eslint-config/CHANGELOG.json index f6b8b2d2199..2f3d30f95c6 100644 --- a/eslint/eslint-config/CHANGELOG.json +++ b/eslint/eslint-config/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/eslint-config", "entries": [ + { + "version": "3.2.0", + "tag": "@rushstack/eslint-config_v3.2.0", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "minor": [ + { + "comment": "Replace the @typescript-eslint/no-parameter-properties rule with the replacement rule (@typescript-eslint/parameter-properties)." + } + ] + } + }, { "version": "3.1.1", "tag": "@rushstack/eslint-config_v3.1.1", diff --git a/eslint/eslint-config/CHANGELOG.md b/eslint/eslint-config/CHANGELOG.md index d7aed501e5f..6035ec8f9cd 100644 --- a/eslint/eslint-config/CHANGELOG.md +++ b/eslint/eslint-config/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @rushstack/eslint-config -This log was last generated on Mon, 10 Oct 2022 15:23:44 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:50 GMT and should not be manually modified. + +## 3.2.0 +Fri, 10 Feb 2023 01:18:50 GMT + +### Minor changes + +- Replace the @typescript-eslint/no-parameter-properties rule with the replacement rule (@typescript-eslint/parameter-properties). ## 3.1.1 Mon, 10 Oct 2022 15:23:44 GMT diff --git a/eslint/eslint-config/package.json b/eslint/eslint-config/package.json index 440c294f827..24792c82842 100644 --- a/eslint/eslint-config/package.json +++ b/eslint/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/eslint-config", - "version": "3.1.1", + "version": "3.2.0", "description": "A TypeScript ESLint ruleset designed for large teams and projects", "license": "MIT", "repository": { diff --git a/eslint/eslint-config/profile/_common.js b/eslint/eslint-config/profile/_common.js index b9cbd0282cb..d2cec825c88 100644 --- a/eslint/eslint-config/profile/_common.js +++ b/eslint/eslint-config/profile/_common.js @@ -418,7 +418,7 @@ function buildRules(profile) { // just to save some typing. // // STANDARDIZED BY: @typescript-eslint\eslint-plugin\dist\configs\recommended.json - '@typescript-eslint/no-parameter-properties': 'warn', + '@typescript-eslint/parameter-properties': 'warn', // RATIONALE: When left in shipping code, unused variables often indicate a mistake. Dead code // may impact performance. diff --git a/eslint/eslint-patch/package.json b/eslint/eslint-patch/package.json index ed0f717d8b2..ccff31cbf91 100644 --- a/eslint/eslint-patch/package.json +++ b/eslint/eslint-patch/package.json @@ -25,8 +25,8 @@ "package" ], "devDependencies": { - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", - "@types/node": "12.20.24" + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", + "@types/node": "14.18.36" } } diff --git a/eslint/eslint-plugin-packlets/package.json b/eslint/eslint-plugin-packlets/package.json index ce29b99c614..2a5e234ffc5 100644 --- a/eslint/eslint-plugin-packlets/package.json +++ b/eslint/eslint-plugin-packlets/package.json @@ -30,12 +30,12 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "devDependencies": { - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/eslint": "8.2.0", "@types/estree": "0.0.50", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@typescript-eslint/parser": "~5.38.0", "@typescript-eslint/typescript-estree": "~5.38.0", "eslint": "~8.7.0", diff --git a/eslint/eslint-plugin-security/package.json b/eslint/eslint-plugin-security/package.json index 9cb43c5decc..f966cd7b28d 100644 --- a/eslint/eslint-plugin-security/package.json +++ b/eslint/eslint-plugin-security/package.json @@ -29,12 +29,12 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "devDependencies": { - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/eslint": "8.2.0", "@types/estree": "0.0.50", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@typescript-eslint/parser": "~5.38.0", "@typescript-eslint/typescript-estree": "~5.38.0", "eslint": "~8.7.0", diff --git a/eslint/eslint-plugin/package.json b/eslint/eslint-plugin/package.json index 194171f5afd..3790d007be3 100644 --- a/eslint/eslint-plugin/package.json +++ b/eslint/eslint-plugin/package.json @@ -33,12 +33,12 @@ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "devDependencies": { - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/eslint": "8.2.0", "@types/estree": "0.0.50", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@typescript-eslint/parser": "~5.38.0", "@typescript-eslint/typescript-estree": "~5.38.0", "eslint": "~8.7.0", diff --git a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json index e6f7cf4f8fb..e18d2fac841 100644 --- a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json +++ b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json @@ -2,70 +2,246 @@ "name": "@rushstack/heft-dev-cert-plugin", "entries": [ { - "version": "0.3.0-rc.4", - "tag": "@rushstack/heft-dev-cert-plugin_v0.3.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.2.20", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.20", + "date": "Mon, 20 Mar 2023 20:14:20 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.19`" } ] } }, { - "version": "0.3.0-rc.3", - "tag": "@rushstack/heft-dev-cert-plugin_v0.3.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.2.19", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.19", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.18`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.3.0-rc.2", - "tag": "@rushstack/heft-dev-cert-plugin_v0.3.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.2.18", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.18", + "date": "Fri, 03 Mar 2023 04:11:20 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.17`" + } + ] + } + }, + { + "version": "0.2.17", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.17", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.16`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.4`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.3.0-rc.1", - "tag": "@rushstack/heft-dev-cert-plugin_v0.3.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.2.16", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.16", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.15`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.3.0-rc.0", - "tag": "@rushstack/heft-dev-cert-plugin_v0.3.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.2.15", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.15", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.14`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" + } + ] + } + }, + { + "version": "0.2.14", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.14", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.13`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" + } + ] + } + }, + { + "version": "0.2.13", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.13", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.2.12", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.12", + "date": "Thu, 26 Jan 2023 02:55:09 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.11`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.2.11", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.11", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.10`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.2.10", + "tag": "@rushstack/heft-dev-cert-plugin_v0.2.10", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.9`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.33.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md index 5069166af90..31f084f05a5 100644 --- a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md +++ b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md @@ -1,44 +1,63 @@ # Change Log - @rushstack/heft-dev-cert-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Mon, 20 Mar 2023 20:14:20 GMT and should not be manually modified. -## 0.3.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.2.20 +Mon, 20 Mar 2023 20:14:20 GMT -### Prerelease Changes +_Version update only_ + +## 0.2.19 +Sat, 18 Mar 2023 00:20:56 GMT -- Fix an issue with `watchGlobAsync` +_Version update only_ -## 0.3.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +## 0.2.18 +Fri, 03 Mar 2023 04:11:20 GMT + +_Version update only_ -### Prerelease Changes +## 0.2.17 +Fri, 10 Feb 2023 01:18:50 GMT -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +_Version update only_ -## 0.3.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +## 0.2.16 +Sun, 05 Feb 2023 03:02:02 GMT -### Prerelease Changes +_Version update only_ -- Improve watch mode performance. -- Improve logging output. +## 0.2.15 +Wed, 01 Feb 2023 02:16:34 GMT -## 0.3.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +_Version update only_ -### Prerelease Changes +## 0.2.14 +Mon, 30 Jan 2023 16:22:31 GMT -- Fix incremental TypeScript compilation. +_Version update only_ -## 0.3.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +## 0.2.13 +Mon, 30 Jan 2023 00:55:44 GMT -### Prerelease Changes +_Version update only_ -- General fixes and improvements, in preparation for a general release. +## 0.2.12 +Thu, 26 Jan 2023 02:55:09 GMT + +### Patches + +- Upgrade to webpack 5.75.0 + +## 0.2.11 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.2.10 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.2.9 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-dev-cert-plugin/package.json b/heft-plugins/heft-dev-cert-plugin/package.json index 8b01756d74a..001ddef270e 100644 --- a/heft-plugins/heft-dev-cert-plugin/package.json +++ b/heft-plugins/heft-dev-cert-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-dev-cert-plugin", - "version": "0.3.0-rc.4", + "version": "0.2.20", "description": "A Heft plugin for generating and using local development certificates", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4" + "@rushstack/heft": "^0.50.0" }, "dependencies": { "@rushstack/debug-certificate-manager": "workspace:*" @@ -26,7 +26,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "eslint": "~8.7.0" } } diff --git a/heft-plugins/heft-jest-plugin/CHANGELOG.json b/heft-plugins/heft-jest-plugin/CHANGELOG.json index de2664a2a7d..d1565b29ef8 100644 --- a/heft-plugins/heft-jest-plugin/CHANGELOG.json +++ b/heft-plugins/heft-jest-plugin/CHANGELOG.json @@ -2,70 +2,181 @@ "name": "@rushstack/heft-jest-plugin", "entries": [ { - "version": "0.5.0-rc.4", - "tag": "@rushstack/heft-jest-plugin_v0.5.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.5.5", + "tag": "@rushstack/heft-jest-plugin_v0.5.5", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.5.0-rc.3", - "tag": "@rushstack/heft-jest-plugin_v0.5.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.5.4", + "tag": "@rushstack/heft-jest-plugin_v0.5.4", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.9`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.4`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.4.0-rc.2", - "tag": "@rushstack/heft-jest-plugin_v0.4.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.5.3", + "tag": "@rushstack/heft-jest-plugin_v0.5.3", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.8`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.4.0-rc.1", - "tag": "@rushstack/heft-jest-plugin_v0.4.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.5.2", + "tag": "@rushstack/heft-jest-plugin_v0.5.2", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.7`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" + } + ] + } + }, + { + "version": "0.5.1", + "tag": "@rushstack/heft-jest-plugin_v0.5.1", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.6`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.1`" + }, { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" } ] } }, { - "version": "0.4.0-rc.0", - "tag": "@rushstack/heft-jest-plugin_v0.4.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.5.0", + "tag": "@rushstack/heft-jest-plugin_v0.5.0", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", "comments": { "minor": [ { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Upgrade Jest from `~27.4.2` to `~29.3.1`" + } + ] + } + }, + { + "version": "0.4.5", + "tag": "@rushstack/heft-jest-plugin_v0.4.5", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.4.4", + "tag": "@rushstack/heft-jest-plugin_v0.4.4", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.4.3", + "tag": "@rushstack/heft-jest-plugin_v0.4.3", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.33.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-jest-plugin/CHANGELOG.md b/heft-plugins/heft-jest-plugin/CHANGELOG.md index 0aa29adc3c6..debf9c0542a 100644 --- a/heft-plugins/heft-jest-plugin/CHANGELOG.md +++ b/heft-plugins/heft-jest-plugin/CHANGELOG.md @@ -1,44 +1,53 @@ # Change Log - @rushstack/heft-jest-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.5.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.5.5 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ -- Fix an issue with `watchGlobAsync` +## 0.5.4 +Fri, 10 Feb 2023 01:18:50 GMT -## 0.5.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +_Version update only_ -### Prerelease Changes +## 0.5.3 +Sun, 05 Feb 2023 03:02:02 GMT -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +_Version update only_ -## 0.4.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +## 0.5.2 +Wed, 01 Feb 2023 02:16:34 GMT -### Prerelease Changes +_Version update only_ -- Improve watch mode performance. -- Improve logging output. +## 0.5.1 +Mon, 30 Jan 2023 16:22:31 GMT -## 0.4.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +_Version update only_ -### Prerelease Changes +## 0.5.0 +Mon, 30 Jan 2023 00:55:44 GMT -- Fix incremental TypeScript compilation. +### Minor changes -## 0.4.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +- Upgrade Jest from `~27.4.2` to `~29.3.1` -### Prerelease Changes +## 0.4.5 +Thu, 26 Jan 2023 02:55:10 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ + +## 0.4.4 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.4.3 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.4.2 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-jest-plugin/package.json b/heft-plugins/heft-jest-plugin/package.json index 588bb092d6b..57a6ca339ce 100644 --- a/heft-plugins/heft-jest-plugin/package.json +++ b/heft-plugins/heft-jest-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-jest-plugin", - "version": "0.5.0-rc.4", + "version": "0.5.5", "description": "Heft plugin for Jest", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "node ./node_modules/@rushstack/heft-legacy/bin/heft --unmanaged test --no-build" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4", + "@rushstack/heft": "^0.50.0", "@rushstack/heft-typescript-plugin": "^0.1.0" }, "peerDependenciesMeta": { @@ -44,7 +44,7 @@ "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", "@types/lodash": "4.14.116", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~8.7.0", "jest-environment-jsdom": "~29.3.1", "jest-environment-node": "~29.3.1", diff --git a/heft-plugins/heft-sass-plugin/CHANGELOG.json b/heft-plugins/heft-sass-plugin/CHANGELOG.json index 2a00295eb2d..038196f0743 100644 --- a/heft-plugins/heft-sass-plugin/CHANGELOG.json +++ b/heft-plugins/heft-sass-plugin/CHANGELOG.json @@ -2,70 +2,244 @@ "name": "@rushstack/heft-sass-plugin", "entries": [ { - "version": "0.8.0-rc.4", - "tag": "@rushstack/heft-sass-plugin_v0.8.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.8.4", + "tag": "@rushstack/heft-sass-plugin_v0.8.4", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.8.0-rc.3", - "tag": "@rushstack/heft-sass-plugin_v0.8.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.8.3", + "tag": "@rushstack/heft-sass-plugin_v0.8.3", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.9`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.2`" + }, { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.4`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.8.0-rc.2", - "tag": "@rushstack/heft-sass-plugin_v0.8.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.8.2", + "tag": "@rushstack/heft-sass-plugin_v0.8.2", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.8`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.1`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.8.0-rc.1", - "tag": "@rushstack/heft-sass-plugin_v0.8.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.8.1", + "tag": "@rushstack/heft-sass-plugin_v0.8.1", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.7`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" } ] } }, { - "version": "0.8.0-rc.0", - "tag": "@rushstack/heft-sass-plugin_v0.8.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.8.0", + "tag": "@rushstack/heft-sass-plugin_v0.8.0", + "date": "Tue, 31 Jan 2023 01:23:23 GMT", "comments": { "minor": [ { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Add \"preserveSCSSExtension\" flag for backwards compatibility with build flows that cannot be expected to alter import resolution." + } + ] + } + }, + { + "version": "0.7.10", + "tag": "@rushstack/heft-sass-plugin_v0.7.10", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.6`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.9.0`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" + } + ] + } + }, + { + "version": "0.7.9", + "tag": "@rushstack/heft-sass-plugin_v0.7.9", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.18`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.7.8", + "tag": "@rushstack/heft-sass-plugin_v0.7.8", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.5`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.17`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.7.7", + "tag": "@rushstack/heft-sass-plugin_v0.7.7", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.16`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.7.6", + "tag": "@rushstack/heft-sass-plugin_v0.7.6", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.15`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.33.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-sass-plugin/CHANGELOG.md b/heft-plugins/heft-sass-plugin/CHANGELOG.md index 878a2687e5a..603873737a7 100644 --- a/heft-plugins/heft-sass-plugin/CHANGELOG.md +++ b/heft-plugins/heft-sass-plugin/CHANGELOG.md @@ -1,44 +1,58 @@ # Change Log - @rushstack/heft-sass-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.8.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.8.4 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ + +## 0.8.3 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 0.8.2 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.8.1 +Wed, 01 Feb 2023 02:16:34 GMT -- Fix an issue with `watchGlobAsync` +_Version update only_ + +## 0.8.0 +Tue, 31 Jan 2023 01:23:23 GMT -## 0.8.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +### Minor changes -### Prerelease Changes +- Add "preserveSCSSExtension" flag for backwards compatibility with build flows that cannot be expected to alter import resolution. -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.7.10 +Mon, 30 Jan 2023 16:22:31 GMT -## 0.8.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +_Version update only_ -### Prerelease Changes +## 0.7.9 +Mon, 30 Jan 2023 00:55:44 GMT -- Improve watch mode performance. -- Improve logging output. +_Version update only_ -## 0.8.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +## 0.7.8 +Thu, 26 Jan 2023 02:55:10 GMT -### Prerelease Changes +_Version update only_ -- Fix incremental TypeScript compilation. +## 0.7.7 +Wed, 25 Jan 2023 07:26:55 GMT -## 0.8.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +_Version update only_ -### Prerelease Changes +## 0.7.6 +Wed, 18 Jan 2023 22:44:12 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ ## 0.7.5 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-sass-plugin/package.json b/heft-plugins/heft-sass-plugin/package.json index 81a97b563dc..0ae25b4c719 100644 --- a/heft-plugins/heft-sass-plugin/package.json +++ b/heft-plugins/heft-sass-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-sass-plugin", - "version": "0.8.0-rc.4", + "version": "0.8.4", "description": "Heft plugin for SASS", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4" + "@rushstack/heft": "^0.50.0" }, "dependencies": { "@rushstack/heft-config-file": "workspace:*", @@ -31,7 +31,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "eslint": "~8.7.0" } } diff --git a/heft-plugins/heft-sass-plugin/src/SassProcessor.ts b/heft-plugins/heft-sass-plugin/src/SassProcessor.ts index 26bc709e63a..1e9d1b7ff14 100644 --- a/heft-plugins/heft-sass-plugin/src/SassProcessor.ts +++ b/heft-plugins/heft-sass-plugin/src/SassProcessor.ts @@ -36,6 +36,11 @@ export interface ISassConfiguration { */ cssOutputFolders?: string[] | undefined; + /** + * If `true`, when emitting compiled CSS from a file with a ".scss" extension, the emitted CSS will have the extension ".scss" instead of ".scss.css" + */ + preserveSCSSExtension?: boolean | undefined; + /** * Determines whether export values are wrapped in a default property, or not. * Defaults to true. @@ -101,14 +106,22 @@ export class SassProcessor extends StringValuesTypingsGenerator { const { allFileExtensions, isFileModule } = buildExtensionClassifier(sassConfiguration); - const { cssOutputFolders } = sassConfiguration; + const { cssOutputFolders, preserveSCSSExtension = false } = sassConfiguration; const getCssPaths: ((relativePath: string) => string[]) | undefined = cssOutputFolders ? (relativePath: string): string[] => { - return cssOutputFolders.map( - (folder: string) => - `${folder}/${relativePath.endsWith('.css') ? relativePath : `${relativePath}.css`}` - ); + const lastDot: number = relativePath.lastIndexOf('.'); + const oldExtension: string = relativePath.slice(lastDot); + const cssRelativePath: string = + oldExtension === '.css' || (oldExtension === '.scss' && preserveSCSSExtension) + ? relativePath + : `${relativePath}.css`; + + const cssPaths: string[] = []; + for (const outputFolder of cssOutputFolders) { + cssPaths.push(`${outputFolder}/${cssRelativePath}`); + } + return cssPaths; } : undefined; diff --git a/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json b/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json index 3abb457addb..fac89a9a617 100644 --- a/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json +++ b/heft-plugins/heft-sass-plugin/src/schemas/heft-sass-plugin.schema.json @@ -42,13 +42,18 @@ "cssOutputFolders": { "type": "array", - "description": "If specified, folders where compiled CSS files will be emitted to. They will be named by appending \".css\" to the source file name for ease of reference translation.", + "description": "If specified, folders where compiled CSS files will be emitted to. They will be named by appending \".css\" to the source file name for ease of reference translation, unless \"preserveSCSSExtension\" is set.", "items": { "type": "string", "pattern": "[^\\\\]" } }, + "preserveSCSSExtension": { + "type": "boolean", + "description": "If set, when emitting compiled CSS from a file with a \".scss\" extension, the emitted CSS will have the extension \".scss\" instead of \".scss.css\"." + }, + "fileExtensions": { "type": "array", "description": "Files with these extensions will be treated as SCSS modules and pass through the Sass transpiler for typings generation.", diff --git a/heft-plugins/heft-sass-plugin/src/templates/sass.json b/heft-plugins/heft-sass-plugin/src/templates/sass.json index 1f3721b8ed8..05fc5a3a63a 100644 --- a/heft-plugins/heft-sass-plugin/src/templates/sass.json +++ b/heft-plugins/heft-sass-plugin/src/templates/sass.json @@ -38,12 +38,20 @@ /** * If specified, folders where compiled CSS files will be emitted to. They will be named by appending - * ".css" to the source file name for ease of reference translation. + * ".css" to the source file name for ease of reference translation, unless "preserveSCSSExtension" is set. * * Default value: undefined */ // "cssOutputFolders": [], + /** + * If set, when emitting compiled CSS from a file with a ".scss" extension, the emitted CSS will have + * the extension ".scss" instead of ".scss.css". + * + * Default value: false + */ + // "preserveSCSSExtension": true, + /** * Files with these extensions will pass through the Sass transpiler for typings generation. * diff --git a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json index c740780a98e..f4702bec789 100644 --- a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json +++ b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json @@ -2,70 +2,172 @@ "name": "@rushstack/heft-serverless-stack-plugin", "entries": [ { - "version": "0.2.0-rc.4", - "tag": "@rushstack/heft-serverless-stack-plugin_v0.2.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.1.69", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.69", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.2.0-rc.3", - "tag": "@rushstack/heft-serverless-stack-plugin_v0.2.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.1.68", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.68", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.2.0-rc.2", - "tag": "@rushstack/heft-serverless-stack-plugin_v0.2.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.1.67", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.67", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.2.0-rc.1", - "tag": "@rushstack/heft-serverless-stack-plugin_v0.2.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.1.66", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.66", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" } ] } }, { - "version": "0.2.0-rc.0", - "tag": "@rushstack/heft-serverless-stack-plugin_v0.2.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.1.65", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.65", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" + } + ] + } + }, + { + "version": "0.1.64", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.64", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.1.63", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.63", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.1.62", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.62", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.1.61", + "tag": "@rushstack/heft-serverless-stack-plugin_v0.1.61", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md index bf1cfce63b0..771d8e97e7c 100644 --- a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md +++ b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md @@ -1,44 +1,51 @@ # Change Log - @rushstack/heft-serverless-stack-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.2.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.1.69 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ + +## 0.1.68 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.1.67 +Sun, 05 Feb 2023 03:02:02 GMT -- Fix an issue with `watchGlobAsync` +_Version update only_ -## 0.2.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +## 0.1.66 +Wed, 01 Feb 2023 02:16:34 GMT -### Prerelease Changes +_Version update only_ -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.1.65 +Mon, 30 Jan 2023 16:22:31 GMT -## 0.2.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +_Version update only_ -### Prerelease Changes +## 0.1.64 +Mon, 30 Jan 2023 00:55:44 GMT -- Improve watch mode performance. -- Improve logging output. +_Version update only_ -## 0.2.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +## 0.1.63 +Thu, 26 Jan 2023 02:55:10 GMT -### Prerelease Changes +_Version update only_ -- Fix incremental TypeScript compilation. +## 0.1.62 +Wed, 25 Jan 2023 07:26:55 GMT -## 0.2.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +_Version update only_ -### Prerelease Changes +## 0.1.61 +Wed, 18 Jan 2023 22:44:12 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ ## 0.1.60 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-serverless-stack-plugin/package.json b/heft-plugins/heft-serverless-stack-plugin/package.json index 6811433d39a..f34c7c8ad4c 100644 --- a/heft-plugins/heft-serverless-stack-plugin/package.json +++ b/heft-plugins/heft-serverless-stack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-serverless-stack-plugin", - "version": "0.2.0-rc.4", + "version": "0.1.69", "description": "Heft plugin for building apps using the Serverless Stack (SST) framework", "repository": { "type": "git", @@ -15,7 +15,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4" + "@rushstack/heft": "^0.50.0" }, "dependencies": { "@rushstack/node-core-library": "workspace:*" @@ -26,6 +26,6 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft-webpack4-plugin": "workspace:*", "@rushstack/heft-webpack5-plugin": "workspace:*", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/heft-plugins/heft-storybook-plugin/CHANGELOG.json b/heft-plugins/heft-storybook-plugin/CHANGELOG.json index 3d6a0ee4b03..a63222a7ad3 100644 --- a/heft-plugins/heft-storybook-plugin/CHANGELOG.json +++ b/heft-plugins/heft-storybook-plugin/CHANGELOG.json @@ -2,70 +2,189 @@ "name": "@rushstack/heft-storybook-plugin", "entries": [ { - "version": "0.2.0-rc.4", - "tag": "@rushstack/heft-storybook-plugin_v0.2.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.2.4", + "tag": "@rushstack/heft-storybook-plugin_v0.2.4", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.2.0-rc.3", - "tag": "@rushstack/heft-storybook-plugin_v0.2.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.2.3", + "tag": "@rushstack/heft-storybook-plugin_v0.2.3", + "date": "Wed, 22 Feb 2023 16:26:55 GMT", "comments": { - "minor": [ + "patch": [ + { + "comment": "Fix an issue where static build output ends up in the wrong folder." + } + ] + } + }, + { + "version": "0.2.2", + "tag": "@rushstack/heft-storybook-plugin_v0.2.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.2.0-rc.2", - "tag": "@rushstack/heft-storybook-plugin_v0.2.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.2.1", + "tag": "@rushstack/heft-storybook-plugin_v0.2.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.2.0-rc.1", - "tag": "@rushstack/heft-storybook-plugin_v0.2.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.2.0", + "tag": "@rushstack/heft-storybook-plugin_v0.2.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { "minor": [ { - "comment": "Fix incremental TypeScript compilation." + "comment": "Add support for storybook static build" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" } ] } }, { - "version": "0.2.0-rc.0", - "tag": "@rushstack/heft-storybook-plugin_v0.2.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.1.99", + "tag": "@rushstack/heft-storybook-plugin_v0.1.99", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" + } + ] + } + }, + { + "version": "0.1.98", + "tag": "@rushstack/heft-storybook-plugin_v0.1.98", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.1.97", + "tag": "@rushstack/heft-storybook-plugin_v0.1.97", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.1.96", + "tag": "@rushstack/heft-storybook-plugin_v0.1.96", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.1.95", + "tag": "@rushstack/heft-storybook-plugin_v0.1.95", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-storybook-plugin/CHANGELOG.md b/heft-plugins/heft-storybook-plugin/CHANGELOG.md index 1109bf1d964..de2e055ce76 100644 --- a/heft-plugins/heft-storybook-plugin/CHANGELOG.md +++ b/heft-plugins/heft-storybook-plugin/CHANGELOG.md @@ -1,44 +1,60 @@ # Change Log - @rushstack/heft-storybook-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.2.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.2.4 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ -- Fix an issue with `watchGlobAsync` +## 0.2.3 +Wed, 22 Feb 2023 16:26:55 GMT -## 0.2.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +### Patches -### Prerelease Changes +- Fix an issue where static build output ends up in the wrong folder. -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.2.2 +Fri, 10 Feb 2023 01:18:51 GMT -## 0.2.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +_Version update only_ -### Prerelease Changes +## 0.2.1 +Sun, 05 Feb 2023 03:02:02 GMT -- Improve watch mode performance. -- Improve logging output. +_Version update only_ -## 0.2.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +## 0.2.0 +Wed, 01 Feb 2023 02:16:34 GMT -### Prerelease Changes +### Minor changes -- Fix incremental TypeScript compilation. +- Add support for storybook static build -## 0.2.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +## 0.1.99 +Mon, 30 Jan 2023 16:22:31 GMT -### Prerelease Changes +_Version update only_ + +## 0.1.98 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ -- General fixes and improvements, in preparation for a general release. +## 0.1.97 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.1.96 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.1.95 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.94 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-storybook-plugin/package.json b/heft-plugins/heft-storybook-plugin/package.json index ac266a681a2..e8921bb119f 100644 --- a/heft-plugins/heft-storybook-plugin/package.json +++ b/heft-plugins/heft-storybook-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-storybook-plugin", - "version": "0.2.0-rc.4", + "version": "0.2.4", "description": "Heft plugin for supporting UI development using Storybook", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4" + "@rushstack/heft": "^0.50.0" }, "dependencies": { "@rushstack/node-core-library": "workspace:*" @@ -27,6 +27,6 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft-webpack4-plugin": "workspace:*", "@rushstack/heft-webpack5-plugin": "workspace:*", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index 9d1a3fc16cf..362cd02868e 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -6,6 +6,7 @@ import { FileSystem, Import, IParsedPackageNameOrError, + JsonSchema, PackageName } from '@rushstack/node-core-library'; import type { @@ -60,20 +61,48 @@ export interface IStorybookPluginOptions { storykitPackageName: string; /** - * The module entry point that Heft should use to launch the Storybook toolchain. Typically it - * is the path loaded the `start-storybook` shell script. + * The module entry point that Heft serve mode should use to launch the Storybook toolchain. + * Typically it is the path loaded the `start-storybook` shell script. * * @example * If you are using `@storybook/react`, then the startup path would be: * * `"startupModulePath": "@storybook/react/bin/index.js"` */ - startupModulePath: string; + startupModulePath?: string; + + /** + * The module entry point that Heft non-serve mode should use to launch the Storybook toolchain. + * Typically it is the path loaded the `build-storybook` shell script. + * + * @example + * If you are using `@storybook/react`, then the static build path would be: + * + * `"staticBuildModulePath": "@storybook/react/bin/build.js"` + */ + staticBuildModulePath?: string; + + /** + * The customized output dir for storybook static build. + * If this is empty, then it will use the storybook default output dir. + * + * @example + * If you want to change the static build output dir to staticBuildDir, then the static build output dir would be: + * + * `"staticBuildOutputFolder": "newStaticBuildDir"` + */ + staticBuildOutputFolder?: string; +} + +interface IRunStorybookOptions { + resolvedModulePath: string; + outputFolder: string | undefined; } /** @public */ export default class StorybookPlugin implements IHeftTaskPlugin { private _logger!: IScopedLogger; + private _isServeMode: boolean = false; /** * Generate typings for Sass files before TypeScript compilation. @@ -96,6 +125,13 @@ export default class StorybookPlugin implements IHeftTaskPlugin Promise = async () => { @@ -109,24 +145,34 @@ export default class StorybookPlugin implements IHeftTaskPlugin - accessor.hooks.onLoadConfiguration.tapPromise(PLUGIN_NAME, configureWebpackTap) + (accessor: IWebpack4PluginAccessor) => { + // Discard Webpack's configuration to prevent Webpack from running only when starting a storybook server + if (accessor.parameters.isServeMode) { + this._isServeMode = true; + accessor.hooks.onLoadConfiguration.tapPromise(PLUGIN_NAME, configureWebpackTap); + } + } ); taskSession.requestAccessToPluginByName( '@rushstack/heft-webpack5-plugin', WEBPACK5_PLUGIN_NAME, - (accessor: IWebpack5PluginAccessor) => - accessor.hooks.onLoadConfiguration.tapPromise(PLUGIN_NAME, configureWebpackTap) + (accessor: IWebpack5PluginAccessor) => { + // Discard Webpack's configuration to prevent Webpack from running only when starting a storybook server + if (accessor.parameters.isServeMode) { + this._isServeMode = true; + accessor.hooks.onLoadConfiguration.tapPromise(PLUGIN_NAME, configureWebpackTap); + } + } ); taskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => { - const resolvedStartupModulePath: string = await this._prepareStorybookAsync( + const runStorybookOptions: IRunStorybookOptions = await this._prepareStorybookAsync( taskSession, heftConfiguration, options ); - await this._runStorybookAsync(resolvedStartupModulePath); + await this._runStorybookAsync(runStorybookOptions); }); } } @@ -135,7 +181,7 @@ export default class StorybookPlugin implements IHeftTaskPlugin { + ): Promise { const { storykitPackageName, startupModulePath } = options; this._logger.terminal.writeVerboseLine(`Probing for "${storykitPackageName}"`); @@ -163,18 +209,28 @@ export default class StorybookPlugin implements IHeftTaskPlugin { + private async _runStorybookAsync(runStorybookOptions: IRunStorybookOptions): Promise { + const { resolvedModulePath, outputFolder } = runStorybookOptions; this._logger.terminal.writeLine('Starting Storybook...'); - this._logger.terminal.writeLine(`Launching "${resolvedStartupModulePath}"`); + this._logger.terminal.writeLine(`Launching "${resolvedModulePath}"`); + + if (outputFolder) { + const originalArgv: string[] = process.argv; + process.argv.push(`--output-dir=${outputFolder}`); + process.argv = originalArgv; + } - require(resolvedStartupModulePath); + require(resolvedModulePath); this._logger.terminal.writeVerboseLine('Completed synchronous portion of launching startupModulePath'); } diff --git a/heft-plugins/heft-storybook-plugin/src/schemas/heft-storybook-plugin.schema.json b/heft-plugins/heft-storybook-plugin/src/schemas/heft-storybook-plugin.schema.json new file mode 100644 index 00000000000..489b4fd0a59 --- /dev/null +++ b/heft-plugins/heft-storybook-plugin/src/schemas/heft-storybook-plugin.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Heft Storybook Plugin Options Configuration", + "description": "This schema describes the \"options\" field that can be specified in heft.json when loading \"@rushstack/heft-storybook-plugin\".", + "type": "object", + "additionalProperties": false, + + "properties": { + "storykitPackageName": { + "title": "Specifies an NPM package that will provide the Storybook dependencies for the project.", + "description": "Storybook's conventional approach is for your app project to have direct dependencies on NPM packages such as `@storybook/react` and `@storybook/addon-essentials`. These packages have heavyweight dependencies such as Babel, Webpack, and the associated loaders and plugins needed to build the Storybook app (which is bundled completely independently from Heft). Naively adding these dependencies to your app's package.json muddies the waters of two radically different toolchains, and is likely to lead to dependency conflicts, for example if Heft installs Webpack 5 but `@storybook/react` installs Webpack 4. To solve this problem, `heft-storybook-plugin` introduces the concept of a separate \"storykit package\". All of your Storybook NPM packages are moved to be dependencies of the storykit. Storybook's browser API unfortunately isn't separated into dedicated NPM packages, but instead is exported by the Node.js toolchain packages such as `@storybook/react`. For an even cleaner separation the storykit package can simply reexport such APIs.", + "type": "string" + }, + "startupModulePath": { + "title": "The module entry point that Heft serve mode should use to launch the Storybook toolchain.", + "description": "Typically it is the path loaded the `start-storybook` shell script. For example, If you are using `@storybook/react`, then the startup path would be: `\"startupModulePath\": \"@storybook/react/bin/index.js\"`", + "type": "string" + }, + "staticBuildModulePath": { + "title": "The module entry point that Heft non-serve mode should use to launch the Storybook toolchain.", + "description": "Typically it is the path loaded the `build-storybook` shell script. For example, If you are using `@storybook/react`, then the static build path would be: `\"staticBuildModulePath\": \"@storybook/react/bin/build.js\"`", + "type": "string" + }, + "staticBuildOutputFolder": { + "title": "The customized output dir for storybook static build.", + "description": "If this is empty, then it will use the storybook default output dir. If you want to change the static build output dir to staticBuildDir, then the static build output dir would be: `\"staticBuildOutputFolder\": \"staticBuildDir\"`", + "type": "string" + } + } +} diff --git a/heft-plugins/heft-typescript-plugin/src/internalTypings/TypeScriptInternals.ts b/heft-plugins/heft-typescript-plugin/src/internalTypings/TypeScriptInternals.ts index 79494e03432..a4d78dbfbdf 100644 --- a/heft-plugins/heft-typescript-plugin/src/internalTypings/TypeScriptInternals.ts +++ b/heft-plugins/heft-typescript-plugin/src/internalTypings/TypeScriptInternals.ts @@ -18,6 +18,7 @@ export interface IExtendedTypeScript { * https://github.com/microsoft/TypeScript/blob/5f597e69b2e3b48d788cb548df40bcb703c8adb1/src/compiler/performance.ts#L119-L121 */ disable(): void; + /** * https://github.com/microsoft/TypeScript/blob/5f597e69b2e3b48d788cb548df40bcb703c8adb1/src/compiler/performance.ts#L110-L116 */ diff --git a/heft-plugins/heft-webpack4-plugin/CHANGELOG.json b/heft-plugins/heft-webpack4-plugin/CHANGELOG.json index 09dbaaa193c..3a225f70358 100644 --- a/heft-plugins/heft-webpack4-plugin/CHANGELOG.json +++ b/heft-plugins/heft-webpack4-plugin/CHANGELOG.json @@ -2,70 +2,172 @@ "name": "@rushstack/heft-webpack4-plugin", "entries": [ { - "version": "0.6.0-rc.4", - "tag": "@rushstack/heft-webpack4-plugin_v0.6.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.5.40", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.40", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.6.0-rc.3", - "tag": "@rushstack/heft-webpack4-plugin_v0.6.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.5.39", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.39", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.6.0-rc.2", - "tag": "@rushstack/heft-webpack4-plugin_v0.6.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.5.38", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.38", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.6.0-rc.1", - "tag": "@rushstack/heft-webpack4-plugin_v0.6.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.5.37", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.37", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" } ] } }, { - "version": "0.6.0-rc.0", - "tag": "@rushstack/heft-webpack4-plugin_v0.6.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.5.36", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.36", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" + } + ] + } + }, + { + "version": "0.5.35", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.35", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.5.34", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.34", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.5.33", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.33", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.5.32", + "tag": "@rushstack/heft-webpack4-plugin_v0.5.32", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-webpack4-plugin/CHANGELOG.md b/heft-plugins/heft-webpack4-plugin/CHANGELOG.md index 341ef10969d..8929c037c4d 100644 --- a/heft-plugins/heft-webpack4-plugin/CHANGELOG.md +++ b/heft-plugins/heft-webpack4-plugin/CHANGELOG.md @@ -1,44 +1,51 @@ # Change Log - @rushstack/heft-webpack4-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.6.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.5.40 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ + +## 0.5.39 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.5.38 +Sun, 05 Feb 2023 03:02:02 GMT -- Fix an issue with `watchGlobAsync` +_Version update only_ -## 0.6.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +## 0.5.37 +Wed, 01 Feb 2023 02:16:34 GMT -### Prerelease Changes +_Version update only_ -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.5.36 +Mon, 30 Jan 2023 16:22:31 GMT -## 0.6.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +_Version update only_ -### Prerelease Changes +## 0.5.35 +Mon, 30 Jan 2023 00:55:44 GMT -- Improve watch mode performance. -- Improve logging output. +_Version update only_ -## 0.6.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +## 0.5.34 +Thu, 26 Jan 2023 02:55:10 GMT -### Prerelease Changes +_Version update only_ -- Fix incremental TypeScript compilation. +## 0.5.33 +Wed, 25 Jan 2023 07:26:55 GMT -## 0.6.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +_Version update only_ -### Prerelease Changes +## 0.5.32 +Wed, 18 Jan 2023 22:44:12 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ ## 0.5.31 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-webpack4-plugin/package.json b/heft-plugins/heft-webpack4-plugin/package.json index 48d2c17a0df..e37cd8c569a 100644 --- a/heft-plugins/heft-webpack4-plugin/package.json +++ b/heft-plugins/heft-webpack4-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-webpack4-plugin", - "version": "0.6.0-rc.4", + "version": "0.5.40", "description": "Heft plugin for Webpack 4", "repository": { "type": "git", @@ -23,7 +23,7 @@ } }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4", + "@rushstack/heft": "^0.50.0", "@types/webpack": "^4", "webpack": "~4.44.2" }, @@ -39,7 +39,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/watchpack": "2.4.0", "@types/webpack": "4.41.32", "webpack": "~4.44.2" diff --git a/heft-plugins/heft-webpack5-plugin/CHANGELOG.json b/heft-plugins/heft-webpack5-plugin/CHANGELOG.json index 684f4e0672d..0d6c31b2095 100644 --- a/heft-plugins/heft-webpack5-plugin/CHANGELOG.json +++ b/heft-plugins/heft-webpack5-plugin/CHANGELOG.json @@ -2,70 +2,189 @@ "name": "@rushstack/heft-webpack5-plugin", "entries": [ { - "version": "0.6.0-rc.4", - "tag": "@rushstack/heft-webpack5-plugin_v0.6.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.6.1", + "tag": "@rushstack/heft-webpack5-plugin_v0.6.1", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.6.0-rc.3", - "tag": "@rushstack/heft-webpack5-plugin_v0.6.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.6.0", + "tag": "@rushstack/heft-webpack5-plugin_v0.6.0", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", "comments": { "minor": [ { - "comment": "Fix issues with SASS incremental builds." + "comment": "Add support for `.cjs` and `.mjs` file extensions for webpack config files, in addition to the `.js` file extension." + } + ] + } + }, + { + "version": "0.5.73", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.73", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.6.0-rc.2", - "tag": "@rushstack/heft-webpack5-plugin_v0.6.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.5.72", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.72", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "0.6.0-rc.1", - "tag": "@rushstack/heft-webpack5-plugin_v0.6.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.5.71", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.71", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" } ] } }, { - "version": "0.6.0-rc.0", - "tag": "@rushstack/heft-webpack5-plugin_v0.6.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.5.70", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.70", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" + } + ] + } + }, + { + "version": "0.5.69", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.69", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.5.68", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.68", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "0.5.67", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.67", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.5.66", + "tag": "@rushstack/heft-webpack5-plugin_v0.5.66", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/heft-plugins/heft-webpack5-plugin/CHANGELOG.md b/heft-plugins/heft-webpack5-plugin/CHANGELOG.md index 7ef55fd6bc7..da2cf4b3988 100644 --- a/heft-plugins/heft-webpack5-plugin/CHANGELOG.md +++ b/heft-plugins/heft-webpack5-plugin/CHANGELOG.md @@ -1,44 +1,60 @@ # Change Log - @rushstack/heft-webpack5-plugin -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.6.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.6.1 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ -- Fix an issue with `watchGlobAsync` +## 0.6.0 +Sat, 11 Mar 2023 01:24:51 GMT -## 0.6.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +### Minor changes -### Prerelease Changes +- Add support for `.cjs` and `.mjs` file extensions for webpack config files, in addition to the `.js` file extension. -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.5.73 +Fri, 10 Feb 2023 01:18:51 GMT -## 0.6.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +_Version update only_ -### Prerelease Changes +## 0.5.72 +Sun, 05 Feb 2023 03:02:02 GMT -- Improve watch mode performance. -- Improve logging output. +_Version update only_ -## 0.6.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +## 0.5.71 +Wed, 01 Feb 2023 02:16:34 GMT -### Prerelease Changes +_Version update only_ -- Fix incremental TypeScript compilation. +## 0.5.70 +Mon, 30 Jan 2023 16:22:31 GMT -## 0.6.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +_Version update only_ + +## 0.5.69 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ -### Prerelease Changes +## 0.5.68 +Thu, 26 Jan 2023 02:55:10 GMT -- General fixes and improvements, in preparation for a general release. +### Patches + +- Upgrade to webpack 5.75.0 + +## 0.5.67 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.5.66 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.5.65 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/heft-plugins/heft-webpack5-plugin/package.json b/heft-plugins/heft-webpack5-plugin/package.json index d46d292f183..d0364fdab4f 100644 --- a/heft-plugins/heft-webpack5-plugin/package.json +++ b/heft-plugins/heft-webpack5-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-webpack5-plugin", - "version": "0.6.0-rc.4", + "version": "0.6.1", "description": "Heft plugin for Webpack 5", "repository": { "type": "git", @@ -18,8 +18,8 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4", - "webpack": "~5.68.0" + "@rushstack/heft": "^0.50.0", + "webpack": "~5.75.0" }, "dependencies": { "@rushstack/debug-certificate-manager": "workspace:*", @@ -33,8 +33,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/watchpack": "2.4.0", - "webpack": "~5.68.0" + "webpack": "~5.75.0" } } diff --git a/libraries/api-extractor-model/CHANGELOG.json b/libraries/api-extractor-model/CHANGELOG.json index eff8e4b43a6..1d2a4295f72 100644 --- a/libraries/api-extractor-model/CHANGELOG.json +++ b/libraries/api-extractor-model/CHANGELOG.json @@ -1,6 +1,69 @@ { "name": "@microsoft/api-extractor-model", "entries": [ + { + "version": "7.26.4", + "tag": "@microsoft/api-extractor-model_v7.26.4", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + } + ] + } + }, + { + "version": "7.26.3", + "tag": "@microsoft/api-extractor-model_v7.26.3", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + } + ] + } + }, + { + "version": "7.26.2", + "tag": "@microsoft/api-extractor-model_v7.26.2", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + } + ] + } + }, + { + "version": "7.26.1", + "tag": "@microsoft/api-extractor-model_v7.26.1", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + } + ] + } + }, + { + "version": "7.26.0", + "tag": "@microsoft/api-extractor-model_v7.26.0", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "minor": [ + { + "comment": "Add new .api.json field `isAbstract` to track `abstract` modifier in ApiClass, ApiMethod, and ApiProperty via ApiAbstractMixin (GitHub #3661)" + } + ] + } + }, { "version": "7.25.3", "tag": "@microsoft/api-extractor-model_v7.25.3", diff --git a/libraries/api-extractor-model/CHANGELOG.md b/libraries/api-extractor-model/CHANGELOG.md index b9c12549057..5591e88453b 100644 --- a/libraries/api-extractor-model/CHANGELOG.md +++ b/libraries/api-extractor-model/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @microsoft/api-extractor-model -This log was last generated on Fri, 09 Dec 2022 16:18:28 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:51 GMT and should not be manually modified. + +## 7.26.4 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 7.26.3 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 7.26.2 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 7.26.1 +Mon, 30 Jan 2023 16:22:30 GMT + +_Version update only_ + +## 7.26.0 +Wed, 25 Jan 2023 07:26:55 GMT + +### Minor changes + +- Add new .api.json field `isAbstract` to track `abstract` modifier in ApiClass, ApiMethod, and ApiProperty via ApiAbstractMixin (GitHub #3661) ## 7.25.3 Fri, 09 Dec 2022 16:18:28 GMT diff --git a/libraries/api-extractor-model/package.json b/libraries/api-extractor-model/package.json index 28a15e381f6..0e647f3744e 100644 --- a/libraries/api-extractor-model/package.json +++ b/libraries/api-extractor-model/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/api-extractor-model", - "version": "7.25.3", + "version": "7.26.4", "description": "A helper library for loading and saving the .api.json files created by API Extractor", "repository": { "type": "git", @@ -23,9 +23,9 @@ }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/libraries/api-extractor-model/src/index.ts b/libraries/api-extractor-model/src/index.ts index 02f91849e19..be473904f9e 100644 --- a/libraries/api-extractor-model/src/index.ts +++ b/libraries/api-extractor-model/src/index.ts @@ -30,6 +30,7 @@ export { IApiTypeParameterListMixinOptions, ApiTypeParameterListMixin } from './mixins/ApiTypeParameterListMixin'; +export { IApiAbstractMixinOptions, ApiAbstractMixin } from './mixins/ApiAbstractMixin'; export { IApiItemContainerMixinOptions, ApiItemContainerMixin } from './mixins/ApiItemContainerMixin'; export { IApiProtectedMixinOptions, ApiProtectedMixin } from './mixins/ApiProtectedMixin'; export { IApiReleaseTagMixinOptions, ApiReleaseTagMixin } from './mixins/ApiReleaseTagMixin'; diff --git a/libraries/api-extractor-model/src/mixins/ApiAbstractMixin.ts b/libraries/api-extractor-model/src/mixins/ApiAbstractMixin.ts new file mode 100644 index 00000000000..f73aa84cb50 --- /dev/null +++ b/libraries/api-extractor-model/src/mixins/ApiAbstractMixin.ts @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information.s + +import { ApiItem, IApiItemJson, IApiItemConstructor, IApiItemOptions } from '../items/ApiItem'; +import { DeserializerContext } from '../model/DeserializerContext'; + +/** + * Constructor options for {@link (ApiAbstractMixin:interface)}. + * @public + */ +export interface IApiAbstractMixinOptions extends IApiItemOptions { + isAbstract: boolean; +} + +export interface IApiAbstractMixinJson extends IApiItemJson { + isAbstract: boolean; +} + +const _isAbstract: unique symbol = Symbol('ApiAbstractMixin._isAbstract'); + +/** + * The mixin base class for API items that have an abstract modifier. + * + * @remarks + * + * This is part of the {@link ApiModel} hierarchy of classes, which are serializable representations of + * API declarations. The non-abstract classes (e.g. `ApiClass`, `ApiEnum`, `ApiInterface`, etc.) use + * TypeScript "mixin" functions (e.g. `ApiDeclaredItem`, `ApiItemContainerMixin`, etc.) to add various + * features that cannot be represented as a normal inheritance chain (since TypeScript does not allow a child class + * to extend more than one base class). The "mixin" is a TypeScript merged declaration with three components: + * the function that generates a subclass, an interface that describes the members of the subclass, and + * a namespace containing static members of the class. + * + * @public + */ +// eslint-disable-next-line @typescript-eslint/naming-convention +export interface ApiAbstractMixin extends ApiItem { + /** + * Indicates that the API item's value has an 'abstract' modifier. + */ + readonly isAbstract: boolean; + + serializeInto(jsonObject: Partial): void; +} + +/** + * Mixin function for {@link (ApiAbstractMixin:interface)}. + * + * @param baseClass - The base class to be extended + * @returns A child class that extends baseClass, adding the {@link (ApiAbstractMixin:interface)} + * functionality. + * + * @public + */ +export function ApiAbstractMixin( + baseClass: TBaseClass + // eslint-disable-next-line @typescript-eslint/no-explicit-any +): TBaseClass & (new (...args: any[]) => ApiAbstractMixin) { + class MixedClass extends baseClass implements ApiAbstractMixin { + public [_isAbstract]: boolean; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + public constructor(...args: any[]) { + super(...args); + + const options: IApiAbstractMixinOptions = args[0]; + this[_isAbstract] = options.isAbstract; + } + + /** @override */ + public static onDeserializeInto( + options: Partial, + context: DeserializerContext, + jsonObject: IApiAbstractMixinJson + ): void { + baseClass.onDeserializeInto(options, context, jsonObject); + + options.isAbstract = jsonObject.isAbstract || false; + } + + public get isAbstract(): boolean { + return this[_isAbstract]; + } + + /** @override */ + public serializeInto(jsonObject: Partial): void { + super.serializeInto(jsonObject); + + jsonObject.isAbstract = this.isAbstract; + } + } + + return MixedClass; +} + +/** + * Static members for {@link (ApiAbstractMixin:interface)}. + * @public + */ +export namespace ApiAbstractMixin { + /** + * A type guard that tests whether the specified `ApiItem` subclass extends the `ApiAbstractMixin` mixin. + * + * @remarks + * + * The JavaScript `instanceof` operator cannot be used to test for mixin inheritance, because each invocation of + * the mixin function produces a different subclass. (This could be mitigated by `Symbol.hasInstance`, however + * the TypeScript type system cannot invoke a runtime test.) + */ + export function isBaseClassOf(apiItem: ApiItem): apiItem is ApiAbstractMixin { + return apiItem.hasOwnProperty(_isAbstract); + } +} diff --git a/libraries/api-extractor-model/src/model/ApiClass.ts b/libraries/api-extractor-model/src/model/ApiClass.ts index d207d96a6b9..6fc51b4bc83 100644 --- a/libraries/api-extractor-model/src/model/ApiClass.ts +++ b/libraries/api-extractor-model/src/model/ApiClass.ts @@ -25,6 +25,11 @@ import { IApiExportedMixinOptions, ApiExportedMixin } from '../mixins/ApiExportedMixin'; +import { + ApiAbstractMixin, + IApiAbstractMixinJson, + IApiAbstractMixinOptions +} from '../mixins/ApiAbstractMixin'; /** * Constructor options for {@link ApiClass}. @@ -33,6 +38,7 @@ import { export interface IApiClassOptions extends IApiItemContainerMixinOptions, IApiNameMixinOptions, + IApiAbstractMixinOptions, IApiReleaseTagMixinOptions, IApiDeclaredItemOptions, IApiTypeParameterListMixinOptions, @@ -43,6 +49,7 @@ export interface IApiClassOptions export interface IApiClassJson extends IApiDeclaredItemJson, + IApiAbstractMixinJson, IApiTypeParameterListMixinJson, IApiExportedMixinJson { extendsTokenRange?: IExcerptTokenRange; @@ -66,7 +73,9 @@ export interface IApiClassJson * @public */ export class ApiClass extends ApiItemContainerMixin( - ApiNameMixin(ApiTypeParameterListMixin(ApiReleaseTagMixin(ApiExportedMixin(ApiDeclaredItem)))) + ApiNameMixin( + ApiAbstractMixin(ApiTypeParameterListMixin(ApiReleaseTagMixin(ApiExportedMixin(ApiDeclaredItem)))) + ) ) { /** * The base class that this class inherits from (using the `extends` keyword), or undefined if there is no base class. diff --git a/libraries/api-extractor-model/src/model/ApiMethod.ts b/libraries/api-extractor-model/src/model/ApiMethod.ts index c5b71ae03a5..ea3a5fd576d 100644 --- a/libraries/api-extractor-model/src/model/ApiMethod.ts +++ b/libraries/api-extractor-model/src/model/ApiMethod.ts @@ -15,6 +15,7 @@ import { IApiParameterListMixinOptions, ApiParameterListMixin } from '../mixins/ import { IApiReleaseTagMixinOptions, ApiReleaseTagMixin } from '../mixins/ApiReleaseTagMixin'; import { ApiReturnTypeMixin, IApiReturnTypeMixinOptions } from '../mixins/ApiReturnTypeMixin'; import { IApiNameMixinOptions, ApiNameMixin } from '../mixins/ApiNameMixin'; +import { IApiAbstractMixinOptions, ApiAbstractMixin } from '../mixins/ApiAbstractMixin'; import { ApiTypeParameterListMixin, IApiTypeParameterListMixinOptions @@ -27,6 +28,7 @@ import { ApiOptionalMixin, IApiOptionalMixinOptions } from '../mixins/ApiOptiona */ export interface IApiMethodOptions extends IApiNameMixinOptions, + IApiAbstractMixinOptions, IApiOptionalMixinOptions, IApiParameterListMixinOptions, IApiProtectedMixinOptions, @@ -58,10 +60,12 @@ export interface IApiMethodOptions * @public */ export class ApiMethod extends ApiNameMixin( - ApiOptionalMixin( - ApiParameterListMixin( - ApiProtectedMixin( - ApiReleaseTagMixin(ApiReturnTypeMixin(ApiStaticMixin(ApiTypeParameterListMixin(ApiDeclaredItem)))) + ApiAbstractMixin( + ApiOptionalMixin( + ApiParameterListMixin( + ApiProtectedMixin( + ApiReleaseTagMixin(ApiReturnTypeMixin(ApiStaticMixin(ApiTypeParameterListMixin(ApiDeclaredItem)))) + ) ) ) ) diff --git a/libraries/api-extractor-model/src/model/ApiProperty.ts b/libraries/api-extractor-model/src/model/ApiProperty.ts index 23aa832ffb1..f198a96dd5b 100644 --- a/libraries/api-extractor-model/src/model/ApiProperty.ts +++ b/libraries/api-extractor-model/src/model/ApiProperty.ts @@ -8,6 +8,7 @@ import { Component } from '@microsoft/tsdoc/lib-commonjs/beta/DeclarationReference'; import { ApiItemKind } from '../items/ApiItem'; +import { ApiAbstractMixin, IApiAbstractMixinOptions } from '../mixins/ApiAbstractMixin'; import { ApiProtectedMixin, IApiProtectedMixinOptions } from '../mixins/ApiProtectedMixin'; import { ApiStaticMixin, IApiStaticMixinOptions } from '../mixins/ApiStaticMixin'; import { ApiInitializerMixin, IApiInitializerMixinOptions } from '../mixins/ApiInitializerMixin'; @@ -19,6 +20,7 @@ import { ApiPropertyItem, IApiPropertyItemOptions } from '../items/ApiPropertyIt */ export interface IApiPropertyOptions extends IApiPropertyItemOptions, + IApiAbstractMixinOptions, IApiProtectedMixinOptions, IApiStaticMixinOptions, IApiInitializerMixinOptions {} @@ -57,7 +59,9 @@ export interface IApiPropertyOptions * * @public */ -export class ApiProperty extends ApiProtectedMixin(ApiStaticMixin(ApiInitializerMixin(ApiPropertyItem))) { +export class ApiProperty extends ApiAbstractMixin( + ApiProtectedMixin(ApiStaticMixin(ApiInitializerMixin(ApiPropertyItem))) +) { public constructor(options: IApiPropertyOptions) { super(options); } diff --git a/libraries/api-extractor-model/src/model/DeserializerContext.ts b/libraries/api-extractor-model/src/model/DeserializerContext.ts index 6c1d6fab487..b50aa8b1a68 100644 --- a/libraries/api-extractor-model/src/model/DeserializerContext.ts +++ b/libraries/api-extractor-model/src/model/DeserializerContext.ts @@ -82,13 +82,21 @@ export enum ApiJsonSchemaVersion { */ V_1010 = 1010, + /** + * Add an `isAbstract` field to `ApiClass`, `ApiMethod`, and `ApiProperty` to + * track whether the item is abstract. + * + * When loading older JSON files, the value defaults to `false`. + */ + V_1011 = 1011, + /** * The current latest .api.json schema version. * * IMPORTANT: When incrementing this number, consider whether `OLDEST_SUPPORTED` or `OLDEST_FORWARDS_COMPATIBLE` * should be updated. */ - LATEST = V_1010, + LATEST = V_1011, /** * The oldest .api.json schema version that is still supported for backwards compatibility. diff --git a/libraries/debug-certificate-manager/CHANGELOG.json b/libraries/debug-certificate-manager/CHANGELOG.json index 96939d4a332..cdd41917cb1 100644 --- a/libraries/debug-certificate-manager/CHANGELOG.json +++ b/libraries/debug-certificate-manager/CHANGELOG.json @@ -1,6 +1,177 @@ { "name": "@rushstack/debug-certificate-manager", "entries": [ + { + "version": "1.2.19", + "tag": "@rushstack/debug-certificate-manager_v1.2.19", + "date": "Mon, 20 Mar 2023 20:14:20 GMT", + "comments": { + "patch": [ + { + "comment": "Force certificates with a validity period longer than the expected validity period to be refreshed." + } + ] + } + }, + { + "version": "1.2.18", + "tag": "@rushstack/debug-certificate-manager_v1.2.18", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "1.2.17", + "tag": "@rushstack/debug-certificate-manager_v1.2.17", + "date": "Fri, 03 Mar 2023 04:11:20 GMT", + "comments": { + "patch": [ + { + "comment": "Fix an issue where certificate expiration was calculated incorrectly and certificates were set to expire too late." + } + ] + } + }, + { + "version": "1.2.16", + "tag": "@rushstack/debug-certificate-manager_v1.2.16", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "1.2.15", + "tag": "@rushstack/debug-certificate-manager_v1.2.15", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "1.2.14", + "tag": "@rushstack/debug-certificate-manager_v1.2.14", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "1.2.13", + "tag": "@rushstack/debug-certificate-manager_v1.2.13", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "1.2.12", + "tag": "@rushstack/debug-certificate-manager_v1.2.12", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "1.2.11", + "tag": "@rushstack/debug-certificate-manager_v1.2.11", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "1.2.10", + "tag": "@rushstack/debug-certificate-manager_v1.2.10", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "1.2.9", + "tag": "@rushstack/debug-certificate-manager_v1.2.9", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "1.2.8", "tag": "@rushstack/debug-certificate-manager_v1.2.8", diff --git a/libraries/debug-certificate-manager/CHANGELOG.md b/libraries/debug-certificate-manager/CHANGELOG.md index 38e0e443d03..355714dd147 100644 --- a/libraries/debug-certificate-manager/CHANGELOG.md +++ b/libraries/debug-certificate-manager/CHANGELOG.md @@ -1,6 +1,65 @@ # Change Log - @rushstack/debug-certificate-manager -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Mon, 20 Mar 2023 20:14:20 GMT and should not be manually modified. + +## 1.2.19 +Mon, 20 Mar 2023 20:14:20 GMT + +### Patches + +- Force certificates with a validity period longer than the expected validity period to be refreshed. + +## 1.2.18 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 1.2.17 +Fri, 03 Mar 2023 04:11:20 GMT + +### Patches + +- Fix an issue where certificate expiration was calculated incorrectly and certificates were set to expire too late. + +## 1.2.16 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 1.2.15 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 1.2.14 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 1.2.13 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 1.2.12 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 1.2.11 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 1.2.10 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 1.2.9 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 1.2.8 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/libraries/debug-certificate-manager/package.json b/libraries/debug-certificate-manager/package.json index 45ff0017043..575c1f133e1 100644 --- a/libraries/debug-certificate-manager/package.json +++ b/libraries/debug-certificate-manager/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/debug-certificate-manager", - "version": "1.2.8", + "version": "1.2.19", "description": "Cross-platform functionality to create debug ssl certificates.", "main": "lib/index.js", "typings": "dist/debug-certificate-manager.d.ts", @@ -23,7 +23,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/node-forge": "1.0.4" } } diff --git a/libraries/debug-certificate-manager/src/CertificateManager.ts b/libraries/debug-certificate-manager/src/CertificateManager.ts index 6838c2019ac..aa92262143a 100644 --- a/libraries/debug-certificate-manager/src/CertificateManager.ts +++ b/libraries/debug-certificate-manager/src/CertificateManager.ts @@ -15,6 +15,7 @@ const FRIENDLY_NAME: string = 'debug-certificate-manager Development Certificate const MAC_KEYCHAIN: string = '/Library/Keychains/System.keychain'; const CERTUTIL_EXE_NAME: string = 'certutil'; const CA_ALT_NAME: string = 'rushstack-certificate-manager.localhost'; +const ONE_DAY_IN_MILLISECONDS: number = 24 * 60 * 60 * 1000; /** * The set of names the certificate should be generated for, by default. @@ -85,6 +86,8 @@ export interface ICertificateGenerationOptions { validityInDays?: number; } +const MAX_CERTIFICATE_VALIDITY_DAYS: 365 = 365; + /** * A utility class to handle generating, trusting, and untrustring a debug certificate. * Contains two public methods to `ensureCertificate` and `untrustCertificate`. @@ -142,6 +145,24 @@ export class CertificateManager { ); } + now.setUTCDate(now.getUTCDate() + optionsWithDefaults.validityInDays); + if (notAfter > now) { + messages.push( + `The existing development certificate's expiration date ${notAfter} exceeds the allowed limit ${now}. ` + + `This will be rejected by many browsers.` + ); + } + + if ( + notBefore.getTime() - notAfter.getTime() > + optionsWithDefaults.validityInDays * ONE_DAY_IN_MILLISECONDS + ) { + messages.push( + "The existing development certificate's validity period is longer " + + `than ${optionsWithDefaults.validityInDays} days.` + ); + } + const { caCertificateData } = this._certificateStore; if (!caCertificateData) { @@ -279,9 +300,11 @@ export class CertificateManager { certificate.serialNumber = CA_SERIAL_NUMBER; - const now: Date = new Date(); - certificate.validity.notBefore = now; - certificate.validity.notAfter.setUTCDate(certificate.validity.notBefore.getUTCDate() + validityInDays); + const notBefore: Date = new Date(); + const notAfter: Date = new Date(notBefore); + notAfter.setUTCDate(notBefore.getUTCDate() + validityInDays); + certificate.validity.notBefore = notBefore; + certificate.validity.notAfter = notAfter; const attrs: pki.CertificateField[] = [ { @@ -359,9 +382,11 @@ export class CertificateManager { forge ); - const now: Date = new Date(); - certificate.validity.notBefore = now; - certificate.validity.notAfter.setUTCDate(certificate.validity.notBefore.getUTCDate() + validityInDays); + const notBefore: Date = new Date(); + const notAfter: Date = new Date(notBefore); + notAfter.setUTCDate(notBefore.getUTCDate() + validityInDays); + certificate.validity.notBefore = notBefore; + certificate.validity.notAfter = notAfter; const subjectAttrs: pki.CertificateField[] = [ { @@ -709,6 +734,9 @@ function applyDefaultOptions( const subjectNames: ReadonlyArray | undefined = options?.subjectAltNames; return { subjectAltNames: subjectNames?.length ? subjectNames : DEFAULT_CERTIFICATE_SUBJECT_NAMES, - validityInDays: options?.validityInDays ?? 365 + validityInDays: Math.min( + MAX_CERTIFICATE_VALIDITY_DAYS, + options?.validityInDays ?? MAX_CERTIFICATE_VALIDITY_DAYS + ) }; } diff --git a/libraries/debug-certificate-manager/src/index.ts b/libraries/debug-certificate-manager/src/index.ts index 383615f7026..c29f25d1bcc 100644 --- a/libraries/debug-certificate-manager/src/index.ts +++ b/libraries/debug-certificate-manager/src/index.ts @@ -3,15 +3,16 @@ /** * This package is used to manage debug certificates for development servers. - * It is used by - * [\@microsoft/gulp-core-build-serve](https://www.npmjs.com/package/\@microsoft/gulp-core-build-serve) - * to generate and trust a certificate when HTTPS is turned on. * * This package provides the following utilities: + * * - `CertificateStore` to handle retrieving and saving a debug certificate. + * * - `CertificateManager` is a utility class containing the following public methods: - * | - `ensureCertificate` will find or optionally create a debug certificate and trust it. - * | - `untrustCertificate` will untrust a debug certificate. + * + * - `ensureCertificate` will find or optionally create a debug certificate and trust it. + * + * - `untrustCertificate` will untrust a debug certificate. * * @packageDocumentation */ diff --git a/libraries/heft-config-file/CHANGELOG.json b/libraries/heft-config-file/CHANGELOG.json index 095ad11a6d8..ef5850f570e 100644 --- a/libraries/heft-config-file/CHANGELOG.json +++ b/libraries/heft-config-file/CHANGELOG.json @@ -1,6 +1,72 @@ { "name": "@rushstack/heft-config-file", "entries": [ + { + "version": "0.11.9", + "tag": "@rushstack/heft-config-file_v0.11.9", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.3.18`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + } + ] + } + }, + { + "version": "0.11.8", + "tag": "@rushstack/heft-config-file_v0.11.8", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + } + ] + } + }, + { + "version": "0.11.7", + "tag": "@rushstack/heft-config-file_v0.11.7", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + } + ] + } + }, + { + "version": "0.11.6", + "tag": "@rushstack/heft-config-file_v0.11.6", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + } + ] + } + }, + { + "version": "0.11.5", + "tag": "@rushstack/heft-config-file_v0.11.5", + "date": "Thu, 26 Jan 2023 02:55:09 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ] + } + }, { "version": "0.11.4", "tag": "@rushstack/heft-config-file_v0.11.4", diff --git a/libraries/heft-config-file/CHANGELOG.md b/libraries/heft-config-file/CHANGELOG.md index e6913f94185..e94849b5242 100644 --- a/libraries/heft-config-file/CHANGELOG.md +++ b/libraries/heft-config-file/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @rushstack/heft-config-file -This log was last generated on Fri, 09 Dec 2022 16:18:28 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:51 GMT and should not be manually modified. + +## 0.11.9 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.11.8 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.11.7 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.11.6 +Mon, 30 Jan 2023 16:22:30 GMT + +_Version update only_ + +## 0.11.5 +Thu, 26 Jan 2023 02:55:09 GMT + +### Patches + +- Upgrade to webpack 5.75.0 ## 0.11.4 Fri, 09 Dec 2022 16:18:28 GMT diff --git a/libraries/heft-config-file/package.json b/libraries/heft-config-file/package.json index 11e6d4ae1f4..5bdbe4d73ab 100644 --- a/libraries/heft-config-file/package.json +++ b/libraries/heft-config-file/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-config-file", - "version": "0.11.4", + "version": "0.11.9", "description": "Configuration file loader for @rushstack/heft", "repository": { "type": "git", @@ -27,9 +27,9 @@ }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/libraries/heft-config-file/src/index.ts b/libraries/heft-config-file/src/index.ts index bc31b8e2177..884a30bce24 100644 --- a/libraries/heft-config-file/src/index.ts +++ b/libraries/heft-config-file/src/index.ts @@ -1,6 +1,13 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +/** + * A library for loading config files for use with the + * {@link https://rushstack.io/pages/heft/overview/ | Heft} build system. + * + * @packageDocumentation + */ + export { ConfigurationFile, IConfigurationFileOptionsBase, diff --git a/libraries/load-themed-styles/CHANGELOG.json b/libraries/load-themed-styles/CHANGELOG.json index 3287617c0f7..1cc51f8cdfb 100644 --- a/libraries/load-themed-styles/CHANGELOG.json +++ b/libraries/load-themed-styles/CHANGELOG.json @@ -1,6 +1,177 @@ { "name": "@microsoft/load-themed-styles", "entries": [ + { + "version": "2.0.31", + "tag": "@microsoft/load-themed-styles_v2.0.31", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.7`" + } + ] + } + }, + { + "version": "2.0.30", + "tag": "@microsoft/load-themed-styles_v2.0.30", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.6`" + } + ] + } + }, + { + "version": "2.0.29", + "tag": "@microsoft/load-themed-styles_v2.0.29", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.5`" + } + ] + } + }, + { + "version": "2.0.28", + "tag": "@microsoft/load-themed-styles_v2.0.28", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.4`" + } + ] + } + }, + { + "version": "2.0.27", + "tag": "@microsoft/load-themed-styles_v2.0.27", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.3`" + } + ] + } + }, + { + "version": "2.0.26", + "tag": "@microsoft/load-themed-styles_v2.0.26", + "date": "Tue, 31 Jan 2023 01:23:23 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.2`" + } + ] + } + }, + { + "version": "2.0.25", + "tag": "@microsoft/load-themed-styles_v2.0.25", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.1`" + } + ] + } + }, + { + "version": "2.0.24", + "tag": "@microsoft/load-themed-styles_v2.0.24", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.14.0`" + } + ] + } + }, + { + "version": "2.0.23", + "tag": "@microsoft/load-themed-styles_v2.0.23", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.13.2`" + } + ] + } + }, + { + "version": "2.0.22", + "tag": "@microsoft/load-themed-styles_v2.0.22", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.13.1`" + } + ] + } + }, + { + "version": "2.0.21", + "tag": "@microsoft/load-themed-styles_v2.0.21", + "date": "Sun, 22 Jan 2023 20:37:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.13.0`" + } + ] + } + }, + { + "version": "2.0.20", + "tag": "@microsoft/load-themed-styles_v2.0.20", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-web-rig\" to `0.12.17`" + } + ] + } + }, { "version": "2.0.19", "tag": "@microsoft/load-themed-styles_v2.0.19", diff --git a/libraries/load-themed-styles/CHANGELOG.md b/libraries/load-themed-styles/CHANGELOG.md index 76ff4762a85..0a7ddc5e899 100644 --- a/libraries/load-themed-styles/CHANGELOG.md +++ b/libraries/load-themed-styles/CHANGELOG.md @@ -1,6 +1,66 @@ # Change Log - @microsoft/load-themed-styles -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 2.0.31 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 2.0.30 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 2.0.29 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 2.0.28 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 2.0.27 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 2.0.26 +Tue, 31 Jan 2023 01:23:23 GMT + +_Version update only_ + +## 2.0.25 +Mon, 30 Jan 2023 16:22:30 GMT + +_Version update only_ + +## 2.0.24 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 2.0.23 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 2.0.22 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 2.0.21 +Sun, 22 Jan 2023 20:37:08 GMT + +_Version update only_ + +## 2.0.20 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 2.0.19 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/libraries/load-themed-styles/package.json b/libraries/load-themed-styles/package.json index 19538bd1f0d..327f129246b 100644 --- a/libraries/load-themed-styles/package.json +++ b/libraries/load-themed-styles/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/load-themed-styles", - "version": "2.0.19", + "version": "2.0.31", "description": "Loads themed styles.", "license": "MIT", "repository": { @@ -20,6 +20,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-web-rig": "workspace:*", - "@types/webpack-env": "1.13.0" + "@types/heft-jest": "1.0.1", + "@types/webpack-env": "1.18.0" } } diff --git a/libraries/localization-utilities/CHANGELOG.json b/libraries/localization-utilities/CHANGELOG.json index 92ed6732347..1915a617959 100644 --- a/libraries/localization-utilities/CHANGELOG.json +++ b/libraries/localization-utilities/CHANGELOG.json @@ -1,6 +1,180 @@ { "name": "@rushstack/localization-utilities", "entries": [ + { + "version": "0.8.47", + "tag": "@rushstack/localization-utilities_v0.8.47", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.8.46", + "tag": "@rushstack/localization-utilities_v0.8.46", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.8.45", + "tag": "@rushstack/localization-utilities_v0.8.45", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.8.44", + "tag": "@rushstack/localization-utilities_v0.8.44", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.10.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.8.43", + "tag": "@rushstack/localization-utilities_v0.8.43", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.9.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.8.42", + "tag": "@rushstack/localization-utilities_v0.8.42", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.18`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.8.41", + "tag": "@rushstack/localization-utilities_v0.8.41", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.17`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.8.40", + "tag": "@rushstack/localization-utilities_v0.8.40", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.16`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.8.39", + "tag": "@rushstack/localization-utilities_v0.8.39", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.8.15`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.8.38", "tag": "@rushstack/localization-utilities_v0.8.38", diff --git a/libraries/localization-utilities/CHANGELOG.md b/libraries/localization-utilities/CHANGELOG.md index 81bba60d764..56ca9b67e0f 100644 --- a/libraries/localization-utilities/CHANGELOG.md +++ b/libraries/localization-utilities/CHANGELOG.md @@ -1,6 +1,51 @@ # Change Log - @rushstack/localization-utilities -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.8.47 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.8.46 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.8.45 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.8.44 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.8.43 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 0.8.42 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.8.41 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.8.40 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.8.39 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.8.38 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/libraries/localization-utilities/package.json b/libraries/localization-utilities/package.json index 96bd4381bf3..ee9611c55b9 100644 --- a/libraries/localization-utilities/package.json +++ b/libraries/localization-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/localization-utilities", - "version": "0.8.38", + "version": "0.8.47", "description": "This plugin contains some useful functions for localization.", "main": "lib/index.js", "typings": "dist/localization-utilities.d.ts", @@ -25,7 +25,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/xmldoc": "1.1.4" } } diff --git a/libraries/localization-utilities/src/index.ts b/libraries/localization-utilities/src/index.ts index e2d2edead6a..b8401bcae44 100644 --- a/libraries/localization-utilities/src/index.ts +++ b/libraries/localization-utilities/src/index.ts @@ -1,6 +1,12 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +/** + * Some utilities for working with Rush Stack localization files. + * + * @packageDocumentation + */ + export type { ILocalizationFile, ILocalizedString, diff --git a/libraries/module-minifier/CHANGELOG.json b/libraries/module-minifier/CHANGELOG.json index d0eabbb98c3..3d03bb415e9 100644 --- a/libraries/module-minifier/CHANGELOG.json +++ b/libraries/module-minifier/CHANGELOG.json @@ -1,6 +1,200 @@ { "name": "@rushstack/module-minifier", "entries": [ + { + "version": "0.3.3", + "tag": "@rushstack/module-minifier_v0.3.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.3.2", + "tag": "@rushstack/module-minifier_v0.3.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.3.1", + "tag": "@rushstack/module-minifier_v0.3.1", + "date": "Sun, 05 Feb 2023 03:02:01 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.3.0", + "tag": "@rushstack/module-minifier_v0.3.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.2.0", + "tag": "@rushstack/module-minifier_v0.2.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.1.49", + "tag": "@rushstack/module-minifier_v0.1.49", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.48`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.1.48", + "tag": "@rushstack/module-minifier_v0.1.48", + "date": "Sat, 28 Jan 2023 01:22:02 GMT", + "comments": { + "patch": [ + { + "comment": "Ensure updates to the version of Terser trigger a hash change." + } + ] + } + }, + { + "version": "0.1.47", + "tag": "@rushstack/module-minifier_v0.1.47", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.47`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.1.46", + "tag": "@rushstack/module-minifier_v0.1.46", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.46`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.1.45", + "tag": "@rushstack/module-minifier_v0.1.45", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "patch": [ + { + "comment": "Update to terser 5.16.1" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.45`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.1.44", "tag": "@rushstack/module-minifier_v0.1.44", diff --git a/libraries/module-minifier/CHANGELOG.md b/libraries/module-minifier/CHANGELOG.md index c208b81f2dd..7433d1b0416 100644 --- a/libraries/module-minifier/CHANGELOG.md +++ b/libraries/module-minifier/CHANGELOG.md @@ -1,6 +1,66 @@ # Change Log - @rushstack/module-minifier -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.3.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.3.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.3.1 +Sun, 05 Feb 2023 03:02:01 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.3.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.2.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.1.49 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.1.48 +Sat, 28 Jan 2023 01:22:02 GMT + +### Patches + +- Ensure updates to the version of Terser trigger a hash change. + +## 0.1.47 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.1.46 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.1.45 +Wed, 18 Jan 2023 22:44:12 GMT + +### Patches + +- Update to terser 5.16.1 ## 0.1.44 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/libraries/module-minifier/package.json b/libraries/module-minifier/package.json index 8060c04c505..5562ac2626f 100644 --- a/libraries/module-minifier/package.json +++ b/libraries/module-minifier/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/module-minifier", - "version": "0.1.44", + "version": "0.3.3", "description": "Wrapper for terser to support bulk parallel minification.", "main": "lib/index.js", "typings": "dist/module-minifier.d.ts", @@ -16,16 +16,25 @@ "_phase:test": "heft run --only test -- --clean" }, "dependencies": { - "@types/node": "12.20.24", "@rushstack/worker-pool": "workspace:*", "serialize-javascript": "6.0.0", "source-map": "~0.7.3", - "terser": "5.9.0" + "terser": "5.16.1" }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/serialize-javascript": "5.0.2" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } } diff --git a/libraries/module-minifier/src/LocalMinifier.ts b/libraries/module-minifier/src/LocalMinifier.ts index 0e2ac3cb2c6..231b8e3ea9b 100644 --- a/libraries/module-minifier/src/LocalMinifier.ts +++ b/libraries/module-minifier/src/LocalMinifier.ts @@ -44,8 +44,11 @@ export class LocalMinifier implements IModuleMinifier { : {} }; + const { version: terserVersion } = require('terser/package.json'); + this._configHash = createHash('sha256') .update(LocalMinifier.name, 'utf8') + .update(`terser@${terserVersion}`) .update(serialize(terserOptions)) .digest('base64'); diff --git a/libraries/module-minifier/src/WorkerPoolMinifier.ts b/libraries/module-minifier/src/WorkerPoolMinifier.ts index 99a494a873f..c369f520839 100644 --- a/libraries/module-minifier/src/WorkerPoolMinifier.ts +++ b/libraries/module-minifier/src/WorkerPoolMinifier.ts @@ -66,8 +66,11 @@ export class WorkerPoolMinifier implements IModuleMinifier { workerScriptPath: require.resolve('./MinifierWorker') }); + const { version: terserVersion } = require('terser/package.json'); + this._configHash = createHash('sha256') .update(WorkerPoolMinifier.name, 'utf8') + .update(`terser@${terserVersion}`) .update(serialize(terserOptions)) .digest('base64'); diff --git a/libraries/module-minifier/src/index.ts b/libraries/module-minifier/src/index.ts index 52caf8faecf..ca82f966b67 100644 --- a/libraries/module-minifier/src/index.ts +++ b/libraries/module-minifier/src/index.ts @@ -1,6 +1,14 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +/** + * This library wraps terser in convenient handles for parallelization. + * It powers `@rushstack/webpack4-module-minifier-plugin` and `@rushstack/webpack5-module-minifier-plugin` + * but has no coupling with webpack. + * + * @packageDocumentation + */ + export type { MinifyOptions } from 'terser'; export type { ILocalMinifierOptions } from './LocalMinifier'; diff --git a/libraries/module-minifier/src/test/LocalMinifier.test.ts b/libraries/module-minifier/src/test/LocalMinifier.test.ts new file mode 100644 index 00000000000..a135eb51272 --- /dev/null +++ b/libraries/module-minifier/src/test/LocalMinifier.test.ts @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { IMinifierConnection } from '../types'; + +let terserVersion: string = '1.0.0'; +jest.mock('terser/package.json', () => { + return { + get version(): string { + return terserVersion; + } + }; +}); + +describe('LocalMinifier', () => { + it('Includes terserOptions in config hash', async () => { + const { LocalMinifier } = await import('../LocalMinifier'); + type LocalMinifier = typeof LocalMinifier.prototype; + + const minifier1: LocalMinifier = new LocalMinifier({ + terserOptions: { + ecma: 5 + } + }); + const minifier2: LocalMinifier = new LocalMinifier({ + terserOptions: { + ecma: 2015 + } + }); + + const connection1: IMinifierConnection = await minifier1.connect(); + await connection1.disconnect(); + const connection2: IMinifierConnection = await minifier2.connect(); + await connection2.disconnect(); + + expect(connection1.configHash).toMatchSnapshot('ecma5'); + expect(connection2.configHash).toMatchSnapshot('ecma2015'); + expect(connection1.configHash !== connection2.configHash); + }); + + it('Includes terser package version in config hash', async () => { + const { LocalMinifier } = await import('../LocalMinifier'); + type LocalMinifier = typeof LocalMinifier.prototype; + + terserVersion = '5.9.1'; + const minifier1: LocalMinifier = new LocalMinifier({}); + terserVersion = '5.16.2'; + const minifier2: LocalMinifier = new LocalMinifier({}); + + const connection1: IMinifierConnection = await minifier1.connect(); + await connection1.disconnect(); + const connection2: IMinifierConnection = await minifier2.connect(); + await connection2.disconnect(); + + expect(connection1.configHash).toMatchSnapshot('terser-5.9.1'); + expect(connection2.configHash).toMatchSnapshot('terser-5.16.1'); + expect(connection1.configHash !== connection2.configHash); + }); +}); diff --git a/libraries/module-minifier/src/test/WorkerPoolMinifier.test.ts b/libraries/module-minifier/src/test/WorkerPoolMinifier.test.ts new file mode 100644 index 00000000000..89fd95cd326 --- /dev/null +++ b/libraries/module-minifier/src/test/WorkerPoolMinifier.test.ts @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { IMinifierConnection } from '../types'; + +let terserVersion: string = '1.0.0'; +jest.mock('terser/package.json', () => { + return { + get version(): string { + return terserVersion; + } + }; +}); + +describe('WorkerPoolMinifier', () => { + it('Includes terserOptions in config hash', async () => { + const { WorkerPoolMinifier } = await import('../WorkerPoolMinifier'); + type WorkerPoolMinifier = typeof WorkerPoolMinifier.prototype; + + const minifier1: WorkerPoolMinifier = new WorkerPoolMinifier({ + terserOptions: { + ecma: 5 + } + }); + const minifier2: WorkerPoolMinifier = new WorkerPoolMinifier({ + terserOptions: { + ecma: 2015 + } + }); + + const connection1: IMinifierConnection = await minifier1.connect(); + await connection1.disconnect(); + const connection2: IMinifierConnection = await minifier2.connect(); + await connection2.disconnect(); + + expect(connection1.configHash).toMatchSnapshot('ecma5'); + expect(connection2.configHash).toMatchSnapshot('ecma2015'); + expect(connection1.configHash !== connection2.configHash); + }); + + it('Includes terser package version in config hash', async () => { + const { WorkerPoolMinifier } = await import('../WorkerPoolMinifier'); + type WorkerPoolMinifier = typeof WorkerPoolMinifier.prototype; + + terserVersion = '5.9.1'; + const minifier1: WorkerPoolMinifier = new WorkerPoolMinifier({}); + terserVersion = '5.16.2'; + const minifier2: WorkerPoolMinifier = new WorkerPoolMinifier({}); + + const connection1: IMinifierConnection = await minifier1.connect(); + await connection1.disconnect(); + const connection2: IMinifierConnection = await minifier2.connect(); + await connection2.disconnect(); + + expect(connection1.configHash).toMatchSnapshot('terser-5.9.1'); + expect(connection2.configHash).toMatchSnapshot('terser-5.16.1'); + expect(connection1.configHash !== connection2.configHash); + }); +}); diff --git a/libraries/module-minifier/src/test/__snapshots__/LocalMinifier.test.ts.snap b/libraries/module-minifier/src/test/__snapshots__/LocalMinifier.test.ts.snap new file mode 100644 index 00000000000..a310d9b8a69 --- /dev/null +++ b/libraries/module-minifier/src/test/__snapshots__/LocalMinifier.test.ts.snap @@ -0,0 +1,9 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`LocalMinifier Includes terser package version in config hash: terser-5.9.1 1`] = `"4EVkVBAkdvF45JdRt44fWqn3HDW5t4dHo0zmzpQrWtc="`; + +exports[`LocalMinifier Includes terser package version in config hash: terser-5.16.1 1`] = `"3tk4bireIeb1adtnntg0kD4LU91VU+hweuk5GEkvX9A="`; + +exports[`LocalMinifier Includes terserOptions in config hash: ecma5 1`] = `"xpQ+VFd1iTb0qFjWnrRxNm25O1Z77Oy9Ppi+VG9SFEQ="`; + +exports[`LocalMinifier Includes terserOptions in config hash: ecma2015 1`] = `"IvCYjNIccj8xYkftaoV19M8WU5Vzy+06PL6gzGVUYxI="`; diff --git a/libraries/module-minifier/src/test/__snapshots__/WorkerPoolMinifier.test.ts.snap b/libraries/module-minifier/src/test/__snapshots__/WorkerPoolMinifier.test.ts.snap new file mode 100644 index 00000000000..78c3f7dafef --- /dev/null +++ b/libraries/module-minifier/src/test/__snapshots__/WorkerPoolMinifier.test.ts.snap @@ -0,0 +1,9 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`WorkerPoolMinifier Includes terser package version in config hash: terser-5.9.1 1`] = `"0cjBnphY49XdxkmLxJLfNoRQbl3R6HdeT8WNl56oZWk="`; + +exports[`WorkerPoolMinifier Includes terser package version in config hash: terser-5.16.1 1`] = `"dYinCy9XUHWWDXSIwq7F/GvAYLxxv3WjZdHIpd2sZpc="`; + +exports[`WorkerPoolMinifier Includes terserOptions in config hash: ecma5 1`] = `"FcgklO/zYzwo0R2IM6OKH5uLA0hXVekjeqmFqKweKCg="`; + +exports[`WorkerPoolMinifier Includes terserOptions in config hash: ecma2015 1`] = `"Vku2B3kuB95N1Xo2q8J/nAJrmxwXV+fQmmUwp4xj+Xk="`; diff --git a/libraries/node-core-library/CHANGELOG.json b/libraries/node-core-library/CHANGELOG.json index 3357285f393..37f9e5220a5 100644 --- a/libraries/node-core-library/CHANGELOG.json +++ b/libraries/node-core-library/CHANGELOG.json @@ -1,6 +1,57 @@ { "name": "@rushstack/node-core-library", "entries": [ + { + "version": "3.55.2", + "tag": "@rushstack/node-core-library_v3.55.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + } + ] + } + }, + { + "version": "3.55.1", + "tag": "@rushstack/node-core-library_v3.55.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ] + } + }, + { + "version": "3.55.0", + "tag": "@rushstack/node-core-library_v3.55.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ] + } + }, + { + "version": "3.54.0", + "tag": "@rushstack/node-core-library_v3.54.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Add a `peerDependenciesMeta` property to `IPackageJson`." + }, + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ] + } + }, { "version": "3.53.3", "tag": "@rushstack/node-core-library_v3.53.3", diff --git a/libraries/node-core-library/CHANGELOG.md b/libraries/node-core-library/CHANGELOG.md index 68fd923359a..9a05aa94687 100644 --- a/libraries/node-core-library/CHANGELOG.md +++ b/libraries/node-core-library/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @rushstack/node-core-library -This log was last generated on Fri, 09 Dec 2022 16:18:27 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:51 GMT and should not be manually modified. + +## 3.55.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 3.55.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 3.55.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 3.54.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Add a `peerDependenciesMeta` property to `IPackageJson`. +- Move the @types/node dependency to an optional peerDependency. ## 3.53.3 Fri, 09 Dec 2022 16:18:27 GMT diff --git a/libraries/node-core-library/package.json b/libraries/node-core-library/package.json index ddaffe961c5..f5162d8bb66 100644 --- a/libraries/node-core-library/package.json +++ b/libraries/node-core-library/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/node-core-library", - "version": "3.53.3", + "version": "3.55.2", "description": "Core libraries that every NodeJS toolchain project should use", "main": "lib/index.js", "typings": "dist/node-core-library.d.ts", @@ -16,7 +16,6 @@ "_phase:test": "heft test --no-build" }, "dependencies": { - "@types/node": "12.20.24", "colors": "~1.2.1", "fs-extra": "~7.0.1", "import-lazy": "~4.0.0", @@ -27,12 +26,21 @@ }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/fs-extra": "7.0.0", "@types/heft-jest": "1.0.1", "@types/jju": "1.4.1", + "@types/node": "14.18.36", "@types/resolve": "1.20.2", "@types/semver": "7.3.5" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } } diff --git a/libraries/node-core-library/src/IPackageJson.ts b/libraries/node-core-library/src/IPackageJson.ts index 7955552caa2..ab33d9a6f6f 100644 --- a/libraries/node-core-library/src/IPackageJson.ts +++ b/libraries/node-core-library/src/IPackageJson.ts @@ -2,7 +2,7 @@ // See LICENSE in the project root for license information. /** - * This interface is part of the IPackageJson file format. It is used for the + * This interface is part of the {@link IPackageJson} file format. It is used for the * "dependencies", "optionalDependencies", and "devDependencies" fields. * @public */ @@ -15,7 +15,7 @@ export interface IPackageJsonDependencyTable { } /** - * This interface is part of the IPackageJson file format. It is used for the + * This interface is part of the {@link IPackageJson} file format. It is used for the * "scripts" field. * @public */ @@ -28,7 +28,7 @@ export interface IPackageJsonScriptTable { } /** - * This interface is part of the IPackageJson file format. It is used for the + * This interface is part of the {@link IPackageJson} file format. It is used for the * "repository" field. * @public */ @@ -49,6 +49,17 @@ export interface IPackageJsonRepository { directory?: string; } +/** + * This interface is part of the {@link IPackageJson} file format. It is used for the + * "peerDependenciesMeta" field. + * @public + */ +export interface IPeerDependenciesMetaTable { + [dependencyName: string]: { + optional?: boolean; + }; +} + /** * An interface for accessing common fields from a package.json file whose version field may be missing. * @@ -155,6 +166,11 @@ export interface INodePackageJson { */ peerDependencies?: IPackageJsonDependencyTable; + /** + * An array of metadata about peer dependencies. + */ + peerDependenciesMeta?: IPeerDependenciesMetaTable; + /** * A table of script hooks that a package manager or build tool may invoke. */ diff --git a/libraries/node-core-library/src/index.ts b/libraries/node-core-library/src/index.ts index 418f987ba55..8f444005417 100644 --- a/libraries/node-core-library/src/index.ts +++ b/libraries/node-core-library/src/index.ts @@ -28,7 +28,8 @@ export { IPackageJson, IPackageJsonDependencyTable, IPackageJsonScriptTable, - IPackageJsonRepository + IPackageJsonRepository, + IPeerDependenciesMetaTable } from './IPackageJson'; export { Import, diff --git a/libraries/package-deps-hash/CHANGELOG.json b/libraries/package-deps-hash/CHANGELOG.json index c50d888d71c..e23a8fa08dd 100644 --- a/libraries/package-deps-hash/CHANGELOG.json +++ b/libraries/package-deps-hash/CHANGELOG.json @@ -1,6 +1,201 @@ { "name": "@rushstack/package-deps-hash", "entries": [ + { + "version": "4.0.10", + "tag": "@rushstack/package-deps-hash_v4.0.10", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "4.0.9", + "tag": "@rushstack/package-deps-hash_v4.0.9", + "date": "Fri, 24 Feb 2023 01:24:17 GMT", + "comments": { + "patch": [ + { + "comment": "Prevent network calls or maintenance tasks during local Git operations." + } + ] + } + }, + { + "version": "4.0.8", + "tag": "@rushstack/package-deps-hash_v4.0.8", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + } + ] + } + }, + { + "version": "4.0.7", + "tag": "@rushstack/package-deps-hash_v4.0.7", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + } + ] + } + }, + { + "version": "4.0.6", + "tag": "@rushstack/package-deps-hash_v4.0.6", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + } + ] + } + }, + { + "version": "4.0.5", + "tag": "@rushstack/package-deps-hash_v4.0.5", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + } + ] + } + }, + { + "version": "4.0.4", + "tag": "@rushstack/package-deps-hash_v4.0.4", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "4.0.3", + "tag": "@rushstack/package-deps-hash_v4.0.3", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "4.0.2", + "tag": "@rushstack/package-deps-hash_v4.0.2", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "4.0.1", + "tag": "@rushstack/package-deps-hash_v4.0.1", + "date": "Tue, 24 Jan 2023 00:16:54 GMT", + "comments": { + "patch": [ + { + "comment": "Fix bug in parseGitHashObject when 0 hashes are expected." + } + ] + } + }, + { + "version": "4.0.0", + "tag": "@rushstack/package-deps-hash_v4.0.0", + "date": "Fri, 20 Jan 2023 16:19:50 GMT", + "comments": { + "major": [ + { + "comment": "Add getRepoStateAsync API for faster repository state calculation. Remove synchronous getRepoState API." + } + ] + } + }, + { + "version": "3.2.67", + "tag": "@rushstack/package-deps-hash_v3.2.67", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "3.2.66", "tag": "@rushstack/package-deps-hash_v3.2.66", diff --git a/libraries/package-deps-hash/CHANGELOG.md b/libraries/package-deps-hash/CHANGELOG.md index 70ba9b64e80..06cb9f0ba50 100644 --- a/libraries/package-deps-hash/CHANGELOG.md +++ b/libraries/package-deps-hash/CHANGELOG.md @@ -1,6 +1,72 @@ # Change Log - @rushstack/package-deps-hash -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 4.0.10 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 4.0.9 +Fri, 24 Feb 2023 01:24:17 GMT + +### Patches + +- Prevent network calls or maintenance tasks during local Git operations. + +## 4.0.8 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 4.0.7 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 4.0.6 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 4.0.5 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 4.0.4 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 4.0.3 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 4.0.2 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 4.0.1 +Tue, 24 Jan 2023 00:16:54 GMT + +### Patches + +- Fix bug in parseGitHashObject when 0 hashes are expected. + +## 4.0.0 +Fri, 20 Jan 2023 16:19:50 GMT + +### Breaking changes + +- Add getRepoStateAsync API for faster repository state calculation. Remove synchronous getRepoState API. + +## 3.2.67 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 3.2.66 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/libraries/package-deps-hash/package.json b/libraries/package-deps-hash/package.json index d724924bd4a..3eb5e0689c2 100644 --- a/libraries/package-deps-hash/package.json +++ b/libraries/package-deps-hash/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/package-deps-hash", - "version": "3.2.66", + "version": "4.0.10", "description": "", "main": "lib/index.js", "typings": "dist/package-deps-hash.d.ts", @@ -20,7 +20,8 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" }, "dependencies": { "@rushstack/node-core-library": "workspace:*" diff --git a/libraries/package-deps-hash/src/getRepoState.ts b/libraries/package-deps-hash/src/getRepoState.ts index ed316401d65..6016a4b1dde 100644 --- a/libraries/package-deps-hash/src/getRepoState.ts +++ b/libraries/package-deps-hash/src/getRepoState.ts @@ -2,7 +2,10 @@ // See LICENSE in the project root for license information. import type * as child_process from 'child_process'; -import { Executable, FileSystem } from '@rushstack/node-core-library'; +import { once } from 'events'; +import { Readable } from 'stream'; + +import { Executable, FileSystem, IExecutableSpawnOptions } from '@rushstack/node-core-library'; export interface IGitVersion { major: number; @@ -16,6 +19,14 @@ const MINIMUM_GIT_VERSION: IGitVersion = { patch: 0 }; +const STANDARD_GIT_OPTIONS: readonly string[] = [ + // Don't request any optional file locks + '--no-optional-locks', + // Ensure that commands don't run automatic maintenance, since performance of the command itself is paramount + '-c', + 'maintenance.auto=false' +]; + interface IGitTreeState { files: Map; // type "blob" submodules: Map; // type "commit" @@ -72,6 +83,44 @@ export function parseGitLsTree(output: string): IGitTreeState { }; } +/** + * Parses the output of `git hash-object` + * yields [filePath, hash] pairs. + * @internal + */ +export function* parseGitHashObject( + output: string, + filePaths: ReadonlyArray +): IterableIterator<[string, string]> { + const expected: number = filePaths.length; + if (expected === 0) { + return; + } + + output = output.trim(); + + let last: number = 0; + let i: number = 0; + let index: number = output.indexOf('\n', last); + for (; i < expected && index > 0; i++) { + const hash: string = output.slice(last, index); + yield [filePaths[i], hash]; + last = index + 1; + index = output.indexOf('\n', last); + } + + // Handle last line. Will be non-empty to due trim() call. + if (index < 0) { + const hash: string = output.slice(last); + yield [filePaths[i], hash]; + i++; + } + + if (i !== expected) { + throw new Error(`Expected ${expected} hashes from "git hash-object" but received ${i}`); + } +} + /** * Information about the changes to a file. * @beta @@ -190,128 +239,170 @@ export function getRepoRoot(currentWorkingDirectory: string, gitPath?: string): throw new Error(`git rev-parse exited with status ${result.status}: ${result.stderr}`); } - repoRootCache.set(currentWorkingDirectory, (cachedResult = result.stdout.trim())); + cachedResult = result.stdout.trim(); + + repoRootCache.set(currentWorkingDirectory, cachedResult); + // To ensure that calling getRepoRoot on the result is a no-op. + repoRootCache.set(cachedResult, cachedResult); } return cachedResult; } /** - * Augments the state value with modifications that are not in the index. - * @param rootDirectory - The root directory of the Git repository - * @param state - The current map of git path -> object hash. Will be mutated. - * @param gitPath - The path to the Git executable - * @internal + * Helper function for async process invocation with optional stdin support. + * @param gitPath - Path to the Git executable + * @param args - The process arguments + * @param currentWorkingDirectory - The working directory. Should be the repository root. + * @param stdin - An optional Readable stream to use as stdin to the process. */ -export function applyWorkingTreeState( - rootDirectory: string, - state: Map, - gitPath?: string -): void { - const statusResult: child_process.SpawnSyncReturns = Executable.spawnSync( - gitPath || 'git', - ['--no-optional-locks', 'status', '-z', '-u', '--no-renames', '--ignore-submodules', '--'], - { - currentWorkingDirectory: rootDirectory - } - ); +async function spawnGitAsync( + gitPath: string | undefined, + args: string[], + currentWorkingDirectory: string, + stdin?: Readable +): Promise { + const spawnOptions: IExecutableSpawnOptions = { + currentWorkingDirectory, + stdio: ['pipe', 'pipe', 'pipe'] + }; - if (statusResult.status !== 0) { - ensureGitMinimumVersion(gitPath); + let stdout: string = ''; + let stderr: string = ''; - throw new Error(`git status exited with status ${statusResult.status}: ${statusResult.stderr}`); - } + const proc: child_process.ChildProcess = Executable.spawn(gitPath || 'git', args, spawnOptions); + proc.stdout!.setEncoding('utf-8'); + proc.stderr!.setEncoding('utf-8'); - const locallyModified: Map = parseGitStatus(statusResult.stdout); + proc.stdout!.on('data', (chunk: string) => { + stdout += chunk.toString(); + }); + proc.stderr!.on('data', (chunk: string) => { + stderr += chunk.toString(); + }); - const filesToHash: string[] = []; - for (const [filePath, exists] of locallyModified) { - if (exists) { - filesToHash.push(filePath); - } else { - state.delete(filePath); - } + if (stdin) { + stdin.pipe(proc.stdin!); } - if (filesToHash.length) { - // Use --stdin-paths arg to pass the list of files to git in order to avoid issues with - // command length - const hashObjectResult: child_process.SpawnSyncReturns = Executable.spawnSync( - gitPath || 'git', - ['hash-object', '--stdin-paths'], - { currentWorkingDirectory: rootDirectory, input: filesToHash.join('\n') } - ); - - if (hashObjectResult.status !== 0) { - ensureGitMinimumVersion(gitPath); - - throw new Error( - `git hash-object exited with status ${hashObjectResult.status}: ${hashObjectResult.stderr}` - ); - } - - const hashStdout: string = hashObjectResult.stdout.trim(); - - // The result of "git hash-object" will be a list of file hashes delimited by newlines - const hashes: string[] = hashStdout.split('\n'); - - if (hashes.length !== filesToHash.length) { - throw new Error( - `Passed ${filesToHash.length} file paths to Git to hash, but received ${hashes.length} hashes.` - ); - } - - const len: number = hashes.length; - for (let i: number = 0; i < len; i++) { - const hash: string = hashes[i]; - const filePath: string = filesToHash[i]; - state.set(filePath, hash); - } + const [status] = await once(proc, 'exit'); + if (status !== 0) { + throw new Error(`git ${args[0]} exited with code ${status}: ${stderr}`); } + + return stdout; } /** * Gets the object hashes for all files in the Git repo, combining the current commit with working tree state. - * @param currentWorkingDirectory - The working directory. Only used to find the repository root. + * Uses async operations and runs all primary Git calls in parallel. + * @param rootDirectory - The root directory of the Git repository + * @param additionalRelativePathsToHash - Root-relative file paths to have Git hash and include in the results * @param gitPath - The path to the Git executable * @beta */ -export function getRepoState(currentWorkingDirectory: string, gitPath?: string): Map { - const rootDirectory: string = getRepoRoot(currentWorkingDirectory, gitPath); - - const lsTreeResult: child_process.SpawnSyncReturns = Executable.spawnSync( - gitPath || 'git', - ['--no-optional-locks', 'ls-tree', '-r', '-z', '--full-name', 'HEAD', '--'], - { - currentWorkingDirectory: rootDirectory +export async function getRepoStateAsync( + rootDirectory: string, + additionalRelativePathsToHash?: string[], + gitPath?: string +): Promise> { + const statePromise: Promise = spawnGitAsync( + gitPath, + STANDARD_GIT_OPTIONS.concat([ + 'ls-tree', + // Recursively expand trees + '-r', + // Use NUL as the separator + '-z', + // Specify the full path to files relative to the root + '--full-name', + // As of last commit + 'HEAD', + '--' + ]), + rootDirectory + ).then(parseGitLsTree); + const locallyModifiedPromise: Promise> = spawnGitAsync( + gitPath, + STANDARD_GIT_OPTIONS.concat([ + 'status', + // Use NUL as the separator + '-z', + // Include untracked files + '-u', + // Disable rename detection so that renames show up as add + delete + '--no-renames', + // Don't process submodules with this command; they'll be handled individually + '--ignore-submodules', + // Don't compare against the remote + '--no-ahead-behind', + '--' + ]), + rootDirectory + ).then(parseGitStatus); + + const hashPaths: string[] = []; + async function* getFilesToHash(): AsyncIterableIterator { + if (additionalRelativePathsToHash) { + for (const file of additionalRelativePathsToHash) { + hashPaths.push(file); + yield `${file}\n`; + } } - ); - if (lsTreeResult.status !== 0) { - ensureGitMinimumVersion(gitPath); + const [{ files }, locallyModified] = await Promise.all([statePromise, locallyModifiedPromise]); - throw new Error(`git ls-tree exited with status ${lsTreeResult.status}: ${lsTreeResult.stderr}`); + for (const [filePath, exists] of locallyModified) { + if (exists) { + hashPaths.push(filePath); + yield `${filePath}\n`; + } else { + files.delete(filePath); + } + } } - const { files, submodules } = parseGitLsTree(lsTreeResult.stdout); + const hashObjectPromise: Promise = spawnGitAsync( + gitPath, + STANDARD_GIT_OPTIONS.concat(['hash-object', '--stdin-paths']), + rootDirectory, + Readable.from(getFilesToHash(), { + encoding: 'utf-8', + objectMode: false, + autoDestroy: true + }) + ); - applyWorkingTreeState(rootDirectory, files, gitPath); + const [{ files, submodules }, hashObject] = await Promise.all([ + statePromise, + hashObjectPromise, + locallyModifiedPromise + ]); - const state: Map = files; + // The result of "git hash-object" will be a list of file hashes delimited by newlines + for (const [filePath, hash] of parseGitHashObject(hashObject, hashPaths)) { + files.set(filePath, hash); + } // Existence check for the .gitmodules file const hasSubmodules: boolean = submodules.size > 0 && FileSystem.exists(`${rootDirectory}/.gitmodules`); if (hasSubmodules) { + // Submodules are not the normal critical path. Accept serial performance rather than investing in complexity. + // Can revisit if submodules become more commonly used. for (const submodulePath of submodules.keys()) { - const submoduleState: Map = getRepoState(`${rootDirectory}/${submodulePath}`, gitPath); + const submoduleState: Map = await getRepoStateAsync( + `${rootDirectory}/${submodulePath}`, + [], + gitPath + ); for (const [filePath, hash] of submoduleState) { - state.set(`${submodulePath}/${filePath}`, hash); + files.set(`${submodulePath}/${filePath}`, hash); } } } - return state; + return files; } /** @@ -332,8 +423,7 @@ export function getRepoChanges( const result: child_process.SpawnSyncReturns = Executable.spawnSync( gitPath || 'git', - [ - '--no-optional-locks', + STANDARD_GIT_OPTIONS.concat([ 'diff-index', '--color=never', '--no-renames', @@ -342,7 +432,7 @@ export function getRepoChanges( '-z', revision, '--' - ], + ]), { currentWorkingDirectory: rootDirectory } @@ -382,7 +472,10 @@ export function ensureGitMinimumVersion(gitPath?: string): void { } function getGitVersion(gitPath?: string): IGitVersion { - const result: child_process.SpawnSyncReturns = Executable.spawnSync(gitPath || 'git', ['version']); + const result: child_process.SpawnSyncReturns = Executable.spawnSync( + gitPath || 'git', + STANDARD_GIT_OPTIONS.concat(['version']) + ); if (result.status !== 0) { throw new Error( diff --git a/libraries/package-deps-hash/src/index.ts b/libraries/package-deps-hash/src/index.ts index 855573b8589..2135572b5b7 100644 --- a/libraries/package-deps-hash/src/index.ts +++ b/libraries/package-deps-hash/src/index.ts @@ -18,6 +18,6 @@ export { IFileDiffStatus, getRepoChanges, getRepoRoot, - getRepoState, + getRepoStateAsync, ensureGitMinimumVersion } from './getRepoState'; diff --git a/libraries/package-deps-hash/src/test/__snapshots__/getRepoDeps.test.ts.snap b/libraries/package-deps-hash/src/test/__snapshots__/getRepoDeps.test.ts.snap new file mode 100644 index 00000000000..add7d8be46f --- /dev/null +++ b/libraries/package-deps-hash/src/test/__snapshots__/getRepoDeps.test.ts.snap @@ -0,0 +1,104 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`getRepoStateAsync can handle adding one file 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/a.txt": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`getRepoStateAsync can handle adding two files 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/a.txt": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/b.txt": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`getRepoStateAsync can handle changing one file 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file1.txt": "f2ba8f84ab5c1bce84a7b441cb1959cfc7093b7f", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`getRepoStateAsync can handle removing one file 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`getRepoStateAsync can handle uncommitted filenames with spaces and non-ASCII characters 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/a file name.txt": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/a file.txt": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/newFile批把.txt": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`getRepoStateAsync can parse committed files 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`getRepoStateAsync handles requests for additional files 1`] = ` +Object { + "nestedTestProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", + "nestedTestProject/src/file 1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file 2.txt": "a385f754ec4fede884a4864d090064d9aeef8ccb", + "testProject/file1.txt": "c7b2f707ac99ca522f965210a7b6b0b109863f34", + "testProject/file蝴蝶.txt": "ae814af81e16cb2ae8c57503c77e2cab6b5462ba", + "testProject/log.log": "2e65efe2a145dda7ee51d1741299f848e5bf752e", + "testProject/package.json": "18a1e415e56220fa5122428a4ef8eb8874756576", +} +`; + +exports[`parseGitHashObject can parse multiple entries 1`] = ` +Map { + "a" => "11", + "b" => "22", + "c" => "33", +} +`; + +exports[`parseGitHashObject can parse multiple entries with trailing whitespace 1`] = ` +Map { + "a" => "11", + "b" => "22", + "c" => "33", +} +`; + +exports[`parseGitHashObject throws if too few hashes are provided 1`] = `"Expected 3 hashes from \\"git hash-object\\" but received 2"`; + +exports[`parseGitHashObject throws if too many hashes are provided 1`] = `"Expected 2 hashes from \\"git hash-object\\" but received 3"`; diff --git a/libraries/package-deps-hash/src/test/getRepoDeps.test.ts b/libraries/package-deps-hash/src/test/getRepoDeps.test.ts index ffcf20f6141..b031efa33b6 100644 --- a/libraries/package-deps-hash/src/test/getRepoDeps.test.ts +++ b/libraries/package-deps-hash/src/test/getRepoDeps.test.ts @@ -4,9 +4,9 @@ import * as path from 'path'; import { execSync } from 'child_process'; -import { getRepoState, parseGitLsTree, getRepoRoot } from '../getRepoState'; +import { getRepoStateAsync, parseGitLsTree, getRepoRoot, parseGitHashObject } from '../getRepoState'; -import { FileSystem, FileConstants } from '@rushstack/node-core-library'; +import { FileSystem } from '@rushstack/node-core-library'; const SOURCE_PATH: string = path.join(__dirname).replace(path.join('lib', 'test'), path.join('src', 'test')); @@ -15,19 +15,20 @@ const TEST_PROJECT_PATH: string = path.join(SOURCE_PATH, 'testProject'); const FILTERS: string[] = [`testProject/`, `nestedTestProject/`]; -function getRelevantEntries(results: Map): Map { - const relevantResults: Map = new Map(); +function checkSnapshot(results: Map): void { + const relevantResults: Record = {}; for (const [key, hash] of results) { if (key.startsWith(TEST_PREFIX)) { const partialKey: string = key.slice(TEST_PREFIX.length); for (const filter of FILTERS) { if (partialKey.startsWith(filter)) { - relevantResults.set(partialKey, hash); + relevantResults[partialKey] = hash; } } } } - return relevantResults; + + expect(relevantResults).toMatchSnapshot(); } describe(getRepoRoot.name, () => { @@ -83,114 +84,78 @@ describe(parseGitLsTree.name, () => { }); }); -describe(getRepoState.name, () => { - it('can parse committed files', () => { - const results: Map = getRepoState(__dirname); - const filteredResults: Map = getRelevantEntries(results); - const expectedFiles: Map = new Map( - Object.entries({ - 'nestedTestProject/src/file 1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - [`nestedTestProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576', - 'testProject/file1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - 'testProject/file 2.txt': 'a385f754ec4fede884a4864d090064d9aeef8ccb', - 'testProject/file蝴蝶.txt': 'ae814af81e16cb2ae8c57503c77e2cab6b5462ba', - [`testProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576' - }) - ); - - for (const [filePath, hash] of expectedFiles) { - expect(filteredResults.get(filePath)).toEqual(hash); - } - expect(filteredResults.size).toEqual(expectedFiles.size); +describe(parseGitHashObject.name, () => { + it('can handle requesting zero entries', () => { + const results: Map = new Map(parseGitHashObject('', [])); + expect(results.size).toEqual(0); + }); + + it('can parse multiple entries', () => { + const results: Map = new Map(parseGitHashObject('11\n22\n33', ['a', 'b', 'c'])); + expect(results).toMatchSnapshot(); + }); + + it('can parse multiple entries with trailing whitespace', () => { + const results: Map = new Map(parseGitHashObject('11\n22\n33\n\n', ['a', 'b', 'c'])); + expect(results).toMatchSnapshot(); + }); + + it('throws if too few hashes are provided', () => { + expect(() => { + new Map(parseGitHashObject('11\n22', ['a', 'b', 'c'])); + }).toThrowErrorMatchingSnapshot(); }); - it('can handle adding one file', () => { + it('throws if too many hashes are provided', () => { + expect(() => { + new Map(parseGitHashObject('11\n22\n33', ['a', 'b'])); + }).toThrowErrorMatchingSnapshot(); + }); +}); + +describe(getRepoStateAsync.name, () => { + it('can parse committed files', async () => { + const results: Map = await getRepoStateAsync(__dirname); + checkSnapshot(results); + }); + + it('can handle adding one file', async () => { const tempFilePath: string = path.join(TEST_PROJECT_PATH, 'a.txt'); FileSystem.writeFile(tempFilePath, 'a'); - const results: Map = getRepoState(__dirname); - const filteredResults: Map = getRelevantEntries(results); - try { - const expectedFiles: Map = new Map( - Object.entries({ - 'nestedTestProject/src/file 1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - [`nestedTestProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576', - 'testProject/a.txt': '2e65efe2a145dda7ee51d1741299f848e5bf752e', - 'testProject/file1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - 'testProject/file 2.txt': 'a385f754ec4fede884a4864d090064d9aeef8ccb', - 'testProject/file蝴蝶.txt': 'ae814af81e16cb2ae8c57503c77e2cab6b5462ba', - [`testProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576' - }) - ); - - for (const [filePath, hash] of expectedFiles) { - expect(filteredResults.get(filePath)).toEqual(hash); - } - expect(filteredResults.size).toEqual(expectedFiles.size); + const results: Map = await getRepoStateAsync(__dirname); + checkSnapshot(results); } finally { FileSystem.deleteFile(tempFilePath); } }); - it('can handle adding two files', () => { + it('can handle adding two files', async () => { const tempFilePath1: string = path.join(TEST_PROJECT_PATH, 'a.txt'); const tempFilePath2: string = path.join(TEST_PROJECT_PATH, 'b.txt'); FileSystem.writeFile(tempFilePath1, 'a'); FileSystem.writeFile(tempFilePath2, 'a'); - const results: Map = getRepoState(__dirname); - const filteredResults: Map = getRelevantEntries(results); - try { - const expectedFiles: Map = new Map( - Object.entries({ - 'nestedTestProject/src/file 1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - [`nestedTestProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576', - 'testProject/a.txt': '2e65efe2a145dda7ee51d1741299f848e5bf752e', - 'testProject/b.txt': '2e65efe2a145dda7ee51d1741299f848e5bf752e', - 'testProject/file1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - 'testProject/file 2.txt': 'a385f754ec4fede884a4864d090064d9aeef8ccb', - 'testProject/file蝴蝶.txt': 'ae814af81e16cb2ae8c57503c77e2cab6b5462ba', - [`testProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576' - }) - ); - - for (const [filePath, hash] of expectedFiles) { - expect(filteredResults.get(filePath)).toEqual(hash); - } - expect(filteredResults.size).toEqual(expectedFiles.size); + const results: Map = await getRepoStateAsync(__dirname); + checkSnapshot(results); } finally { FileSystem.deleteFile(tempFilePath1); FileSystem.deleteFile(tempFilePath2); } }); - it('can handle removing one file', () => { + it('can handle removing one file', async () => { const testFilePath: string = path.join(TEST_PROJECT_PATH, 'file1.txt'); FileSystem.deleteFile(testFilePath); - const results: Map = getRepoState(__dirname); - const filteredResults: Map = getRelevantEntries(results); - try { - const expectedFiles: Map = new Map( - Object.entries({ - 'nestedTestProject/src/file 1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - [`nestedTestProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576', - 'testProject/file 2.txt': 'a385f754ec4fede884a4864d090064d9aeef8ccb', - 'testProject/file蝴蝶.txt': 'ae814af81e16cb2ae8c57503c77e2cab6b5462ba', - [`testProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576' - }) - ); - - for (const [filePath, hash] of expectedFiles) { - expect(filteredResults.get(filePath)).toEqual(hash); - } - expect(filteredResults.size).toEqual(expectedFiles.size); + const results: Map = await getRepoStateAsync(__dirname); + checkSnapshot(results); } finally { execSync(`git checkout --force HEAD -- ${TEST_PREFIX}testProject/file1.txt`, { stdio: 'ignore', @@ -199,30 +164,14 @@ describe(getRepoState.name, () => { } }); - it('can handle changing one file', () => { + it('can handle changing one file', async () => { const testFilePath: string = path.join(TEST_PROJECT_PATH, 'file1.txt'); FileSystem.writeFile(testFilePath, 'abc'); - const results: Map = getRepoState(__dirname); - const filteredResults: Map = getRelevantEntries(results); - try { - const expectedFiles: Map = new Map( - Object.entries({ - 'nestedTestProject/src/file 1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - [`nestedTestProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576', - 'testProject/file1.txt': 'f2ba8f84ab5c1bce84a7b441cb1959cfc7093b7f', - 'testProject/file 2.txt': 'a385f754ec4fede884a4864d090064d9aeef8ccb', - 'testProject/file蝴蝶.txt': 'ae814af81e16cb2ae8c57503c77e2cab6b5462ba', - [`testProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576' - }) - ); - - for (const [filePath, hash] of expectedFiles) { - expect(filteredResults.get(filePath)).toEqual(hash); - } - expect(filteredResults.size).toEqual(expectedFiles.size); + const results: Map = await getRepoStateAsync(__dirname); + checkSnapshot(results); } finally { execSync(`git checkout --force HEAD -- ${TEST_PREFIX}testProject/file1.txt`, { stdio: 'ignore', @@ -231,7 +180,7 @@ describe(getRepoState.name, () => { } }); - it('can handle uncommitted filenames with spaces and non-ASCII characters', () => { + it('can handle uncommitted filenames with spaces and non-ASCII characters', async () => { const tempFilePath1: string = path.join(TEST_PROJECT_PATH, 'a file.txt'); const tempFilePath2: string = path.join(TEST_PROJECT_PATH, 'a file name.txt'); const tempFilePath3: string = path.join(TEST_PROJECT_PATH, 'newFile批把.txt'); @@ -240,32 +189,28 @@ describe(getRepoState.name, () => { FileSystem.writeFile(tempFilePath2, 'a'); FileSystem.writeFile(tempFilePath3, 'a'); - const results: Map = getRepoState(__dirname); - const filteredResults: Map = getRelevantEntries(results); - try { - const expectedFiles: Map = new Map( - Object.entries({ - 'nestedTestProject/src/file 1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - [`nestedTestProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576', - 'testProject/a file.txt': '2e65efe2a145dda7ee51d1741299f848e5bf752e', - 'testProject/a file name.txt': '2e65efe2a145dda7ee51d1741299f848e5bf752e', - 'testProject/file1.txt': 'c7b2f707ac99ca522f965210a7b6b0b109863f34', - 'testProject/file 2.txt': 'a385f754ec4fede884a4864d090064d9aeef8ccb', - 'testProject/file蝴蝶.txt': 'ae814af81e16cb2ae8c57503c77e2cab6b5462ba', - 'testProject/newFile批把.txt': '2e65efe2a145dda7ee51d1741299f848e5bf752e', - [`testProject/${FileConstants.PackageJson}`]: '18a1e415e56220fa5122428a4ef8eb8874756576' - }) - ); - - for (const [filePath, hash] of expectedFiles) { - expect(filteredResults.get(filePath)).toEqual(hash); - } - expect(filteredResults.size).toEqual(expectedFiles.size); + const results: Map = await getRepoStateAsync(__dirname); + checkSnapshot(results); } finally { FileSystem.deleteFile(tempFilePath1); FileSystem.deleteFile(tempFilePath2); FileSystem.deleteFile(tempFilePath3); } }); + + it('handles requests for additional files', async () => { + const tempFilePath1: string = path.join(TEST_PROJECT_PATH, 'log.log'); + + FileSystem.writeFile(tempFilePath1, 'a'); + + try { + const results: Map = await getRepoStateAsync(__dirname, [ + `${TEST_PREFIX}testProject/log.log` + ]); + checkSnapshot(results); + } finally { + FileSystem.deleteFile(tempFilePath1); + } + }); }); diff --git a/libraries/rig-package/CHANGELOG.json b/libraries/rig-package/CHANGELOG.json index cd960e1367c..b3223652403 100644 --- a/libraries/rig-package/CHANGELOG.json +++ b/libraries/rig-package/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/rig-package", "entries": [ + { + "version": "0.3.18", + "tag": "@rushstack/rig-package_v0.3.18", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + } + ] + } + }, { "version": "0.3.17", "tag": "@rushstack/rig-package_v0.3.17", diff --git a/libraries/rig-package/CHANGELOG.md b/libraries/rig-package/CHANGELOG.md index cf6410dd0d7..1750a9f34d2 100644 --- a/libraries/rig-package/CHANGELOG.md +++ b/libraries/rig-package/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log - @rushstack/rig-package -This log was last generated on Mon, 10 Oct 2022 15:23:44 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:50 GMT and should not be manually modified. + +## 0.3.18 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ ## 0.3.17 Mon, 10 Oct 2022 15:23:44 GMT diff --git a/libraries/rig-package/package.json b/libraries/rig-package/package.json index 73720b1dc2e..b413fef8b79 100644 --- a/libraries/rig-package/package.json +++ b/libraries/rig-package/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rig-package", - "version": "0.3.17", + "version": "0.3.18", "description": "A system for sharing tool configurations between projects without duplicating config files.", "main": "lib/index.js", "typings": "dist/rig-package.d.ts", @@ -21,10 +21,10 @@ }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft-node-rig": "1.11.0", - "@rushstack/heft": "0.48.0", + "@rushstack/heft-node-rig": "1.11.14", + "@rushstack/heft": "0.49.3", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/resolve": "1.20.2", "ajv": "~6.12.5", "resolve": "~1.22.1" diff --git a/libraries/rush-lib/assets/rush-init/common/config/rush/command-line.json b/libraries/rush-lib/assets/rush-init/common/config/rush/command-line.json index 534365ae4d0..8b972ba7734 100644 --- a/libraries/rush-lib/assets/rush-init/common/config/rush/command-line.json +++ b/libraries/rush-lib/assets/rush-init/common/config/rush/command-line.json @@ -15,17 +15,16 @@ { /** * (Required) Determines the type of custom command. - * Rush's "bulk" commands are invoked separately for each project. Rush will look in - * each project's package.json file for a "scripts" entry whose name matches the - * command name. By default, the command will run for every project in the repo, - * according to the dependency graph (similar to how "rush build" works). + * Rush's "bulk" commands are invoked separately for each project. By default, the command will run for + * every project in the repo, according to the dependency graph (similar to how "rush build" works). * The set of projects can be restricted e.g. using the "--to" or "--from" parameters. */ "commandKind": "bulk", /** * (Required) The name that will be typed as part of the command line. This is also the name - * of the "scripts" hook in the project's package.json file. + * of the "scripts" hook in the project's package.json file (if "shellCommand" is not specified). + * * The name should be comprised of lower case words separated by hyphens or colons. The name should include an * English verb (e.g. "deploy"). Use a hyphen to separate words (e.g. "upload-docs"). A group of related commands * can be prefixed with a colon (e.g. "docs:generate", "docs:deploy", "docs:serve", etc). @@ -61,6 +60,16 @@ */ "safeForSimultaneousRushProcesses": false, + /** + * (Optional) If the `shellCommand` field is set for a bulk command, Rush will invoke it for each + * selected project; otherwise, Rush will invoke the package.json `"scripts"` entry matching Rush command name. + * + * The string is the path to a script that will be invoked using the OS shell. The working directory will be + * the folder that contains rush.json. If custom parameters are associated with this command, their + * values will be appended to the end of this string. + */ + // "shellCommand": "node common/scripts/my-bulk-command.js", + /** * (Required) If true, then this command is safe to be run in parallel, i.e. executed * simultaneously for multiple projects. Similar to "rush build", regardless of parallelism diff --git a/libraries/rush-lib/assets/rush-init/common/config/rush/experiments.json b/libraries/rush-lib/assets/rush-init/common/config/rush/experiments.json index 29539c4876b..151718a75fd 100644 --- a/libraries/rush-lib/assets/rush-init/common/config/rush/experiments.json +++ b/libraries/rush-lib/assets/rush-init/common/config/rush/experiments.json @@ -46,5 +46,10 @@ * If true, perform a clean install after when running `rush install` or `rush update` if the * `.npmrc` file has changed since the last install. */ - /*[LINE "HYPOTHETICAL"]*/ "cleanInstallAfterNpmrcChanges": true + /*[LINE "HYPOTHETICAL"]*/ "cleanInstallAfterNpmrcChanges": true, + + /** + * If true, print the outputs of shell commands defined in event hooks to the console. + */ + /*[LINE "HYPOTHETICAL"]*/ "printEventHooksOutputToConsole": true } diff --git a/libraries/rush-lib/assets/rush-init/rush.json b/libraries/rush-lib/assets/rush-init/rush.json index 9842c4bd120..12012e5c9f5 100644 --- a/libraries/rush-lib/assets/rush-init/rush.json +++ b/libraries/rush-lib/assets/rush-init/rush.json @@ -42,7 +42,7 @@ * LTS schedule: https://nodejs.org/en/about/releases/ * LTS versions: https://nodejs.org/en/download/releases/ */ - "nodeSupportedVersionRange": ">=12.13.0 <13.0.0 || >=14.15.0 <15.0.0 || >=16.13.0 <17.0.0", + "nodeSupportedVersionRange": ">=14.15.0 <15.0.0 || >=16.13.0 <17.0.0 || >=18.15.0 <19.0.0", /** * If the version check above fails, Rush will display a message showing the current diff --git a/libraries/rush-lib/package.json b/libraries/rush-lib/package.json index c27e1f3309f..69bf3615371 100644 --- a/libraries/rush-lib/package.json +++ b/libraries/rush-lib/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/rush-lib", - "version": "5.88.0", + "version": "5.95.0", "description": "A library for writing scripts that interact with the Rush tool", "repository": { "type": "git", @@ -30,11 +30,12 @@ "@rushstack/stream-collator": "workspace:*", "@rushstack/terminal": "workspace:*", "@rushstack/ts-command-line": "workspace:*", - "@types/node-fetch": "1.6.9", + "@types/node-fetch": "2.6.2", "@yarnpkg/lockfile": "~1.0.2", "builtin-modules": "~3.1.0", "cli-table": "~0.3.1", "colors": "~1.2.1", + "dependency-path": "~9.2.8", "figures": "3.0.0", "git-repo-info": "~2.1.0", "glob-escape": "~0.0.2", @@ -72,7 +73,7 @@ "@types/inquirer": "7.3.1", "@types/js-yaml": "3.12.1", "@types/lodash": "4.14.116", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/npm-package-arg": "6.1.0", "@types/npm-packlist": "~1.1.1", "@types/read-package-tree": "5.1.0", @@ -81,11 +82,17 @@ "@types/ssri": "~7.1.0", "@types/strict-uri-encode": "2.0.0", "@types/tar": "6.1.1", - "@types/webpack-env": "1.13.0", - "webpack": "~5.68.0" + "@types/webpack-env": "1.18.0", + "webpack": "~5.75.0" }, "publishOnlyDependencies": { "@rushstack/rush-amazon-s3-build-cache-plugin": "workspace:*", "@rushstack/rush-azure-storage-build-cache-plugin": "workspace:*" - } + }, + "sideEffects": [ + "lib-esnext/start-pnpm.js", + "lib-esnext/start.js", + "lib-esnext/startx.js", + "lib-esnext/utilities/SetRushLibPath.js" + ] } diff --git a/libraries/rush-lib/src/api/CommandLineConfiguration.ts b/libraries/rush-lib/src/api/CommandLineConfiguration.ts index e05587797cd..b8366ba0da6 100644 --- a/libraries/rush-lib/src/api/CommandLineConfiguration.ts +++ b/libraries/rush-lib/src/api/CommandLineConfiguration.ts @@ -36,7 +36,7 @@ export interface IPhase { name: string; /** - * If set to "true," this this phase was generated from a bulk command, and + * If set to `true,` this this phase was generated from a bulk command, and * was not explicitly defined in the command-line.json file. */ isSynthetic: boolean; @@ -44,7 +44,7 @@ export interface IPhase { /** * This property is used in the name of the filename for the logs generated by this * phase. This is a filesystem-safe version of the phase name. For example, - * a phase with name "_phase:compile" has a `logFilenameIdentifier` of "_phase_compile". + * a phase with name `_phase:compile` has a `logFilenameIdentifier` of `_phase_compile`. */ logFilenameIdentifier: string; @@ -62,14 +62,26 @@ export interface IPhase { }; /** - * Normally Rush requires that each project's package.json has a \"scripts\" entry matching the phase name. To disable this check, set \"ignoreMissingScript\" to true. + * Normally Rush requires that each project's package.json has a `"scripts"` entry matching the phase name. + * To disable this check, set `ignoreMissingScript` to true. */ ignoreMissingScript: boolean; /** - * By default, Rush returns a nonzero exit code if errors or warnings occur during a command. If this option is set to \"true\", Rush will return a zero exit code if warnings occur during the execution of this phase. + * By default, Rush returns a nonzero exit code if errors or warnings occur during a command. If this option is + * set to `true`, Rush will return a zero exit code if warnings occur during the execution of this phase. */ allowWarningsOnSuccess: boolean; + + /** + * (Optional) If the `shellCommand` field is set for a bulk command, Rush will invoke it for each + * selected project; otherwise, Rush will invoke the package.json `"scripts"` entry matching Rush command/phase name. + * + * This string is the path to a script that will be invoked using the OS shell. The working directory will be + * the folder that contains rush.json. If custom parameters are associated with this command, their + * values will be appended to the end of this string. + */ + shellCommand?: string; } export interface ICommandWithParameters { @@ -84,6 +96,10 @@ export interface IPhasedCommandConfig extends IPhasedCommandWithoutPhasesJson, I isSynthetic: boolean; disableBuildCache?: boolean; + originalPhases: Set; + /** + * Include upstream and self phases. + */ phases: Set; /** @@ -285,6 +301,7 @@ export class CommandLineConfiguration { const commandsJson: ICommandLineJson['commands'] = commandLineJson?.commands; let buildCommandPhases: IPhasedCommandConfig['phases'] | undefined; + let buildCommandOriginalPhases: IPhasedCommandConfig['phases'] | undefined; if (commandsJson) { for (const command of commandsJson) { if (this.commands.has(command.name)) { @@ -297,6 +314,7 @@ export class CommandLineConfiguration { let normalizedCommand: Command; switch (command.commandKind) { case RushConstants.phasedCommandKind: { + const originalPhases: Set = new Set(); const commandPhases: Set = new Set(); const watchPhases: Set = new Set(); @@ -304,6 +322,7 @@ export class CommandLineConfiguration { ...command, isSynthetic: false, associatedParameters: new Set(), + originalPhases, phases: commandPhases, watchPhases, alwaysWatch: false, @@ -319,6 +338,7 @@ export class CommandLineConfiguration { ); } + originalPhases.add(phase); commandPhases.add(phase); } @@ -395,6 +415,7 @@ export class CommandLineConfiguration { } else if (normalizedCommand.name === RushConstants.buildCommandName) { // Record the build command phases in case we need to construct a synthetic "rebuild" command buildCommandPhases = normalizedCommand.phases; + buildCommandOriginalPhases = normalizedCommand.originalPhases; } } @@ -409,12 +430,13 @@ export class CommandLineConfiguration { buildCommand = this._translateBulkCommandToPhasedCommand(DEFAULT_BUILD_COMMAND_JSON); buildCommand.disableBuildCache = DEFAULT_BUILD_COMMAND_JSON.disableBuildCache; buildCommandPhases = buildCommand.phases; + buildCommandOriginalPhases = buildCommand.originalPhases; this.commands.set(buildCommand.name, buildCommand); } if (!this.commands.has(RushConstants.rebuildCommandName)) { // If a rebuild command was not specified in the config file, add the default rebuild command - if (!buildCommandPhases) { + if (!buildCommandPhases || !buildCommandOriginalPhases) { throw new Error(`Phases for the "${RushConstants.buildCommandName}" were not found.`); } @@ -425,6 +447,7 @@ export class CommandLineConfiguration { phases: buildCommandPhases, disableBuildCache: DEFAULT_REBUILD_COMMAND_JSON.disableBuildCache, associatedParameters: buildCommand.associatedParameters, // rebuild should share build's parameters in this case, + originalPhases: buildCommandOriginalPhases, watchPhases: new Set(), alwaysWatch: false, alwaysInstall: undefined @@ -658,7 +681,8 @@ export class CommandLineConfiguration { upstream: new Set() }, ignoreMissingScript: !!command.ignoreMissingScript, - allowWarningsOnSuccess: !!command.allowWarningsInSuccessfulBuild + allowWarningsOnSuccess: !!command.allowWarningsInSuccessfulBuild, + shellCommand: command.shellCommand }; if (!command.ignoreDependencyOrder) { @@ -676,6 +700,7 @@ export class CommandLineConfiguration { isSynthetic: true, associatedParameters: new Set(), phases, + originalPhases: phases, // Bulk commands used the same phases for watch as for regular execution. Preserve behavior. watchPhases: command.watchForChanges ? phases : new Set(), alwaysWatch: !!command.watchForChanges, diff --git a/libraries/rush-lib/src/api/CommandLineJson.ts b/libraries/rush-lib/src/api/CommandLineJson.ts index 3d140c9473f..c9abe5468b2 100644 --- a/libraries/rush-lib/src/api/CommandLineJson.ts +++ b/libraries/rush-lib/src/api/CommandLineJson.ts @@ -14,6 +14,7 @@ export interface IBaseCommandJson { description?: string; safeForSimultaneousRushProcesses: boolean; autoinstallerName?: string; + shellCommand?: string; } /** diff --git a/libraries/rush-lib/src/api/EnvironmentConfiguration.ts b/libraries/rush-lib/src/api/EnvironmentConfiguration.ts index 3bd511504b7..99b34ff369b 100644 --- a/libraries/rush-lib/src/api/EnvironmentConfiguration.ts +++ b/libraries/rush-lib/src/api/EnvironmentConfiguration.ts @@ -153,6 +153,12 @@ export enum EnvironmentVariableNames { */ RUSH_TAR_BINARY_PATH = 'RUSH_TAR_BINARY_PATH', + /** + * Internal variable that explicitly specifies the path for the version of `@microsoft/rush-lib` being executed. + * Will be set upon loading Rush. + */ + RUSH_LIB_PATH = '_RUSH_LIB_PATH', + /** * When Rush executes shell scripts, it sometimes changes the working directory to be a project folder or * the repository root folder. The original working directory (where the Rush command was invoked) is assigned @@ -441,6 +447,7 @@ export class EnvironmentConfiguration { break; case EnvironmentVariableNames.RUSH_INVOKED_FOLDER: + case EnvironmentVariableNames.RUSH_LIB_PATH: // Assigned by Rush itself break; diff --git a/libraries/rush-lib/src/api/ExperimentsConfiguration.ts b/libraries/rush-lib/src/api/ExperimentsConfiguration.ts index 17fddb8d731..b428d50d1f3 100644 --- a/libraries/rush-lib/src/api/ExperimentsConfiguration.ts +++ b/libraries/rush-lib/src/api/ExperimentsConfiguration.ts @@ -53,6 +53,11 @@ export interface IExperimentsJson { * `.npmrc` file has changed since the last install. */ cleanInstallAfterNpmrcChanges?: boolean; + + /** + * If true, print the outputs of shell commands defined in event hooks to the console. + */ + printEventHooksOutputToConsole?: boolean; } /** diff --git a/libraries/rush-lib/src/api/PackageJsonEditor.ts b/libraries/rush-lib/src/api/PackageJsonEditor.ts index a417d09b1ab..7a153ce6299 100644 --- a/libraries/rush-lib/src/api/PackageJsonEditor.ts +++ b/libraries/rush-lib/src/api/PackageJsonEditor.ts @@ -66,7 +66,10 @@ export class PackageJsonEditor { public readonly filePath: string; - private constructor(filepath: string, data: IPackageJson) { + /** + * @internal + */ + protected constructor(filepath: string, data: IPackageJson) { this.filePath = filepath; this._sourceData = data; this._modified = false; diff --git a/libraries/rush-lib/src/api/Rush.ts b/libraries/rush-lib/src/api/Rush.ts index 9f1b6ef6b5c..3fcdc1cd221 100644 --- a/libraries/rush-lib/src/api/Rush.ts +++ b/libraries/rush-lib/src/api/Rush.ts @@ -1,7 +1,16 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import { IPackageJson, ITerminalProvider, PackageJsonLookup } from '@rushstack/node-core-library'; +import * as path from 'path'; + +import { + InternalError, + IPackageJson, + ITerminalProvider, + PackageJsonLookup +} from '@rushstack/node-core-library'; + +import '../utilities/SetRushLibPath'; import { RushCommandLineParser } from '../cli/RushCommandLineParser'; import { RushStartupBanner } from '../cli/RushStartupBanner'; @@ -50,6 +59,7 @@ export interface ILaunchOptions { */ export class Rush { private static __rushLibPackageJson: IPackageJson | undefined = undefined; + private static __rushLibPackageFolder: string | undefined = undefined; /** * This API is used by the `@microsoft/rush` front end to launch the "rush" command-line. @@ -117,11 +127,25 @@ export class Rush { * @internal */ public static get _rushLibPackageJson(): IPackageJson { + Rush._ensureOwnPackageJsonIsLoaded(); + return Rush.__rushLibPackageJson!; + } + + public static get _rushLibPackageFolder(): string { + Rush._ensureOwnPackageJsonIsLoaded(); + return Rush.__rushLibPackageFolder!; + } + + private static _ensureOwnPackageJsonIsLoaded(): void { if (!Rush.__rushLibPackageJson) { - Rush.__rushLibPackageJson = PackageJsonLookup.loadOwnPackageJson(__dirname); + const packageJsonFilePath: string | undefined = + PackageJsonLookup.instance.tryGetPackageJsonFilePathFor(__dirname); + if (!packageJsonFilePath) { + throw new InternalError('Unable to locate the package.json file for this module'); + } + Rush.__rushLibPackageFolder = path.dirname(packageJsonFilePath); + Rush.__rushLibPackageJson = PackageJsonLookup.instance.loadPackageJson(packageJsonFilePath); } - - return Rush.__rushLibPackageJson; } /** diff --git a/libraries/rush-lib/src/api/RushConfigurationProject.ts b/libraries/rush-lib/src/api/RushConfigurationProject.ts index b29f600178a..7af194badd2 100644 --- a/libraries/rush-lib/src/api/RushConfigurationProject.ts +++ b/libraries/rush-lib/src/api/RushConfigurationProject.ts @@ -7,10 +7,11 @@ import { JsonFile, IPackageJson, FileSystem, FileConstants, JsonSyntax } from '@ import { RushConfiguration } from '../api/RushConfiguration'; import { VersionPolicy, LockStepVersionPolicy } from './VersionPolicy'; -import { PackageJsonEditor } from './PackageJsonEditor'; +import type { PackageJsonEditor } from './PackageJsonEditor'; import { RushConstants } from '../logic/RushConstants'; import { PackageNameParsers } from './PackageNameParsers'; import { DependencySpecifier, DependencySpecifierType } from '../logic/DependencySpecifier'; +import { SaveCallbackPackageJsonEditor } from './SaveCallbackPackageJsonEditor'; /** * This represents the JSON data object for a project entry in the rush.json configuration file. @@ -61,6 +62,7 @@ export class RushConfigurationProject { private _versionPolicy: VersionPolicy | undefined = undefined; private _dependencyProjects: Set | undefined = undefined; private _consumingProjects: Set | undefined = undefined; + private _packageJson: IPackageJson; /** * The name of the NPM package. An error is reported if this name is not @@ -121,7 +123,9 @@ export class RushConfigurationProject { /** * The parsed NPM "package.json" file from projectFolder. */ - public readonly packageJson: IPackageJson; + public get packageJson(): IPackageJson { + return this._packageJson; + } /** * A useful wrapper around the package.json file for making modifications @@ -208,7 +212,7 @@ export class RushConfigurationProject { const packageJsonFilename: string = path.join(this.projectFolder, FileConstants.PackageJson); try { - this.packageJson = JsonFile.load(packageJsonFilename, { jsonSyntax: JsonSyntax.Strict }); + this._packageJson = JsonFile.load(packageJsonFilename, { jsonSyntax: JsonSyntax.Strict }); } catch (error) { if (FileSystem.isNotExistError(error as Error)) { throw new Error( @@ -258,7 +262,15 @@ export class RushConfigurationProject { ); } - this.packageJsonEditor = PackageJsonEditor.fromObject(this.packageJson, packageJsonFilename); + this.packageJsonEditor = SaveCallbackPackageJsonEditor.fromObjectWithCallback({ + object: this.packageJson, + filename: packageJsonFilename, + onSaved: (newObject) => { + // Just update the in-memory copy, don't bother doing the validation again + this._packageJson = newObject; + this._dependencyProjects = undefined; // Reset the cached dependency projects + } + }); this.tempProjectName = tempProjectName; diff --git a/libraries/rush-lib/src/api/RushInternals.ts b/libraries/rush-lib/src/api/RushInternals.ts new file mode 100644 index 00000000000..6abf2e7122e --- /dev/null +++ b/libraries/rush-lib/src/api/RushInternals.ts @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { Rush } from './Rush'; + +/** + * Used by rush-sdk to access internals of rush-lib. + * @internal + */ +export class RushInternals { + /** + * Used by rush-sdk to load an internal API specified by its module path. + * + * @param srcImportPath - The module path to load. For example, to refer to `src/api/ChangeFile.ts`, + * the `srcImportPath` would be `"api/ChangeFile"`. + * @returns the module object as would be returned by `require()` + */ + public static loadModule(srcImportPath: string): unknown { + const libPath: string = `${Rush._rushLibPackageFolder}/lib/${srcImportPath}`; + try { + return require(libPath); + } catch (e) { + throw new Error( + `The specified internal API "src/${srcImportPath}" is not implemented by Rush ${Rush.version}` + ); + } + } +} diff --git a/libraries/rush-lib/src/api/RushProjectConfiguration.ts b/libraries/rush-lib/src/api/RushProjectConfiguration.ts index bb5aa5b432f..0245b8c53a9 100644 --- a/libraries/rush-lib/src/api/RushProjectConfiguration.ts +++ b/libraries/rush-lib/src/api/RushProjectConfiguration.ts @@ -76,6 +76,17 @@ export interface IOperationSettings { * you list them here. */ dependsOnEnvVars?: string[]; + + /** + * An optional list of glob (minimatch) patterns pointing to files that can affect this operation. + * The hash values of the contents of these files will become part of the final hash when reading + * and writing the build cache. + * + * Note: if a particular file will be matched by patterns provided by both `incrementalBuildIgnoredGlobs` and + * `dependsOnAdditionalFiles` options - `dependsOnAdditionalFiles` will win and the file will be included + * calculating final hash value when reading and writing the build cache + */ + dependsOnAdditionalFiles?: string[]; } interface IOldRushProjectJson { diff --git a/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts b/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts new file mode 100644 index 00000000000..3543310304d --- /dev/null +++ b/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { IPackageJson } from '@rushstack/node-core-library'; +import { PackageJsonEditor } from './PackageJsonEditor'; + +export interface IFromObjectOptions { + object: IPackageJson; + filename: string; + onSaved?: (newObject: IPackageJson) => void; +} + +export class SaveCallbackPackageJsonEditor extends PackageJsonEditor { + private readonly _onSaved: ((newObject: IPackageJson) => void) | undefined; + + private constructor(options: IFromObjectOptions) { + super(options.filename, options.object); + + this._onSaved = options.onSaved; + } + + public static fromObjectWithCallback(options: IFromObjectOptions): SaveCallbackPackageJsonEditor { + return new SaveCallbackPackageJsonEditor(options); + } + + public saveIfModified(): boolean { + const modified: boolean = super.saveIfModified(); + if (this._onSaved) { + this._onSaved(this.saveToObject()); + } + + return modified; + } +} diff --git a/libraries/rush-lib/src/api/test/CommandLineConfiguration.test.ts b/libraries/rush-lib/src/api/test/CommandLineConfiguration.test.ts index ea069525820..7bb8fe2d795 100644 --- a/libraries/rush-lib/src/api/test/CommandLineConfiguration.test.ts +++ b/libraries/rush-lib/src/api/test/CommandLineConfiguration.test.ts @@ -2,7 +2,13 @@ // See LICENSE in the project root for license information. import { RushConstants } from '../../logic/RushConstants'; -import { Command, CommandLineConfiguration, IParameterJson, IPhase } from '../CommandLineConfiguration'; +import { + IPhasedCommandConfig, + CommandLineConfiguration, + IParameterJson, + IPhase, + Command +} from '../CommandLineConfiguration'; describe(CommandLineConfiguration.name, () => { it('Forbids a misnamed phase', () => { @@ -262,4 +268,30 @@ describe(CommandLineConfiguration.name, () => { expect(phaseParametersArray).toHaveLength(0); }); }); + + describe('shellCommand in bulk command', () => { + it('get "custom-shell-command-echo" command', () => { + const commandLineConfiguration: CommandLineConfiguration = new CommandLineConfiguration({ + commands: [ + { + commandKind: 'bulk', + name: 'custom-shell-command-echo', + summary: 'custom define bulk shellCommand echo', + enableParallelism: true, + safeForSimultaneousRushProcesses: false, + shellCommand: 'echo' + } + ] + }); + + const command: IPhasedCommandConfig | undefined = commandLineConfiguration.commands.get( + 'custom-shell-command-echo' + ) as IPhasedCommandConfig; + expect(command).toBeDefined(); + expect(command?.phases).toBeDefined(); + const phase = [...command?.phases][0]; + expect(phase.name).toEqual('custom-shell-command-echo'); + expect(phase.shellCommand).toEqual('echo'); + }); + }); }); diff --git a/libraries/rush-lib/src/api/test/RushConfiguration.test.ts b/libraries/rush-lib/src/api/test/RushConfiguration.test.ts index 47117397031..893b0c30508 100644 --- a/libraries/rush-lib/src/api/test/RushConfiguration.test.ts +++ b/libraries/rush-lib/src/api/test/RushConfiguration.test.ts @@ -3,12 +3,13 @@ import * as path from 'path'; -import { Path, Text } from '@rushstack/node-core-library'; +import { JsonFile, Path, Text } from '@rushstack/node-core-library'; import { RushConfiguration } from '../RushConfiguration'; import { ApprovedPackagesPolicy } from '../ApprovedPackagesPolicy'; import { RushConfigurationProject } from '../RushConfigurationProject'; import { Utilities } from '../../utilities/Utilities'; import { EnvironmentConfiguration } from '../EnvironmentConfiguration'; +import { DependencyType } from '../PackageJsonEditor'; function normalizePathForComparison(pathToNormalize: string): string { return Text.replaceAll(pathToNormalize, '\\', '/').toUpperCase(); @@ -32,6 +33,7 @@ describe(RushConfiguration.name, () => { afterEach(() => { process.env = _oldEnv; + jest.resetAllMocks(); }); it("can't load too new rush", () => { @@ -315,4 +317,29 @@ describe(RushConfiguration.name, () => { 'Because the new config file "common/config/rush/pnpm-config.json" is being used, you must remove the old setting "pnpmOptions" from rush.json' ); }); + + describe(RushConfigurationProject.name, () => { + it('correctly updates the packageJson property after the packageJson is edited by packageJsonEditor', async () => { + const rushConfiguration: RushConfiguration = RushConfiguration.loadFromConfigurationFile( + `${__dirname}/repo/rush-pnpm.json` + ); + jest.spyOn(JsonFile, 'save').mockImplementation(() => { + /* no-op*/ + return true; + }); + + const project: RushConfigurationProject = rushConfiguration.getProjectByName('project1')!; + + expect(project.packageJson.devDependencies).toMatchSnapshot('devDependencies before'); + expect(Array.from(project.dependencyProjects.values()).map((x) => x.packageName)).toMatchSnapshot( + 'dependencyProjects before' + ); + project.packageJsonEditor.addOrUpdateDependency('project2', '1.0.0', DependencyType.Dev); + project.packageJsonEditor.saveIfModified(); + expect(project.packageJson.devDependencies).toMatchSnapshot('devDependencies after'); + expect(Array.from(project.dependencyProjects.values()).map((x) => x.packageName)).toMatchSnapshot( + 'dependencyProjects after' + ); + }); + }); }); diff --git a/libraries/rush-lib/src/api/test/__snapshots__/RushConfiguration.test.ts.snap b/libraries/rush-lib/src/api/test/__snapshots__/RushConfiguration.test.ts.snap index 716b1019de1..79352d781bb 100644 --- a/libraries/rush-lib/src/api/test/__snapshots__/RushConfiguration.test.ts.snap +++ b/libraries/rush-lib/src/api/test/__snapshots__/RushConfiguration.test.ts.snap @@ -1,3 +1,19 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`RushConfiguration RushConfigurationProject correctly updates the packageJson property after the packageJson is edited by packageJsonEditor: dependencyProjects after 1`] = ` +Array [ + "project2", +] +`; + +exports[`RushConfiguration RushConfigurationProject correctly updates the packageJson property after the packageJson is edited by packageJsonEditor: dependencyProjects before 1`] = `Array []`; + +exports[`RushConfiguration RushConfigurationProject correctly updates the packageJson property after the packageJson is edited by packageJsonEditor: devDependencies after 1`] = ` +Object { + "project2": "1.0.0", +} +`; + +exports[`RushConfiguration RushConfigurationProject correctly updates the packageJson property after the packageJson is edited by packageJsonEditor: devDependencies before 1`] = `undefined`; + exports[`RushConfiguration fails to load repo/rush-repository-url-urls.json 1`] = `"The 'repository.url' field cannot be used when 'repository.urls' is present"`; diff --git a/libraries/rush-lib/src/cli/RushCommandLineParser.ts b/libraries/rush-lib/src/cli/RushCommandLineParser.ts index 2f027d1f09e..3f483e054f1 100644 --- a/libraries/rush-lib/src/cli/RushCommandLineParser.ts +++ b/libraries/rush-lib/src/cli/RushCommandLineParser.ts @@ -66,7 +66,7 @@ export interface IRushCommandLineParserOptions { export class RushCommandLineParser extends CommandLineParser { public telemetry: Telemetry | undefined; - public rushGlobalFolder!: RushGlobalFolder; + public rushGlobalFolder: RushGlobalFolder; public readonly rushConfiguration!: RushConfiguration; public readonly rushSession: RushSession; public readonly pluginManager: PluginManager; @@ -127,6 +127,8 @@ export class RushCommandLineParser extends CommandLineParser { rushConfiguration: this.rushConfiguration }); + this.rushGlobalFolder = new RushGlobalFolder(); + this.rushSession = new RushSession({ getIsDebugMode: () => this.isDebug, terminalProvider: this._terminalProvider @@ -136,7 +138,8 @@ export class RushCommandLineParser extends CommandLineParser { rushConfiguration: this.rushConfiguration, terminal: this._terminal, builtInPluginConfigurations: this._rushOptions.builtInPluginConfigurations, - restrictConsoleOutput: this._restrictConsoleOutput + restrictConsoleOutput: this._restrictConsoleOutput, + rushGlobalFolder: this.rushGlobalFolder }); this._populateActions(); @@ -238,8 +241,6 @@ export class RushCommandLineParser extends CommandLineParser { private _populateActions(): void { try { - this.rushGlobalFolder = new RushGlobalFolder(); - // Alphabetical order this.addAction(new AddAction(this)); this.addAction(new ChangeAction(this)); @@ -394,6 +395,7 @@ export class RushCommandLineParser extends CommandLineParser { disableBuildCache: command.disableBuildCache || false, initialPhases: command.phases, + originalPhases: command.originalPhases, watchPhases: command.watchPhases, watchDebounceMs: command.watchDebounceMs ?? RushConstants.defaultWatchDebounceMs, phases: commandLineConfiguration.phases, diff --git a/libraries/rush-lib/src/cli/actions/InitAutoinstallerAction.ts b/libraries/rush-lib/src/cli/actions/InitAutoinstallerAction.ts index 76e2ee4edc2..83a30f7996d 100644 --- a/libraries/rush-lib/src/cli/actions/InitAutoinstallerAction.ts +++ b/libraries/rush-lib/src/cli/actions/InitAutoinstallerAction.ts @@ -38,7 +38,8 @@ export class InitAutoinstallerAction extends BaseRushAction { const autoinstaller: Autoinstaller = new Autoinstaller({ autoinstallerName, - rushConfiguration: this.rushConfiguration + rushConfiguration: this.rushConfiguration, + rushGlobalFolder: this.rushGlobalFolder }); if (FileSystem.exists(autoinstaller.folderFullPath)) { diff --git a/libraries/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts b/libraries/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts index d6d836898f4..54aa48dab80 100644 --- a/libraries/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts +++ b/libraries/rush-lib/src/cli/actions/UpdateAutoinstallerAction.ts @@ -32,9 +32,15 @@ export class UpdateAutoinstallerAction extends BaseRushAction { const autoinstaller: Autoinstaller = new Autoinstaller({ autoinstallerName, - rushConfiguration: this.rushConfiguration + rushConfiguration: this.rushConfiguration, + rushGlobalFolder: this.rushGlobalFolder }); - autoinstaller.update(); + + // Do not run `autoinstaller.prepareAsync` here. It tries to install the autoinstaller with + // --frozen-lockfile or equivalent, which will fail if the autoinstaller's dependencies + // have been changed. + + await autoinstaller.updateAsync(); console.log('\nSuccess.'); } diff --git a/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts b/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts index f5b033601e0..e2d0f393851 100644 --- a/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts +++ b/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts @@ -88,7 +88,8 @@ export class GlobalScriptAction extends BaseScriptAction { private async _prepareAutoinstallerName(): Promise { const autoInstaller: Autoinstaller = new Autoinstaller({ autoinstallerName: this._autoinstallerName, - rushConfiguration: this.rushConfiguration + rushConfiguration: this.rushConfiguration, + rushGlobalFolder: this.rushGlobalFolder }); await autoInstaller.prepareAsync(); diff --git a/libraries/rush-lib/src/cli/scriptActions/PhasedScriptAction.ts b/libraries/rush-lib/src/cli/scriptActions/PhasedScriptAction.ts index 7e56d27454d..7b29b4f8326 100644 --- a/libraries/rush-lib/src/cli/scriptActions/PhasedScriptAction.ts +++ b/libraries/rush-lib/src/cli/scriptActions/PhasedScriptAction.ts @@ -28,6 +28,7 @@ import { BuildCacheConfiguration } from '../../api/BuildCacheConfiguration'; import { SelectionParameterSet } from '../parsing/SelectionParameterSet'; import type { IPhase, IPhasedCommandConfig } from '../../api/CommandLineConfiguration'; import { Operation } from '../../logic/operations/Operation'; +import { OperationExecutionRecord } from '../../logic/operations/OperationExecutionRecord'; import { PhasedOperationPlugin } from '../../logic/operations/PhasedOperationPlugin'; import { ShellOperationRunnerPlugin } from '../../logic/operations/ShellOperationRunnerPlugin'; import { Event } from '../../api/EventHooks'; @@ -46,6 +47,7 @@ export interface IPhasedScriptActionOptions extends IBaseScriptActionOptions; initialPhases: Set; watchPhases: Set; phases: Map; @@ -102,6 +104,7 @@ export class PhasedScriptAction extends BaseScriptAction { private readonly _enableParallelism: boolean; private readonly _isIncrementalBuildAllowed: boolean; private readonly _disableBuildCache: boolean; + private readonly _originalPhases: ReadonlySet; private readonly _initialPhases: ReadonlySet; private readonly _watchPhases: ReadonlySet; private readonly _watchDebounceMs: number; @@ -124,6 +127,7 @@ export class PhasedScriptAction extends BaseScriptAction { this._enableParallelism = options.enableParallelism; this._isIncrementalBuildAllowed = options.incremental; this._disableBuildCache = options.disableBuildCache; + this._originalPhases = options.originalPhases; this._initialPhases = options.initialPhases; this._watchPhases = options.watchPhases; this._watchDebounceMs = options.watchDebounceMs ?? RushConstants.defaultWatchDebounceMs; @@ -330,6 +334,7 @@ export class PhasedScriptAction extends BaseScriptAction { isInitial: true, isWatch, rushConfiguration: this.rushConfiguration, + phaseOriginal: new Set(this._originalPhases), phaseSelection: new Set(this._initialPhases), projectChangeAnalyzer, projectSelection, @@ -340,7 +345,13 @@ export class PhasedScriptAction extends BaseScriptAction { quietMode: isQuietMode, debugMode: this.parser.isDebug, parallelism, - changedProjectsOnly + changedProjectsOnly, + beforeExecuteOperations: async (records: Map) => { + await this.hooks.beforeExecuteOperations.promise(records); + }, + onOperationStatusChanged: (record: OperationExecutionRecord) => { + this.hooks.onOperationStatusChanged.call(record); + } }; const internalOptions: IRunPhasesOptions = { @@ -353,7 +364,7 @@ export class PhasedScriptAction extends BaseScriptAction { terminal.write('Analyzing repo state... '); const repoStateStopwatch: Stopwatch = new Stopwatch(); repoStateStopwatch.start(); - projectChangeAnalyzer._ensureInitialized(terminal); + await projectChangeAnalyzer._ensureInitializedAsync(terminal); repoStateStopwatch.stop(); terminal.writeLine(`DONE (${repoStateStopwatch.toString()})`); terminal.writeLine(); @@ -400,6 +411,7 @@ export class PhasedScriptAction extends BaseScriptAction { private async _runWatchPhases(options: IRunPhasesOptions): Promise { const { initialCreateOperationsContext, executionManagerOptions, stopwatch, terminal } = options; + const phaseOriginal: Set = new Set(this._watchPhases); const phaseSelection: Set = new Set(this._watchPhases); const { projectChangeAnalyzer: initialState, projectSelection: projectsToWatch } = @@ -457,6 +469,7 @@ export class PhasedScriptAction extends BaseScriptAction { isInitial: false, projectChangeAnalyzer: state, projectsInUnknownState: changedProjects, + phaseOriginal, phaseSelection }; diff --git a/libraries/rush-lib/src/cli/test/RushCommandLineParser.test.ts b/libraries/rush-lib/src/cli/test/RushCommandLineParser.test.ts index a458406ef6e..2ca62a05d0a 100644 --- a/libraries/rush-lib/src/cli/test/RushCommandLineParser.test.ts +++ b/libraries/rush-lib/src/cli/test/RushCommandLineParser.test.ts @@ -1,11 +1,25 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +jest.mock(`@rushstack/package-deps-hash`, () => { + return { + getRepoRoot(dir: string): string { + return dir; + }, + getRepoStateAsync(): ReadonlyMap { + return new Map(); + }, + getRepoChangesAsync(): ReadonlyMap { + return new Map(); + } + }; +}); + import './mockRushCommandLineParser'; import * as path from 'path'; import { FileSystem, JsonFile, Path, PackageJsonLookup } from '@rushstack/node-core-library'; -import { RushCommandLineParser } from '../RushCommandLineParser'; +import type { RushCommandLineParser as RushCommandLineParserType } from '../RushCommandLineParser'; import { LastLinkFlagFactory } from '../../api/LastLinkFlag'; import { Autoinstaller } from '../../logic/Autoinstaller'; import { ITelemetryData } from '../../logic/Telemetry'; @@ -31,7 +45,7 @@ interface IChildProcessModuleMock { * Interface definition for a test instance for the RushCommandLineParser. */ interface IParserTestInstance { - parser: RushCommandLineParser; + parser: RushCommandLineParserType; spawnMock: jest.Mock; } @@ -66,7 +80,10 @@ const __dirnameInLib: string = getDirnameInLib(); /** * Helper to set up a test instance for RushCommandLineParser. */ -function getCommandLineParserInstance(repoName: string, taskName: string): IParserTestInstance { +async function getCommandLineParserInstanceAsync( + repoName: string, + taskName: string +): Promise { // Run these tests in the /lib folder because some of them require compiled output // Point to the test repo folder const startPath: string = `${__dirnameInLib}/${repoName}`; @@ -76,11 +93,13 @@ function getCommandLineParserInstance(repoName: string, taskName: string): IPars FileSystem.deleteFolder(`${startPath}/a/.rush/temp`); FileSystem.deleteFolder(`${startPath}/b/.rush/temp`); + const { RushCommandLineParser } = await import('../RushCommandLineParser'); + // Create a Rush CLI instance. This instance is heavy-weight and relies on setting process.exit // to exit and clear the Rush file lock. So running multiple `it` or `describe` test blocks over the same test // repo will fail due to contention over the same lock which is kept until the test runner process // ends. - const parser: RushCommandLineParser = new RushCommandLineParser({ cwd: startPath }); + const parser: RushCommandLineParserType = new RushCommandLineParser({ cwd: startPath }); // Bulk tasks are hard-coded to expect install to have been completed. So, ensure the last-link.flag // file exists and is valid @@ -104,8 +123,8 @@ function pathEquals(actual: string, expected: string): void { const SPAWN_ARG_ARGS: number = 1; const SPAWN_ARG_OPTIONS: number = 2; -describe(RushCommandLineParser.name, () => { - describe(RushCommandLineParser.prototype.execute.name, () => { +describe('RushCommandLineParser', () => { + describe('execute', () => { afterEach(() => { jest.clearAllMocks(); }); @@ -114,7 +133,7 @@ describe(RushCommandLineParser.name, () => { describe("'build' action", () => { it(`executes the package's 'build' script`, async () => { const repoName: string = 'basicAndRunBuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'build'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'build'); await expect(instance.parser.execute()).resolves.toEqual(true); @@ -146,7 +165,7 @@ describe(RushCommandLineParser.name, () => { describe("'rebuild' action", () => { it(`executes the package's 'build' script`, async () => { const repoName: string = 'basicAndRunRebuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'rebuild'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'rebuild'); await expect(instance.parser.execute()).resolves.toEqual(true); @@ -180,7 +199,7 @@ describe(RushCommandLineParser.name, () => { describe("'build' action", () => { it(`executes the package's 'build' script`, async () => { const repoName: string = 'overrideRebuildAndRunBuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'build'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'build'); await expect(instance.parser.execute()).resolves.toEqual(true); @@ -212,7 +231,7 @@ describe(RushCommandLineParser.name, () => { describe("'rebuild' action", () => { it(`executes the package's 'rebuild' script`, async () => { const repoName: string = 'overrideRebuildAndRunRebuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'rebuild'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'rebuild'); await expect(instance.parser.execute()).resolves.toEqual(true); @@ -246,7 +265,7 @@ describe(RushCommandLineParser.name, () => { describe("'build' action", () => { it(`executes the package's 'build' script`, async () => { const repoName: string = 'overrideAndDefaultBuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'build'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'build'); await expect(instance.parser.execute()).resolves.toEqual(true); // There should be 1 build per package @@ -278,7 +297,7 @@ describe(RushCommandLineParser.name, () => { it(`executes the package's 'build' script`, async () => { // broken const repoName: string = 'overrideAndDefaultRebuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'rebuild'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'rebuild'); await expect(instance.parser.execute()).resolves.toEqual(true); // There should be 1 build per package @@ -311,9 +330,9 @@ describe(RushCommandLineParser.name, () => { it(`throws an error when starting Rush`, async () => { const repoName: string = 'overrideBuildAsGlobalCommandRepo'; - await expect(() => { - getCommandLineParserInstance(repoName, 'doesnt-matter'); - }).toThrowErrorMatchingInlineSnapshot( + await expect(async () => { + await getCommandLineParserInstanceAsync(repoName, 'doesnt-matter'); + }).rejects.toThrowErrorMatchingInlineSnapshot( `"command-line.json defines a command \\"build\\" using the command kind \\"global\\". This command can only be designated as a command kind \\"bulk\\" or \\"phased\\"."` ); }); @@ -323,9 +342,9 @@ describe(RushCommandLineParser.name, () => { it(`throws an error when starting Rush`, async () => { const repoName: string = 'overrideRebuildAsGlobalCommandRepo'; - await expect(() => { - getCommandLineParserInstance(repoName, 'doesnt-matter'); - }).toThrowErrorMatchingInlineSnapshot( + await expect(async () => { + await getCommandLineParserInstanceAsync(repoName, 'doesnt-matter'); + }).rejects.toThrowErrorMatchingInlineSnapshot( `"command-line.json defines a command \\"rebuild\\" using the command kind \\"global\\". This command can only be designated as a command kind \\"bulk\\" or \\"phased\\"."` ); }); @@ -335,9 +354,9 @@ describe(RushCommandLineParser.name, () => { it(`throws an error when starting Rush`, async () => { const repoName: string = 'overrideBuildWithSimultaneousProcessesRepo'; - await expect(() => { - getCommandLineParserInstance(repoName, 'doesnt-matter'); - }).toThrowErrorMatchingInlineSnapshot( + await expect(async () => { + await getCommandLineParserInstanceAsync(repoName, 'doesnt-matter'); + }).rejects.toThrowErrorMatchingInlineSnapshot( `"command-line.json defines a command \\"build\\" using \\"safeForSimultaneousRushProcesses=true\\". This configuration is not supported for \\"build\\"."` ); }); @@ -347,9 +366,9 @@ describe(RushCommandLineParser.name, () => { it(`throws an error when starting Rush`, async () => { const repoName: string = 'overrideRebuildWithSimultaneousProcessesRepo'; - await expect(() => { - getCommandLineParserInstance(repoName, 'doesnt-matter'); - }).toThrowErrorMatchingInlineSnapshot( + await expect(async () => { + await getCommandLineParserInstanceAsync(repoName, 'doesnt-matter'); + }).rejects.toThrowErrorMatchingInlineSnapshot( `"command-line.json defines a command \\"rebuild\\" using \\"safeForSimultaneousRushProcesses=true\\". This configuration is not supported for \\"rebuild\\"."` ); }); @@ -358,7 +377,7 @@ describe(RushCommandLineParser.name, () => { describe('in repo plugin custom flushTelemetry', () => { it('creates a custom telemetry file', async () => { const repoName: string = 'tapFlushTelemetryAndRunBuildActionRepo'; - const instance: IParserTestInstance = getCommandLineParserInstance(repoName, 'build'); + const instance: IParserTestInstance = await getCommandLineParserInstanceAsync(repoName, 'build'); const telemetryFilePath: string = `${instance.parser.rushConfiguration.commonTempFolder}/test-telemetry.json`; FileSystem.deleteFile(telemetryFilePath); diff --git a/libraries/rush-lib/src/index.ts b/libraries/rush-lib/src/index.ts index f969c51adb4..d1860e96034 100644 --- a/libraries/rush-lib/src/index.ts +++ b/libraries/rush-lib/src/index.ts @@ -63,7 +63,7 @@ export { PackageJsonEditor, PackageJsonDependency, DependencyType } from './api/ export { RepoStateFile } from './logic/RepoStateFile'; -export { LookupByPath } from './logic/LookupByPath'; +export { LookupByPath, IPrefixMatch } from './logic/LookupByPath'; export { EventHooks, Event } from './api/EventHooks'; export { ChangeManager } from './api/ChangeManager'; @@ -84,6 +84,7 @@ export { export { VersionPolicyConfiguration } from './api/VersionPolicyConfiguration'; export { ILaunchOptions, Rush } from './api/Rush'; +export { RushInternals as _RushInternals } from './api/RushInternals'; export { ExperimentsConfiguration, IExperimentsJson } from './api/ExperimentsConfiguration'; @@ -126,3 +127,8 @@ export { IOperationStateFileOptions as _IOperationStateFileOptions, IOperationStateJson as _IOperationStateJson } from './logic/operations/OperationStateFile'; +export { + OperationMetadataManager as _OperationMetadataManager, + IOperationMetadataManagerOptions as _IOperationMetadataManagerOptions, + IOperationMetaData as _IOperationMetadata +} from './logic/operations/OperationMetadataManager'; diff --git a/libraries/rush-lib/src/logic/Autoinstaller.ts b/libraries/rush-lib/src/logic/Autoinstaller.ts index ec3d869bc5d..879bee9fcf8 100644 --- a/libraries/rush-lib/src/logic/Autoinstaller.ts +++ b/libraries/rush-lib/src/logic/Autoinstaller.ts @@ -11,7 +11,7 @@ import { PackageName, IParsedPackageNameOrError } from '@rushstack/node-core-lib import { RushConfiguration } from '../api/RushConfiguration'; import { PackageJsonEditor } from '../api/PackageJsonEditor'; import { InstallHelpers } from './installManager/InstallHelpers'; -import { RushGlobalFolder } from '../api/RushGlobalFolder'; +import type { RushGlobalFolder } from '../api/RushGlobalFolder'; import { RushConstants } from './RushConstants'; import { LastInstallFlag } from '../api/LastInstallFlag'; import { RushCommandLineParser } from '../cli/RushCommandLineParser'; @@ -19,6 +19,7 @@ import { RushCommandLineParser } from '../cli/RushCommandLineParser'; interface IAutoinstallerOptions { autoinstallerName: string; rushConfiguration: RushConfiguration; + rushGlobalFolder: RushGlobalFolder; restrictConsoleOutput?: boolean; } @@ -26,11 +27,13 @@ export class Autoinstaller { public readonly name: string; private readonly _rushConfiguration: RushConfiguration; + private readonly _rushGlobalFolder: RushGlobalFolder; private readonly _restrictConsoleOutput: boolean; public constructor(options: IAutoinstallerOptions) { this.name = options.autoinstallerName; this._rushConfiguration = options.rushConfiguration; + this._rushGlobalFolder = options.rushGlobalFolder; this._restrictConsoleOutput = options.restrictConsoleOutput ?? RushCommandLineParser.shouldRestrictConsoleOutput(); @@ -75,10 +78,9 @@ export class Autoinstaller { ); } - const rushGlobalFolder: RushGlobalFolder = new RushGlobalFolder(); await InstallHelpers.ensureLocalPackageManager( this._rushConfiguration, - rushGlobalFolder, + this._rushGlobalFolder, RushConstants.defaultMaxInstallAttempts, this._restrictConsoleOutput ); @@ -155,7 +157,14 @@ export class Autoinstaller { } } - public update(): void { + public async updateAsync(): Promise { + await InstallHelpers.ensureLocalPackageManager( + this._rushConfiguration, + this._rushGlobalFolder, + RushConstants.defaultMaxInstallAttempts, + this._restrictConsoleOutput + ); + const autoinstallerPackageJsonPath: string = path.join(this.folderFullPath, 'package.json'); if (!FileSystem.exists(autoinstallerPackageJsonPath)) { diff --git a/libraries/rush-lib/src/logic/EventHooksManager.ts b/libraries/rush-lib/src/logic/EventHooksManager.ts index d950c7ffd9b..7156466e403 100644 --- a/libraries/rush-lib/src/logic/EventHooksManager.ts +++ b/libraries/rush-lib/src/logic/EventHooksManager.ts @@ -34,13 +34,17 @@ export class EventHooksManager { const stopwatch: Stopwatch = Stopwatch.start(); console.log('\n' + colors.green(`Executing event hooks for ${Event[event]}`)); + + const printEventHooksOutputToConsole: boolean | undefined = + isDebug || + this._rushConfiguration.experimentsConfiguration.configuration.printEventHooksOutputToConsole; scripts.forEach((script) => { try { Utilities.executeLifecycleCommand(script, { rushConfiguration: this._rushConfiguration, workingDirectory: this._rushConfiguration.rushJsonFolder, initCwd: this._commonTempFolder, - handleOutput: !isDebug, + handleOutput: !printEventHooksOutputToConsole, environmentPathOptions: { includeRepoBin: true } diff --git a/libraries/rush-lib/src/logic/InteractiveUpgrader.ts b/libraries/rush-lib/src/logic/InteractiveUpgrader.ts index fbcf46fdb88..3b2e1d0b8cf 100644 --- a/libraries/rush-lib/src/logic/InteractiveUpgrader.ts +++ b/libraries/rush-lib/src/logic/InteractiveUpgrader.ts @@ -72,7 +72,10 @@ export class InteractiveUpgrader { ): Promise { const { projectFolder } = rushProject; - const currentState: NpmCheck.INpmCheckCurrentState = await npmCheck({ cwd: projectFolder }); + const currentState: NpmCheck.INpmCheckCurrentState = await npmCheck({ + cwd: projectFolder, + skipUnused: true + }); return currentState.get('packages'); } diff --git a/libraries/rush-lib/src/logic/LookupByPath.ts b/libraries/rush-lib/src/logic/LookupByPath.ts index 0fbaf994108..a848949f216 100644 --- a/libraries/rush-lib/src/logic/LookupByPath.ts +++ b/libraries/rush-lib/src/logic/LookupByPath.ts @@ -15,6 +15,21 @@ interface IPathTreeNode { children: Map> | undefined; } +interface IPrefixEntry { + prefix: string; + index: number; +} + +/** + * Object containing both the matched item and the start index of the remainder of the query. + * + * @beta + */ +export interface IPrefixMatch { + value: TItem; + index: number; +} + /** * This class is used to associate POSIX relative paths, such as those returned by `git` commands, * with entities that correspond with ancestor folders, such as Rush Projects. @@ -24,11 +39,11 @@ interface IPathTreeNode { * @example * ```ts * const tree = new LookupByPath([['foo', 1], ['bar', 2], ['foo/bar', 3]]); - * tree.getNearestAncestor('foo'); // returns 1 - * tree.getNearestAncestor('foo/baz'); // returns 1 - * tree.getNearestAncestor('baz'); // returns undefined - * tree.getNearestAncestor('foo/bar/baz'); returns 3 - * tree.getNearestAncestor('bar/foo/bar'); returns 2 + * tree.findChildPath('foo'); // returns 1 + * tree.findChildPath('foo/baz'); // returns 1 + * tree.findChildPath('baz'); // returns undefined + * tree.findChildPath('foo/bar/baz'); returns 3 + * tree.findChildPath('bar/foo/bar'); returns 2 * ``` * @beta */ @@ -72,21 +87,35 @@ export class LookupByPath { * `LookupByPath.iteratePathSegments('foo\\bar\\baz', '\\')` yields 'foo', 'bar', 'baz' */ public static *iteratePathSegments(serializedPath: string, delimiter: string = '/'): Iterable { - if (!serializedPath) { + for (const prefixMatch of this._iteratePrefixes(serializedPath, delimiter)) { + yield prefixMatch.prefix; + } + } + + private static *_iteratePrefixes(input: string, delimiter: string = '/'): Iterable { + if (!input) { return; } - let nextIndex: number = serializedPath.indexOf(delimiter); let previousIndex: number = 0; - while (nextIndex >= 0) { - yield serializedPath.slice(previousIndex, nextIndex); + let nextIndex: number = input.indexOf(delimiter); + // Leading segments + while (nextIndex >= 0) { + yield { + prefix: input.slice(previousIndex, nextIndex), + index: nextIndex + }; previousIndex = nextIndex + 1; - nextIndex = serializedPath.indexOf(delimiter, previousIndex); + nextIndex = input.indexOf(delimiter, previousIndex); } - if (previousIndex + 1 < serializedPath.length) { - yield serializedPath.slice(previousIndex); + // Last segment + if (previousIndex + 1 < input.length) { + yield { + prefix: input.slice(previousIndex, input.length), + index: input.length + }; } } @@ -146,6 +175,24 @@ export class LookupByPath { return this.findChildPathFromSegments(LookupByPath.iteratePathSegments(childPath, this.delimiter)); } + /** + * Searches for the item for which the recorded prefix is the longest matching prefix of `query`. + * Obtains both the item and the length of the matched prefix, so that the remainder of the path can be + * extracted. + * + * @returns the found item and the length of the matched prefix, or `undefined` if no item was found + * + * @example + * ```ts + * const tree = new LookupByPath([['foo', 1], ['foo/bar', 2]]); + * tree.findLongestPrefixMatch('foo/baz'); // returns { item: 1, index: 3 } + * tree.findLongestPrefixMatch('foo/bar/baz'); // returns { item: 2, index: 7 } + * ``` + */ + public findLongestPrefixMatch(query: string): IPrefixMatch | undefined { + return this._findLongestPrefixMatch(LookupByPath._iteratePrefixes(query, this.delimiter)); + } + /** * Searches for the item associated with `childPathSegments`, or the nearest ancestor of that path that * has an associated item. @@ -179,4 +226,43 @@ export class LookupByPath { return best; } + + /** + * Iterates through progressively longer prefixes of a given string and returns as soon + * as the number of candidate items that match the prefix are 1 or 0. + * + * If a match is present, returns the matched itme and the length of the matched prefix. + * + * @returns the found item, or `undefined` if no item was found + */ + private _findLongestPrefixMatch(prefixes: Iterable): IPrefixMatch | undefined { + let node: IPathTreeNode = this._root; + let best: IPrefixMatch | undefined = node.value + ? { + value: node.value, + index: 0 + } + : undefined; + // Trivial cases + if (node.children) { + for (const { prefix: hash, index } of prefixes) { + const child: IPathTreeNode | undefined = node.children.get(hash); + if (!child) { + break; + } + node = child; + if (node.value !== undefined) { + best = { + value: node.value, + index + }; + } + if (!node.children) { + break; + } + } + } + + return best; + } } diff --git a/libraries/rush-lib/src/logic/ProjectChangeAnalyzer.ts b/libraries/rush-lib/src/logic/ProjectChangeAnalyzer.ts index da0f2cd2413..8b775ebfe97 100644 --- a/libraries/rush-lib/src/logic/ProjectChangeAnalyzer.ts +++ b/libraries/rush-lib/src/logic/ProjectChangeAnalyzer.ts @@ -8,11 +8,10 @@ import ignore, { Ignore } from 'ignore'; import { getRepoChanges, getRepoRoot, - getRepoState, - getGitHashForFiles, + getRepoStateAsync, IFileDiffStatus } from '@rushstack/package-deps-hash'; -import { Path, InternalError, FileSystem, ITerminal, Async } from '@rushstack/node-core-library'; +import { Path, FileSystem, ITerminal, Async } from '@rushstack/node-core-library'; import { RushConfiguration } from '../api/RushConfiguration'; import { RushProjectConfiguration } from '../api/RushProjectConfiguration'; @@ -51,9 +50,13 @@ interface IGitState { rootDir: string; } -interface IRawRepoState { +/** + * @internal + */ +export interface IRawRepoState { projectState: Map> | undefined; rootDir: string; + rawHashes: Map; } /** @@ -93,7 +96,7 @@ export class ProjectChangeAnalyzer { return filteredProjectData; } - const data: IRawRepoState | undefined = this._ensureInitialized(terminal); + const data: IRawRepoState | undefined = await this._ensureInitializedAsync(terminal); if (!data) { return undefined; @@ -124,9 +127,9 @@ export class ProjectChangeAnalyzer { /** * @internal */ - public _ensureInitialized(terminal: ITerminal): IRawRepoState | undefined { + public async _ensureInitializedAsync(terminal: ITerminal): Promise { if (this._data === UNINITIALIZED) { - this._data = this._getData(terminal); + this._data = await this._getDataAsync(terminal); } return this._data; @@ -325,13 +328,14 @@ export class ProjectChangeAnalyzer { return changedProjects; } - private _getData(terminal: ITerminal): IRawRepoState { - const repoState: IGitState | undefined = this._getRepoDeps(terminal); + private async _getDataAsync(terminal: ITerminal): Promise { + const repoState: IGitState | undefined = await this._getRepoDepsAsync(terminal); if (!repoState) { // Mark as resolved, but no data return { projectState: undefined, - rootDir: this._rushConfiguration.rushJsonFolder + rootDir: this._rushConfiguration.rushJsonFolder, + rawHashes: new Map() }; } @@ -347,44 +351,7 @@ export class ProjectChangeAnalyzer { const { hashes: repoDeps, rootDir } = repoState; // Currently, only pnpm handles project shrinkwraps - if (this._rushConfiguration.packageManager === 'pnpm') { - const projectDependencyManifestPaths: string[] = []; - - for (const project of projectHashDeps.keys()) { - const projectShrinkwrapFilePath: string = BaseProjectShrinkwrapFile.getFilePathForProject(project); - const relativeProjectShrinkwrapFilePath: string = Path.convertToSlashes( - path.relative(rootDir, projectShrinkwrapFilePath) - ); - - if (!FileSystem.exists(projectShrinkwrapFilePath)) { - throw new Error( - `A project dependency file (${relativeProjectShrinkwrapFilePath}) is missing. You may need to run ` + - '"rush install" or "rush update".' - ); - } - - projectDependencyManifestPaths.push(relativeProjectShrinkwrapFilePath); - } - - const gitPath: string = this._git.getGitPathOrThrow(); - const hashes: Map = getGitHashForFiles( - projectDependencyManifestPaths, - rootDir, - gitPath - ); - - let i: number = 0; - for (const projectDeps of projectHashDeps.values()) { - const projectDependencyManifestPath: string = projectDependencyManifestPaths[i]; - const hash: string | undefined = hashes.get(projectDependencyManifestPath); - if (hash === undefined) { - throw new InternalError(`Expected to get a hash for ${projectDependencyManifestPath}`); - } - - projectDeps.set(projectDependencyManifestPath, hash); - i++; - } - } else { + if (this._rushConfiguration.packageManager !== 'pnpm') { // Determine the current variant from the link JSON. const variant: string | undefined = this._rushConfiguration.currentInstalledVariant; @@ -416,7 +383,8 @@ export class ProjectChangeAnalyzer { return { projectState: projectHashDeps, - rootDir + rootDir, + rawHashes: repoState.hashes }; } @@ -434,13 +402,42 @@ export class ProjectChangeAnalyzer { } } - private _getRepoDeps(terminal: ITerminal): IGitState | undefined { + private async _getRepoDepsAsync(terminal: ITerminal): Promise { try { + const gitPath: string = this._git.getGitPathOrThrow(); + if (this._git.isPathUnderGitWorkingTree()) { - // Load the package deps hash for the whole repository - const gitPath: string = this._git.getGitPathOrThrow(); + // Do not use getGitInfo().root; it is the root of the *primary* worktree, not the *current* one. const rootDir: string = getRepoRoot(this._rushConfiguration.rushJsonFolder, gitPath); - const hashes: Map = getRepoState(rootDir, gitPath); + // Load the package deps hash for the whole repository + // Include project shrinkwrap files as part of the computation + const additionalFilesToHash: string[] = []; + + if (this._rushConfiguration.packageManager === 'pnpm') { + const absoluteFilePathsToCheck: string[] = []; + + for (const project of this._rushConfiguration.projects) { + const projectShrinkwrapFilePath: string = + BaseProjectShrinkwrapFile.getFilePathForProject(project); + absoluteFilePathsToCheck.push(projectShrinkwrapFilePath); + const relativeProjectShrinkwrapFilePath: string = Path.convertToSlashes( + path.relative(rootDir, projectShrinkwrapFilePath) + ); + + additionalFilesToHash.push(relativeProjectShrinkwrapFilePath); + } + + await Async.forEachAsync(absoluteFilePathsToCheck, async (filePath: string) => { + if (!(await FileSystem.existsAsync(filePath))) { + throw new Error( + `A project dependency file (${filePath}) is missing. You may need to run ` + + '"rush install" or "rush update".' + ); + } + }); + } + + const hashes: Map = await getRepoStateAsync(rootDir, additionalFilesToHash, gitPath); return { gitPath, hashes, diff --git a/libraries/rush-lib/src/logic/buildCache/getHashesForGlobsAsync.ts b/libraries/rush-lib/src/logic/buildCache/getHashesForGlobsAsync.ts new file mode 100644 index 00000000000..4e3f136602a --- /dev/null +++ b/libraries/rush-lib/src/logic/buildCache/getHashesForGlobsAsync.ts @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. +import { Async, Import, LegacyAdapters } from '@rushstack/node-core-library'; +import { getGitHashForFiles } from '@rushstack/package-deps-hash'; +import * as path from 'path'; +import type { IOptions } from 'glob'; +import type { IRawRepoState } from '../ProjectChangeAnalyzer'; + +const glob: typeof import('glob') = Import.lazy('glob', require); + +const globAsync = (pattern: string, options: IOptions = {}): Promise => { + return LegacyAdapters.convertCallbackToPromise(glob, pattern, options); +}; + +async function expandGlobPatternsAsync( + globPatterns: Iterable, + packagePath: string +): Promise { + const allMatches: Set = new Set(); + + await Async.forEachAsync( + globPatterns, + async (pattern) => { + const matches: string[] = await globAsync(pattern, { + cwd: packagePath, + nodir: true, + // We want to keep path's type unchanged, + // i.e. if the pattern was a relative path, then matched paths should also be relative paths + // if the pattern was an absolute path, then matched paths should also be absolute paths + // + // We are doing this because these paths are going to be used to calculate a hash for the build cache and some users + // might choose to depend on global files (e.g. `/etc/os-release`) and some might choose to depend on local files + // (e.g. `../path/to/workspace/file`) + // + // In both cases we want that path to the resource would be the same on all machines, + // regardless of what is the current working directory. + // + // That being said, we want to keep `realpath` and `absolute` options here as false: + realpath: false, + absolute: false + }); + matches.forEach((match) => allMatches.add(match)); + }, + { concurrency: 10 } + ); + + if (allMatches.size === 0) { + throw new Error( + `Couldn't find any files matching provided glob patterns: ["${Array.from(globPatterns).join('", "')}"].` + ); + } + + return Array.from(allMatches); +} + +interface IKnownHashesResult { + foundPaths: Map; + missingPaths: string[]; +} + +function getKnownHashes( + filePaths: string[], + packagePath: string, + repoState: IRawRepoState +): IKnownHashesResult { + const missingPaths: string[] = []; + const foundPaths: Map = new Map(); + + for (const filePath of filePaths) { + const absolutePath: string = path.isAbsolute(filePath) ? filePath : path.join(packagePath, filePath); + + /** + * We are using RegExp here to prevent false positives in the following string.replace function + * - `^` anchor makes sure that we are replacing only the beginning of the string + * - extra `/` makes sure that we are remove extra slash from the relative path + */ + const gitFilePath: string = absolutePath.replace(new RegExp('^' + repoState.rootDir + '/'), ''); + const foundHash: string | undefined = repoState.rawHashes.get(gitFilePath); + + if (foundHash) { + foundPaths.set(filePath, foundHash); + } else { + missingPaths.push(filePath); + } + } + + return { foundPaths, missingPaths }; +} + +export async function getHashesForGlobsAsync( + globPatterns: Iterable, + packagePath: string, + repoState: IRawRepoState | undefined +): Promise> { + const filePaths: string[] = await expandGlobPatternsAsync(globPatterns, packagePath); + + if (!repoState) { + return getGitHashForFiles(filePaths, packagePath); + } + + const { foundPaths, missingPaths } = getKnownHashes(filePaths, packagePath, repoState); + const calculatedHashes: Map = getGitHashForFiles(missingPaths, packagePath); + + /** + * We want to keep the order of the output the same regardless whether the file was already + * hashed by git or not (as this can change, e.g. due to .gitignore). + * Therefore we will populate our final hashes map in the same order as `filePaths`. + */ + const result: Map = new Map(); + for (const filePath of filePaths) { + const hash: string | undefined = foundPaths.get(filePath) || calculatedHashes.get(filePath); + if (!hash) { + // Sanity check -- this should never happen + throw new Error(`Failed to calculate hash of file: "${filePath}"`); + } + result.set(filePath, hash); + } + + return result; +} diff --git a/libraries/rush-lib/src/logic/deploy/DeployManager.ts b/libraries/rush-lib/src/logic/deploy/DeployManager.ts index 78175e3f9a8..ce4d392bcef 100644 --- a/libraries/rush-lib/src/logic/deploy/DeployManager.ts +++ b/libraries/rush-lib/src/logic/deploy/DeployManager.ts @@ -31,7 +31,7 @@ import { RushConfigurationProject } from '../../api/RushConfigurationProject'; import { DeployScenarioConfiguration, IDeployScenarioProjectJson } from './DeployScenarioConfiguration'; import { PnpmfileConfiguration } from '../pnpm/PnpmfileConfiguration'; import { matchesWithStar } from './Utils'; -import { scriptsFolderName } from '../../utilities/PathConstants'; +import { createLinksScriptFilename, scriptsFolderPath } from '../../utilities/PathConstants'; // (@types/npm-packlist is missing this API) declare module 'npm-packlist' { @@ -665,7 +665,7 @@ export class DeployManager { if (deployState.scenarioConfiguration.json.linkCreation === 'script') { console.log('Copying create-links.js'); FileSystem.copyFile({ - sourcePath: `${scriptsFolderName}/create-links.js`, + sourcePath: `${scriptsFolderPath}/${createLinksScriptFilename}`, destinationPath: path.join(deployState.targetRootFolder, 'create-links.js'), alreadyExistsBehavior: AlreadyExistsBehavior.Error }); diff --git a/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts b/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts index 9889de84da1..14847602cab 100644 --- a/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts +++ b/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts @@ -575,45 +575,28 @@ export class RushInstallManager extends BaseInstallManager { ); } - try { - Utilities.executeCommandWithRetry( - { - command: packageManagerFilename, - args: installArgs, - workingDirectory: this.rushConfiguration.commonTempFolder, - environment: packageManagerEnv, - suppressOutput: false - }, - this.options.maxInstallAttempts, - () => { - if (this.rushConfiguration.packageManager === 'pnpm') { - console.log(colors.yellow(`Deleting the "node_modules" folder`)); - this.installRecycler.moveFolder(commonNodeModulesFolder); - - // Leave the pnpm-store as is for the retry. This ensures that packages that have already - // been downloaded need not be downloaded again, thereby potentially increasing the chances - // of a subsequent successful install. - - Utilities.createFolderWithRetry(commonNodeModulesFolder); - } + Utilities.executeCommandWithRetry( + { + command: packageManagerFilename, + args: installArgs, + workingDirectory: this.rushConfiguration.commonTempFolder, + environment: packageManagerEnv, + suppressOutput: false + }, + this.options.maxInstallAttempts, + () => { + if (this.rushConfiguration.packageManager === 'pnpm') { + console.log(colors.yellow(`Deleting the "node_modules" folder`)); + this.installRecycler.moveFolder(commonNodeModulesFolder); + + // Leave the pnpm-store as is for the retry. This ensures that packages that have already + // been downloaded need not be downloaded again, thereby potentially increasing the chances + // of a subsequent successful install. + + Utilities.createFolderWithRetry(commonNodeModulesFolder); } - ); - } catch (error) { - // All the install attempts failed. - - if ( - this.rushConfiguration.packageManager === 'pnpm' && - this.rushConfiguration.pnpmOptions.pnpmStore === 'local' - ) { - // If the installation has failed even after the retries, then pnpm store may - // have got into a corrupted, irrecoverable state. Delete the store so that a - // future install can create the store afresh. - console.log(colors.yellow(`Deleting the "pnpm-store" folder`)); - this.installRecycler.moveFolder(this.rushConfiguration.pnpmOptions.pnpmStorePath); } - - throw error; - } + ); if (this.rushConfiguration.packageManager === 'npm') { console.log('\n' + colors.bold('Running "npm shrinkwrap"...')); diff --git a/libraries/rush-lib/src/logic/operations/IOperationRunner.ts b/libraries/rush-lib/src/logic/operations/IOperationRunner.ts index 82bcae1ef00..22062e82b71 100644 --- a/libraries/rush-lib/src/logic/operations/IOperationRunner.ts +++ b/libraries/rush-lib/src/logic/operations/IOperationRunner.ts @@ -5,7 +5,7 @@ import type { StdioSummarizer } from '@rushstack/terminal'; import type { CollatedWriter } from '@rushstack/stream-collator'; import type { OperationStatus } from './OperationStatus'; -import type { OperationStateFile } from './OperationStateFile'; +import type { OperationMetadataManager } from './OperationMetadataManager'; import type { IStopwatchResult } from '../../utilities/Stopwatch'; /** @@ -31,11 +31,11 @@ export interface IOperationRunnerContext { */ stdioSummarizer: StdioSummarizer; /** - * Object used to record state of the operation. + * Object used to manage metadata of the operation. * * @internal */ - _operationStateFile?: OperationStateFile; + _operationMetadataManager?: OperationMetadataManager; /** * Object used to track elapsed time. */ diff --git a/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts b/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts index a84a0cb67d6..4cc9847e9f9 100644 --- a/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts +++ b/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts @@ -18,6 +18,9 @@ export interface IOperationExecutionManagerOptions { parallelism: number; changedProjectsOnly: boolean; destination?: TerminalWritable; + + onOperationStatusChanged?: (record: OperationExecutionRecord) => void; + beforeExecuteOperations?: (records: Map) => Promise; } /** @@ -44,13 +47,25 @@ export class OperationExecutionManager { private readonly _terminal: CollatedTerminal; + private readonly _onOperationStatusChanged?: (record: OperationExecutionRecord) => void; + private readonly _beforeExecuteOperations?: ( + records: Map + ) => Promise; + // Variables for current status private _hasAnyFailures: boolean; private _hasAnyNonAllowedWarnings: boolean; private _completedOperations: number; public constructor(operations: Set, options: IOperationExecutionManagerOptions) { - const { quietMode, debugMode, parallelism, changedProjectsOnly } = options; + const { + quietMode, + debugMode, + parallelism, + changedProjectsOnly, + onOperationStatusChanged, + beforeExecuteOperations + } = options; this._completedOperations = 0; this._quietMode = quietMode; this._hasAnyFailures = false; @@ -58,6 +73,9 @@ export class OperationExecutionManager { this._changedProjectsOnly = changedProjectsOnly; this._parallelism = parallelism; + this._beforeExecuteOperations = beforeExecuteOperations; + this._onOperationStatusChanged = onOperationStatusChanged; + // TERMINAL PIPELINE: // // streamCollator --> colorsNewlinesTransform --> StdioWritable @@ -77,6 +95,7 @@ export class OperationExecutionManager { // Convert the developer graph to the mutable execution graph const executionRecordContext: IOperationExecutionRecordContext = { streamCollator: this._streamCollator, + onOperationStatusChanged, debugMode, quietMode }; @@ -183,6 +202,8 @@ export class OperationExecutionManager { prioritySort ); + await this._beforeExecuteOperations?.(this._executionRecords); + // This function is a callback because it may write to the collatedWriter before // operation.executeAsync returns (and cleans up the writer) const onOperationComplete: (record: OperationExecutionRecord) => void = ( @@ -250,6 +271,7 @@ export class OperationExecutionManager { terminal.writeStdoutLine(`"${blockedRecord.name}" is blocked by "${name}".`); } blockedRecord.status = OperationStatus.Blocked; + this._onOperationStatusChanged?.(blockedRecord); for (const dependent of blockedRecord.consumers) { blockedQueue.add(dependent); diff --git a/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts b/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts index c285d9b6371..3c97bbc574a 100644 --- a/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts +++ b/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts @@ -9,10 +9,11 @@ import { OperationStatus } from './OperationStatus'; import { IOperationRunner, IOperationRunnerContext } from './IOperationRunner'; import { Operation } from './Operation'; import { Stopwatch } from '../../utilities/Stopwatch'; -import { OperationStateFile } from './OperationStateFile'; +import { OperationMetadataManager } from './OperationMetadataManager'; export interface IOperationExecutionRecordContext { streamCollator: StreamCollator; + onOperationStatusChanged?: (record: OperationExecutionRecord) => void; debugMode: boolean; quietMode: boolean; @@ -81,7 +82,7 @@ export class OperationExecutionRecord implements IOperationRunnerContext { public readonly runner: IOperationRunner; public readonly weight: number; - public readonly _operationStateFile: OperationStateFile | undefined; + public readonly _operationMetadataManager: OperationMetadataManager | undefined; private readonly _context: IOperationExecutionRecordContext; @@ -99,7 +100,7 @@ export class OperationExecutionRecord implements IOperationRunnerContext { this.runner = runner; this.weight = operation.weight; if (operation.associatedPhase && operation.associatedProject) { - this._operationStateFile = new OperationStateFile({ + this._operationMetadataManager = new OperationMetadataManager({ phase: operation.associatedPhase, rushProject: operation.associatedProject }); @@ -129,12 +130,13 @@ export class OperationExecutionRecord implements IOperationRunnerContext { public get nonCachedDurationMs(): number | undefined { // Lazy calculated because the state file is created/restored later on - return this._operationStateFile?.state?.nonCachedDurationMs; + return this._operationMetadataManager?.stateFile.state?.nonCachedDurationMs; } public async executeAsync(onResult: (record: OperationExecutionRecord) => void): Promise { this.status = OperationStatus.Executing; this.stopwatch.start(); + this._context.onOperationStatusChanged?.(this); try { this.status = await this.runner.executeAsync(this); @@ -149,6 +151,7 @@ export class OperationExecutionRecord implements IOperationRunnerContext { this._collatedWriter?.close(); this.stdioSummarizer.close(); this.stopwatch.stop(); + this._context.onOperationStatusChanged?.(this); } } } diff --git a/libraries/rush-lib/src/logic/operations/OperationMetadataManager.ts b/libraries/rush-lib/src/logic/operations/OperationMetadataManager.ts new file mode 100644 index 00000000000..3ee563a9142 --- /dev/null +++ b/libraries/rush-lib/src/logic/operations/OperationMetadataManager.ts @@ -0,0 +1,141 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import * as fs from 'fs'; +import { Async, FileSystem, IFileSystemCopyFileOptions, ITerminal } from '@rushstack/node-core-library'; + +import { OperationStateFile } from './OperationStateFile'; +import { RushConstants } from '../RushConstants'; + +import type { IPhase } from '../../api/CommandLineConfiguration'; +import type { RushConfigurationProject } from '../../api/RushConfigurationProject'; +import type { IOperationStateJson } from './OperationStateFile'; + +/** + * @internal + */ +export interface IOperationMetadataManagerOptions { + rushProject: RushConfigurationProject; + phase: IPhase; +} + +/** + * @internal + */ +export interface IOperationMetaData { + durationInSeconds: number; + logPath: string; + errorLogPath: string; +} + +/** + * A helper class for managing the meta files of a operation. + * + * @internal + */ +export class OperationMetadataManager { + public readonly stateFile: OperationStateFile; + private _metadataFolder: string; + private _logPath: string; + private _errorLogPath: string; + private _relativeLogPath: string; + private _relativeErrorLogPath: string; + + public constructor(options: IOperationMetadataManagerOptions) { + const { rushProject, phase } = options; + const { projectFolder } = rushProject; + + const identifier: string = phase.logFilenameIdentifier; + this._metadataFolder = `${RushConstants.projectRushFolderName}/${RushConstants.rushTempFolderName}/operation/${identifier}`; + + this.stateFile = new OperationStateFile({ + projectFolder: projectFolder, + metadataFolder: this._metadataFolder + }); + + this._relativeLogPath = `${this._metadataFolder}/all.log`; + this._relativeErrorLogPath = `${this._metadataFolder}/error.log`; + this._logPath = `${projectFolder}/${this._relativeLogPath}`; + this._errorLogPath = `${projectFolder}/${this._relativeErrorLogPath}`; + } + + /** + * Returns the relative paths of the metadata files to project folder. + * + * Example: `.rush/temp/operation/_phase_build/state.json` + * Example: `.rush/temp/operation/_phase_build/all.log` + * Example: `.rush/temp/operation/_phase_build/error.log` + */ + public get relativeFilepaths(): string[] { + return [this.stateFile.relativeFilepath, this._relativeLogPath, this._relativeErrorLogPath]; + } + + public async saveAsync({ durationInSeconds, logPath, errorLogPath }: IOperationMetaData): Promise { + const state: IOperationStateJson = { + nonCachedDurationMs: durationInSeconds * 1000 + }; + await this.stateFile.writeAsync(state); + + const copyFileOptions: IFileSystemCopyFileOptions[] = [ + { + sourcePath: logPath, + destinationPath: this._logPath + }, + { + sourcePath: errorLogPath, + destinationPath: this._errorLogPath + } + ]; + + // Try to copy log files + await Async.forEachAsync(copyFileOptions, async (options) => { + try { + await FileSystem.copyFileAsync(options); + } catch (e) { + if (!FileSystem.isNotExistError(e)) { + throw e; + } + } + }); + } + + public async tryRestoreAsync({ + terminal, + logPath, + errorLogPath + }: { + terminal: ITerminal; + logPath: string; + errorLogPath: string; + }): Promise { + await this.stateFile.tryRestoreAsync(); + + // Append cached log into current log file + terminal.writeLine(''); + terminal.writeLine(`Restoring cached log file at ${this._logPath}`); + try { + const logReadStream: fs.ReadStream = fs.createReadStream(this._logPath, { + encoding: 'utf-8' + }); + for await (const data of logReadStream) { + terminal.write(data); + } + } catch (e) { + if (!FileSystem.isNotExistError(e)) { + throw e; + } + } + + // Try to restore cached error log as error log file + try { + await FileSystem.copyFileAsync({ + sourcePath: this._errorLogPath, + destinationPath: errorLogPath + }); + } catch (e) { + if (!FileSystem.isNotExistError(e)) { + throw e; + } + } + } +} diff --git a/libraries/rush-lib/src/logic/operations/OperationStateFile.ts b/libraries/rush-lib/src/logic/operations/OperationStateFile.ts index cb6c9f82335..de8b6ed7321 100644 --- a/libraries/rush-lib/src/logic/operations/OperationStateFile.ts +++ b/libraries/rush-lib/src/logic/operations/OperationStateFile.ts @@ -2,17 +2,13 @@ // See LICENSE in the project root for license information. import { FileSystem, InternalError, JsonFile } from '@rushstack/node-core-library'; -import { RushConstants } from '../RushConstants'; - -import type { IPhase } from '../../api/CommandLineConfiguration'; -import type { RushConfigurationProject } from '../../api/RushConfigurationProject'; /** * @internal */ export interface IOperationStateFileOptions { - rushProject: RushConfigurationProject; - phase: IPhase; + projectFolder: string; + metadataFolder: string; } /** @@ -31,28 +27,25 @@ export class OperationStateFile { private _state: IOperationStateJson | undefined; /** - * Returns the filename of the metadata file. + * The path of the state json file. + * + * Example: `/code/repo/my-project/.rush/temp/operation/_phase_build/state.json` */ - public readonly filename: string; - - public constructor(options: IOperationStateFileOptions) { - const { rushProject, phase } = options; - this.filename = OperationStateFile._getFilename(phase, rushProject); - } - - private static _getFilename(phase: IPhase, project: RushConfigurationProject): string { - const relativeFilename: string = OperationStateFile.getFilenameRelativeToProjectRoot(phase); - return `${project.projectFolder}/${relativeFilename}`; - } + public readonly filepath: string; /** - * ProjectBuildCache expects the relative path for better logging + * The relative path of the state json file to project folder * - * @internal + * Example: `.rush/temp/operation/_phase_build/state.json` */ - public static getFilenameRelativeToProjectRoot(phase: IPhase): string { - const identifier: string = phase.logFilenameIdentifier; - return `${RushConstants.projectRushFolderName}/${RushConstants.rushTempFolderName}/operation/${identifier}/state.json`; + public readonly relativeFilepath: string; + + public static filename: string = 'state.json'; + + public constructor(options: IOperationStateFileOptions) { + const { projectFolder, metadataFolder } = options; + this.relativeFilepath = `${metadataFolder}/${OperationStateFile.filename}`; + this.filepath = `${projectFolder}/${this.relativeFilepath}`; } public get state(): IOperationStateJson | undefined { @@ -60,13 +53,13 @@ export class OperationStateFile { } public async writeAsync(json: IOperationStateJson): Promise { - await JsonFile.saveAsync(json, this.filename, { ensureFolderExists: true, updateExistingFile: true }); + await JsonFile.saveAsync(json, this.filepath, { ensureFolderExists: true, updateExistingFile: true }); this._state = json; } public async tryRestoreAsync(): Promise { try { - this._state = await JsonFile.loadAsync(this.filename); + this._state = await JsonFile.loadAsync(this.filepath); } catch (error) { if (FileSystem.isNotExistError(error as Error)) { this._state = undefined; diff --git a/libraries/rush-lib/src/logic/operations/PhasedOperationPlugin.ts b/libraries/rush-lib/src/logic/operations/PhasedOperationPlugin.ts index f07984f2a6e..17de0854eaf 100644 --- a/libraries/rush-lib/src/logic/operations/PhasedOperationPlugin.ts +++ b/libraries/rush-lib/src/logic/operations/PhasedOperationPlugin.ts @@ -29,13 +29,18 @@ function createOperations( existingOperations: Set, context: ICreateOperationsContext ): Set { - const { projectsInUnknownState: changedProjects, phaseSelection, projectSelection } = context; + const { + projectsInUnknownState: changedProjects, + phaseOriginal, + phaseSelection, + projectSelection + } = context; const operationsWithWork: Set = new Set(); const operations: Map = new Map(); // Create tasks for selected phases and projects - for (const phase of phaseSelection) { + for (const phase of phaseOriginal) { for (const project of projectSelection) { getOrCreateOperation(phase, project); } diff --git a/libraries/rush-lib/src/logic/operations/ProjectLogWritable.ts b/libraries/rush-lib/src/logic/operations/ProjectLogWritable.ts index 0310f0c6269..838811c41e4 100644 --- a/libraries/rush-lib/src/logic/operations/ProjectLogWritable.ts +++ b/libraries/rush-lib/src/logic/operations/ProjectLogWritable.ts @@ -13,8 +13,10 @@ export class ProjectLogWritable extends TerminalWritable { private readonly _project: RushConfigurationProject; private readonly _terminal: CollatedTerminal; - private _logPath: string; - private _errorLogPath: string; + public readonly logPath: string; + public readonly errorLogPath: string; + public readonly relativeLogPath: string; + public readonly relativeErrorLogPath: string; private _logWriter: FileWriter | undefined = undefined; private _errorLogWriter: FileWriter | undefined = undefined; @@ -29,22 +31,35 @@ export class ProjectLogWritable extends TerminalWritable { this._terminal = terminal; function getLogFilePaths( - basePath: string, - logFilenameIdentifier: string - ): { logPath: string; errorLogPath: string } { + projectFolder: string, + logFilenameIdentifier: string, + logFolder?: string + ): { logPath: string; errorLogPath: string; relativeLogPath: string; relativeErrorLogPath: string } { const unscopedProjectName: string = PackageNameParsers.permissive.getUnscopedName(project.packageName); + const logFilename: string = `${unscopedProjectName}.${logFilenameIdentifier}.log`; + const errorLogFilename: string = `${unscopedProjectName}.${logFilenameIdentifier}.error.log`; + + const relativeLogPath: string = logFolder ? `${logFolder}/${logFilename}` : logFilename; + const relativeErrorLogPath: string = logFolder ? `${logFolder}/${errorLogFilename}` : errorLogFilename; + + const logPath: string = `${projectFolder}/${relativeLogPath}`; + const errorLogPath: string = `${projectFolder}/${relativeErrorLogPath}`; return { - logPath: `${basePath}/${unscopedProjectName}.${logFilenameIdentifier}.log`, - errorLogPath: `${basePath}/${unscopedProjectName}.${logFilenameIdentifier}.error.log` + logPath, + errorLogPath, + relativeLogPath, + relativeErrorLogPath }; } const projectFolder: string = this._project.projectFolder; - const { logPath: legacyLogPath, errorLogPath: legacyErrorLogPath } = getLogFilePaths( - projectFolder, - 'build' - ); + const { + logPath: legacyLogPath, + errorLogPath: legacyErrorLogPath, + relativeLogPath: legacyRelativeLogPath, + relativeErrorLogPath: legacyRelativeErrorLogPath + } = getLogFilePaths(projectFolder, 'build'); // If the phased commands experiment is enabled, put logs under `rush-logs` if (project.rushConfiguration.experimentsConfiguration.configuration.phasedCommands) { // Delete the legacy logs @@ -54,18 +69,26 @@ export class ProjectLogWritable extends TerminalWritable { const logPathPrefix: string = `${projectFolder}/${RushConstants.rushLogsFolderName}`; FileSystem.ensureFolder(logPathPrefix); - const { logPath, errorLogPath } = getLogFilePaths(logPathPrefix, logFilenameIdentifier); - this._logPath = logPath; - this._errorLogPath = errorLogPath; + const { logPath, errorLogPath, relativeLogPath, relativeErrorLogPath } = getLogFilePaths( + projectFolder, + logFilenameIdentifier, + RushConstants.rushLogsFolderName + ); + this.logPath = logPath; + this.errorLogPath = errorLogPath; + this.relativeLogPath = relativeLogPath; + this.relativeErrorLogPath = relativeErrorLogPath; } else { - this._logPath = legacyLogPath; - this._errorLogPath = legacyErrorLogPath; + this.logPath = legacyLogPath; + this.errorLogPath = legacyErrorLogPath; + this.relativeLogPath = legacyRelativeLogPath; + this.relativeErrorLogPath = legacyRelativeErrorLogPath; } - FileSystem.deleteFile(this._logPath); - FileSystem.deleteFile(this._errorLogPath); + FileSystem.deleteFile(this.logPath); + FileSystem.deleteFile(this.errorLogPath); - this._logWriter = FileWriter.open(this._logPath); + this._logWriter = FileWriter.open(this.logPath); } protected onWriteChunk(chunk: ITerminalChunk): void { @@ -78,7 +101,7 @@ export class ProjectLogWritable extends TerminalWritable { if (chunk.kind === TerminalChunkKind.Stderr) { // Only stderr gets written to *..error.log if (!this._errorLogWriter) { - this._errorLogWriter = FileWriter.open(this._errorLogPath); + this._errorLogWriter = FileWriter.open(this.errorLogPath); } this._errorLogWriter.write(chunk.text); } diff --git a/libraries/rush-lib/src/logic/operations/ShellOperationRunner.ts b/libraries/rush-lib/src/logic/operations/ShellOperationRunner.ts index 147b5609d5d..2dca3e01b37 100644 --- a/libraries/rush-lib/src/logic/operations/ShellOperationRunner.ts +++ b/libraries/rush-lib/src/logic/operations/ShellOperationRunner.ts @@ -29,15 +29,16 @@ import { OperationError } from './OperationError'; import { IOperationRunner, IOperationRunnerContext } from './IOperationRunner'; import { ProjectLogWritable } from './ProjectLogWritable'; import { ProjectBuildCache } from '../buildCache/ProjectBuildCache'; +import { getHashesForGlobsAsync } from '../buildCache/getHashesForGlobsAsync'; import { IOperationSettings, RushProjectConfiguration } from '../../api/RushProjectConfiguration'; import { CollatedTerminalProvider } from '../../utilities/CollatedTerminalProvider'; import { RushConstants } from '../RushConstants'; import { EnvironmentConfiguration } from '../../api/EnvironmentConfiguration'; -import { OperationStateFile } from './OperationStateFile'; +import { OperationMetadataManager } from './OperationMetadataManager'; import type { RushConfiguration } from '../../api/RushConfiguration'; import type { RushConfigurationProject } from '../../api/RushConfigurationProject'; -import type { ProjectChangeAnalyzer } from '../ProjectChangeAnalyzer'; +import type { ProjectChangeAnalyzer, IRawRepoState } from '../ProjectChangeAnalyzer'; import type { BuildCacheConfiguration } from '../../api/BuildCacheConfiguration'; import type { IPhase } from '../../api/CommandLineConfiguration'; @@ -208,17 +209,17 @@ export class ShellOperationRunner implements IOperationRunner { } let projectDeps: IProjectDeps | undefined; - let trackedFiles: string[] | undefined; + let trackedProjectFiles: string[] | undefined; try { const fileHashes: Map | undefined = await this._projectChangeAnalyzer._tryGetProjectDependenciesAsync(this._rushProject, terminal); if (fileHashes) { const files: { [filePath: string]: string } = {}; - trackedFiles = []; + trackedProjectFiles = []; for (const [filePath, fileHash] of fileHashes) { files[filePath] = fileHash; - trackedFiles.push(filePath); + trackedProjectFiles.push(filePath); } projectDeps = { @@ -264,10 +265,11 @@ export class ShellOperationRunner implements IOperationRunner { // let buildCacheReadAttempted: boolean = false; if (this._isCacheReadAllowed) { - const projectBuildCache: ProjectBuildCache | undefined = await this._tryGetProjectBuildCacheAsync( + const projectBuildCache: ProjectBuildCache | undefined = await this._tryGetProjectBuildCacheAsync({ terminal, - trackedFiles - ); + trackedProjectFiles, + operationMetadataManager: context._operationMetadataManager + }); buildCacheReadAttempted = !!projectBuildCache; const restoreFromCacheSuccess: boolean | undefined = @@ -275,7 +277,11 @@ export class ShellOperationRunner implements IOperationRunner { if (restoreFromCacheSuccess) { // Restore the original state of the operation without cache - await context._operationStateFile?.tryRestoreAsync(); + await context._operationMetadataManager?.tryRestoreAsync({ + terminal, + logPath: projectLogWritable.logPath, + errorLogPath: projectLogWritable.errorLogPath + }); return OperationStatus.FromCache; } } @@ -373,18 +379,24 @@ export class ShellOperationRunner implements IOperationRunner { ensureFolderExists: true }); - // If the operation without cache was successful, we can save the state to disk + // If the operation without cache was successful, we can save the metadata to disk const { duration: durationInSeconds } = context.stopwatch; - await context._operationStateFile?.writeAsync({ - nonCachedDurationMs: durationInSeconds * 1000 + await context._operationMetadataManager?.saveAsync({ + durationInSeconds, + logPath: projectLogWritable.logPath, + errorLogPath: projectLogWritable.errorLogPath }); // If the command is successful, we can calculate project hash, and no dependencies were skipped, // write a new cache entry. const setCacheEntryPromise: Promise | undefined = this.isCacheWriteAllowed - ? (await this._tryGetProjectBuildCacheAsync(terminal, trackedFiles))?.trySetCacheEntryAsync( - terminal - ) + ? ( + await this._tryGetProjectBuildCacheAsync({ + terminal, + trackedProjectFiles, + operationMetadataManager: context._operationMetadataManager + }) + )?.trySetCacheEntryAsync(terminal) : undefined; const [, cacheWriteSuccess] = await Promise.all([writeProjectStatePromise, setCacheEntryPromise]); @@ -410,10 +422,15 @@ export class ShellOperationRunner implements IOperationRunner { } } - private async _tryGetProjectBuildCacheAsync( - terminal: ITerminal, - trackedProjectFiles: string[] | undefined - ): Promise { + private async _tryGetProjectBuildCacheAsync({ + terminal, + trackedProjectFiles, + operationMetadataManager + }: { + terminal: ITerminal; + trackedProjectFiles: string[] | undefined; + operationMetadataManager: OperationMetadataManager | undefined; + }): Promise { if (this._projectBuildCache === UNINITIALIZED) { this._projectBuildCache = undefined; @@ -442,7 +459,7 @@ export class ShellOperationRunner implements IOperationRunner { const projectOutputFolderNames: ReadonlyArray = operationSettings.outputFolderNames || []; const additionalProjectOutputFilePaths: ReadonlyArray = [ - OperationStateFile.getFilenameRelativeToProjectRoot(this._phase) + ...(operationMetadataManager?.relativeFilepaths || []) ]; const additionalContext: Record = {}; if (operationSettings.dependsOnEnvVars) { @@ -450,6 +467,27 @@ export class ShellOperationRunner implements IOperationRunner { additionalContext['$' + varName] = process.env[varName] || ''; } } + + if (operationSettings.dependsOnAdditionalFiles) { + const repoState: IRawRepoState | undefined = + await this._projectChangeAnalyzer._ensureInitializedAsync(terminal); + + const additionalFiles: Map = await getHashesForGlobsAsync( + operationSettings.dependsOnAdditionalFiles, + this._rushProject.projectFolder, + repoState + ); + + terminal.writeDebugLine( + `Including additional files to calculate build cache hash:\n ${Array.from( + additionalFiles.keys() + ).join('\n ')} ` + ); + + for (const [filePath, fileHash] of additionalFiles) { + additionalContext['file://' + filePath] = fileHash; + } + } this._projectBuildCache = await ProjectBuildCache.tryGetProjectBuildCache({ projectConfiguration, projectOutputFolderNames, diff --git a/libraries/rush-lib/src/logic/operations/ShellOperationRunnerPlugin.ts b/libraries/rush-lib/src/logic/operations/ShellOperationRunnerPlugin.ts index 31129619a28..d070fc1588b 100644 --- a/libraries/rush-lib/src/logic/operations/ShellOperationRunnerPlugin.ts +++ b/libraries/rush-lib/src/logic/operations/ShellOperationRunnerPlugin.ts @@ -61,7 +61,12 @@ function createShellOperations( // to specify a runner type requested in rush-project.json const customParameterValues: ReadonlyArray = getCustomParameterValuesForPhase(phase); - const commandToRun: string | undefined = getScriptToRun(project, phase.name, customParameterValues); + const commandToRun: string | undefined = getScriptToRun( + project, + phase.name, + customParameterValues, + phase.shellCommand + ); if (commandToRun === undefined && !phase.ignoreMissingScript) { throw new Error( @@ -100,11 +105,12 @@ function createShellOperations( function getScriptToRun( rushProject: RushConfigurationProject, commandToRun: string, - customParameterValues: ReadonlyArray + customParameterValues: ReadonlyArray, + shellCommand: string | undefined ): string | undefined { const { scripts } = rushProject.packageJson; - const rawCommand: string | undefined | null = scripts?.[commandToRun]; + const rawCommand: string | undefined | null = shellCommand ?? scripts?.[commandToRun]; if (rawCommand === undefined || rawCommand === null) { return undefined; diff --git a/libraries/rush-lib/src/logic/operations/test/PhasedOperationPlugin.test.ts b/libraries/rush-lib/src/logic/operations/test/PhasedOperationPlugin.test.ts index 62b2a308a18..2d5b46c79ec 100644 --- a/libraries/rush-lib/src/logic/operations/test/PhasedOperationPlugin.test.ts +++ b/libraries/rush-lib/src/logic/operations/test/PhasedOperationPlugin.test.ts @@ -68,8 +68,9 @@ describe(PhasedOperationPlugin.name, () => { const context: Pick< ICreateOperationsContext, - 'phaseSelection' | 'projectSelection' | 'projectsInUnknownState' + 'phaseOriginal' | 'phaseSelection' | 'projectSelection' | 'projectsInUnknownState' > = { + phaseOriginal: phaseSelection, phaseSelection, projectSelection, projectsInUnknownState: changedProjects diff --git a/libraries/rush-lib/src/logic/operations/test/ShellOperationRunnerPlugin.test.ts b/libraries/rush-lib/src/logic/operations/test/ShellOperationRunnerPlugin.test.ts new file mode 100644 index 00000000000..96fe059ee21 --- /dev/null +++ b/libraries/rush-lib/src/logic/operations/test/ShellOperationRunnerPlugin.test.ts @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import path from 'path'; +import { JsonFile } from '@rushstack/node-core-library'; + +import { RushConfiguration } from '../../../api/RushConfiguration'; +import { CommandLineConfiguration, IPhasedCommandConfig } from '../../../api/CommandLineConfiguration'; +import { Operation } from '../Operation'; +import { ICommandLineJson } from '../../../api/CommandLineJson'; +import { PhasedOperationPlugin } from '../PhasedOperationPlugin'; +import { ShellOperationRunnerPlugin } from '../ShellOperationRunnerPlugin'; +import { ICreateOperationsContext, PhasedCommandHooks } from '../../../pluginFramework/PhasedCommandHooks'; +import { ShellOperationRunner } from '../ShellOperationRunner'; + +interface ISerializedOperation { + name: string; + commandToRun: string; +} + +function serializeOperation(operation: Operation): ISerializedOperation { + return { + name: operation.name!, + commandToRun: (operation.runner as ShellOperationRunner)['_commandToRun'] + }; +} + +describe(ShellOperationRunnerPlugin.name, () => { + it('shellCommand "echo custom shellCommand" should be set to commandToRun', async () => { + const rushJsonFile: string = path.resolve(__dirname, `../../test/customShellCommandinBulkRepo/rush.json`); + const commandLineJsonFile: string = path.resolve( + __dirname, + `../../test/customShellCommandinBulkRepo/common/config/rush/command-line.json` + ); + + const rushConfiguration = RushConfiguration.loadFromConfigurationFile(rushJsonFile); + const commandLineJson: ICommandLineJson = JsonFile.load(commandLineJsonFile); + + const commandLineConfiguration = new CommandLineConfiguration(commandLineJson); + + const echoCommand: IPhasedCommandConfig = commandLineConfiguration.commands.get( + 'echo' + )! as IPhasedCommandConfig; + + const fakeCreateOperationsContext: Pick< + ICreateOperationsContext, + 'phaseOriginal' | 'phaseSelection' | 'projectSelection' | 'projectsInUnknownState' + > = { + phaseOriginal: echoCommand.phases, + phaseSelection: echoCommand.phases, + projectSelection: new Set(rushConfiguration.projects), + projectsInUnknownState: new Set(rushConfiguration.projects) + }; + + const hooks: PhasedCommandHooks = new PhasedCommandHooks(); + + // Generates the default operation graph + new PhasedOperationPlugin().apply(hooks); + // Applies the Shell Operation Runner to selected operations + new ShellOperationRunnerPlugin().apply(hooks); + + const operations: Set = await hooks.createOperations.promise( + new Set(), + fakeCreateOperationsContext as ICreateOperationsContext + ); + // All projects + expect(Array.from(operations, serializeOperation)).toMatchSnapshot(); + }); + + it('shellCommand priority should be higher than script name', async () => { + const rushJsonFile: string = path.resolve( + __dirname, + `../../test/customShellCommandinBulkOverrideScriptsRepo/rush.json` + ); + const commandLineJsonFile: string = path.resolve( + __dirname, + `../../test/customShellCommandinBulkOverrideScriptsRepo/common/config/rush/command-line.json` + ); + + const rushConfiguration = RushConfiguration.loadFromConfigurationFile(rushJsonFile); + const commandLineJson: ICommandLineJson = JsonFile.load(commandLineJsonFile); + + const commandLineConfiguration = new CommandLineConfiguration(commandLineJson); + const echoCommand: IPhasedCommandConfig = commandLineConfiguration.commands.get( + 'echo' + )! as IPhasedCommandConfig; + + const fakeCreateOperationsContext: Pick< + ICreateOperationsContext, + 'phaseOriginal' | 'phaseSelection' | 'projectSelection' | 'projectsInUnknownState' + > = { + phaseOriginal: echoCommand.phases, + phaseSelection: echoCommand.phases, + projectSelection: new Set(rushConfiguration.projects), + projectsInUnknownState: new Set(rushConfiguration.projects) + }; + + const hooks: PhasedCommandHooks = new PhasedCommandHooks(); + + // Generates the default operation graph + new PhasedOperationPlugin().apply(hooks); + // Applies the Shell Operation Runner to selected operations + new ShellOperationRunnerPlugin().apply(hooks); + + const operations: Set = await hooks.createOperations.promise( + new Set(), + fakeCreateOperationsContext as ICreateOperationsContext + ); + // All projects + expect(Array.from(operations, serializeOperation)).toMatchSnapshot(); + }); +}); diff --git a/libraries/rush-lib/src/logic/operations/test/__snapshots__/ShellOperationRunnerPlugin.test.ts.snap b/libraries/rush-lib/src/logic/operations/test/__snapshots__/ShellOperationRunnerPlugin.test.ts.snap new file mode 100644 index 00000000000..f5990af4d43 --- /dev/null +++ b/libraries/rush-lib/src/logic/operations/test/__snapshots__/ShellOperationRunnerPlugin.test.ts.snap @@ -0,0 +1,27 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ShellOperationRunnerPlugin shellCommand "echo custom shellCommand" should be set to commandToRun 1`] = ` +Array [ + Object { + "commandToRun": "echo custom shellCommand ", + "name": "a", + }, + Object { + "commandToRun": "echo custom shellCommand ", + "name": "b", + }, +] +`; + +exports[`ShellOperationRunnerPlugin shellCommand priority should be higher than script name 1`] = ` +Array [ + Object { + "commandToRun": "echo custom shellCommand ", + "name": "a", + }, + Object { + "commandToRun": "echo custom shellCommand ", + "name": "b", + }, +] +`; diff --git a/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts b/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts index 273221771be..43599b6c748 100644 --- a/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts +++ b/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts @@ -6,6 +6,7 @@ import * as crypto from 'crypto'; import uriEncode from 'strict-uri-encode'; import pnpmLinkBins from '@pnpm/link-bins'; import * as semver from 'semver'; +import { depPathToFilename } from 'dependency-path'; import colors from 'colors/safe'; import { @@ -217,6 +218,7 @@ export class PnpmLinkManager extends BaseLinkManager { // e.g.: C:\wbt\common\temp\node_modules\.local\C%3A%2Fwbt%2Fcommon%2Ftemp%2Fprojects%2Fapi-documenter.tgz\node_modules const pathToLocalInstallation: string = this._getPathToLocalInstallation( + tarballEntry, absolutePathToTgzFile, folderNameSuffix ); @@ -272,8 +274,12 @@ export class PnpmLinkManager extends BaseLinkManager { }); } - private _getPathToLocalInstallation(absolutePathToTgzFile: string, folderSuffix: string): string { - if (this._pnpmVersion.major >= 6) { + private _getPathToLocalInstallation( + tarballEntry: string, + absolutePathToTgzFile: string, + folderSuffix: string + ): string { + if (this._pnpmVersion.major === 6) { // PNPM 6 changed formatting to replace all ':' and '/' chars with '+'. Additionally, folder names > 120 // are trimmed and hashed. NOTE: PNPM internally uses fs.realpath.native, which will cause additional // issues in environments that do not support long paths. @@ -294,6 +300,20 @@ export class PnpmLinkManager extends BaseLinkManager { .digest('hex')}`; } + return path.join( + this._rushConfiguration.commonTempFolder, + RushConstants.nodeModulesFolderName, + '.pnpm', + folderName, + RushConstants.nodeModulesFolderName + ); + } else if (this._pnpmVersion.major >= 7) { + // PNPM 7 changed the local path format again and the hashing algorithm + // See https://github.com/pnpm/pnpm/releases/tag/v7.0.0 + // e.g.: + // file+projects+presentation-integration-tests.tgz_jsdom@11.12.0 + const escapedLocalPath: string = depPathToFilename(tarballEntry); + const folderName: string = `${escapedLocalPath}${folderSuffix}`; return path.join( this._rushConfiguration.commonTempFolder, RushConstants.nodeModulesFolderName, diff --git a/libraries/rush-lib/src/logic/test/LookupByPath.test.ts b/libraries/rush-lib/src/logic/test/LookupByPath.test.ts index 0329ac2315c..5b4cbeed881 100644 --- a/libraries/rush-lib/src/logic/test/LookupByPath.test.ts +++ b/libraries/rush-lib/src/logic/test/LookupByPath.test.ts @@ -101,3 +101,37 @@ describe(LookupByPath.prototype.findChildPath.name, () => { expect(tree.findChildPathFromSegments(['foo', 'bar', 'baz'])).toEqual(1); }); }); + +describe(LookupByPath.prototype.findLongestPrefixMatch.name, () => { + it('returns empty for an empty tree', () => { + expect(new LookupByPath().findLongestPrefixMatch('foo')).toEqual(undefined); + }); + it('returns the matching node for a trivial tree', () => { + expect(new LookupByPath([['foo', 1]]).findLongestPrefixMatch('foo')).toEqual({ value: 1, index: 3 }); + }); + it('returns the matching node for a single-layer tree', () => { + const tree: LookupByPath = new LookupByPath([ + ['foo', 1], + ['barbar', 2], + ['baz', 3] + ]); + + expect(tree.findLongestPrefixMatch('foo')).toEqual({ value: 1, index: 3 }); + expect(tree.findLongestPrefixMatch('barbar')).toEqual({ value: 2, index: 6 }); + expect(tree.findLongestPrefixMatch('baz')).toEqual({ value: 3, index: 3 }); + expect(tree.findLongestPrefixMatch('buzz')).toEqual(undefined); + }); + it('returns the matching parent for multi-layer queries', () => { + const tree: LookupByPath = new LookupByPath([ + ['foo', 1], + ['barbar', 2], + ['baz', 3], + ['foo/bar', 4] + ]); + + expect(tree.findLongestPrefixMatch('foo/bar')).toEqual({ value: 4, index: 7 }); + expect(tree.findLongestPrefixMatch('barbar/baz')).toEqual({ value: 2, index: 6 }); + expect(tree.findLongestPrefixMatch('baz/foo')).toEqual({ value: 3, index: 3 }); + expect(tree.findLongestPrefixMatch('foo/foo')).toEqual({ value: 1, index: 3 }); + }); +}); diff --git a/libraries/rush-lib/src/logic/test/ProjectChangeAnalyzer.test.ts b/libraries/rush-lib/src/logic/test/ProjectChangeAnalyzer.test.ts index 47a5818cd52..326e1d09006 100644 --- a/libraries/rush-lib/src/logic/test/ProjectChangeAnalyzer.test.ts +++ b/libraries/rush-lib/src/logic/test/ProjectChangeAnalyzer.test.ts @@ -46,12 +46,12 @@ describe(ProjectChangeAnalyzer.name, () => { const subject: ProjectChangeAnalyzer = new ProjectChangeAnalyzer(rushConfiguration); - subject['_getRepoDeps'] = jest.fn(() => { - return { + subject['_getRepoDepsAsync'] = jest.fn(() => { + return Promise.resolve({ gitPath: 'git', hashes: files, rootDir: '' - }; + }); }); return subject; @@ -255,7 +255,7 @@ describe(ProjectChangeAnalyzer.name, () => { expect(await subject._tryGetProjectDependenciesAsync(projects[0], terminal)).toEqual( new Map([['apps/apple/core.js', 'a101']]) ); - expect(subject['_getRepoDeps']).toHaveBeenCalledTimes(1); + expect(subject['_getRepoDepsAsync']).toHaveBeenCalledTimes(1); }); }); diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/a/package.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/a/package.json new file mode 100644 index 00000000000..f00575e3099 --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/a/package.json @@ -0,0 +1,9 @@ +{ + "name": "a", + "version": "1.0.0", + "description": "Test package a", + "scripts": { + "build": "fake_build_task_but_works_with_mock", + "rebuild": "fake_REbuild_task_but_works_with_mock" + } +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/b/package.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/b/package.json new file mode 100644 index 00000000000..8b915354e7c --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/b/package.json @@ -0,0 +1,10 @@ +{ + "name": "b", + "version": "1.0.0", + "description": "Test package b", + "scripts": { + "build": "fake_build_task_but_works_with_mock", + "rebuild": "fake_REbuild_task_but_works_with_mock", + "echo": "fake_echo_task_but_works_with_mock" + } +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/common/config/rush/command-line.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/common/config/rush/command-line.json new file mode 100644 index 00000000000..4070ff96146 --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/common/config/rush/command-line.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", + "commands": [ + { + "commandKind": "bulk", + "name": "echo", + "summary": "execute 'echo' command", + "description": "execute 'echo' command for selected project", + "enableParallelism": true, + "shellCommand": "echo custom shellCommand" + } + ], + "parameters": [ + { + "longName": "--flag-for-echo", + "description": "This flag should be usable for build and rebuild commands.", + "parameterKind": "flag", + "associatedCommands": ["echo"] + } + ] +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/rush.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/rush.json new file mode 100644 index 00000000000..f39da1606c4 --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkOverrideScriptsRepo/rush.json @@ -0,0 +1,17 @@ +{ + "npmVersion": "6.4.1", + "rushVersion": "5.5.2", + "projectFolderMinDepth": 1, + "projectFolderMaxDepth": 99, + + "projects": [ + { + "packageName": "a", + "projectFolder": "a" + }, + { + "packageName": "b", + "projectFolder": "b" + } + ] +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/a/package.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/a/package.json new file mode 100644 index 00000000000..f00575e3099 --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/a/package.json @@ -0,0 +1,9 @@ +{ + "name": "a", + "version": "1.0.0", + "description": "Test package a", + "scripts": { + "build": "fake_build_task_but_works_with_mock", + "rebuild": "fake_REbuild_task_but_works_with_mock" + } +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/b/package.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/b/package.json new file mode 100644 index 00000000000..8f203bb691d --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/b/package.json @@ -0,0 +1,9 @@ +{ + "name": "b", + "version": "1.0.0", + "description": "Test package b", + "scripts": { + "build": "fake_build_task_but_works_with_mock", + "rebuild": "fake_REbuild_task_but_works_with_mock" + } +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/common/config/rush/command-line.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/common/config/rush/command-line.json new file mode 100644 index 00000000000..4070ff96146 --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/common/config/rush/command-line.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", + "commands": [ + { + "commandKind": "bulk", + "name": "echo", + "summary": "execute 'echo' command", + "description": "execute 'echo' command for selected project", + "enableParallelism": true, + "shellCommand": "echo custom shellCommand" + } + ], + "parameters": [ + { + "longName": "--flag-for-echo", + "description": "This flag should be usable for build and rebuild commands.", + "parameterKind": "flag", + "associatedCommands": ["echo"] + } + ] +} diff --git a/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/rush.json b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/rush.json new file mode 100644 index 00000000000..f39da1606c4 --- /dev/null +++ b/libraries/rush-lib/src/logic/test/customShellCommandinBulkRepo/rush.json @@ -0,0 +1,17 @@ +{ + "npmVersion": "6.4.1", + "rushVersion": "5.5.2", + "projectFolderMinDepth": 1, + "projectFolderMaxDepth": 99, + + "projects": [ + { + "packageName": "a", + "projectFolder": "a" + }, + { + "packageName": "b", + "projectFolder": "b" + } + ] +} diff --git a/libraries/rush-lib/src/pluginFramework/PhasedCommandHooks.ts b/libraries/rush-lib/src/pluginFramework/PhasedCommandHooks.ts index 1c2e893b67d..a38b9870135 100644 --- a/libraries/rush-lib/src/pluginFramework/PhasedCommandHooks.ts +++ b/libraries/rush-lib/src/pluginFramework/PhasedCommandHooks.ts @@ -11,7 +11,7 @@ import type { RushConfigurationProject } from '../api/RushConfigurationProject'; import type { Operation } from '../logic/operations/Operation'; import type { ProjectChangeAnalyzer } from '../logic/ProjectChangeAnalyzer'; -import { IExecutionResult } from '../logic/operations/IOperationExecutionResult'; +import { IExecutionResult, IOperationExecutionResult } from '../logic/operations/IOperationExecutionResult'; /** * A plugin that interacts with a phased commands. @@ -52,6 +52,10 @@ export interface ICreateOperationsContext { * If true, the command is running in watch mode. */ readonly isWatch: boolean; + /** + * The set of phases original for the current command execution. + */ + readonly phaseOriginal: ReadonlySet; /** * The set of phases selected for the current command execution. */ @@ -87,6 +91,19 @@ export class PhasedCommandHooks { public readonly createOperations: AsyncSeriesWaterfallHook<[Set, ICreateOperationsContext]> = new AsyncSeriesWaterfallHook(['operations', 'context'], 'createOperations'); + /** + * Hook invoked before operation start + * Hook is series for stable output. + */ + public readonly beforeExecuteOperations: AsyncSeriesHook<[Map]> = + new AsyncSeriesHook(['records']); + + /** + * Hook invoked when operation status changed + * Hook is series for stable output. + */ + public readonly onOperationStatusChanged: SyncHook<[IOperationExecutionResult]> = new SyncHook(['record']); + /** * Hook invoked after executing a set of operations. * Use the context to distinguish between the initial run and phased runs. diff --git a/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts b/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts index adcfac85586..07a8d165247 100644 --- a/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts +++ b/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts @@ -13,9 +13,11 @@ import { IRushPluginManifestJson, PluginLoaderBase } from './PluginLoaderBase'; +import type { RushGlobalFolder } from '../../api/RushGlobalFolder'; interface IAutoinstallerPluginLoaderOptions extends IPluginLoaderOptions { restrictConsoleOutput: boolean; + rushGlobalFolder: RushGlobalFolder; } /** @@ -31,7 +33,8 @@ export class AutoinstallerPluginLoader extends PluginLoaderBase; private readonly _loadedPluginNames: Set = new Set(); + private readonly _rushGlobalFolder: RushGlobalFolder; private _error: Error | undefined; @@ -42,6 +45,7 @@ export class PluginManager { this._rushConfiguration = options.rushConfiguration; this._rushSession = options.rushSession; this._restrictConsoleOutput = options.restrictConsoleOutput; + this._rushGlobalFolder = options.rushGlobalFolder; this._installedAutoinstallerNames = new Set(); @@ -98,7 +102,8 @@ export class PluginManager { pluginConfiguration, rushConfiguration: this._rushConfiguration, terminal: this._terminal, - restrictConsoleOutput: this._restrictConsoleOutput + restrictConsoleOutput: this._restrictConsoleOutput, + rushGlobalFolder: this._rushGlobalFolder }); }); } diff --git a/libraries/rush-lib/src/schemas/command-line.schema.json b/libraries/rush-lib/src/schemas/command-line.schema.json index a1a27511adb..3499274d003 100644 --- a/libraries/rush-lib/src/schemas/command-line.schema.json +++ b/libraries/rush-lib/src/schemas/command-line.schema.json @@ -56,6 +56,11 @@ "commandKind": { "enum": ["bulk"] }, + "shellCommand": { + "title": "Shell Command", + "description": "(Optional) If the \"shellCommand\" field is set for a bulk command, Rush will invoke it for each selected project; otherwise, Rush will invoke the package.json \"scripts\" entry matching Rush command name.\n\nThe string is the path to a script that will be invoked using the OS shell. The working directory will be the folder that contains rush.json. If custom parameters are associated with this command, their values will be appended to the end of this string.", + "type": "string" + }, "enableParallelism": { "title": "enableParallelism", "description": "If true then this command can be run in parallel, i.e. executed simultaneously for multiple projects.", @@ -102,6 +107,7 @@ "summary": { "$ref": "#/definitions/anything" }, "description": { "$ref": "#/definitions/anything" }, "safeForSimultaneousRushProcesses": { "$ref": "#/definitions/anything" }, + "shellCommand": { "$ref": "#/definitions/anything" }, "enableParallelism": { "$ref": "#/definitions/anything" }, "ignoreDependencyOrder": { "$ref": "#/definitions/anything" }, diff --git a/libraries/rush-lib/src/schemas/experiments.schema.json b/libraries/rush-lib/src/schemas/experiments.schema.json index caff117b104..bb1e8e92602 100644 --- a/libraries/rush-lib/src/schemas/experiments.schema.json +++ b/libraries/rush-lib/src/schemas/experiments.schema.json @@ -37,6 +37,10 @@ "cleanInstallAfterNpmrcChanges": { "description": "If true, perform a clean install after when running `rush install` or `rush update` if the `.npmrc` file has changed since the last install.", "type": "boolean" + }, + "printEventHooksOutputToConsole": { + "description": "If true, print the outputs of shell commands defined in event hooks to the console.", + "type": "boolean" } }, "additionalProperties": false diff --git a/libraries/rush-lib/src/schemas/rush-project.schema.json b/libraries/rush-lib/src/schemas/rush-project.schema.json index 6b163cfd04f..d309a568e45 100644 --- a/libraries/rush-lib/src/schemas/rush-project.schema.json +++ b/libraries/rush-lib/src/schemas/rush-project.schema.json @@ -60,6 +60,15 @@ "uniqueItems": true }, + "dependsOnAdditionalFiles": { + "type": "array", + "description": "Specify a list of glob (minimatch) paths (absolute or relative) pointing to files (within or outside the .git repository) that affect the output of this operation. If provided, the hash values of these files will become part of the final hash when reading and writing from cache.", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "disableBuildCacheForOperation": { "description": "Disable caching for this operation. The operation will never be restored from cache. This may be useful if this operation affects state outside of its folder.", "type": "boolean" diff --git a/libraries/rush-lib/src/utilities/AsyncRecycler.ts b/libraries/rush-lib/src/utilities/AsyncRecycler.ts index 6c7cea8f09f..af7f136a4ce 100644 --- a/libraries/rush-lib/src/utilities/AsyncRecycler.ts +++ b/libraries/rush-lib/src/utilities/AsyncRecycler.ts @@ -2,10 +2,11 @@ // See LICENSE in the project root for license information. import * as child_process from 'child_process'; +import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; -import { Text, Path, FileSystem, FileSystemStats } from '@rushstack/node-core-library'; +import { Text, Path, FileSystem } from '@rushstack/node-core-library'; import { Utilities } from './Utilities'; @@ -17,6 +18,7 @@ import { Utilities } from './Utilities'; export class AsyncRecycler { private _movedFolderCount: number; private _deleting: boolean; + private _prefix: string; /** * The full path of the recycler folder. @@ -28,6 +30,7 @@ export class AsyncRecycler { this.recyclerFolder = path.resolve(recyclerFolder); this._movedFolderCount = 0; this._deleting = false; + this._prefix = `${Date.now()}`; } /** @@ -50,22 +53,17 @@ export class AsyncRecycler { ++this._movedFolderCount; - // We need to do a simple "FileSystem.move" here, however if the folder we're trying to rename + // We need to do a simple "fs.renameSync" here, however if the folder we're trying to rename // has a lock, or if its destination container doesn't exist yet, // then there seems to be some OS process (virus scanner?) that holds // a lock on the folder for a split second, which causes renameSync to // fail. To workaround that, retry for up to 7 seconds before giving up. const maxWaitTimeMs: number = 7 * 1000; - const oldFolderName: string = path.basename(folderPath); - const newFolderPath: string = path.join(this.recyclerFolder, `${oldFolderName}_${new Date().getTime()}`); - - if (!FileSystem.exists(this.recyclerFolder)) { - Utilities.createFolderWithRetry(this.recyclerFolder); - } + Utilities.createFolderWithRetry(this.recyclerFolder); Utilities.retryUntilTimeout( - () => FileSystem.move({ sourcePath: folderPath, destinationPath: newFolderPath }), + () => this._renameOrRecurseInFolder(folderPath), maxWaitTimeMs, (e) => new Error(`Error: ${e}\nOften this is caused by a file lock from a process like the virus scanner.`), @@ -83,20 +81,14 @@ export class AsyncRecycler { const excludeSet: Set = new Set((membersToExclude || []).map((x) => x.toUpperCase())); - for (const memberPath of FileSystem.readFolderItemNames(resolvedFolderPath, { absolutePaths: true })) { - const normalizedMemberName: string = path.basename(memberPath).toUpperCase(); + for (const dirent of FileSystem.readFolderItems(resolvedFolderPath)) { + const normalizedMemberName: string = dirent.name.toUpperCase(); if (!excludeSet.has(normalizedMemberName)) { - let shouldMove: boolean = false; - try { - const stats: FileSystemStats = FileSystem.getLinkStatistics(memberPath); - shouldMove = stats.isDirectory(); - } catch (error) { - // If we fail to access the item, assume it's not a folder - } - if (shouldMove) { - this.moveFolder(memberPath); + const absolutePath: string = path.resolve(folderPath, dirent.name); + if (dirent.isDirectory()) { + this._renameOrRecurseInFolder(absolutePath); } else { - FileSystem.deleteFolder(memberPath); + FileSystem.deleteFile(absolutePath); } } } @@ -179,4 +171,34 @@ export class AsyncRecycler { // The child won't stay alive unless we unlink it from the parent process process.unref(); } + + private _renameOrRecurseInFolder(folderPath: string): void { + const ordinal: number = this._movedFolderCount++; + const targetDir: string = `${this.recyclerFolder}/${this._prefix}_${ordinal}`; + try { + fs.renameSync(folderPath, targetDir); + return; + } catch (err) { + if (FileSystem.isNotExistError(err)) { + return; + } + + if (err.code !== 'EPERM') { + throw err; + } + } + + const children: fs.Dirent[] = FileSystem.readFolderItems(folderPath); + for (const child of children) { + const absoluteChild: string = `${folderPath}/${child.name}`; + if (child.isDirectory()) { + this._renameOrRecurseInFolder(absoluteChild); + } else { + FileSystem.deleteFile(absoluteChild); + } + } + + // Yes, this is a folder. The API deletes empty folders, too. + FileSystem.deleteFile(folderPath); + } } diff --git a/libraries/rush-lib/src/utilities/PathConstants.ts b/libraries/rush-lib/src/utilities/PathConstants.ts index 167bdb8af24..c55551b5549 100644 --- a/libraries/rush-lib/src/utilities/PathConstants.ts +++ b/libraries/rush-lib/src/utilities/PathConstants.ts @@ -23,6 +23,7 @@ export const installRunScriptFilename: string = 'install-run.js'; export const installRunRushScriptFilename: string = 'install-run-rush.js'; export const installRunRushxScriptFilename: string = 'install-run-rushx.js'; export const installRunRushPnpmScriptFilename: string = 'install-run-rush-pnpm.js'; +export const createLinksScriptFilename: string = 'create-links.js'; /** * The path to the scripts folder in rush-lib/dist. diff --git a/libraries/rush-lib/src/utilities/SetRushLibPath.ts b/libraries/rush-lib/src/utilities/SetRushLibPath.ts new file mode 100644 index 00000000000..ec18843e67b --- /dev/null +++ b/libraries/rush-lib/src/utilities/SetRushLibPath.ts @@ -0,0 +1,12 @@ +import { PackageJsonLookup } from '@rushstack/node-core-library'; + +import { EnvironmentVariableNames } from '../api/EnvironmentConfiguration'; + +if (!process.env[EnvironmentVariableNames.RUSH_LIB_PATH]) { + const rootDir: string | undefined = PackageJsonLookup.instance.tryGetPackageFolderFor(__dirname); + if (rootDir) { + // Route to the 'main' field of package.json + const rushLibIndex: string = require.resolve(rootDir, { paths: [] }); + process.env[EnvironmentVariableNames.RUSH_LIB_PATH] = rushLibIndex; + } +} diff --git a/libraries/rush-lib/src/utilities/Utilities.ts b/libraries/rush-lib/src/utilities/Utilities.ts index ed8266e7331..9bbc1a3a0c0 100644 --- a/libraries/rush-lib/src/utilities/Utilities.ts +++ b/libraries/rush-lib/src/utilities/Utilities.ts @@ -338,7 +338,7 @@ export class Utilities { environment?: IEnvironment, keepEnvironment: boolean = false ): string { - const result: child_process.SpawnSyncReturns = Utilities._executeCommandInternal( + const result: child_process.SpawnSyncReturns = Utilities._executeCommandInternal( command, args, workingDirectory, @@ -396,11 +396,8 @@ export class Utilities { * @param options - options for how the command should be run */ public static executeLifecycleCommand(command: string, options: ILifecycleCommandOptions): number { - const result: child_process.SpawnSyncReturns = Utilities._executeLifecycleCommandInternal( - command, - child_process.spawnSync, - options - ); + const result: child_process.SpawnSyncReturns = + Utilities._executeLifecycleCommandInternal(command, child_process.spawnSync, options); if (options.handleOutput) { Utilities._processResult(result); @@ -675,7 +672,7 @@ export class Utilities { | undefined, environment?: IEnvironment, keepEnvironment: boolean = false - ): child_process.SpawnSyncReturns { + ): child_process.SpawnSyncReturns { const options: child_process.SpawnSyncOptions = { cwd: workingDirectory, shell: true, @@ -704,7 +701,7 @@ export class Utilities { const escapedArgs: string[] = args.map((x) => Utilities.escapeShellParameter(x)); - let result: child_process.SpawnSyncReturns = child_process.spawnSync( + let result: child_process.SpawnSyncReturns = child_process.spawnSync( escapedCommand, escapedArgs, options @@ -724,7 +721,7 @@ export class Utilities { return result; } - private static _processResult(result: child_process.SpawnSyncReturns): void { + private static _processResult(result: child_process.SpawnSyncReturns): void { if (result.error) { result.error.message += '\n' + (result.stderr ? result.stderr.toString() + '\n' : ''); throw result.error; diff --git a/libraries/rush-lib/webpack.config.js b/libraries/rush-lib/webpack.config.js index 9857e2de4ea..8b47dcf2478 100644 --- a/libraries/rush-lib/webpack.config.js +++ b/libraries/rush-lib/webpack.config.js @@ -121,6 +121,10 @@ module.exports = () => { [PathConstants.installRunRushPnpmScriptFilename]: { import: `${__dirname}/lib-esnext/scripts/install-run-rush-pnpm.js`, ...SCRIPT_ENTRY_OPTIONS + }, + [PathConstants.createLinksScriptFilename]: { + import: `${__dirname}/lib-esnext/scripts/create-links.js`, + ...SCRIPT_ENTRY_OPTIONS } }) ]; diff --git a/libraries/rush-sdk/README.md b/libraries/rush-sdk/README.md index c0322a3a390..73ec410e3c7 100644 --- a/libraries/rush-sdk/README.md +++ b/libraries/rush-sdk/README.md @@ -1,29 +1,66 @@ ## @rushstack/rush-sdk -This is a companion package for the Rush tool. See the [@microsoft/rush](https://www.npmjs.com/package/@microsoft/rush) package for details. +This is a companion package for the Rush tool. See the [@microsoft/rush](https://www.npmjs.com/package/@microsoft/rush) package for details. -⚠ ***THIS PACKAGE IS EXPERIMENTAL*** ⚠ +⚠ **_THIS PACKAGE IS EXPERIMENTAL_** ⚠ -The **@rushstack/rush-sdk** package acts as a lightweight proxy for accessing the APIs of the **@microsoft/rush-lib** engine. It is intended to support three different use cases: +The **@rushstack/rush-sdk** package acts as a lightweight proxy for accessing the APIs of the **@microsoft/rush-lib** engine. It is intended to support three different use cases: -1. Rush plugins should import from **@rushstack/rush-sdk** instead of **@microsoft/rush-lib**. This gives plugins full access to Rush APIs while avoiding a redundant installation of those packages. At runtime, the APIs will be bound to the correct `rushVersion` from **rush.json**, and guaranteed to be the same **@microsoft/rush-lib** module instance as the plugin host. +1. Rush plugins should import from **@rushstack/rush-sdk** instead of **@microsoft/rush-lib**. This gives plugins full access to Rush APIs while avoiding a redundant installation of those packages. At runtime, the APIs will be bound to the correct `rushVersion` from **rush.json**, and guaranteed to be the same **@microsoft/rush-lib** module instance as the plugin host. -2. When authoring unit tests for a Rush plugin, developers should add **@microsoft/rush-lib** to their **package.json** `devDependencies`. In this context, **@rushstack/rush-sdk** will resolve to that instance for testing purposes. +2. When authoring unit tests for a Rush plugin, developers should add **@microsoft/rush-lib** to their **package.json** `devDependencies`. In this context, **@rushstack/rush-sdk** will resolve to that instance for testing purposes. -3. For scripts and tools that are designed to be used in a Rush monorepo, in the future **@rushstack/rush-sdk** will automatically invoke **install-run-rush.js** and load the local installation. This ensures that tools load a compatible version of the Rush engine for the given branch. Once this is implemented, **@rushstack/rush-sdk** can replace **@microsoft/rush-lib** entirely as the official API interface, with the latter serving as the underlying implementation. +3. For projects within a monorepo that use **@rushstack/rush-sdk** during their build process, child processes will inherit the installation of Rush that invoked them. This is communicated using the `_RUSH_LIB_PATH` environment variable. +4. For scripts and tools that are designed to be used in a Rush monorepo, in the future **@rushstack/rush-sdk** will automatically invoke **install-run-rush.js** and load the local installation. This ensures that tools load a compatible version of the Rush engine for the given branch. Once this is implemented, **@rushstack/rush-sdk** can replace **@microsoft/rush-lib** entirely as the official API interface, with the latter serving as the underlying implementation. The **@rushstack/rush-sdk** API declarations are identical to the corresponding version of **@microsoft/rush-lib**. -## Debugging +## Importing internal APIs + +Backwards compatibility is only guaranteed for the APIs marked as `@public` in the official `rush-lib.d.ts` entry point. +However, sometimes it is expedient for a script to import internal modules from `@microsoft/rush-lib` to access +unofficial APIs. This practice faces a technical challenge that `@microsoft/rush-lib` is bundled using Webpack. +The `@rushstack/rush-sdk` package provides stub files that import the corresponding internal module from the +Webpack bundle, via the `@rushstack/webpack-deep-imports-plugin` mechanism. + +> **WARNING:** If the loaded `rush-lib` package has a different version from `rush-sdk`, there is +> no guarantee that the corresponding path will exist or have the same type signature. +> Access internal APIs at your own risk. If you find an internal API to be useful, we recommend +> that you create a GitHub issue proposing to make it public. + +Example 1: Conventional import of a public API: + +```ts +// THIS IS THE RECOMMENDED PRACTICE: +import { RushConfiguration } from '@rushstack/rush-sdk'; +const config = RushConfiguration.loadFromDefaultLocation(); +console.log(config.commonFolder); +``` -Verbose logging can be turn on by set environment variable `RUSH_SDK_DEBUG` to `1` +Example 2: How to import an internal API: + +```ts +// WARNING: INTERNAL APIS MAY CHANGE AT ANY TIME -- USE THIS AT YOUR OWN RISK: + +// Important: Since we're calling an internal API, we need to use the unbundled .d.ts files +// instead of the normal .d.ts rollup, otherwise TypeScript will complain about a type mismatch. +import { RushConfiguration } from '@rushstack/rush-sdk/lib/index'; +const config = RushConfiguration.loadFromDefaultLocation(); +console.log(config.commonFolder); + +// Load an internal module from the Webpack bundle using a path-based import of a stub file: +import { GitEmailPolicy } from '@rushstack/rush-sdk/lib/logic/policy/GitEmailPolicy'; +console.log(GitEmailPolicy.getEmailExampleLines(config)); +``` + +## Debugging +Verbose logging can be enabled by setting environment variable `RUSH_SDK_DEBUG=1`. ## Links -- [CHANGELOG.md]( - https://github.com/microsoft/rushstack/blob/main/apps/rush/CHANGELOG.md) - Find +- [CHANGELOG.md](https://github.com/microsoft/rushstack/blob/main/apps/rush/CHANGELOG.md) - Find out what's new in the latest version - [API Reference](https://api.rushstack.io/pages/rush-lib/) diff --git a/libraries/rush-sdk/config/heft.json b/libraries/rush-sdk/config/heft.json index 821b6785023..e1389cd7acc 100644 --- a/libraries/rush-sdk/config/heft.json +++ b/libraries/rush-sdk/config/heft.json @@ -11,7 +11,7 @@ "build": { "cleanFiles": [ { - "sourcePath": "./dist/rush-lib.d.ts" + "sourcePath": "lib-shim" } ], @@ -33,6 +33,16 @@ "typescript": { "taskDependencies": ["copy-rush-lib-types"] + }, + + "generate-stubs": { + "taskDependencies": ["typescript"], + "taskEvent": { + "eventKind": "runScript", + "options": { + "scriptPath": "./lib-shim/generate-stubs.js" + } + } } } } diff --git a/libraries/rush-sdk/config/typescript.json b/libraries/rush-sdk/config/typescript.json new file mode 100644 index 00000000000..3362be93d3f --- /dev/null +++ b/libraries/rush-sdk/config/typescript.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/heft/typescript.schema.json", + + "emitFolderNameForTests": "lib-shim" +} diff --git a/libraries/rush-sdk/package.json b/libraries/rush-sdk/package.json index 4f31165d20a..8fb1f3ab8ec 100644 --- a/libraries/rush-sdk/package.json +++ b/libraries/rush-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-sdk", - "version": "5.88.0", + "version": "5.95.0", "description": "An API for interacting with the Rush engine", "repository": { "type": "git", @@ -8,7 +8,7 @@ "directory": "apps/rush-sdk" }, "homepage": "https://rushjs.io", - "main": "lib/index.js", + "main": "lib-shim/index.js", "typings": "dist/rush-lib.d.ts", "scripts": { "build": "heft build --clean", @@ -18,7 +18,7 @@ "license": "MIT", "dependencies": { "@rushstack/node-core-library": "workspace:*", - "@types/node-fetch": "1.6.9", + "@types/node-fetch": "2.6.2", "tapable": "2.2.1" }, "devDependencies": { @@ -30,6 +30,6 @@ "@rushstack/ts-command-line": "workspace:*", "@rushstack/terminal": "workspace:*", "@types/semver": "7.3.5", - "@types/webpack-env": "1.13.0" + "@types/webpack-env": "1.18.0" } } diff --git a/libraries/rush-sdk/src/generate-stubs.ts b/libraries/rush-sdk/src/generate-stubs.ts new file mode 100644 index 00000000000..ba6bcb1d799 --- /dev/null +++ b/libraries/rush-sdk/src/generate-stubs.ts @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import * as path from 'path'; + +import { FileSystem, Import, Path } from '@rushstack/node-core-library'; + +function generateLibFilesRecursively(options: { + parentSourcePath: string; + parentTargetPath: string; + parentSrcImportPathWithSlash: string; + libShimIndexPath: string; +}): void { + for (const folderItem of FileSystem.readFolderItems(options.parentSourcePath)) { + const sourcePath: string = path.join(options.parentSourcePath, folderItem.name); + const targetPath: string = path.join(options.parentTargetPath, folderItem.name); + + if (folderItem.isDirectory()) { + // create destination folder + FileSystem.ensureEmptyFolder(targetPath); + generateLibFilesRecursively({ + parentSourcePath: sourcePath, + parentTargetPath: targetPath, + parentSrcImportPathWithSlash: options.parentSrcImportPathWithSlash + folderItem.name + '/', + libShimIndexPath: options.libShimIndexPath + }); + } else { + if (folderItem.name.endsWith('.d.ts')) { + FileSystem.copyFile({ + sourcePath: sourcePath, + destinationPath: targetPath + }); + } else if (folderItem.name.endsWith('.js')) { + const srcImportPath: string = options.parentSrcImportPathWithSlash + path.parse(folderItem.name).name; + const shimPath: string = path.relative(options.parentTargetPath, options.libShimIndexPath); + const shimPathLiteral: string = JSON.stringify(Path.convertToSlashes(shimPath)); + const srcImportPathLiteral: string = JSON.stringify(srcImportPath); + + FileSystem.writeFile( + targetPath, + // Example: + // module.exports = require("../../../lib-shim/index")._rushSdk_loadInternalModule("logic/policy/GitEmailPolicy"); + `module.exports = require(${shimPathLiteral})._rushSdk_loadInternalModule(${srcImportPathLiteral});` + ); + } + } + } +} + +// Entry point invoked by "runScript" action from config/heft.json +export function run(): void { + const rushLibFolder: string = Import.resolvePackage({ + baseFolderPath: __dirname, + packageName: '@microsoft/rush-lib' + }); + + const stubsTargetPath: string = path.resolve(__dirname, '../lib'); + console.log('generate-stubs: Generating stub files under: ' + stubsTargetPath); + generateLibFilesRecursively({ + parentSourcePath: path.join(rushLibFolder, 'lib'), + parentTargetPath: stubsTargetPath, + parentSrcImportPathWithSlash: '', + libShimIndexPath: path.join(__dirname, '../lib-shim/index') + }); + console.log('generate-stubs: Completed successfully.'); +} diff --git a/libraries/rush-sdk/src/index.ts b/libraries/rush-sdk/src/index.ts index e619eca098d..2677e9bef8d 100644 --- a/libraries/rush-sdk/src/index.ts +++ b/libraries/rush-sdk/src/index.ts @@ -15,7 +15,7 @@ import { } from '@rushstack/node-core-library'; import type { SpawnSyncReturns } from 'child_process'; -const RUSH_LIB_NAME: string = '@microsoft/rush-lib'; +const RUSH_LIB_NAME: '@microsoft/rush-lib' = '@microsoft/rush-lib'; const verboseEnabled: boolean = typeof process !== 'undefined' && process.env.RUSH_SDK_DEBUG === '1'; const terminal: Terminal = new Terminal( @@ -28,6 +28,7 @@ type RushLibModuleType = Record; declare const global: NodeJS.Global & typeof globalThis & { ___rush___rushLibModule?: RushLibModuleType; + ___rush___rushLibModuleFromEnvironment?: RushLibModuleType; ___rush___rushLibModuleFromInstallAndRunRush?: RushLibModuleType; }; @@ -46,7 +47,9 @@ function _require(moduleName: string): TResult { // SCENARIO 1: Rush's PluginManager has initialized "rush-sdk" with Rush's own instance of rush-lib. // The Rush host process will assign "global.___rush___rushLibModule" before loading the plugin. let rushLibModule: RushLibModuleType | undefined = - global.___rush___rushLibModule || global.___rush___rushLibModuleFromInstallAndRunRush; + global.___rush___rushLibModule || + global.___rush___rushLibModuleFromEnvironment || + global.___rush___rushLibModuleFromInstallAndRunRush; let errorMessage: string = ''; // SCENARIO 2: The project importing "rush-sdk" has installed its own instance of "rush-lib" @@ -89,7 +92,31 @@ if (rushLibModule === undefined) { } } -// SCENARIO 3: A tool or script depends on "rush-sdk", and is meant to be used inside a monorepo folder. +// SCENARIO 3: A tool or script has been invoked as a child process by an instance of "rush-lib" and can use the +// version that invoked it. In this case, use process.env._RUSH_LIB_PATH to find "rush-lib". +if (rushLibModule === undefined) { + const rushLibVariable: '_RUSH_LIB_PATH' = '_RUSH_LIB_PATH'; + const rushLibPath: string | undefined = process.env[rushLibVariable]; + if (rushLibPath) { + terminal.writeVerboseLine( + `Try to load ${RUSH_LIB_NAME} from process.env.${rushLibVariable} from caller package` + ); + try { + rushLibModule = _require(rushLibPath); + } catch (error) { + // Log this as a warning, since it is unexpected to define an incorrect value of the variable. + terminal.writeWarningLine(`Failed to load ${RUSH_LIB_NAME} via process.env.${rushLibVariable}`); + } + + if (rushLibModule !== undefined) { + // to track which scenario is active and how it got initialized. + global.___rush___rushLibModuleFromEnvironment = rushLibModule; + terminal.writeVerboseLine(`Loaded ${RUSH_LIB_NAME} from process.env.${rushLibVariable}`); + } + } +} + +// SCENARIO 4: A standalone tool or script depends on "rush-sdk", and is meant to be used inside a monorepo folder. // In this case, we can use install-run-rush.js to obtain the appropriate rush-lib version for the monorepo. if (rushLibModule === undefined) { try { @@ -181,6 +208,18 @@ for (const property in rushLibModule) { } } +/** + * Used by the .js stubs for path-based imports of `@microsoft/rush-lib` internal APIs. + */ +export function _rushSdk_loadInternalModule(srcImportPath: string): unknown { + if (!exports._RushInternals) { + throw new Error( + `Rush version ${exports.Rush.version} does not support internal API imports via rush-sdk` + ); + } + return exports._RushInternals.loadModule(srcImportPath); +} + /** * Require `@microsoft/rush-lib` under the specified folder path. */ diff --git a/libraries/rush-sdk/src/test/__snapshots__/script.test.ts.snap b/libraries/rush-sdk/src/test/__snapshots__/script.test.ts.snap new file mode 100644 index 00000000000..36bce37042e --- /dev/null +++ b/libraries/rush-sdk/src/test/__snapshots__/script.test.ts.snap @@ -0,0 +1,76 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`@rushstack/rush-sdk Should load via env when Rush has loaded (for child processes): stderr 1`] = `""`; + +exports[`@rushstack/rush-sdk Should load via env when Rush has loaded (for child processes): stdout 1`] = ` +"Try to load @microsoft/rush-lib from process.env._RUSH_LIB_PATH from caller package +Loaded @microsoft/rush-lib from process.env._RUSH_LIB_PATH +[ + '_rushSdk_loadInternalModule', + 'ApprovedPackagesConfiguration', + 'ApprovedPackagesItem', + 'ApprovedPackagesPolicy', + 'BuildCacheConfiguration', + 'BumpType', + 'ChangeManager', + 'CommonVersionsConfiguration', + 'CredentialCache', + 'DependencyType', + 'EnvironmentConfiguration', + 'EnvironmentVariableNames', + 'Event', + 'EventHooks', + 'ExperimentsConfiguration', + 'FileSystemBuildCacheProvider', + 'IndividualVersionPolicy', + 'LockStepVersionPolicy', + 'LookupByPath', + 'NpmOptionsConfiguration', + 'Operation', + 'OperationStatus', + 'PackageJsonDependency', + 'PackageJsonEditor', + 'PackageManager', + 'PackageManagerOptionsConfigurationBase', + 'PhasedCommandHooks', + 'PnpmOptionsConfiguration', + 'ProjectChangeAnalyzer', + 'RepoStateFile', + 'Rush', + 'RushConfiguration', + 'RushConfigurationProject', + 'RushConstants', + 'RushLifecycleHooks', + 'RushSession', + 'RushUserConfiguration', + 'VersionPolicy', + 'VersionPolicyConfiguration', + 'VersionPolicyDefinitionName', + 'YarnOptionsConfiguration', + '_LastInstallFlag', + '_OperationMetadataManager', + '_OperationStateFile', + '_RushGlobalFolder', + '_RushInternals' +]" +`; + +exports[`@rushstack/rush-sdk Should load via global (for plugins): stderr 1`] = `""`; + +exports[`@rushstack/rush-sdk Should load via global (for plugins): stdout 1`] = `"[ '_rushSdk_loadInternalModule', 'foo' ]"`; + +exports[`@rushstack/rush-sdk Should load via install-run (for standalone tools): stderr 1`] = `""`; + +exports[`@rushstack/rush-sdk Should load via install-run (for standalone tools): stdout 1`] = ` +"Trying to load @microsoft/rush-lib installed by install-run-rush +Loaded @microsoft/rush-lib installed by install-run-rush +[ '_rushSdk_loadInternalModule', 'foo' ]" +`; + +exports[`@rushstack/rush-sdk Should load via process.env._RUSH_LIB_PATH (for child processes): stderr 1`] = `""`; + +exports[`@rushstack/rush-sdk Should load via process.env._RUSH_LIB_PATH (for child processes): stdout 1`] = ` +"Try to load @microsoft/rush-lib from process.env._RUSH_LIB_PATH from caller package +Loaded @microsoft/rush-lib from process.env._RUSH_LIB_PATH +[ '_rushSdk_loadInternalModule', 'foo' ]" +`; diff --git a/libraries/rush-sdk/src/test/script.test.ts b/libraries/rush-sdk/src/test/script.test.ts index 2554c494e12..e1919b55694 100644 --- a/libraries/rush-sdk/src/test/script.test.ts +++ b/libraries/rush-sdk/src/test/script.test.ts @@ -1,15 +1,79 @@ import * as path from 'path'; import { Executable } from '@rushstack/node-core-library'; -const rushSdkPath: string = path.join(__dirname, '../../lib/index.js'); +const rushSdkPath: string = path.join(__dirname, '../../lib-shim/index.js'); const sandboxRepoPath: string = `${__dirname}/sandbox`; const mockPackageFolder: string = `${sandboxRepoPath}/mock-package`; const mockRushLibPath: string = `${__dirname}/fixture/mock-rush-lib.js`; const coreLibPath: string = require.resolve('@rushstack/node-core-library'); -describe('used in script', () => { - it('should work when used in script', () => { +describe('@rushstack/rush-sdk', () => { + it('Should load via global (for plugins)', () => { + const result = Executable.spawnSync( + 'node', + [ + '-e', + ` +global.___rush___rushLibModule = { foo: 1 }; +console.log(Object.keys(require(${JSON.stringify(rushSdkPath)})));` + ], + { + currentWorkingDirectory: mockPackageFolder, + environment: { + ...process.env, + RUSH_SDK_DEBUG: '1', + _RUSH_LIB_PATH: '' // Need to clear if invoked via Rush + } + } + ); + expect(result.stderr.trim()).toMatchSnapshot('stderr'); + expect(result.stdout.trim()).toMatchSnapshot('stdout'); + expect(result.status).toBe(0); + }); + + it('Should load via env when Rush has loaded (for child processes)', () => { + const result = Executable.spawnSync( + 'node', + [ + '-e', + ` +require('@microsoft/rush-lib'); +console.log(Object.keys(require(${JSON.stringify(rushSdkPath)})));` + ], + { + currentWorkingDirectory: mockPackageFolder, + environment: { + ...process.env, + RUSH_SDK_DEBUG: '1', + _RUSH_LIB_PATH: '' // Need to clear if invoked via Rush + } + } + ); + expect(result.stderr.trim()).toMatchSnapshot('stderr'); + expect(result.stdout.trim()).toMatchSnapshot('stdout'); + expect(result.status).toBe(0); + }); + + it('Should load via process.env._RUSH_LIB_PATH (for child processes)', () => { + const result = Executable.spawnSync( + 'node', + ['-e', `console.log(Object.keys(require(${JSON.stringify(rushSdkPath)})));`], + { + currentWorkingDirectory: mockPackageFolder, + environment: { + ...process.env, + RUSH_SDK_DEBUG: '1', + _RUSH_LIB_PATH: mockRushLibPath + } + } + ); + expect(result.stderr.trim()).toMatchSnapshot('stderr'); + expect(result.stdout.trim()).toMatchSnapshot('stdout'); + expect(result.status).toBe(0); + }); + + it('Should load via install-run (for standalone tools)', () => { const result = Executable.spawnSync( 'node', [ @@ -24,15 +88,20 @@ const mockResolveModule = (options) => { return originalResolveModule(options); } Import.resolveModule = mockResolveModule; -console.log(require(${JSON.stringify(rushSdkPath)})); +console.log(Object.keys(require(${JSON.stringify(rushSdkPath)}))); ` ], { - currentWorkingDirectory: mockPackageFolder + currentWorkingDirectory: mockPackageFolder, + environment: { + ...process.env, + RUSH_SDK_DEBUG: '1', + _RUSH_LIB_PATH: '' // Need to clear if invoked via Rush + } } ); - expect(result.stderr.trim()).toMatchInlineSnapshot(`""`); - expect(result.stdout.trim()).toMatchInlineSnapshot(`"{ foo: [Getter] }"`); + expect(result.stderr.trim()).toMatchSnapshot('stderr'); + expect(result.stdout.trim()).toMatchSnapshot('stdout'); expect(result.status).toBe(0); }); }); diff --git a/libraries/rush-sdk/tsconfig.json b/libraries/rush-sdk/tsconfig.json index ab74a420295..5448a10b510 100644 --- a/libraries/rush-sdk/tsconfig.json +++ b/libraries/rush-sdk/tsconfig.json @@ -1,6 +1,7 @@ { "extends": "./node_modules/@rushstack/heft-node-rig/profiles/default/tsconfig-base.json", "compilerOptions": { + "outDir": "lib-shim", "types": [ "heft-jest", "webpack-env" // Use webpack-env here instead of node so we have __non_webpack_require__ diff --git a/libraries/rush-themed-ui/.eslintrc.js b/libraries/rush-themed-ui/.eslintrc.js new file mode 100644 index 00000000000..288eaa16364 --- /dev/null +++ b/libraries/rush-themed-ui/.eslintrc.js @@ -0,0 +1,7 @@ +// This is a workaround for https://github.com/eslint/eslint/issues/3458 +require('@rushstack/eslint-config/patch/modern-module-resolution'); + +module.exports = { + extends: ['@rushstack/eslint-config/profile/web-app', '@rushstack/eslint-config/mixins/react'], + parserOptions: { tsconfigRootDir: __dirname } +}; diff --git a/libraries/rush-themed-ui/.npmignore b/libraries/rush-themed-ui/.npmignore new file mode 100644 index 00000000000..302dbc5b019 --- /dev/null +++ b/libraries/rush-themed-ui/.npmignore @@ -0,0 +1,30 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + +# Ignore all files by default, to avoid accidentally publishing unintended files. +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README (and its variants) +# CHANGELOG (and its variants) +# LICENSE / LICENCE + +#-------------------------------------------- +# DO NOT MODIFY THE TEMPLATE ABOVE THIS LINE +#-------------------------------------------- + +# (Add your project-specific overrides here) \ No newline at end of file diff --git a/libraries/rush-themed-ui/LICENSE b/libraries/rush-themed-ui/LICENSE new file mode 100644 index 00000000000..e08fddbd337 --- /dev/null +++ b/libraries/rush-themed-ui/LICENSE @@ -0,0 +1,24 @@ +@rushstack/rush-themed-ui + +Copyright (c) Microsoft Corporation. All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/libraries/rush-themed-ui/README.md b/libraries/rush-themed-ui/README.md new file mode 100644 index 00000000000..9681cf99c86 --- /dev/null +++ b/libraries/rush-themed-ui/README.md @@ -0,0 +1,5 @@ +# @rushstack/rush-themed-ui + +**Rush Components** provides a suite of styled components that can be used in rush applications to ensure a consistent look and feel among all rushstack helper applications. + +Rush Components is part of the [Rush Stack](https://rushstack.io/) family of projects. diff --git a/libraries/rush-themed-ui/config/api-extractor.json b/libraries/rush-themed-ui/config/api-extractor.json new file mode 100644 index 00000000000..cafe285cb0d --- /dev/null +++ b/libraries/rush-themed-ui/config/api-extractor.json @@ -0,0 +1,427 @@ +/** + * Config file for API Extractor. For more info, please visit: https://api-extractor.com + */ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + /** + * Optionally specifies another JSON config file that this file extends from. This provides a way for + * standard settings to be shared across multiple projects. + * + * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains + * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be + * resolved using NodeJS require(). + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "extends": "./shared/api-extractor-base.json" + // "extends": "my-package/include/api-extractor-base.json" + + /** + * Determines the "" token that can be used with other config file settings. The project folder + * typically contains the tsconfig.json and package.json config files, but the path is user-defined. + * + * The path is resolved relative to the folder of the config file that contains the setting. + * + * The default value for "projectFolder" is the token "", which means the folder is determined by traversing + * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder + * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error + * will be reported. + * + * SUPPORTED TOKENS: + * DEFAULT VALUE: "" + */ + // "projectFolder": "..", + + /** + * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor + * analyzes the symbols exported by this module. + * + * The file extension must be ".d.ts" and not ".ts". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + */ + "mainEntryPointFilePath": "/lib/index.d.ts", + + /** + * A list of NPM package names whose exports should be treated as part of this package. + * + * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", + * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part + * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly + * imports library2. To avoid this, we can specify: + * + * "bundledPackages": [ "library2" ], + * + * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been + * local files for library1. + */ + "bundledPackages": [], + + /** + * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files + * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. + * To use the OS's default newline kind, specify "os". + * + * DEFAULT VALUE: "crlf" + */ + // "newlineKind": "crlf", + + /** + * Set to true when invoking API Extractor's test harness. When `testMode` is true, the `toolVersion` field in the + * .api.json file is assigned an empty string to prevent spurious diffs in output files tracked for tests. + * + * DEFAULT VALUE: "false" + */ + // "testMode": false, + + /** + * Specifies how API Extractor sorts members of an enum when generating the .api.json file. By default, the output + * files will be sorted alphabetically, which is "by-name". To keep the ordering in the source code, specify + * "preserve". + * + * DEFAULT VALUE: "by-name" + */ + // "enumMemberOrder": "by-name", + + /** + * Determines how the TypeScript compiler engine will be invoked by API Extractor. + */ + "compiler": { + /** + * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * Note: This setting will be ignored if "overrideTsconfig" is used. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/tsconfig.json" + */ + // "tsconfigFilePath": "/tsconfig.json", + /** + * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. + * The object must conform to the TypeScript tsconfig schema: + * + * http://json.schemastore.org/tsconfig + * + * If omitted, then the tsconfig.json file will be read from the "projectFolder". + * + * DEFAULT VALUE: no overrideTsconfig section + */ + // "overrideTsconfig": { + // . . . + // } + /** + * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended + * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when + * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses + * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. + * + * DEFAULT VALUE: false + */ + // "skipLibCheck": true, + }, + + /** + * Configures how the API report file (*.api.md) will be generated. + */ + "apiReport": { + /** + * (REQUIRED) Whether to generate an API report. + */ + "enabled": true, + + /** + * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce + * a full file path. + * + * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". + * + * SUPPORTED TOKENS: , + * DEFAULT VALUE: ".api.md" + */ + // "reportFileName": ".api.md", + + /** + * Specifies the folder where the API report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, + * e.g. for an API review. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + "reportFolder": "../../../common/reviews/api" + + /** + * Specifies the folder where the temporary report file is written. The file name portion is determined by + * the "reportFileName" setting. + * + * After the temporary file is written to disk, it is compared with the file in the "reportFolder". + * If they are different, a production build will fail. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/" + */ + // "reportTempFolder": "/temp/", + + /** + * Whether "forgotten exports" should be included in the API report file. Forgotten exports are declarations + * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to + * learn more. + * + * DEFAULT VALUE: "false" + */ + // "includeForgottenExports": false + }, + + /** + * Configures how the doc model file (*.api.json) will be generated. + */ + "docModel": { + /** + * (REQUIRED) Whether to generate a doc model file. + */ + "enabled": false + + /** + * The output path for the doc model file. The file extension should be ".api.json". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/temp/.api.json" + */ + // "apiJsonFilePath": "/temp/.api.json", + + /** + * Whether "forgotten exports" should be included in the doc model file. Forgotten exports are declarations + * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to + * learn more. + * + * DEFAULT VALUE: "false" + */ + // "includeForgottenExports": false, + + /** + * The base URL where the project's source code can be viewed on a website such as GitHub or + * Azure DevOps. This URL path corresponds to the `` path on disk. + * + * This URL is concatenated with the file paths serialized to the doc model to produce URL file paths to individual API items. + * For example, if the `projectFolderUrl` is "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor" and an API + * item's file path is "api/ExtractorConfig.ts", the full URL file path would be + * "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor/api/ExtractorConfig.js". + * + * Can be omitted if you don't need source code links in your API documentation reference. + * + * SUPPORTED TOKENS: none + * DEFAULT VALUE: "" + */ + // "projectFolderUrl": "http://github.com/path/to/your/projectFolder" + }, + + /** + * Configures how the .d.ts rollup file will be generated. + */ + "dtsRollup": { + /** + * (REQUIRED) Whether to generate the .d.ts rollup file. + */ + "enabled": true + + /** + * Specifies the output path for a .d.ts rollup file to be generated without any trimming. + * This file will include all declarations that are exported by the main entry point. + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "/dist/.d.ts" + */ + // "untrimmedFilePath": "/dist/.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release. + * This file will include only declarations that are marked as "@public", "@beta", or "@alpha". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "alphaTrimmedFilePath": "/dist/-alpha.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. + * This file will include only declarations that are marked as "@public" or "@beta". + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "betaTrimmedFilePath": "/dist/-beta.d.ts", + + /** + * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. + * This file will include only declarations that are marked as "@public". + * + * If the path is an empty string, then this file will not be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "publicTrimmedFilePath": "/dist/-public.d.ts", + + /** + * When a declaration is trimmed, by default it will be replaced by a code comment such as + * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the + * declaration completely. + * + * DEFAULT VALUE: false + */ + // "omitTrimmingComments": true + }, + + /** + * Configures how the tsdoc-metadata.json file will be generated. + */ + "tsdocMetadata": { + /** + * Whether to generate the tsdoc-metadata.json file. + * + * DEFAULT VALUE: true + */ + // "enabled": true, + /** + * Specifies where the TSDoc metadata file should be written. + * + * The path is resolved relative to the folder of the config file that contains the setting; to change this, + * prepend a folder token such as "". + * + * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", + * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup + * falls back to "tsdoc-metadata.json" in the package folder. + * + * SUPPORTED TOKENS: , , + * DEFAULT VALUE: "" + */ + // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" + }, + + /** + * Configures how API Extractor reports error and warning messages produced during analysis. + * + * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. + */ + "messages": { + /** + * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing + * the input .d.ts files. + * + * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "compilerMessageReporting": { + /** + * Configures the default routing for messages that don't match an explicit rule in this table. + */ + "default": { + /** + * Specifies whether the message should be written to the the tool's output log. Note that + * the "addToApiReportFile" property may supersede this option. + * + * Possible values: "error", "warning", "none" + * + * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail + * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes + * the "--local" option), the warning is displayed but the build will not fail. + * + * DEFAULT VALUE: "warning" + */ + "logLevel": "warning" + + /** + * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), + * then the message will be written inside that file; otherwise, the message is instead logged according to + * the "logLevel" option. + * + * DEFAULT VALUE: false + */ + // "addToApiReportFile": false + } + + // "TS2551": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by API Extractor during its analysis. + * + * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" + * + * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings + */ + "extractorMessageReporting": { + "default": { + "logLevel": "warning" + // "addToApiReportFile": false + } + + // "ae-extra-release-tag": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + }, + + /** + * Configures handling of messages reported by the TSDoc parser when analyzing code comments. + * + * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" + * + * DEFAULT VALUE: A single "default" entry with logLevel=warning. + */ + "tsdocMessageReporting": { + "default": { + "logLevel": "warning" + // "addToApiReportFile": false + } + + // "tsdoc-link-tag-unescaped-text": { + // "logLevel": "warning", + // "addToApiReportFile": true + // }, + // + // . . . + } + } +} diff --git a/libraries/rush-themed-ui/config/jest.config.json b/libraries/rush-themed-ui/config/jest.config.json new file mode 100644 index 00000000000..600ba9ea39a --- /dev/null +++ b/libraries/rush-themed-ui/config/jest.config.json @@ -0,0 +1,3 @@ +{ + "extends": "@rushstack/heft-web-rig/profiles/library/config/jest.config.json" +} diff --git a/libraries/rush-themed-ui/config/rig.json b/libraries/rush-themed-ui/config/rig.json new file mode 100644 index 00000000000..d72946b5042 --- /dev/null +++ b/libraries/rush-themed-ui/config/rig.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + + "rigPackageName": "@rushstack/heft-web-rig", + "rigProfile": "library" +} diff --git a/libraries/rush-themed-ui/package.json b/libraries/rush-themed-ui/package.json new file mode 100644 index 00000000000..abc5c8b94ca --- /dev/null +++ b/libraries/rush-themed-ui/package.json @@ -0,0 +1,34 @@ +{ + "name": "@rushstack/rush-themed-ui", + "description": "Rush Component Library: a set of themed components for rush projects", + "version": "0.0.0", + "private": true, + "license": "MIT", + "module": "dist/rush-themed-ui.js", + "types": "dist/rush-themed-ui.d.ts", + "scripts": { + "build": "heft test --clean", + "start": "heft build --watch", + "test": "heft test", + "_phase:build": "heft build --clean", + "_phase:test": "heft test --no-build" + }, + "dependencies": { + "react": "~16.13.1", + "react-dom": "~16.13.1" + }, + "devDependencies": { + "@rushstack/eslint-config": "workspace:*", + "@rushstack/heft-web-rig": "workspace:*", + "@rushstack/heft": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/react-dom": "16.9.14", + "@types/react": "16.14.23", + "@types/webpack-env": "1.18.0", + "@radix-ui/react-scroll-area": "~1.0.2", + "@radix-ui/colors": "~0.1.8", + "@radix-ui/react-tabs": "~1.0.1", + "@radix-ui/react-checkbox": "~1.0.1", + "@radix-ui/react-icons": "~1.1.1" + } +} diff --git a/libraries/rush-themed-ui/src/components/Button/index.tsx b/libraries/rush-themed-ui/src/components/Button/index.tsx new file mode 100644 index 00000000000..5fccc974bdc --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Button/index.tsx @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import React from 'react'; +import { Text } from '../Text'; +import styles from './styles.scss'; + +/** + * React props for {@link Button} + * @public + */ +export interface IButtonProps { + children: JSX.Element | string; + disabled?: boolean; + onClick: () => void; +} + +/** + * A button UI component + * @public + */ +export const Button = ({ children, disabled = false, onClick }: IButtonProps): JSX.Element => { + return ( + + ); +}; diff --git a/libraries/rush-themed-ui/src/components/Button/styles.scss b/libraries/rush-themed-ui/src/components/Button/styles.scss new file mode 100644 index 00000000000..dd228bf74b2 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Button/styles.scss @@ -0,0 +1,17 @@ +@use '../../styles/colors'; + +.ButtonWrapper { + padding: 4px 8px; + border: 1px solid colors.$primary-active; + border-radius: 2px; + &:hover { + cursor: pointer; + background-color: colors.$primary-background; + } + &:disabled { + cursor: default; + background-color: colors.$background-primary; + color: colors.$gray; + border-color: colors.$secondary-active; + } +} diff --git a/libraries/rush-themed-ui/src/components/Checkbox/index.tsx b/libraries/rush-themed-ui/src/components/Checkbox/index.tsx new file mode 100644 index 00000000000..2cfa201e062 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Checkbox/index.tsx @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import React from 'react'; +import * as RadixCheckbox from '@radix-ui/react-checkbox'; +import { CheckIcon } from '@radix-ui/react-icons'; +import styles from './styles.scss'; + +/** + * React props for {@link Checkbox} + * @public + */ +export interface ICheckboxProps { + label: string; + isChecked: boolean; + onChecked: (checked: boolean) => void; +} + +/** + * A checkbox UI component + * @public + */ +export const Checkbox = ({ label, isChecked, onChecked }: ICheckboxProps): JSX.Element => ( +
+
+ + + + + + +
+
+); diff --git a/libraries/rush-themed-ui/src/components/Checkbox/styles.scss b/libraries/rush-themed-ui/src/components/Checkbox/styles.scss new file mode 100644 index 00000000000..1d67e3398a8 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Checkbox/styles.scss @@ -0,0 +1,33 @@ +@use '../../styles/colors'; + +/* reset */ +button { + all: unset; +} + +.CheckboxRoot { + background-color: white; + width: 25px; + min-width: 25px; + height: 25px; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + border: 1px solid colors.$black; + cursor: pointer; +} +.CheckboxRoot:hover { + background-color: colors.$primary-background; +} + +.CheckboxIndicator { + color: colors.$primary-active; +} + +.Label { + padding-left: 15px; + font-size: 15px; + line-height: 1; + user-select: none; +} diff --git a/libraries/rush-themed-ui/src/components/Input/index.tsx b/libraries/rush-themed-ui/src/components/Input/index.tsx new file mode 100644 index 00000000000..ad9d466ee3e --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Input/index.tsx @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import React from 'react'; +import styles from './styles.scss'; + +/** + * React props for {@link Input} + * @public + */ +export interface IInputProps { + value: string; + onChange: (e: React.ChangeEvent) => void; + type?: string; + placeholder?: string; +} + +/** + * A text input box UI component + * @public + */ +export const Input = ({ value, placeholder, onChange, type = 'text' }: IInputProps): JSX.Element => { + return ( + + ); +}; diff --git a/libraries/rush-themed-ui/src/components/Input/styles.scss b/libraries/rush-themed-ui/src/components/Input/styles.scss new file mode 100644 index 00000000000..41c05e58483 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Input/styles.scss @@ -0,0 +1,7 @@ +@use '../../styles/colors'; + +.InputWrapper { + border: solid 1px colors.$gray; + border-radius: 4px; + padding: 0.4em; +} diff --git a/libraries/rush-themed-ui/src/components/ScrollArea/index.tsx b/libraries/rush-themed-ui/src/components/ScrollArea/index.tsx new file mode 100644 index 00000000000..585526efe1d --- /dev/null +++ b/libraries/rush-themed-ui/src/components/ScrollArea/index.tsx @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import React from 'react'; +import * as RadixScrollArea from '@radix-ui/react-scroll-area'; +import styles from './styles.scss'; + +/** + * React props for {@link ScrollArea} + * @public + */ +export interface IScrollAreaProps { + children: React.ReactNode; +} + +/** + * A UI component for managing a scrollable area. + * @remarks + * + * The height of the scroll area's parent must be fixed. + * @public + */ +export const ScrollArea = ({ children }: IScrollAreaProps): JSX.Element => ( + + {children} + + + + + + + + +); diff --git a/libraries/rush-themed-ui/src/components/ScrollArea/styles.scss b/libraries/rush-themed-ui/src/components/ScrollArea/styles.scss new file mode 100644 index 00000000000..d20d04d2920 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/ScrollArea/styles.scss @@ -0,0 +1,61 @@ +@use '../../styles/colors'; + +.ScrollAreaRoot { + border-radius: 4px; + overflow: hidden; + --scrollbar-size: 6px; + height: 100%; +} + +.ScrollAreaViewport { + width: 100%; + height: 100%; + border-radius: inherit; + & > * { + padding-right: 8px; + } +} + +.ScrollAreaScrollbar { + display: flex; + /* ensures no selection */ + user-select: none; + /* disable browser handling of all panning and zooming gestures on touch devices */ + touch-action: none; + padding: 2px; + background: colors.$background-secondary; + transition: background 160ms ease-out; +} +.ScrollAreaScrollbar:hover { + background: colors.$background-secondary; +} +.ScrollAreaScrollbar[data-orientation='vertical'] { + width: var(--scrollbar-size); +} +.ScrollAreaScrollbar[data-orientation='horizontal'] { + flex-direction: column; + height: var(--scrollbar-size); +} + +.ScrollAreaThumb { + flex: 1; + background: colors.$primary-active; + border-radius: var(--scrollbar-size); + position: relative; +} +/* increase target size for touch devices https://www.w3.org/WAI/WCAG21/Understanding/target-size.html */ +.ScrollAreaThumb::before { + content: ''; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 100%; + height: 100%; + min-width: 44px; + min-height: 44px; +} + +.ScrollAreaCorner { + background: colors.$background-secondary; +} diff --git a/libraries/rush-themed-ui/src/components/Tabs/index.tsx b/libraries/rush-themed-ui/src/components/Tabs/index.tsx new file mode 100644 index 00000000000..89acb91c345 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Tabs/index.tsx @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import React from 'react'; +import * as RadixTabs from '@radix-ui/react-tabs'; +import styles from './styles.scss'; + +/** + * React props for {@link Tabs} + * @public + */ +export interface ITabsItem { + header: string; + value?: string; + body?: React.ReactNode; +} + +/** + * React props for {@link Tabs} + * @public + */ +export interface ITabsProps { + items: ITabsItem[]; + def?: string; + value: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange?: (value: any) => void; + renderChildren?: () => JSX.Element; +} + +/** + * A tab control UI component + * @public + */ +export const Tabs = ({ items, def, value, onChange, renderChildren }: ITabsProps): JSX.Element => { + const getItemValue = (item: ITabsItem): string => (item.value === undefined ? item.header : item.value); + return ( + + + {items.map((item) => ( + + {item.header} + + ))} + + {renderChildren + ? renderChildren() + : items.map((item) => + item.body ? ( + + {item.body} + + ) : null + )} + + ); +}; diff --git a/libraries/rush-themed-ui/src/components/Tabs/styles.scss b/libraries/rush-themed-ui/src/components/Tabs/styles.scss new file mode 100644 index 00000000000..5fd7204463e --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Tabs/styles.scss @@ -0,0 +1,57 @@ +@use '../../styles/colors'; + +/* reset */ +button, +fieldset, +input { + all: unset; +} + +.TabsRoot { + display: flex; + flex-direction: column; + width: 100%; +} + +.TabsList { + flex-shrink: 0; + display: flex; + border-bottom: 1px solid colors.$primary-active; +} + +.TabsTrigger { + font-family: inherit; + padding: 0 20px; + height: 45px; + flex: 1; + display: flex; + align-items: center; + justify-content: center; + font-size: 15px; + line-height: 1; + color: colors.$black; + user-select: none; +} +.TabsTrigger:hover { + color: colors.$primary-active; + cursor: pointer; +} +.TabsTrigger[data-state='active'] { + color: colors.$primary-active; + box-shadow: inset 0 -1px 0 0 currentColor, 0 1px 0 0 currentColor; +} +.TabsTrigger:focus { + position: relative; + box-shadow: 0 0 0 2px colors.$primary-active; +} + +.TabsContent { + flex-grow: 1; + padding: 12px; + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + outline: none; +} +.TabsContent:focus { + box-shadow: 0 0 0 2px black; +} diff --git a/libraries/rush-themed-ui/src/components/Text/index.tsx b/libraries/rush-themed-ui/src/components/Text/index.tsx new file mode 100644 index 00000000000..4cbee373f50 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Text/index.tsx @@ -0,0 +1,91 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import React from 'react'; +import styles from './styles.scss'; + +/** + * Indicates the type of HTML element used with {@link ITextProps}. + * @public + */ +export type TextType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span'; + +/** + * React props for {@link Text} + * @public + */ +export interface ITextProps { + type: TextType; + bold?: boolean; + children: React.ReactNode; + className?: string; + size?: number; +} + +/** + * A text box UI component + * @public + */ +export const Text = ({ type, bold = false, children, className, size }: ITextProps): JSX.Element => { + const generalStyles: { [key in string]: string | number } = { + ['fontWeight']: bold ? 'bold' : 'normal', + ...(size ? { fontSize: size } : {}) + }; + + switch (type) { + case 'h1': + return ( +

+ {children} +

+ ); + case 'h2': + return ( +

+ {children} +

+ ); + case 'h3': + return ( +

+ {children} +

+ ); + case 'h4': + return ( +

+ {children} +

+ ); + case 'h5': + return ( +
+ {children} +
+ ); + case 'h6': + return ( +
+ {children} +
+ ); + case 'p': + return ( +

+ {children} +

+ ); + case 'span': + return ( + + {children} + + ); + default: + return ( +

+ {children} +

+ ); + } +}; diff --git a/libraries/rush-themed-ui/src/components/Text/styles.scss b/libraries/rush-themed-ui/src/components/Text/styles.scss new file mode 100644 index 00000000000..0c3c8369670 --- /dev/null +++ b/libraries/rush-themed-ui/src/components/Text/styles.scss @@ -0,0 +1,49 @@ +@mixin TextStyles { + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, + 'Open Sans', 'Helvetica Neue', sans-serif; +} + +@mixin HeadingStyles { + font-weight: bold; + line-height: 1.2; + margin: 0; + @include TextStyles; +} + +.H1 { + @include HeadingStyles; + font-size: 24px; +} +.H2 { + @include HeadingStyles; + font-size: 21px; +} +.H3 { + @include HeadingStyles; + font-size: 19px; +} +.H4 { + @include HeadingStyles; + font-size: 16px; +} +.H5 { + @include HeadingStyles; + font-size: 14px; +} +.H6 { + @include HeadingStyles; + font-size: 12px; +} + +.ParagraphStyles { + @include TextStyles; + margin: 0; + font-weight: normal; + line-height: 1.5; + font-size: 14px; +} + +.SpanStyles { + @include TextStyles; + font-size: 12px; +} diff --git a/libraries/rush-themed-ui/src/index.ts b/libraries/rush-themed-ui/src/index.ts new file mode 100644 index 00000000000..03f9ce0a00d --- /dev/null +++ b/libraries/rush-themed-ui/src/index.ts @@ -0,0 +1,21 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +/** + * This is an internal library for use by Rush Stack apps. + * It provides a small set of reusable React UI components + * with a consistent theme. + * + * @remarks + * The implementation is based on the + * {@link https://www.radix-ui.com/ | Radix UI Primitives} framework. + * + * @packageDocumentation + */ + +export * from './components/Button'; +export * from './components/ScrollArea'; +export * from './components/Tabs'; +export * from './components/Checkbox'; +export * from './components/Input'; +export * from './components/Text'; diff --git a/libraries/rush-themed-ui/src/styles/_base.scss b/libraries/rush-themed-ui/src/styles/_base.scss new file mode 100644 index 00000000000..c8610b0ae5f --- /dev/null +++ b/libraries/rush-themed-ui/src/styles/_base.scss @@ -0,0 +1 @@ +$shadow: 0 2px 10px hsla(0, 0%, 0%, 0.141); diff --git a/libraries/rush-themed-ui/src/styles/_colors.scss b/libraries/rush-themed-ui/src/styles/_colors.scss new file mode 100644 index 00000000000..e7b9f8273f1 --- /dev/null +++ b/libraries/rush-themed-ui/src/styles/_colors.scss @@ -0,0 +1,10 @@ +$background-primary: white; +$background-secondary: #f3f2f1; + +$primary-active: #107c10; +$primary-background: #dff6dd; + +$secondary-active: #ab9e8e; + +$black: #000000; +$gray: #666; diff --git a/libraries/rush-themed-ui/tsconfig.json b/libraries/rush-themed-ui/tsconfig.json new file mode 100644 index 00000000000..18d8c1a0dab --- /dev/null +++ b/libraries/rush-themed-ui/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "./node_modules/@rushstack/heft-web-rig/profiles/app/tsconfig-base.json", + "compilerOptions": { + "types": ["heft-jest", "webpack-env"], + "target": "es2017", + "lib": ["es2017", "scripthost", "es2015.collection", "es2015.promise", "es2015.iterable", "dom"] + } +} diff --git a/libraries/rush-themed-ui/tsconfig.type.json b/libraries/rush-themed-ui/tsconfig.type.json new file mode 100644 index 00000000000..112edd30eb0 --- /dev/null +++ b/libraries/rush-themed-ui/tsconfig.type.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig", + "compilerOptions": { + "emitDeclarationOnly": true + }, + "include": ["src/index.ts"] +} diff --git a/libraries/rush-themed-ui/webpack.config.js b/libraries/rush-themed-ui/webpack.config.js new file mode 100644 index 00000000000..1215f0c5c1f --- /dev/null +++ b/libraries/rush-themed-ui/webpack.config.js @@ -0,0 +1,24 @@ +'use strict'; + +const createWebpackConfig = require('@rushstack/heft-web-rig/profiles/library/webpack-base.config'); + +module.exports = function createConfig(env, argv) { + return createWebpackConfig({ + env: env, + argv: argv, + projectRoot: __dirname, + + // Documentation: https://webpack.js.org/configuration/ + configOverride: { + externals: ['react', 'react-dom', 'tslib'], + + performance: { + hints: env.production ? 'error' : false + // This specifies the bundle size limit that will trigger Webpack's warning saying: + // "The following entrypoint(s) combined asset size exceeds the recommended limit." + // maxEntrypointSize: 500000, + // maxAssetSize: 500000 + } + } + }); +}; diff --git a/libraries/rushell/package.json b/libraries/rushell/package.json index 1de81c545ef..0888861f57b 100644 --- a/libraries/rushell/package.json +++ b/libraries/rushell/package.json @@ -23,6 +23,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/libraries/stream-collator/CHANGELOG.json b/libraries/stream-collator/CHANGELOG.json index f2e5592ed5c..7875df97ef7 100644 --- a/libraries/stream-collator/CHANGELOG.json +++ b/libraries/stream-collator/CHANGELOG.json @@ -1,6 +1,180 @@ { "name": "@rushstack/stream-collator", "entries": [ + { + "version": "4.0.228", + "tag": "@rushstack/stream-collator_v4.0.228", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.5.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "4.0.227", + "tag": "@rushstack/stream-collator_v4.0.227", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.5.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "4.0.226", + "tag": "@rushstack/stream-collator_v4.0.226", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.5.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "4.0.225", + "tag": "@rushstack/stream-collator_v4.0.225", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.5.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "4.0.224", + "tag": "@rushstack/stream-collator_v4.0.224", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.4.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "4.0.223", + "tag": "@rushstack/stream-collator_v4.0.223", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.3.92`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "4.0.222", + "tag": "@rushstack/stream-collator_v4.0.222", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.3.91`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "4.0.221", + "tag": "@rushstack/stream-collator_v4.0.221", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.3.90`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "4.0.220", + "tag": "@rushstack/stream-collator_v4.0.220", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.3.89`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "4.0.219", "tag": "@rushstack/stream-collator_v4.0.219", diff --git a/libraries/stream-collator/CHANGELOG.md b/libraries/stream-collator/CHANGELOG.md index 1a45d24d6e6..9b92d1aa5c4 100644 --- a/libraries/stream-collator/CHANGELOG.md +++ b/libraries/stream-collator/CHANGELOG.md @@ -1,6 +1,51 @@ # Change Log - @rushstack/stream-collator -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 4.0.228 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 4.0.227 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 4.0.226 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 4.0.225 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 4.0.224 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 4.0.223 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 4.0.222 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 4.0.221 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 4.0.220 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 4.0.219 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/libraries/stream-collator/package.json b/libraries/stream-collator/package.json index 72818a62b9e..8f45d643242 100644 --- a/libraries/stream-collator/package.json +++ b/libraries/stream-collator/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/stream-collator", - "version": "4.0.219", + "version": "4.0.228", "description": "Display intelligible realtime output from concurrent processes", "repository": { "type": "git", @@ -23,6 +23,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/libraries/terminal/CHANGELOG.json b/libraries/terminal/CHANGELOG.json index dd514c09bfa..74c00fefa1b 100644 --- a/libraries/terminal/CHANGELOG.json +++ b/libraries/terminal/CHANGELOG.json @@ -1,6 +1,168 @@ { "name": "@rushstack/terminal", "entries": [ + { + "version": "0.5.3", + "tag": "@rushstack/terminal_v0.5.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.5.2", + "tag": "@rushstack/terminal_v0.5.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.5.1", + "tag": "@rushstack/terminal_v0.5.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.5.0", + "tag": "@rushstack/terminal_v0.5.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.4.0", + "tag": "@rushstack/terminal_v0.4.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.3.92", + "tag": "@rushstack/terminal_v0.3.92", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.3.91", + "tag": "@rushstack/terminal_v0.3.91", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.3.90", + "tag": "@rushstack/terminal_v0.3.90", + "date": "Wed, 25 Jan 2023 07:26:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.3.89", + "tag": "@rushstack/terminal_v0.3.89", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.3.88", "tag": "@rushstack/terminal_v0.3.88", diff --git a/libraries/terminal/CHANGELOG.md b/libraries/terminal/CHANGELOG.md index 187c8426d09..5b27dc479bd 100644 --- a/libraries/terminal/CHANGELOG.md +++ b/libraries/terminal/CHANGELOG.md @@ -1,6 +1,57 @@ # Change Log - @rushstack/terminal -This log was last generated on Tue, 20 Dec 2022 01:18:23 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.5.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.5.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.5.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.5.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.4.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.3.92 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.3.91 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.3.90 +Wed, 25 Jan 2023 07:26:56 GMT + +_Version update only_ + +## 0.3.89 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.3.88 Tue, 20 Dec 2022 01:18:23 GMT diff --git a/libraries/terminal/package.json b/libraries/terminal/package.json index 85db1915b92..757ddc78903 100644 --- a/libraries/terminal/package.json +++ b/libraries/terminal/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/terminal", - "version": "0.3.88", + "version": "0.5.3", "description": "User interface primitives for console applications", "main": "lib/index.js", "typings": "dist/terminal.d.ts", @@ -17,14 +17,23 @@ }, "dependencies": { "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24", "wordwrap": "~1.0.0" }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/wordwrap": "~1.0.0", "colors": "~1.2.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } } diff --git a/libraries/tree-pattern/package.json b/libraries/tree-pattern/package.json index c805e77447e..b85d5e77999 100644 --- a/libraries/tree-pattern/package.json +++ b/libraries/tree-pattern/package.json @@ -17,10 +17,10 @@ }, "devDependencies": { "@rushstack/eslint-config": "3.1.0", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "eslint": "~7.30.0", "typescript": "~4.8.4" } diff --git a/libraries/ts-command-line/CHANGELOG.json b/libraries/ts-command-line/CHANGELOG.json index 1b9bb4d3efb..8da63df282b 100644 --- a/libraries/ts-command-line/CHANGELOG.json +++ b/libraries/ts-command-line/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/ts-command-line", "entries": [ + { + "version": "4.13.2", + "tag": "@rushstack/ts-command-line_v4.13.2", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + } + ] + } + }, { "version": "4.13.1", "tag": "@rushstack/ts-command-line_v4.13.1", diff --git a/libraries/ts-command-line/CHANGELOG.md b/libraries/ts-command-line/CHANGELOG.md index f125c0b69f5..fefe71144dd 100644 --- a/libraries/ts-command-line/CHANGELOG.md +++ b/libraries/ts-command-line/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log - @rushstack/ts-command-line -This log was last generated on Tue, 08 Nov 2022 01:20:55 GMT and should not be manually modified. +This log was last generated on Fri, 10 Feb 2023 01:18:50 GMT and should not be manually modified. + +## 4.13.2 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ ## 4.13.1 Tue, 08 Nov 2022 01:20:55 GMT diff --git a/libraries/ts-command-line/package.json b/libraries/ts-command-line/package.json index 484692f8d84..aa6e544befe 100644 --- a/libraries/ts-command-line/package.json +++ b/libraries/ts-command-line/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/ts-command-line", - "version": "4.13.1", + "version": "4.13.2", "description": "An object-oriented command-line parser for TypeScript", "repository": { "type": "git", @@ -23,9 +23,9 @@ }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", - "@rushstack/heft": "0.48.0", - "@rushstack/heft-node-rig": "1.11.0", + "@rushstack/heft": "0.49.3", + "@rushstack/heft-node-rig": "1.11.14", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/libraries/typings-generator/CHANGELOG.json b/libraries/typings-generator/CHANGELOG.json index ed24eecd5d2..632031058d8 100644 --- a/libraries/typings-generator/CHANGELOG.json +++ b/libraries/typings-generator/CHANGELOG.json @@ -1,6 +1,168 @@ { "name": "@rushstack/typings-generator", "entries": [ + { + "version": "0.10.3", + "tag": "@rushstack/typings-generator_v0.10.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.10.2", + "tag": "@rushstack/typings-generator_v0.10.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.10.1", + "tag": "@rushstack/typings-generator_v0.10.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.10.0", + "tag": "@rushstack/typings-generator_v0.10.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.9.0", + "tag": "@rushstack/typings-generator_v0.9.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.8.18", + "tag": "@rushstack/typings-generator_v0.8.18", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.8.17", + "tag": "@rushstack/typings-generator_v0.8.17", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.8.16", + "tag": "@rushstack/typings-generator_v0.8.16", + "date": "Wed, 25 Jan 2023 07:26:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.8.15", + "tag": "@rushstack/typings-generator_v0.8.15", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.8.14", "tag": "@rushstack/typings-generator_v0.8.14", diff --git a/libraries/typings-generator/CHANGELOG.md b/libraries/typings-generator/CHANGELOG.md index 63424ecfa66..d6302b9bbfb 100644 --- a/libraries/typings-generator/CHANGELOG.md +++ b/libraries/typings-generator/CHANGELOG.md @@ -1,6 +1,57 @@ # Change Log - @rushstack/typings-generator -This log was last generated on Tue, 20 Dec 2022 01:18:23 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.10.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.10.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.10.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.10.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.9.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.8.18 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.8.17 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.8.16 +Wed, 25 Jan 2023 07:26:56 GMT + +_Version update only_ + +## 0.8.15 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.8.14 Tue, 20 Dec 2022 01:18:23 GMT diff --git a/libraries/typings-generator/package.json b/libraries/typings-generator/package.json index 1932a9c0dd7..5a4b53a1d1a 100644 --- a/libraries/typings-generator/package.json +++ b/libraries/typings-generator/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/typings-generator", - "version": "0.8.14", + "version": "0.10.3", "description": "This library provides functionality for automatically generating typings for non-TS files.", "keywords": [ "dts", @@ -21,7 +21,6 @@ }, "dependencies": { "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24", "chokidar": "~3.4.0", "glob": "~7.0.5" }, @@ -29,6 +28,15 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/glob": "7.1.1" + "@types/glob": "7.1.1", + "@types/node": "14.18.36" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } } diff --git a/libraries/typings-generator/src/index.ts b/libraries/typings-generator/src/index.ts index fad95f3a120..7a61c8a828e 100644 --- a/libraries/typings-generator/src/index.ts +++ b/libraries/typings-generator/src/index.ts @@ -1,6 +1,14 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +/** + * An engine for generating TypeScript .d.ts files that provide type signatures + * for non-TypeScript modules such as generated JavaScript or CSS. It can operate + * in either a single-run mode or a watch mode. + * + * @packageDocumentation + */ + export { ITypingsGeneratorBaseOptions, ITypingsGeneratorOptions, TypingsGenerator } from './TypingsGenerator'; export { diff --git a/libraries/worker-pool/CHANGELOG.json b/libraries/worker-pool/CHANGELOG.json index fef2a01dc17..0ee39d30968 100644 --- a/libraries/worker-pool/CHANGELOG.json +++ b/libraries/worker-pool/CHANGELOG.json @@ -1,6 +1,156 @@ { "name": "@rushstack/worker-pool", "entries": [ + { + "version": "0.3.3", + "tag": "@rushstack/worker-pool_v0.3.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.3.2", + "tag": "@rushstack/worker-pool_v0.3.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.3.1", + "tag": "@rushstack/worker-pool_v0.3.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.3.0", + "tag": "@rushstack/worker-pool_v0.3.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.2.0", + "tag": "@rushstack/worker-pool_v0.2.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.1.48", + "tag": "@rushstack/worker-pool_v0.1.48", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.1.47", + "tag": "@rushstack/worker-pool_v0.1.47", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.1.46", + "tag": "@rushstack/worker-pool_v0.1.46", + "date": "Wed, 25 Jan 2023 07:26:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.1.45", + "tag": "@rushstack/worker-pool_v0.1.45", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.1.44", "tag": "@rushstack/worker-pool_v0.1.44", diff --git a/libraries/worker-pool/CHANGELOG.md b/libraries/worker-pool/CHANGELOG.md index b8048b32f3e..024073ef1fd 100644 --- a/libraries/worker-pool/CHANGELOG.md +++ b/libraries/worker-pool/CHANGELOG.md @@ -1,6 +1,57 @@ # Change Log - @rushstack/worker-pool -This log was last generated on Tue, 20 Dec 2022 01:18:23 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.3.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.3.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.3.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.3.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.2.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.1.48 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.1.47 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.1.46 +Wed, 25 Jan 2023 07:26:56 GMT + +_Version update only_ + +## 0.1.45 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.44 Tue, 20 Dec 2022 01:18:23 GMT diff --git a/libraries/worker-pool/package.json b/libraries/worker-pool/package.json index 9449f9f3809..d5168974d17 100644 --- a/libraries/worker-pool/package.json +++ b/libraries/worker-pool/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/worker-pool", - "version": "0.1.44", + "version": "0.3.3", "description": "Lightweight worker pool using NodeJS worker_threads", "main": "lib/index.js", "typings": "dist/worker-pool.d.ts", @@ -15,12 +15,19 @@ "_phase:build": "heft run --only build -- --clean", "_phase:test": "heft run --only test -- --clean" }, - "dependencies": { - "@types/node": "12.20.24" - }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", - "@rushstack/heft-node-rig": "workspace:*" + "@rushstack/heft-node-rig": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } } diff --git a/libraries/worker-pool/src/index.ts b/libraries/worker-pool/src/index.ts index 7acd591256f..df7018da1f5 100644 --- a/libraries/worker-pool/src/index.ts +++ b/libraries/worker-pool/src/index.ts @@ -1,5 +1,11 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +/** + * A lightweight worker pool implementation using the NodeJS `worker_threads` API. + * + * @packageDocumentation + */ + export type { IWorkerPoolOptions } from './WorkerPool'; export { WORKER_ID_SYMBOL, WorkerPool } from './WorkerPool'; diff --git a/repo-scripts/doc-plugin-rush-stack/package.json b/repo-scripts/doc-plugin-rush-stack/package.json index cbd1cfab650..bded3f2dfbc 100644 --- a/repo-scripts/doc-plugin-rush-stack/package.json +++ b/repo-scripts/doc-plugin-rush-stack/package.json @@ -22,6 +22,6 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@types/js-yaml": "3.12.1", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/repo-scripts/repo-toolbox/package.json b/repo-scripts/repo-toolbox/package.json index 4edc702da62..a9ab3601e67 100644 --- a/repo-scripts/repo-toolbox/package.json +++ b/repo-scripts/repo-toolbox/package.json @@ -20,6 +20,6 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", "@types/diff": "5.0.1", - "@types/node": "12.20.24" + "@types/node": "14.18.36" } } diff --git a/rigs/heft-node-rig/CHANGELOG.json b/rigs/heft-node-rig/CHANGELOG.json index 9e3642a9e0d..9fe99d93ba9 100644 --- a/rigs/heft-node-rig/CHANGELOG.json +++ b/rigs/heft-node-rig/CHANGELOG.json @@ -2,70 +2,180 @@ "name": "@rushstack/heft-node-rig", "entries": [ { - "version": "1.12.0-rc.4", - "tag": "@rushstack/heft-node-rig_v1.12.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "1.12.5", + "tag": "@rushstack/heft-node-rig_v1.12.5", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "1.12.0-rc.3", - "tag": "@rushstack/heft-node-rig_v1.12.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "1.12.4", + "tag": "@rushstack/heft-node-rig_v1.12.4", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.4`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.4`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "1.12.0-rc.2", - "tag": "@rushstack/heft-node-rig_v1.12.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "1.12.3", + "tag": "@rushstack/heft-node-rig_v1.12.3", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.3`" + }, { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" } ] } }, { - "version": "1.12.0-rc.1", - "tag": "@rushstack/heft-node-rig_v1.12.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "1.12.2", + "tag": "@rushstack/heft-node-rig_v1.12.2", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", "comments": { - "minor": [ + "dependency": [ { - "comment": "Fix incremental TypeScript compilation." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" + } + ] + } + }, + { + "version": "1.12.1", + "tag": "@rushstack/heft-node-rig_v1.12.1", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" } ] } }, { - "version": "1.12.0-rc.0", - "tag": "@rushstack/heft-node-rig_v1.12.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "1.12.0", + "tag": "@rushstack/heft-node-rig_v1.12.0", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", "comments": { "minor": [ { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Upgrade Jest from `~27.4.2` to `~29.3.1`" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.0`" + } + ] + } + }, + { + "version": "1.11.14", + "tag": "@rushstack/heft-node-rig_v1.11.14", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.4.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" + } + ] + } + }, + { + "version": "1.11.13", + "tag": "@rushstack/heft-node-rig_v1.11.13", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.4.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "1.11.12", + "tag": "@rushstack/heft-node-rig_v1.11.12", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.33.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.4.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/rigs/heft-node-rig/CHANGELOG.md b/rigs/heft-node-rig/CHANGELOG.md index ea3009e59c4..3958a97b810 100644 --- a/rigs/heft-node-rig/CHANGELOG.md +++ b/rigs/heft-node-rig/CHANGELOG.md @@ -1,44 +1,53 @@ # Change Log - @rushstack/heft-node-rig -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 1.12.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 1.12.5 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ -- Fix an issue with `watchGlobAsync` +## 1.12.4 +Fri, 10 Feb 2023 01:18:50 GMT -## 1.12.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +_Version update only_ -### Prerelease Changes +## 1.12.3 +Sun, 05 Feb 2023 03:02:02 GMT -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +_Version update only_ -## 1.12.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +## 1.12.2 +Wed, 01 Feb 2023 02:16:34 GMT -### Prerelease Changes +_Version update only_ -- Improve watch mode performance. -- Improve logging output. +## 1.12.1 +Mon, 30 Jan 2023 16:22:31 GMT -## 1.12.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +_Version update only_ -### Prerelease Changes +## 1.12.0 +Mon, 30 Jan 2023 00:55:44 GMT -- Fix incremental TypeScript compilation. +### Minor changes -## 1.12.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +- Upgrade Jest from `~27.4.2` to `~29.3.1` -### Prerelease Changes +## 1.11.14 +Thu, 26 Jan 2023 02:55:10 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ + +## 1.11.13 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 1.11.12 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 1.11.11 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/rigs/heft-node-rig/package.json b/rigs/heft-node-rig/package.json index 667f85bdd43..2f386aa4818 100644 --- a/rigs/heft-node-rig/package.json +++ b/rigs/heft-node-rig/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-node-rig", - "version": "1.12.0-rc.4", + "version": "1.12.5", "description": "A rig package for Node.js projects that build using Heft", "license": "MIT", "scripts": { @@ -13,7 +13,7 @@ "directory": "rigs/heft-node-rig" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4" + "@rushstack/heft": "^0.50.0" }, "dependencies": { "@microsoft/api-extractor": "workspace:*", diff --git a/rigs/heft-web-rig/CHANGELOG.json b/rigs/heft-web-rig/CHANGELOG.json index 646e48c3c81..0e2f1967b76 100644 --- a/rigs/heft-web-rig/CHANGELOG.json +++ b/rigs/heft-web-rig/CHANGELOG.json @@ -2,70 +2,275 @@ "name": "@rushstack/heft-web-rig", "entries": [ { - "version": "0.13.0-rc.4", - "tag": "@rushstack/heft-web-rig_v0.13.0-rc.4", - "date": "Wed, 15 Mar 2023 20:22:44 GMT", + "version": "0.14.7", + "tag": "@rushstack/heft-web-rig_v0.14.7", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.8.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.6.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, { - "comment": "Fix an issue with `watchGlobAsync`" + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.7` to `^0.50.0`" } ] } }, { - "version": "0.13.0-rc.3", - "tag": "@rushstack/heft-web-rig_v0.13.0-rc.3", - "date": "Fri, 20 Jan 2023 20:13:16 GMT", + "version": "0.14.6", + "tag": "@rushstack/heft-web-rig_v0.14.6", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.6.0`" + } + ] + } + }, + { + "version": "0.14.5", + "tag": "@rushstack/heft-web-rig_v0.14.5", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ { - "comment": "Fix issues with SASS incremental builds." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.4`" }, { - "comment": "Add support for TypeScript solution incremental builds." + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.4`" }, { - "comment": "Improve responsiveness of watcher loop." + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.8.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.73`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.6` to `^0.49.7`" } ] } }, { - "version": "0.13.0-rc.2", - "tag": "@rushstack/heft-web-rig_v0.13.0-rc.2", - "date": "Fri, 2 Dec 2022 05:28:24 GMT", + "version": "0.14.4", + "tag": "@rushstack/heft-web-rig_v0.14.4", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", "comments": { - "minor": [ + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.8.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.72`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.5` to `^0.49.6`" + } + ] + } + }, + { + "version": "0.14.3", + "tag": "@rushstack/heft-web-rig_v0.14.3", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.8.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.71`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.4` to `^0.49.5`" + } + ] + } + }, + { + "version": "0.14.2", + "tag": "@rushstack/heft-web-rig_v0.14.2", + "date": "Tue, 31 Jan 2023 01:23:23 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.8.0`" + } + ] + } + }, + { + "version": "0.14.1", + "tag": "@rushstack/heft-web-rig_v0.14.1", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ { - "comment": "Improve watch mode performance." + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.1`" }, { - "comment": "Improve logging output." + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.7.10`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.70`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.3` to `^0.49.4`" } ] } }, { - "version": "0.13.0-rc.1", - "tag": "@rushstack/heft-web-rig_v0.13.0-rc.1", - "date": "Fri, 18 Nov 2022 02:34:26 GMT", + "version": "0.14.0", + "tag": "@rushstack/heft-web-rig_v0.14.0", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", "comments": { "minor": [ { - "comment": "Fix incremental TypeScript compilation." + "comment": "Upgrade Jest from `~27.4.2` to `~29.3.1`" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.5.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.7.9`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.69`" + } + ] + } + }, + { + "version": "0.13.2", + "tag": "@rushstack/heft-web-rig_v0.13.2", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.4.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.7.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.68`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.2` to `^0.49.3`" } ] } }, { - "version": "0.13.0-rc.0", - "tag": "@rushstack/heft-web-rig_v0.13.0-rc.0", - "date": "Tue, 15 Nov 2022 22:59:35 GMT", + "version": "0.13.1", + "tag": "@rushstack/heft-web-rig_v0.13.1", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.34.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.4.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.67`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.1` to `^0.49.2`" + } + ] + } + }, + { + "version": "0.13.0", + "tag": "@rushstack/heft-web-rig_v0.13.0", + "date": "Sun, 22 Jan 2023 20:37:08 GMT", "comments": { "minor": [ { - "comment": "General fixes and improvements, in preparation for a general release." + "comment": "Disable \"mini-css-extract-plugin\" for the \"library\" rig profile because there isn't a straightforward way to load .css files from a library" + } + ] + } + }, + { + "version": "0.12.17", + "tag": "@rushstack/heft-web-rig_v0.12.17", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.33.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `0.4.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `0.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.66`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^0.49.0` to `^0.49.1`" } ] } diff --git a/rigs/heft-web-rig/CHANGELOG.md b/rigs/heft-web-rig/CHANGELOG.md index 4c43bd62f65..496b61c8458 100644 --- a/rigs/heft-web-rig/CHANGELOG.md +++ b/rigs/heft-web-rig/CHANGELOG.md @@ -1,44 +1,72 @@ # Change Log - @rushstack/heft-web-rig -This log was last generated on Wed, 15 Mar 2023 20:22:44 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. -## 0.13.0-rc.4 -Wed, 15 Mar 2023 20:22:44 GMT +## 0.14.7 +Sat, 18 Mar 2023 00:20:56 GMT -### Prerelease Changes +_Version update only_ + +## 0.14.6 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 0.14.5 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.14.4 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.14.3 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.14.2 +Tue, 31 Jan 2023 01:23:23 GMT + +_Version update only_ + +## 0.14.1 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ -- Fix an issue with `watchGlobAsync` +## 0.14.0 +Mon, 30 Jan 2023 00:55:44 GMT -## 0.13.0-rc.3 -Fri, 20 Jan 2023 20:13:16 GMT +### Minor changes -### Prerelease Changes +- Upgrade Jest from `~27.4.2` to `~29.3.1` -- Fix issues with SASS incremental builds. -- Add support for TypeScript solution incremental builds. -- Improve responsiveness of watcher loop. +## 0.13.2 +Thu, 26 Jan 2023 02:55:10 GMT -## 0.13.0-rc.2 -Fri, 2 Dec 2022 05:28:24 GMT +### Patches -### Prerelease Changes +- Upgrade to webpack 5.75.0 -- Improve watch mode performance. -- Improve logging output. +## 0.13.1 +Wed, 25 Jan 2023 07:26:55 GMT -## 0.13.0-rc.1 -Fri, 18 Nov 2022 02:34:26 GMT +_Version update only_ -### Prerelease Changes +## 0.13.0 +Sun, 22 Jan 2023 20:37:08 GMT -- Fix incremental TypeScript compilation. +### Minor changes -## 0.13.0-rc.0 -Tue, 15 Nov 2022 22:59:35 GMT +- Disable "mini-css-extract-plugin" for the "library" rig profile because there isn't a straightforward way to load .css files from a library -### Prerelease Changes +## 0.12.17 +Wed, 18 Jan 2023 22:44:12 GMT -- General fixes and improvements, in preparation for a general release. +_Version update only_ ## 0.12.16 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/rigs/heft-web-rig/package.json b/rigs/heft-web-rig/package.json index 1ee4728ba3e..f19266d77a4 100644 --- a/rigs/heft-web-rig/package.json +++ b/rigs/heft-web-rig/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-web-rig", - "version": "0.13.0-rc.4", + "version": "0.14.7", "description": "A rig package for web browser projects that build using Heft", "license": "MIT", "scripts": { @@ -13,7 +13,7 @@ "directory": "rigs/heft-web-rig" }, "peerDependencies": { - "@rushstack/heft": "0.50.0-rc.4" + "@rushstack/heft": "^0.50.0" }, "dependencies": { "@microsoft/api-extractor": "workspace:*", @@ -42,7 +42,7 @@ "url-loader": "~4.1.1", "webpack-bundle-analyzer": "~4.5.0", "webpack-merge": "~5.8.0", - "webpack": "~5.68.0" + "webpack": "~5.75.0" }, "devDependencies": { "@rushstack/heft": "workspace:*" diff --git a/rigs/heft-web-rig/profiles/app/webpack-base.config.js b/rigs/heft-web-rig/profiles/app/webpack-base.config.js index 18cdcdb9397..2b8fc3b1a55 100644 --- a/rigs/heft-web-rig/profiles/app/webpack-base.config.js +++ b/rigs/heft-web-rig/profiles/app/webpack-base.config.js @@ -33,6 +33,7 @@ module.exports = function createWebpackConfig({ env, argv, projectRoot, configOv env: env, argv: argv, projectRoot: projectRoot, + extractCssInProduction: true, configOverride: createWebpackConfigCommon.merge(applicationOverrides, configOverride) }); }; diff --git a/rigs/heft-web-rig/profiles/library/webpack-base.config.js b/rigs/heft-web-rig/profiles/library/webpack-base.config.js index d9ef53c94c9..d8ba33b1f2f 100644 --- a/rigs/heft-web-rig/profiles/library/webpack-base.config.js +++ b/rigs/heft-web-rig/profiles/library/webpack-base.config.js @@ -41,6 +41,10 @@ module.exports = function createWebpackConfig({ env, argv, projectRoot, configOv env: env, argv: argv, projectRoot: projectRoot, + // "If you're building a design system or component library and shipping to NPM you shouldn't + // extract just yet, let your consumers do it in their app." + // https://compiledcssinjs.com/docs/css-extraction-webpack + extractCssInProduction: false, configOverride: createWebpackConfigCommon.merge(libraryOverrides, configOverride) }); }; diff --git a/rigs/heft-web-rig/shared/webpack-base.config.js b/rigs/heft-web-rig/shared/webpack-base.config.js index 080d71e58a4..45cd4273c85 100644 --- a/rigs/heft-web-rig/shared/webpack-base.config.js +++ b/rigs/heft-web-rig/shared/webpack-base.config.js @@ -14,7 +14,7 @@ const autoprefixer = require('autoprefixer'); * If the "--production" command-line parameter is specified when invoking Heft, then the * "production" function parameter will be true. You can use this to enable bundling optimizations. */ -function createWebpackConfig({ env, argv, projectRoot, configOverride }) { +function createWebpackConfig({ env, argv, projectRoot, configOverride, extractCssInProduction }) { const { production } = env; const defaultArgs = { @@ -89,7 +89,7 @@ function createWebpackConfig({ env, argv, projectRoot, configOverride }) { // CSS into the DOM using multiple and works faster." // // "WARNING: Do not use style-loader and mini-css-extract-plugin together." - production + production && extractCssInProduction ? { loader: MiniCssExtractPlugin.loader } diff --git a/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json b/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json index ed98f0b005c..f83dea9d2c0 100644 --- a/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json +++ b/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-amazon-s3-build-cache-plugin", - "version": "5.88.0", + "version": "5.95.0", "description": "Rush plugin for Amazon S3 cloud build cache", "repository": { "type": "git", @@ -29,7 +29,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", - "@types/node-fetch": "1.6.9" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", + "@types/node-fetch": "2.6.2" } } diff --git a/rush-plugins/rush-amazon-s3-build-cache-plugin/src/AmazonS3Client.ts b/rush-plugins/rush-amazon-s3-build-cache-plugin/src/AmazonS3Client.ts index 9eadc5b3f74..4df33953448 100644 --- a/rush-plugins/rush-amazon-s3-build-cache-plugin/src/AmazonS3Client.ts +++ b/rush-plugins/rush-amazon-s3-build-cache-plugin/src/AmazonS3Client.ts @@ -340,7 +340,7 @@ export class AmazonS3Client { public _getSha256Hmac(key: string | Buffer, data: string): Buffer; public _getSha256Hmac(key: string | Buffer, data: string, encoding: 'hex'): string; public _getSha256Hmac(key: string | Buffer, data: string, encoding?: 'hex'): Buffer | string { - const hash: crypto.Hash = crypto.createHmac('sha256', key); + const hash: crypto.Hmac = crypto.createHmac('sha256', key); hash.update(data); if (encoding) { return hash.digest(encoding); diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/package.json b/rush-plugins/rush-azure-storage-build-cache-plugin/package.json index 8632d96dfe7..cbf20b26037 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/package.json +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-azure-storage-build-cache-plugin", - "version": "5.88.0", + "version": "5.95.0", "description": "Rush plugin for Azure storage cloud build cache", "repository": { "type": "git", @@ -29,6 +29,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureAuthenticationBase.ts b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureAuthenticationBase.ts index 1d69513cc53..013595a3370 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureAuthenticationBase.ts +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureAuthenticationBase.ts @@ -72,6 +72,7 @@ export type AzureEnvironmentName = keyof typeof AzureAuthorityHosts; */ export interface IAzureAuthenticationBaseOptions { azureEnvironment?: AzureEnvironmentName; + credentialUpdateCommandForLogging?: string | undefined; } /** @@ -88,7 +89,7 @@ export interface IAzureAuthenticationBaseOptions { export abstract class AzureAuthenticationBase { protected abstract readonly _credentialNameForCache: string; protected abstract readonly _credentialKindForLogging: string; - protected abstract readonly _credentialUpdateCommandForLogging: string | undefined; + protected readonly _credentialUpdateCommandForLogging: string | undefined; protected readonly _azureEnvironment: AzureEnvironmentName; @@ -109,6 +110,7 @@ export abstract class AzureAuthenticationBase { public constructor(options: IAzureAuthenticationBaseOptions) { this._azureEnvironment = options.azureEnvironment || 'AzurePublicCloud'; + this._credentialUpdateCommandForLogging = options.credentialUpdateCommandForLogging; } public async updateCachedCredentialAsync(terminal: ITerminal, credential: string): Promise { diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts index dfa23444f13..975ba4f9b59 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts @@ -10,7 +10,6 @@ import { type ServiceGetUserDelegationKeyResponse } from '@azure/storage-blob'; import type { ITerminal } from '@rushstack/node-core-library'; -import { RushConstants } from '@rushstack/rush-sdk'; import { AzureAuthenticationBase, type ICredentialResult, @@ -34,7 +33,6 @@ const SAS_TTL_MILLISECONDS: number = 7 * 24 * 60 * 60 * 1000; // Seven days export class AzureStorageAuthentication extends AzureAuthenticationBase { protected readonly _credentialNameForCache: string = 'azure-blob-storage'; protected readonly _credentialKindForLogging: string = 'Storage'; - protected readonly _credentialUpdateCommandForLogging: string = `rush ${RushConstants.updateCloudCredentialsCommandName}`; protected readonly _storageAccountName: string; protected readonly _storageContainerName: string; diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageBuildCacheProvider.ts b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageBuildCacheProvider.ts index 71eeb98e1e3..4ff961bad74 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageBuildCacheProvider.ts +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageBuildCacheProvider.ts @@ -43,7 +43,10 @@ export class AzureStorageBuildCacheProvider private _containerClient: ContainerClient | undefined; public constructor(options: IAzureStorageBuildCacheProviderOptions) { - super(options); + super({ + credentialUpdateCommandForLogging: `rush ${RushConstants.updateCloudCredentialsCommandName}`, + ...options + }); this._blobPrefix = options.blobPrefix; this._environmentCredential = EnvironmentConfiguration.buildCacheCredential; diff --git a/rush-plugins/rush-litewatch-plugin/package.json b/rush-plugins/rush-litewatch-plugin/package.json index e1d7bfe1177..5b96dca720c 100644 --- a/rush-plugins/rush-litewatch-plugin/package.json +++ b/rush-plugins/rush-litewatch-plugin/package.json @@ -22,6 +22,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/rush-plugins/rush-serve-plugin/CHANGELOG.json b/rush-plugins/rush-serve-plugin/CHANGELOG.json index 146ac7242a4..3644b6d02c6 100644 --- a/rush-plugins/rush-serve-plugin/CHANGELOG.json +++ b/rush-plugins/rush-serve-plugin/CHANGELOG.json @@ -1,6 +1,237 @@ { "name": "@rushstack/rush-serve-plugin", "entries": [ + { + "version": "0.4.5", + "tag": "@rushstack/rush-serve-plugin_v0.4.5", + "date": "Mon, 20 Mar 2023 20:14:20 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.19`" + } + ] + } + }, + { + "version": "0.4.4", + "tag": "@rushstack/rush-serve-plugin_v0.4.4", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.18`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.4.3", + "tag": "@rushstack/rush-serve-plugin_v0.4.3", + "date": "Fri, 03 Mar 2023 04:11:20 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.17`" + } + ] + } + }, + { + "version": "0.4.2", + "tag": "@rushstack/rush-serve-plugin_v0.4.2", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.16`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.9`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.3.18`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `4.13.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.4.1", + "tag": "@rushstack/rush-serve-plugin_v0.4.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.15`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.8`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.4.0", + "tag": "@rushstack/rush-serve-plugin_v0.4.0", + "date": "Sat, 04 Feb 2023 01:22:24 GMT", + "comments": { + "minor": [ + { + "comment": "Support workspace-level routing rules in the plugin config, to serve files that are not associated with any specific project." + } + ] + } + }, + { + "version": "0.3.14", + "tag": "@rushstack/rush-serve-plugin_v0.3.14", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.7`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.3.13", + "tag": "@rushstack/rush-serve-plugin_v0.3.13", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.6`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.3.12", + "tag": "@rushstack/rush-serve-plugin_v0.3.12", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.3.11", + "tag": "@rushstack/rush-serve-plugin_v0.3.11", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.11`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.11.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.3.10", + "tag": "@rushstack/rush-serve-plugin_v0.3.10", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.10`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.3.9", + "tag": "@rushstack/rush-serve-plugin_v0.3.9", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.2.9`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.3.8", "tag": "@rushstack/rush-serve-plugin_v0.3.8", diff --git a/rush-plugins/rush-serve-plugin/CHANGELOG.md b/rush-plugins/rush-serve-plugin/CHANGELOG.md index 927c86ff357..1f27f0e025c 100644 --- a/rush-plugins/rush-serve-plugin/CHANGELOG.md +++ b/rush-plugins/rush-serve-plugin/CHANGELOG.md @@ -1,6 +1,68 @@ # Change Log - @rushstack/rush-serve-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Mon, 20 Mar 2023 20:14:20 GMT and should not be manually modified. + +## 0.4.5 +Mon, 20 Mar 2023 20:14:20 GMT + +_Version update only_ + +## 0.4.4 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.4.3 +Fri, 03 Mar 2023 04:11:20 GMT + +_Version update only_ + +## 0.4.2 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 0.4.1 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.4.0 +Sat, 04 Feb 2023 01:22:24 GMT + +### Minor changes + +- Support workspace-level routing rules in the plugin config, to serve files that are not associated with any specific project. + +## 0.3.14 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.3.13 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 0.3.12 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.3.11 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.3.10 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.3.9 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.3.8 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/rush-plugins/rush-serve-plugin/config/api-extractor.json b/rush-plugins/rush-serve-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/rush-plugins/rush-serve-plugin/config/api-extractor.json +++ b/rush-plugins/rush-serve-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/rush-plugins/rush-serve-plugin/package.json b/rush-plugins/rush-serve-plugin/package.json index 0489b55df84..7e12cccd8dc 100644 --- a/rush-plugins/rush-serve-plugin/package.json +++ b/rush-plugins/rush-serve-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-serve-plugin", - "version": "0.3.8", + "version": "0.4.5", "description": "A Rush plugin that hooks into a rush action and serves output folders from all projects in the repository.", "license": "MIT", "repository": { @@ -29,6 +29,7 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@types/express": "4.17.13", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/rush-plugins/rush-serve-plugin/src/RushProjectServeConfigFile.ts b/rush-plugins/rush-serve-plugin/src/RushProjectServeConfigFile.ts index cd7995bc52d..71122761a2e 100644 --- a/rush-plugins/rush-serve-plugin/src/RushProjectServeConfigFile.ts +++ b/rush-plugins/rush-serve-plugin/src/RushProjectServeConfigFile.ts @@ -54,9 +54,10 @@ export class RushServeConfiguration { public async loadProjectConfigsAsync( projects: Iterable, - terminal: ITerminal + terminal: ITerminal, + workspaceRoutingRules: Iterable ): Promise> { - const rules: IRoutingRule[] = []; + const rules: IRoutingRule[] = Array.from(workspaceRoutingRules); await Async.forEachAsync( projects, diff --git a/rush-plugins/rush-serve-plugin/src/RushServePlugin.ts b/rush-plugins/rush-serve-plugin/src/RushServePlugin.ts index 9af0e45b9e0..3174161f874 100644 --- a/rush-plugins/rush-serve-plugin/src/RushServePlugin.ts +++ b/rush-plugins/rush-serve-plugin/src/RushServePlugin.ts @@ -1,9 +1,25 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +import * as path from 'path'; + import type { IRushPlugin, RushSession, RushConfiguration, IPhasedCommand } from '@rushstack/rush-sdk'; import { PLUGIN_NAME } from './constants'; +import type { IBaseRoutingRuleJson, IRoutingRule } from './RushProjectServeConfigFile'; + +export interface IGlobalRoutingFolderRuleJson extends IBaseRoutingRuleJson { + workspaceRelativeFile: undefined; + workspaceRelativeFolder: string; +} + +export interface IGlobalRoutingFileRuleJson extends IBaseRoutingRuleJson { + workspaceRelativeFile: string; + workspaceRelativeFolder: undefined; +} + +export type IGlobalRoutingRuleJson = IGlobalRoutingFileRuleJson | IGlobalRoutingFolderRuleJson; + export interface IRushServePluginOptions { /** * The names of phased commands to which the plugin should be applied. @@ -14,6 +30,8 @@ export interface IRushServePluginOptions { * If specified, the plugin will ensure the value is synchronized with the port used for its server. */ portParameterLongName?: string | undefined; + + globalRouting?: IGlobalRoutingRuleJson[]; } /** @@ -24,14 +42,29 @@ export class RushServePlugin implements IRushPlugin { private readonly _phasedCommands: Set; private readonly _portParameterLongName: string | undefined; + private readonly _globalRoutingRules: IGlobalRoutingRuleJson[]; public constructor(options: IRushServePluginOptions) { this._phasedCommands = new Set(options.phasedCommands); this._portParameterLongName = options.portParameterLongName; + this._globalRoutingRules = options.globalRouting ?? []; } public apply(rushSession: RushSession, rushConfiguration: RushConfiguration): void { const handler: (command: IPhasedCommand) => Promise = async (command: IPhasedCommand) => { + const globalRoutingRules: IRoutingRule[] = this._globalRoutingRules.map( + (rule: IGlobalRoutingRuleJson) => { + const { workspaceRelativeFile, workspaceRelativeFolder } = rule; + const diskPath: string = workspaceRelativeFolder ?? workspaceRelativeFile; + return { + type: workspaceRelativeFile ? 'file' : 'folder', + diskPath: path.resolve(rushConfiguration.rushJsonFolder, diskPath), + servePath: rule.servePath, + immutable: !!rule.immutable + }; + } + ); + // Defer importing the implementation until this plugin is actually invoked. await ( await import('./phasedCommandHandler') @@ -39,7 +72,8 @@ export class RushServePlugin implements IRushPlugin { rushSession, rushConfiguration, command, - portParameterLongName: this._portParameterLongName + portParameterLongName: this._portParameterLongName, + globalRoutingRules }); }; diff --git a/rush-plugins/rush-serve-plugin/src/phasedCommandHandler.ts b/rush-plugins/rush-serve-plugin/src/phasedCommandHandler.ts index 7117146b3d4..18d725712a1 100644 --- a/rush-plugins/rush-serve-plugin/src/phasedCommandHandler.ts +++ b/rush-plugins/rush-serve-plugin/src/phasedCommandHandler.ts @@ -27,10 +27,11 @@ export interface IPhasedCommandHandlerOptions { rushConfiguration: RushConfiguration; command: IPhasedCommand; portParameterLongName: string | undefined; + globalRoutingRules: IRoutingRule[]; } export async function phasedCommandHandler(options: IPhasedCommandHandlerOptions): Promise { - const { rushSession, command, portParameterLongName } = options; + const { rushSession, command, portParameterLongName, globalRoutingRules } = options; const logger: ILogger = rushSession.getLogger(PLUGIN_NAME); @@ -99,7 +100,8 @@ export async function phasedCommandHandler(options: IPhasedCommandHandlerOptions const routingRules: Iterable = await serveConfig.loadProjectConfigsAsync( selectedProjects, - logger.terminal + logger.terminal, + globalRoutingRules ); const fileRoutingRules: Map = new Map(); @@ -108,6 +110,7 @@ export async function phasedCommandHandler(options: IPhasedCommandHandlerOptions function setHeaders(response: express.Response, path?: string, stat?: unknown): void { response.set('Access-Control-Allow-Origin', '*'); response.set('Access-Control-Allow-Methods', 'GET, OPTIONS'); + // TODO: Generalize headers and MIME types with an external database or JSON file. if (path && wbnRegex.test(path)) { response.set('X-Content-Type-Options', 'nosniff'); diff --git a/rush-plugins/rush-serve-plugin/src/schemas/rush-serve-plugin-options.schema.json b/rush-plugins/rush-serve-plugin/src/schemas/rush-serve-plugin-options.schema.json index bafcbd0fba6..f8e440b8e10 100644 --- a/rush-plugins/rush-serve-plugin/src/schemas/rush-serve-plugin-options.schema.json +++ b/rush-plugins/rush-serve-plugin/src/schemas/rush-serve-plugin-options.schema.json @@ -25,6 +25,57 @@ "type": "string", "description": "The name of a custom parameter in command-line.json that provides a port number for the server. If the parameter is defined and not passed on the command line, it will be populated with the auto-assigned port number after the server starts.", "pattern": "^--(?:[a-z0-9]+)(?:-[a-z0-9]+)*$" + }, + + "globalRouting": { + "type": "array", + "description": "Routing rules for files that are associated with the entire workspace, rather than a single project (e.g. files output by Rush plugins).", + "items": { + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["workspaceRelativeFolder", "servePath"], + "properties": { + "workspaceRelativeFolder": { + "type": "string", + "description": "The folder from which to read assets, relative to the root of the Rush workspace." + }, + + "servePath": { + "type": "string", + "description": "The server path at which to serve the assets in \"workspaceRelativeFolder\"." + }, + + "immutable": { + "type": "boolean", + "description": "Enables or disables the `immutable` directive in the `Cache-Control` resoponse header. See (https://expressjs.com/en/4x/api.html#express.static)." + } + } + }, + { + "type": "object", + "additionalProperties": false, + "required": ["workspaceRelativeFile", "servePath"], + "properties": { + "workspaceRelativeFile": { + "type": "string", + "description": "The file to serve, relative to the root of the Rush workspace" + }, + + "servePath": { + "type": "string", + "description": "The server path at which to serve \"workspaceRelativeFile\"." + }, + + "immutable": { + "type": "boolean", + "description": "Enables or disables the `immutable` directive in the `Cache-Control` resoponse header. See (https://expressjs.com/en/4x/api.html#express.static)." + } + } + } + ] + } } } } diff --git a/rush.json b/rush.json index f8cab45087e..1e59f060fce 100644 --- a/rush.json +++ b/rush.json @@ -16,7 +16,7 @@ * path segment in the "$schema" field for all your Rush config files. This will ensure * correct error-underlining and tab-completion for editors such as VS Code. */ - "rushVersion": "5.80.0", + "rushVersion": "5.90.0", /** * The next field selects which package manager should be installed and determines its version. @@ -26,7 +26,7 @@ * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation * for details about these alternatives. */ - "pnpmVersion": "7.13.0", + "pnpmVersion": "7.26.1", // "npmVersion": "6.14.15", // "yarnVersion": "1.9.4", @@ -44,6 +44,14 @@ */ "nodeSupportedVersionRange": ">=14.15.0 <15.0.0 || >=16.13.0 <17.0.0", + /** + * If the version check above fails, Rush will display a message showing the current + * node version and the supported version range. You can use this setting to provide + * additional instructions that will display below the warning, if there's a specific + * tool or script you'd like the user to use to get in line with the expected version. + */ + // "nodeSupportedVersionInstructions": "Run 'nvs use' to switch to the expected node version.", + /** * Odd-numbered major versions of Node.js are experimental. Even-numbered releases * spend six months in a stabilization period before the first Long Term Support (LTS) version. @@ -184,7 +192,7 @@ * you might configure your system's trigger to look for a special string such as "[skip-ci]" * in the commit message, and then customize Rush's message to contain that string. */ - // "changeLogUpdateCommitMessage": "Update changelogs [skip ci]" + // "changeLogUpdateCommitMessage": "Update changelogs [skip ci]", /** * The commit message to use when commiting changefiles during 'rush change --commit' @@ -301,11 +309,14 @@ // "hotfixChangeEnabled": false, /** - * This is an optional, but recommended, list of available tags that can be applied - * to projects. If this property is not specified, any tag is allowed. This - * list is useful in preventing typos when specifying tags for projects. + * This is an optional, but recommended, list of allowed tags that can be applied to Rush projects + * using the "tags" setting in this file. This list is useful for preventing mistakes such as misspelling, + * and it also provides a centralized place to document your tags. If "allowedProjectTags" list is + * not specified, then any valid tag is allowed. A tag name must be one or more words + * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits, + * ".", and "@" characters. */ - // "allowedProjectTags": [ "apps", "Web", "tools" ], + // "allowedProjectTags": [ "tools", "frontend-team", "1.0.0-release" ], /** * (Required) This is the inventory of projects to be managed by Rush. @@ -391,11 +402,13 @@ // // "versionPolicyName": "", // // /** - // * An optional set of custom tags that can be used to select this project. For example, - // * adding "my-custom-tag" will allow this project to be selected by the - // * command "rush list --only tag:my-custom-tag" - // */ - // // "tags": ["apps", "web"] + // * An optional set of custom tags that can be used to select this project. For example, + // * adding "my-custom-tag" will allow this project to be selected by the + // * command "rush list --only tag:my-custom-tag". The tag name must be one or more words + // * separated by hyphens or slashes, where a word may contain lowercase ASCII letters, digits, + // * ".", and "@" characters. + // */ + // // "tags": [ "1.0.0-release", "frontend-team" ] // }, // "apps" folder (alphabetical order) @@ -430,6 +443,11 @@ "projectFolder": "apps/lockfile-explorer-web", "reviewCategory": "libraries" }, + { + "packageName": "@rushstack/rush-themed-ui", + "projectFolder": "libraries/rush-themed-ui", + "reviewCategory": "libraries" + }, { "packageName": "@rushstack/rundown", "projectFolder": "apps/rundown", @@ -1026,6 +1044,12 @@ }, // "webpack" folder (alphabetical order) + { + "packageName": "@rushstack/webpack-embedded-dependencies-plugin", + "projectFolder": "webpack/webpack-embedded-dependencies-plugin", + "reviewCategory": "libraries", + "shouldPublish": true + }, { "packageName": "@rushstack/webpack-plugin-utilities", "projectFolder": "webpack/webpack-plugin-utilities", diff --git a/webpack/hashed-folder-copy-plugin/CHANGELOG.json b/webpack/hashed-folder-copy-plugin/CHANGELOG.json index 46db3868c98..0b6d79f3372 100644 --- a/webpack/hashed-folder-copy-plugin/CHANGELOG.json +++ b/webpack/hashed-folder-copy-plugin/CHANGELOG.json @@ -1,6 +1,255 @@ { "name": "@rushstack/hashed-folder-copy-plugin", "entries": [ + { + "version": "0.2.6", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.6", + "date": "Thu, 23 Mar 2023 15:24:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.2.1`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.5", + "date": "Wed, 22 Mar 2023 20:48:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.2.0`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.4", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.57`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.6.1`" + } + ] + } + }, + { + "version": "0.2.3", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.3", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.6.0`" + } + ] + } + }, + { + "version": "0.2.2", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.2", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.56`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.73`" + } + ] + } + }, + { + "version": "0.2.1", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.55`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.72`" + } + ] + } + }, + { + "version": "0.2.0", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.2.0", + "date": "Wed, 01 Feb 2023 16:23:04 GMT", + "comments": { + "minor": [ + { + "comment": "Apply webpack's \"output.hashSalt\" configuration property (if present) to the folder hash." + } + ] + } + }, + { + "version": "0.1.58", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.58", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.54`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.71`" + } + ] + } + }, + { + "version": "0.1.57", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.57", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.53`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.70`" + } + ] + } + }, + { + "version": "0.1.56", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.56", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.52`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.69`" + } + ] + } + }, + { + "version": "0.1.55", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.55", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.51`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.68`" + } + ] + } + }, + { + "version": "0.1.54", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.54", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.50`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.67`" + } + ] + } + }, + { + "version": "0.1.53", + "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.53", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.49`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.66`" + } + ] + } + }, { "version": "0.1.52", "tag": "@rushstack/hashed-folder-copy-plugin_v0.1.52", diff --git a/webpack/hashed-folder-copy-plugin/CHANGELOG.md b/webpack/hashed-folder-copy-plugin/CHANGELOG.md index a5371db42bc..2956a4df5d2 100644 --- a/webpack/hashed-folder-copy-plugin/CHANGELOG.md +++ b/webpack/hashed-folder-copy-plugin/CHANGELOG.md @@ -1,6 +1,73 @@ # Change Log - @rushstack/hashed-folder-copy-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Thu, 23 Mar 2023 15:24:08 GMT and should not be manually modified. + +## 0.2.6 +Thu, 23 Mar 2023 15:24:08 GMT + +_Version update only_ + +## 0.2.5 +Wed, 22 Mar 2023 20:48:30 GMT + +_Version update only_ + +## 0.2.4 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.2.3 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 0.2.2 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 0.2.1 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.2.0 +Wed, 01 Feb 2023 16:23:04 GMT + +### Minor changes + +- Apply webpack's "output.hashSalt" configuration property (if present) to the folder hash. + +## 0.1.58 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.1.57 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 0.1.56 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.1.55 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.1.54 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.1.53 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.52 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/hashed-folder-copy-plugin/config/api-extractor.json b/webpack/hashed-folder-copy-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/hashed-folder-copy-plugin/config/api-extractor.json +++ b/webpack/hashed-folder-copy-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/hashed-folder-copy-plugin/package.json b/webpack/hashed-folder-copy-plugin/package.json index e1b067e69a1..262c0182b1a 100644 --- a/webpack/hashed-folder-copy-plugin/package.json +++ b/webpack/hashed-folder-copy-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/hashed-folder-copy-plugin", - "version": "0.1.52", + "version": "0.2.6", "description": "Webpack plugin for copying a folder to the output directory with a hash in the folder name.", "typings": "dist/hashed-folder-copy-plugin.d.ts", "main": "lib/index.js", @@ -34,7 +34,8 @@ "@rushstack/heft": "workspace:*", "@types/enhanced-resolve": "3.0.7", "@types/glob": "7.1.1", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/webpack": "4.41.32", "webpack": "~4.44.2", "@rushstack/heft-webpack5-plugin": "workspace:*" diff --git a/webpack/hashed-folder-copy-plugin/src/HashedFolderCopyPlugin.ts b/webpack/hashed-folder-copy-plugin/src/HashedFolderCopyPlugin.ts index ea102a6106e..76420a6922d 100644 --- a/webpack/hashed-folder-copy-plugin/src/HashedFolderCopyPlugin.ts +++ b/webpack/hashed-folder-copy-plugin/src/HashedFolderCopyPlugin.ts @@ -286,6 +286,12 @@ export class HashedFolderCopyPlugin implements webpack.Plugin { } const hash: crypto.Hash = crypto.createHash('md5'); + // If the webpack config specified a salt, apply it here + const hashSalt: string | undefined = compilation.outputOptions?.hashSalt; + if (hashSalt) { + hash.update(hashSalt); + } + // Sort the paths to maximize hash stability for (const assetPath of Array.from(assetsToAdd.keys()).sort()) { hash.update(assetPath); diff --git a/webpack/loader-load-themed-styles/CHANGELOG.json b/webpack/loader-load-themed-styles/CHANGELOG.json index da85e9ed9af..07ef214658b 100644 --- a/webpack/loader-load-themed-styles/CHANGELOG.json +++ b/webpack/loader-load-themed-styles/CHANGELOG.json @@ -1,6 +1,240 @@ { "name": "@microsoft/loader-load-themed-styles", "entries": [ + { + "version": "2.0.29", + "tag": "@microsoft/loader-load-themed-styles_v2.0.29", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.31`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.30` to `^2.0.31`" + } + ] + } + }, + { + "version": "2.0.28", + "tag": "@microsoft/loader-load-themed-styles_v2.0.28", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.30`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.29` to `^2.0.30`" + } + ] + } + }, + { + "version": "2.0.27", + "tag": "@microsoft/loader-load-themed-styles_v2.0.27", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.29`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.28` to `^2.0.29`" + } + ] + } + }, + { + "version": "2.0.26", + "tag": "@microsoft/loader-load-themed-styles_v2.0.26", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.28`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.27` to `^2.0.28`" + } + ] + } + }, + { + "version": "2.0.25", + "tag": "@microsoft/loader-load-themed-styles_v2.0.25", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.27`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.26` to `^2.0.27`" + } + ] + } + }, + { + "version": "2.0.24", + "tag": "@microsoft/loader-load-themed-styles_v2.0.24", + "date": "Tue, 31 Jan 2023 01:23:23 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.26`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.25` to `^2.0.26`" + } + ] + } + }, + { + "version": "2.0.23", + "tag": "@microsoft/loader-load-themed-styles_v2.0.23", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.25`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.24` to `^2.0.25`" + } + ] + } + }, + { + "version": "2.0.22", + "tag": "@microsoft/loader-load-themed-styles_v2.0.22", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.24`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.23` to `^2.0.24`" + } + ] + } + }, + { + "version": "2.0.21", + "tag": "@microsoft/loader-load-themed-styles_v2.0.21", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.23`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.22` to `^2.0.23`" + } + ] + } + }, + { + "version": "2.0.20", + "tag": "@microsoft/loader-load-themed-styles_v2.0.20", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.22`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.21` to `^2.0.22`" + } + ] + } + }, + { + "version": "2.0.19", + "tag": "@microsoft/loader-load-themed-styles_v2.0.19", + "date": "Sun, 22 Jan 2023 20:37:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.21`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.20` to `^2.0.21`" + } + ] + } + }, + { + "version": "2.0.18", + "tag": "@microsoft/loader-load-themed-styles_v2.0.18", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.20`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.19` to `^2.0.20`" + } + ] + } + }, { "version": "2.0.17", "tag": "@microsoft/loader-load-themed-styles_v2.0.17", diff --git a/webpack/loader-load-themed-styles/CHANGELOG.md b/webpack/loader-load-themed-styles/CHANGELOG.md index eef9d2d164d..1c06ef25de1 100644 --- a/webpack/loader-load-themed-styles/CHANGELOG.md +++ b/webpack/loader-load-themed-styles/CHANGELOG.md @@ -1,6 +1,66 @@ # Change Log - @microsoft/loader-load-themed-styles -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 2.0.29 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 2.0.28 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 2.0.27 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 2.0.26 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 2.0.25 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 2.0.24 +Tue, 31 Jan 2023 01:23:23 GMT + +_Version update only_ + +## 2.0.23 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 2.0.22 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 2.0.21 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 2.0.20 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 2.0.19 +Sun, 22 Jan 2023 20:37:08 GMT + +_Version update only_ + +## 2.0.18 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 2.0.17 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/loader-load-themed-styles/package.json b/webpack/loader-load-themed-styles/package.json index 1a2a51526ac..5129fa343bc 100644 --- a/webpack/loader-load-themed-styles/package.json +++ b/webpack/loader-load-themed-styles/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/loader-load-themed-styles", - "version": "2.0.17", + "version": "2.0.29", "description": "This simple loader wraps the loading of CSS in script equivalent to `require('load-themed-styles').loadStyles( /* css text */ )`. It is designed to be a replacement for style-loader.", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -22,7 +22,7 @@ }, "peerDependencies": { "@types/webpack": "^4", - "@microsoft/load-themed-styles": "^2.0.19" + "@microsoft/load-themed-styles": "^2.0.31" }, "dependencies": { "loader-utils": "1.4.2" @@ -33,7 +33,7 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", "@types/loader-utils": "1.1.3", - "@types/node": "12.20.24", + "@types/node": "14.18.36", "@types/webpack": "4.41.32" } } diff --git a/webpack/loader-raw-script/CHANGELOG.json b/webpack/loader-raw-script/CHANGELOG.json index 45bae0b301f..653263b11b1 100644 --- a/webpack/loader-raw-script/CHANGELOG.json +++ b/webpack/loader-raw-script/CHANGELOG.json @@ -1,6 +1,141 @@ { "name": "@rushstack/loader-raw-script", "entries": [ + { + "version": "1.3.282", + "tag": "@rushstack/loader-raw-script_v1.3.282", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "1.3.281", + "tag": "@rushstack/loader-raw-script_v1.3.281", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "1.3.280", + "tag": "@rushstack/loader-raw-script_v1.3.280", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "1.3.279", + "tag": "@rushstack/loader-raw-script_v1.3.279", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "1.3.278", + "tag": "@rushstack/loader-raw-script_v1.3.278", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "1.3.277", + "tag": "@rushstack/loader-raw-script_v1.3.277", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "1.3.276", + "tag": "@rushstack/loader-raw-script_v1.3.276", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "1.3.275", + "tag": "@rushstack/loader-raw-script_v1.3.275", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "1.3.274", + "tag": "@rushstack/loader-raw-script_v1.3.274", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "1.3.273", "tag": "@rushstack/loader-raw-script_v1.3.273", diff --git a/webpack/loader-raw-script/CHANGELOG.md b/webpack/loader-raw-script/CHANGELOG.md index 4653ce6e383..e3128d0bc00 100644 --- a/webpack/loader-raw-script/CHANGELOG.md +++ b/webpack/loader-raw-script/CHANGELOG.md @@ -1,6 +1,51 @@ # Change Log - @rushstack/loader-raw-script -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 1.3.282 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 1.3.281 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 1.3.280 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 1.3.279 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 1.3.278 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 1.3.277 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 1.3.276 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 1.3.275 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 1.3.274 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 1.3.273 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/loader-raw-script/package.json b/webpack/loader-raw-script/package.json index 5366d98f151..3aad43598c8 100644 --- a/webpack/loader-raw-script/package.json +++ b/webpack/loader-raw-script/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/loader-raw-script", - "version": "1.3.273", + "version": "1.3.282", "description": "", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -22,6 +22,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36" } } diff --git a/webpack/preserve-dynamic-require-plugin/CHANGELOG.json b/webpack/preserve-dynamic-require-plugin/CHANGELOG.json index d14cafbc68b..afaa9e04594 100644 --- a/webpack/preserve-dynamic-require-plugin/CHANGELOG.json +++ b/webpack/preserve-dynamic-require-plugin/CHANGELOG.json @@ -1,6 +1,151 @@ { "name": "@rushstack/webpack-preserve-dynamic-require-plugin", "entries": [ + { + "version": "0.10.4", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.10.4", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.10.3", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.10.3", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.10.2", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.10.2", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.10.1", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.10.1", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.10.0", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.10.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.9.52", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.9.52", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.9.51", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.9.51", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.9.50", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.9.50", + "date": "Wed, 25 Jan 2023 07:26:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.9.49", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.9.49", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.9.48", "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.9.48", diff --git a/webpack/preserve-dynamic-require-plugin/CHANGELOG.md b/webpack/preserve-dynamic-require-plugin/CHANGELOG.md index e82e1d77169..55c82080f06 100644 --- a/webpack/preserve-dynamic-require-plugin/CHANGELOG.md +++ b/webpack/preserve-dynamic-require-plugin/CHANGELOG.md @@ -1,6 +1,55 @@ # Change Log - @rushstack/webpack-preserve-dynamic-require-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:23 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.10.4 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.10.3 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.10.2 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.10.1 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.10.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.9.52 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.9.51 +Thu, 26 Jan 2023 02:55:10 GMT + +### Patches + +- Upgrade to webpack 5.75.0 + +## 0.9.50 +Wed, 25 Jan 2023 07:26:56 GMT + +_Version update only_ + +## 0.9.49 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.9.48 Tue, 20 Dec 2022 01:18:23 GMT diff --git a/webpack/preserve-dynamic-require-plugin/config/api-extractor.json b/webpack/preserve-dynamic-require-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/preserve-dynamic-require-plugin/config/api-extractor.json +++ b/webpack/preserve-dynamic-require-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/preserve-dynamic-require-plugin/package.json b/webpack/preserve-dynamic-require-plugin/package.json index b25db74fe69..7b09d2a85ef 100644 --- a/webpack/preserve-dynamic-require-plugin/package.json +++ b/webpack/preserve-dynamic-require-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack-preserve-dynamic-require-plugin", - "version": "0.9.48", + "version": "0.10.4", "description": "This plugin tells webpack to leave dynamic calls to \"require\" as-is instead of trying to bundle them.", "main": "lib/index.js", "typings": "dist/webpack-preserve-dynamic-require-plugin.d.ts", @@ -18,13 +18,13 @@ "_phase:build": "heft run --only build -- --clean", "_phase:test": "heft run --only test -- --clean" }, - "dependencies": {}, "devDependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", - "webpack": "~5.68.0" + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", + "webpack": "~5.75.0" }, "sideEffects": false } diff --git a/webpack/set-webpack-public-path-plugin/CHANGELOG.json b/webpack/set-webpack-public-path-plugin/CHANGELOG.json index e6bf57cfb7f..15f66834c00 100644 --- a/webpack/set-webpack-public-path-plugin/CHANGELOG.json +++ b/webpack/set-webpack-public-path-plugin/CHANGELOG.json @@ -1,6 +1,231 @@ { "name": "@rushstack/set-webpack-public-path-plugin", "entries": [ + { + "version": "3.3.95", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.95", + "date": "Thu, 23 Mar 2023 15:24:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.2.1`" + } + ] + } + }, + { + "version": "3.3.94", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.94", + "date": "Wed, 22 Mar 2023 20:48:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.2.0`" + } + ] + } + }, + { + "version": "3.3.93", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.93", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.57`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.6.1`" + } + ] + } + }, + { + "version": "3.3.92", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.92", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.6.0`" + } + ] + } + }, + { + "version": "3.3.91", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.91", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.56`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.73`" + } + ] + } + }, + { + "version": "3.3.90", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.90", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.55`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.72`" + } + ] + } + }, + { + "version": "3.3.89", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.89", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.54`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.71`" + } + ] + } + }, + { + "version": "3.3.88", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.88", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.53`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.70`" + } + ] + } + }, + { + "version": "3.3.87", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.87", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.52`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.69`" + } + ] + } + }, + { + "version": "3.3.86", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.86", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.51`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.68`" + } + ] + } + }, + { + "version": "3.3.85", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.85", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.50`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.67`" + } + ] + } + }, + { + "version": "3.3.84", + "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.84", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.1.49`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.5.66`" + } + ] + } + }, { "version": "3.3.83", "tag": "@rushstack/set-webpack-public-path-plugin_v3.3.83", diff --git a/webpack/set-webpack-public-path-plugin/CHANGELOG.md b/webpack/set-webpack-public-path-plugin/CHANGELOG.md index 78cc696ace8..ff6fe30915c 100644 --- a/webpack/set-webpack-public-path-plugin/CHANGELOG.md +++ b/webpack/set-webpack-public-path-plugin/CHANGELOG.md @@ -1,6 +1,66 @@ # Change Log - @rushstack/set-webpack-public-path-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Thu, 23 Mar 2023 15:24:08 GMT and should not be manually modified. + +## 3.3.95 +Thu, 23 Mar 2023 15:24:08 GMT + +_Version update only_ + +## 3.3.94 +Wed, 22 Mar 2023 20:48:30 GMT + +_Version update only_ + +## 3.3.93 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 3.3.92 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 3.3.91 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 3.3.90 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 3.3.89 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 3.3.88 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 3.3.87 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 3.3.86 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 3.3.85 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 3.3.84 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 3.3.83 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/set-webpack-public-path-plugin/package.json b/webpack/set-webpack-public-path-plugin/package.json index 6d75d8ef9f0..81c03879178 100644 --- a/webpack/set-webpack-public-path-plugin/package.json +++ b/webpack/set-webpack-public-path-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/set-webpack-public-path-plugin", - "version": "3.3.83", + "version": "3.3.95", "description": "This plugin sets the webpack public path at runtime.", "main": "lib/index.js", "typings": "dist/set-webpack-public-path-plugin.d.ts", @@ -34,7 +34,8 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft-webpack5-plugin": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/tapable": "1.0.6", "@types/webpack": "4.41.32" } diff --git a/webpack/webpack-deep-imports-plugin/config/api-extractor.json b/webpack/webpack-deep-imports-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/webpack-deep-imports-plugin/config/api-extractor.json +++ b/webpack/webpack-deep-imports-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/webpack-deep-imports-plugin/package.json b/webpack/webpack-deep-imports-plugin/package.json index 0c1c4583558..4c8928b6511 100644 --- a/webpack/webpack-deep-imports-plugin/package.json +++ b/webpack/webpack-deep-imports-plugin/package.json @@ -26,8 +26,8 @@ "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", - "webpack": "~5.68.0" + "@types/node": "14.18.36", + "webpack": "~5.75.0" }, "sideEffects": false, "dependencies": { diff --git a/webpack/webpack-embedded-dependencies-plugin/.eslintrc.js b/webpack/webpack-embedded-dependencies-plugin/.eslintrc.js new file mode 100644 index 00000000000..4c934799d67 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/.eslintrc.js @@ -0,0 +1,10 @@ +// This is a workaround for https://github.com/eslint/eslint/issues/3458 +require('@rushstack/eslint-config/patch/modern-module-resolution'); + +module.exports = { + extends: [ + '@rushstack/eslint-config/profile/node-trusted-tool', + '@rushstack/eslint-config/mixins/friendly-locals' + ], + parserOptions: { tsconfigRootDir: __dirname } +}; diff --git a/webpack/webpack-embedded-dependencies-plugin/.npmignore b/webpack/webpack-embedded-dependencies-plugin/.npmignore new file mode 100644 index 00000000000..302dbc5b019 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/.npmignore @@ -0,0 +1,30 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + +# Ignore all files by default, to avoid accidentally publishing unintended files. +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README (and its variants) +# CHANGELOG (and its variants) +# LICENSE / LICENCE + +#-------------------------------------------- +# DO NOT MODIFY THE TEMPLATE ABOVE THIS LINE +#-------------------------------------------- + +# (Add your project-specific overrides here) \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json new file mode 100644 index 00000000000..65ca65c8070 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json @@ -0,0 +1,34 @@ +{ + "name": "@rushstack/webpack-embedded-dependencies-plugin", + "entries": [ + { + "version": "0.1.1", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.1.1", + "date": "Thu, 23 Mar 2023 15:24:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.2.1`" + } + ] + } + }, + { + "version": "0.1.0", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.1.0", + "date": "Wed, 22 Mar 2023 20:48:30 GMT", + "comments": { + "minor": [ + { + "comment": "Introduce webpack-embedded-dependencies-plugin" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.2.0`" + } + ] + } + } + ] +} diff --git a/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md new file mode 100644 index 00000000000..3608b30a615 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md @@ -0,0 +1,16 @@ +# Change Log - @rushstack/webpack-embedded-dependencies-plugin + +This log was last generated on Thu, 23 Mar 2023 15:24:08 GMT and should not be manually modified. + +## 0.1.1 +Thu, 23 Mar 2023 15:24:08 GMT + +_Version update only_ + +## 0.1.0 +Wed, 22 Mar 2023 20:48:30 GMT + +### Minor changes + +- Introduce webpack-embedded-dependencies-plugin + diff --git a/webpack/webpack-embedded-dependencies-plugin/README.md b/webpack/webpack-embedded-dependencies-plugin/README.md new file mode 100644 index 00000000000..f8d063611d6 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/README.md @@ -0,0 +1,127 @@ +# webpack-embedded-dependencies-plugin + +## Installation + +`npm install @rushstack/webpack-embedded-dependencies-plugin --save` + +## Overview + +A webpack plugin for generating a list of embedded dependencies. Embedded dependencies are third-party packages which are being +bundled into your released code and are oftentimes subject to license, security, and other legal requirements. This plugin +aims to make it easier to generate a list of embedded dependencies and their associated metadata, so they can be analyzed by additional tools. + +The plugin also includes the ability to generate a secondary asset which contains the license text for each embedded dependency into a single file called +THIRD-PARTY-NOTICES.html. This is a common legal requirement when deploying services or products containing open-source code. + +## Plugin + +```typescript +// webpack.config.js +import EmbeddedDependenciesWebpackPlugin from '@rushstack/webpack-embedded-dependencies-plugin'; + +export default () => { + /*...*/ + plugins: [ + new EmbeddedDependenciesWebpackPlugin( /* options */ ) + ] +} +``` + +## Options + +### `outputFileName`: `string` + +Name of the file to be generated. Defaults to embedded-dependencies.json + +```typescript +new EmbeddedDependenciesWebpackPlugin({ + outputFileName: 'my-custom-file-name.json' +}) +``` + +### `generateLicenseFile`: `boolean` + +Whether to generate a license file. Defaults to false and will only generate the embedded-dependencies.json file + +```typescript +new EmbeddedDependenciesWebpackPlugin({ + generateLicenseFile: true +}) +``` + +### `generateLicenseFileFunction`: `LicenseFileGeneratorFunction` + +Function that generates the license file. Defaults to the plugin's internal default generator function but allows you to override it. + +```typescript +new EmbeddedDependenciesWebpackPlugin({ + generateLicenseFile: true, + generateLicenseFileFunction: (packages: IPackageData[]): string => { + return packages + .map((pkg) => { + return `

${pkg.name}

${pkg.license}

`; + }).join(''); + } +}) +``` + +### `generatedLicenseFilename`: `LicenseFileName` + +```typescript +new EmbeddedDependenciesWebpackPlugin({ + generateLicenseFile: true, + generatedLicenseFilename: 'custom-license-file-name.html' +}) +``` + +Name of the generated license file. Defaults to THIRD-PARTY-NOTICES.html but can be customized to any name you want. + +### `packageFilterPredicate`: `(packageJson: IPackageData, filePath: string) => boolean` + +Function that allows you to filter out packages that you don't want to include in any generated files. + +```typescript +new EmbeddedDependenciesWebpackPlugin({ + packageFilterPredicate: (packageJson: IPackageData, filePath: string): boolean => { + return packageJson.name !== 'my-package-to-exclude'; + } +}) +``` + +## Types + +### `LicenseFileGeneratorFunction` + +`export declare type LicenseFileGeneratorFunction = (packages: IPackageData[]) => string;` + +Function type that generates the license file. + +```ts +const licenseFileGenerator: LicenseFileGeneratorFunction = (packages: IPackageData[]): string => { + return packages + .map((pkg) => { + return `

${pkg.name}

${pkg.license}

`; + }).join(''); +} +``` + +### `LicenseFileName` + +``export declare type LicenseFileName = `${string}.${'html' | 'md' | 'txt'}`;`` + +Loose string type that represents the name of the generated license file. The string must have at least one character and must end with one of the following file extensions: html, md, or txt or else you'll receive a TypeScript error. + +```ts +const licenseFileName: LicenseFileName = 'custom-license-file-name.html'; +const licenseMarkdownFileName: LicenseFileName = 'custom-license-file-name.md'; +const licenseTextFileName: LicenseFileName = 'custom-license-file-name.txt'; +``` + + +## Links + +- [CHANGELOG.md]( + https://github.com/microsoft/rushstack/blob/main/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md) - Find + out what's new in the latest version + +`@rushstack/webpack-embedded-dependencies-plugin` is part of the [Rush Stack](https://rushstack.io/) family of projects. \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json b/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json new file mode 100644 index 00000000000..31010bc6261 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "../../../common/reviews/api" + }, + + "docModel": { + "enabled": true + }, + + "dtsRollup": { + "enabled": true, + "betaTrimmedFilePath": "/dist/.d.ts" + } +} diff --git a/webpack/webpack-embedded-dependencies-plugin/config/rig.json b/webpack/webpack-embedded-dependencies-plugin/config/rig.json new file mode 100644 index 00000000000..6ac88a96368 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/config/rig.json @@ -0,0 +1,7 @@ +{ + // The "rig.json" file directs tools to look for their config files in an external package. + // Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + + "rigPackageName": "@rushstack/heft-node-rig" +} diff --git a/webpack/webpack-embedded-dependencies-plugin/package.json b/webpack/webpack-embedded-dependencies-plugin/package.json new file mode 100644 index 00000000000..255a5f25f26 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/package.json @@ -0,0 +1,40 @@ +{ + "name": "@rushstack/webpack-embedded-dependencies-plugin", + "version": "0.1.1", + "description": "This plugin analyzes bundled dependencies from Node Modules for use with Component Governance and License Scanning.", + "main": "lib/index.js", + "typings": "dist/webpack-embedded-dependencies-plugin.d.ts", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/microsoft/rushstack.git", + "directory": "webpack/webpack-embedded-dependencies-plugin" + }, + "scripts": { + "build": "heft build --clean", + "test": "heft test --no-build", + "_phase:build": "heft build --clean", + "_phase:test": "heft test --no-build" + }, + "dependencies": { + "@rushstack/node-core-library": "workspace:*" + }, + "peerDependencies": { + "webpack": "^5.35.1" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + }, + "devDependencies": { + "@rushstack/webpack-plugin-utilities": "workspace:*", + "@rushstack/eslint-config": "workspace:*", + "@rushstack/heft": "workspace:*", + "@rushstack/heft-node-rig": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", + "webpack": "~5.75.0", + "memfs": "3.4.3" + } +} diff --git a/webpack/webpack-embedded-dependencies-plugin/src/EmbeddedDependenciesWebpackPlugin.ts b/webpack/webpack-embedded-dependencies-plugin/src/EmbeddedDependenciesWebpackPlugin.ts new file mode 100644 index 00000000000..3cf9db901b8 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/EmbeddedDependenciesWebpackPlugin.ts @@ -0,0 +1,386 @@ +import path from 'path'; +import { Async, Sort, LegacyAdapters, FileSystem } from '@rushstack/node-core-library'; + +import type { Compiler, Compilation, WebpackPluginInstance, WebpackError } from 'webpack'; +import type { IPackageJson } from '@rushstack/node-core-library'; + +import { LICENSE_FILES_REGEXP, COPYRIGHT_REGEX } from './regexpUtils'; + +const PLUGIN_NAME: 'EmbeddedDependenciesWebpackPlugin' = 'EmbeddedDependenciesWebpackPlugin'; +const PLUGIN_ERROR_PREFIX: string = '[embedded-dependencies-webpack-plugin]'; +const DEFAULT_GENERATED_LICENSE_FILE_NAME: 'THIRD-PARTY-NOTICES.html' = 'THIRD-PARTY-NOTICES.html'; +const DEFAULT_EMBEDDED_DEPENDENCIES_FILE_NAME: 'embedded-dependencies.json' = 'embedded-dependencies.json'; +const DEFAULT_PACKAGE_FILTER_FUNCTION: (packageJson: IPackageData, filePath: string) => boolean = () => true; + +interface IEmbeddedDependenciesFile { + name?: string; + version?: string; + embeddedDependencies: IPackageData[]; +} + +interface IResourceResolveData { + descriptionFileData?: IPackageData; + descriptionFileRoot?: string; + relativePath?: string; +} + +interface IWebpackModuleCreateData { + resourceResolveData?: IResourceResolveData; +} + +/** + * @beta + * Data type for a package.json file. This is a superset of the full package.json file and includes additional fields + * that are generated by the plugin, including licenseSource, licenses, copyright, and author. + */ +export interface IPackageData extends IPackageJson { + /** + * A small string subset which is used for copyright extraction from a licenseSource file. + */ + copyright: string | undefined; + /** + * The author of the package. This is a superset of the full package.json author field. + * Grabs either the author field or author.name field from package.json. + */ + author?: string | { name?: string }; + /** + * Additional license metadata if present. May contain information about a project which has multiple licenses. + */ + licenses?: { type: string; url: string }[]; + + /** + * The source of the license file itself used for generating THIRD-PARTY-NOTICES.html or custom license files. + */ + licenseSource?: string; +} + +/** + * @beta + * Plugin options for EmbeddedDependenciesWebpackPlugin + * + * @param outputFileName - Name of the file to be generated. Defaults to embedded-dependencies.json + * @param generateLicenseFile - Whether to generate a license file. Defaults to false and will only generate the embedded-dependencies.json file + * @param generateLicenseFileFunction - Function that generates the license file. Defaults to the plugin's internal default generator function but allows you to override it + * @param generatedLicenseFilename - Name of the generated license file. Defaults to THIRD-PARTY-NOTICES.html + * + * @example + * ```ts + * // webpack.config.js + * plugins: [ + * new EmbeddedDependenciesWebpackPlugin({ + * outputFileName: 'custom-file-name.json', + * generateLicenseFile: true, + * generateLicenseFileFunction: (packages: IPackageData[]) => { + * return packages + * .map((pkg) => { + * return `

${pkg.name}

${pkg.license}

`; + * }).join(''); + * }, + * generatedLicenseFilename: 'custom-license-file-name.html' + * }) + * ] + * ``` + */ +export interface IEmbeddedDependenciesWebpackPluginOptions { + /** + * Name of the file to be generated. Defaults to embedded-dependencies.json + */ + outputFileName?: string; + /** + * Whether to generate a license file. Defaults to false and will only generate the embedded-dependencies.json file + */ + generateLicenseFile?: boolean; + /** + * Function that generates the license file. Defaults to the plugin's internal default generator function but allows you to override it + */ + generateLicenseFileFunction?: LicenseFileGeneratorFunction; + /** + * Name of the generated license file. Defaults to THIRD-PARTY-NOTICES.html + */ + generatedLicenseFilename?: LicenseFileName; + + /** + * Predicate function that determines whether a package should be included in the embedded + * dependencies file or the generated license file. + */ + packageFilterPredicate?: (packageJson: IPackageData, filePath: string) => boolean; +} + +/** + * @beta + * Function type that generates the license file. + * + * @example + * ```ts + * const licenseFileGenerator: LicenseFileGeneratorFunction = (packages: IPackageData[]): string => { + * return packages + * .map((pkg) => { + * return `

${pkg.name}

${pkg.license}

`; + * }).join(''); + * } + * ``` + */ +export type LicenseFileGeneratorFunction = (packages: IPackageData[]) => string; + +/** + * @beta + * Loose string type that represents the name of the generated license file. + * + * @example + * ```ts + * const licenseFileName: LicenseFileName = 'custom-license-file-name.html'; + * const licenseMarkdownFileName: LicenseFileName = 'custom-license-file-name.md'; + * const licenseTextFileName: LicenseFileName = 'custom-license-file-name.txt'; + * ``` + */ +export type LicenseFileName = `${string}.${'html' | 'md' | 'txt'}`; + +type PackageNameAndVersion = `${string}@${string}`; +type ThirdPartyPackageMap = Map< + PackageNameAndVersion, + { packageFolderPath: string; packageJsonData: IPackageData } +>; +type DefaultLicenseTemplate = `
${string}

${string}`; + +/** + * @beta + * Webpack plugin that generates a file with the list of embedded dependencies + * and their licenses. + */ +export default class EmbeddedDependenciesWebpackPlugin implements WebpackPluginInstance { + private readonly _outputFileName: string; + private readonly _generateLicenseFile: boolean; + private readonly _generateLicenseFileFunction: LicenseFileGeneratorFunction; + private readonly _generatedLicenseFilename: LicenseFileName; + private readonly _packageFilterFunction: (packageJson: IPackageData, filePath: string) => boolean; + + public constructor(options?: IEmbeddedDependenciesWebpackPluginOptions) { + this._outputFileName = options?.outputFileName || DEFAULT_EMBEDDED_DEPENDENCIES_FILE_NAME; + this._generateLicenseFile = options?.generateLicenseFile || false; + this._generateLicenseFileFunction = + options?.generateLicenseFileFunction || this._defaultLicenseFileGenerator; + this._generatedLicenseFilename = options?.generatedLicenseFilename || DEFAULT_GENERATED_LICENSE_FILE_NAME; + this._packageFilterFunction = options?.packageFilterPredicate || DEFAULT_PACKAGE_FILTER_FUNCTION; + } + + /** + * @beta + * Webpack plugin apply method. This method is called by the webpack compiler to apply the plugin, however it not usually + * needed to be invoked manually by the developer in a webpack configuration. However, if you are calling this plugin (applying it from another plugin) + * you can call `plugin.apply(compiler)` to apply the plugin and invoke it. + * @param compiler - The webpack compiler instance. + */ + public apply(compiler: Compiler): void { + const { sources, Compilation } = compiler.webpack; + // Tap into compilation so we can tap into compilation.hooks.processAssets + compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => { + const thirdPartyPackages: ThirdPartyPackageMap = new Map(); + + normalModuleFactory.hooks.module.tap( + PLUGIN_NAME, + (module, moduleCreateData: IWebpackModuleCreateData, resolveData) => { + const { resourceResolveData } = moduleCreateData; + const pkg: IPackageData | undefined = resourceResolveData?.descriptionFileData; + const filePath: string | undefined = resourceResolveData?.descriptionFileRoot; + + if ( + pkg && + filePath && + this._packageFilterFunction(pkg, filePath) && + filePath?.includes('node_modules') + ) { + const key: PackageNameAndVersion = makePackageMapKeyForPackage(pkg); + thirdPartyPackages.set(key, { packageFolderPath: filePath, packageJsonData: pkg }); + } + + return module; + } + ); + + compilation.hooks.processAssets.tapPromise( + { name: PLUGIN_NAME, stage: Compilation.PROCESS_ASSETS_STAGE_REPORT }, + async (assets) => { + const packages: IPackageData[] = []; + + try { + await Async.forEachAsync( + thirdPartyPackages, + async ([, { packageFolderPath: dir, packageJsonData: data }]) => { + const { name, version } = data; + let licenseSource: string | undefined; + const license: string | undefined = parseLicense(data); + const licensePath: string | undefined = await this._getLicenseFilePathAsync(dir, compiler); + if (licensePath) { + licenseSource = await FileSystem.readFileAsync(licensePath); + + const copyright: string | undefined = + this._parseCopyright(licenseSource) || parsePackageAuthor(data); + + packages.push({ + name, + version, + license, + licenseSource, + copyright + }); + } else { + // If there is no license file path, we still should populate the other required fields + const copyright: string | undefined = parsePackageAuthor(data); + + packages.push({ + name, + version, + license, + copyright + }); + } + } + ); + } catch (error) { + this._emitWebpackError(compilation, 'Failed to process embedded dependencies', error); + } finally { + Sort.sortBy(packages, (pkg) => pkg.name); + } + + const dataToStringify: IEmbeddedDependenciesFile = { + embeddedDependencies: packages + }; + + compilation.emitAsset(this._outputFileName, new sources.RawSource(JSON.stringify(dataToStringify))); + + if (this._generateLicenseFile) { + // We should try catch here because generator function can be output from user config + try { + compilation.emitAsset( + this._generatedLicenseFilename, + new sources.RawSource(this._generateLicenseFileFunction(packages)) + ); + } catch (error: unknown) { + this._emitWebpackError(compilation, 'Failed to generate license file', error); + } + } + + return; + } + ); + }); + } + + /** + * Default error handler for try/catch blocks in the plugin + * try/catches emit errors of type `unknown` and we need to handle them based on what + * type the error is. This function provides a convenient way to handle errors and then + * propagate them to webpack as WebpackError objects on `compilation.errors` array. + * + * @remarks + * _If we need to push errors to `compilation.warnings` array, we should just create a companion function + * that does the same thing but pushes to `compilation.warnings` array instead._ + * + * @example + * ```typescript + * try { + * // do some operation + * FileSystem.readFile('some-file'); + * } catch (error: unknown) { + * this._emitWebpackError(compilation, 'Failed to do some operation', error); + * } + * ``` + */ + private _emitWebpackError(compilation: Compilation, errorMessage: string, error: unknown): void { + let emittedError: WebpackError; + const { WebpackError } = compilation.compiler.webpack; + // If the error is a string, we can just emit it as is with message prefix and error message + if (typeof error === 'string') { + emittedError = new WebpackError(`${PLUGIN_ERROR_PREFIX}: ${errorMessage}: ${error}`); + // If error is an instance of Error, we can emit it with message prefix, error message and stack trace + } else if (error instanceof Error) { + emittedError = new WebpackError( + `${PLUGIN_ERROR_PREFIX}: ${errorMessage}: ${error.message}\n${error.stack || ''}` + ); + // If error is not a string or an instance of Error, we can emit it with message prefix and error message and JSON.stringify it + } else { + emittedError = new WebpackError( + `${PLUGIN_ERROR_PREFIX}: ${errorMessage}: ${JSON.stringify(error || '')}` + ); + } + + compilation.errors.push(emittedError); + } + + /** + * Searches a third party package directory for a license file. + */ + private async _getLicenseFilePathAsync( + modulePath: string, + compiler: Compiler + ): Promise { + type InputFileSystemReadDirResults = Parameters< + Parameters[1] + >[1]; + + // TODO: Real fs.readdir can take an arguement ({ withFileTypes: true }) which will filter out directories for better performance + // and return a list of Dirent objects. Currently the webpack types are hand generated for fs.readdir so + // we can't use this feature yet, or we would have to cast the types of inputFileSystem.readdir. + // https://github.com/webpack/webpack/issues/16780 tracks this issue. + const files: InputFileSystemReadDirResults = await LegacyAdapters.convertCallbackToPromise( + compiler.inputFileSystem.readdir, + modulePath + ); + + return files + ?.map((file) => file.toString()) + .filter((file) => LICENSE_FILES_REGEXP.test(file)) + .map((file) => path.join(modulePath, file))[0]; // Grabbing the first license file if multiple are found + } + + /** + * Given a module path, try to parse the module's copyright attribution. + */ + private _parseCopyright(licenseSource: string): string | undefined { + const match: RegExpMatchArray | null = licenseSource.match(COPYRIGHT_REGEX); + + if (match) { + return match[0]; + } + + return undefined; + } + + private _defaultLicenseFileGenerator(packages: IPackageData[]): string { + const licenseContent = (pkg: IPackageData): string => + pkg.licenseSource || pkg.copyright || 'License or Copyright not found'; + + const licenseTemplateForPackage = (pkg: IPackageData): DefaultLicenseTemplate => { + return `
${pkg.name} - ${pkg.version}

${licenseContent(pkg)}`; + }; + + return packages.map(licenseTemplateForPackage).join('\n'); + } +} + +function makePackageMapKeyForPackage(pkg: IPackageData): PackageNameAndVersion { + return `${pkg.name}@${pkg.version}`; +} + +/** + * Returns the license type + */ +function parseLicense(packageData: IPackageData): string | undefined { + if (packageData.license) { + return packageData.license; + } else if (typeof packageData.licenses === 'string') { + return packageData.licenses; + } else if (packageData.licenses?.length) { + return packageData.licenses.length === 1 + ? packageData.licenses[0].type + : `(${packageData.licenses + .map((license: { type: string; url: string }) => license.type) + .join(' OR ')})`; + } + + return undefined; +} + +function parsePackageAuthor(p: IPackageData): string | undefined { + return typeof p.author === 'string' ? p.author : p.author?.name; +} diff --git a/webpack/webpack-embedded-dependencies-plugin/src/index.ts b/webpack/webpack-embedded-dependencies-plugin/src/index.ts new file mode 100644 index 00000000000..db7fe20598d --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/index.ts @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +/** + * A webpack plugin for generating a list of embedded dependencies. Embedded dependencies are third-party packages which are being + * bundled into your released code and are often times subject to license, security, and other legal requirements. This plugin + * aims to make it easier to generate a list of embedded dependencies and their associated metadata, so they can be analyzed by additional tools. + * + * @remarks + * The plugin also includes the ability to generate a secondary asset which contains the license text for each embedded dependency into a single file called + * THIRD-PARTY-NOTICES.html. This is a common legal requirement for large companies deploying commercial services/products containing open source code. + * + * @packageDocumentation + */ + +import EmbeddedDependenciesWebpackPlugin from './EmbeddedDependenciesWebpackPlugin'; +export * from './EmbeddedDependenciesWebpackPlugin'; + +export default EmbeddedDependenciesWebpackPlugin; diff --git a/webpack/webpack-embedded-dependencies-plugin/src/regexpUtils.ts b/webpack/webpack-embedded-dependencies-plugin/src/regexpUtils.ts new file mode 100644 index 00000000000..bf9eda8e0c0 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/regexpUtils.ts @@ -0,0 +1,26 @@ +/** + * Regular expression used to match common license file names. + * + * @remarks The following file names are covered via unit tests to be matched: + * + * - `'LICENSE'` + * - `'LICENSE.txt'` + * - `'LICENSE.md'` + * - `'LICENSE-MIT.txt'` + * - `'license'` + * - `'license.txt'` + */ +export const LICENSE_FILES_REGEXP: RegExp = /^LICENSE(-[A-Z-]+)?(\.(txt|md))?$/i; + +/** + * Regular expression used to match common copyright statements. It is by no means exhaustive however it + * should cover the majority of cases that we come across in the wild. + * + * @remarks The following copyright statements are covered via unit tests to be matched: + * + * - `'Copyright © 2023 FAKE-PACKAGE-MIT-LICENSE'` + * - `'Copyright (C) 2007 Free Software Foundation, Inc. '` + * - `'Copyright 2023 Some Licenser Name'` + * + */ +export const COPYRIGHT_REGEX: RegExp = /Copyright\s*(\(c\)|©)?\s*\d{4}\s*.*$/im; diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/.gitignore b/webpack/webpack-embedded-dependencies-plugin/src/test/.gitignore new file mode 100644 index 00000000000..1b9396ec719 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/.gitignore @@ -0,0 +1,3 @@ +!node_modules +!dist +!lib \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/WebpackEmbeddedDependenciesPlugin.test.ts b/webpack/webpack-embedded-dependencies-plugin/src/test/WebpackEmbeddedDependenciesPlugin.test.ts new file mode 100644 index 00000000000..17cd9341eed --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/WebpackEmbeddedDependenciesPlugin.test.ts @@ -0,0 +1,263 @@ +import path from 'path'; +import { createFsFromVolume, IFs, Volume } from 'memfs'; +import EmbeddedDependenciesWebpackPlugin from '../EmbeddedDependenciesWebpackPlugin'; + +import { LICENSE_FILES_REGEXP, COPYRIGHT_REGEX } from '../regexpUtils'; + +import { Testing } from '@rushstack/webpack-plugin-utilities'; +import { FileSystem } from '@rushstack/node-core-library'; + +const TESTS_FOLDER_PATH: string = `${process.cwd()}/src/test`; +const FIXTURES_FOLDER_PATH: string = `${TESTS_FOLDER_PATH}/fixtures`; +const FAKE_NODE_MODULES_FOLDER_PATH: string = `${TESTS_FOLDER_PATH}/node_modules`; +const VIRTUAL_FILE_SYSTEM_OUTPUT_PATH: string = path.resolve( + process.cwd(), + '../webpack-embedded-dependencies-plugin/dist' +); + +const fixtures: string[] = FileSystem.readFolderItemNames(FIXTURES_FOLDER_PATH); + +const defaultConfigurationWithPlugin = { + context: TESTS_FOLDER_PATH, + plugins: [new EmbeddedDependenciesWebpackPlugin()] +}; + +const defaultConfigurationCustomOutputFileName = { + context: TESTS_FOLDER_PATH, + plugins: [new EmbeddedDependenciesWebpackPlugin({ outputFileName: 'custom-file-name.json' })] +}; + +const configurationWithLicenseFileGenerated = { + context: TESTS_FOLDER_PATH, + plugins: [new EmbeddedDependenciesWebpackPlugin({ generateLicenseFile: true })] +}; + +const configurationWithLicenseFileGeneratedAndCustomPackageFilter = { + context: TESTS_FOLDER_PATH, + plugins: [ + new EmbeddedDependenciesWebpackPlugin({ + generateLicenseFile: true, + packageFilterPredicate: (packageJson, filePath) => { + return !filePath.includes('some-fake-custom-package'); + } + }) + ] +}; + +describe('COPYRIGHT_REGEX', () => { + it('should extract the right copyright from apache 2.0 license', () => { + const license = FileSystem.readFile( + path.join(FAKE_NODE_MODULES_FOLDER_PATH, 'fake-package-apache-with-copyleft-dep', 'LICENSE.txt') + ); + const match = license.match(COPYRIGHT_REGEX); + + expect(match).toBeDefined(); + expect(match?.[0]).toBe('Copyright 2023 Fake Package Apache License w/ AGPL Transitive'); + }); + + it('should extract the right copyright from mit license', () => { + const license = FileSystem.readFile( + path.join(FAKE_NODE_MODULES_FOLDER_PATH, 'fake-package-mit-license', 'LICENSE-MIT.txt') + ); + const match = license.match(COPYRIGHT_REGEX); + + expect(match).toBeDefined(); + expect(match?.[0]).toBe('Copyright © 2023 FAKE-PACKAGE-MIT-LICENSE'); + }); + + it('should extract the right copyright from agpl license', () => { + const license = FileSystem.readFile( + path.join(FAKE_NODE_MODULES_FOLDER_PATH, 'fake-package-agpl-license', 'LICENSE') + ); + const match = license.match(COPYRIGHT_REGEX); + + expect(match).toBeDefined(); + expect(match?.[0]).toBe('Copyright (C) 2007 Free Software Foundation, Inc. '); + }); + + it('should extract the right copyright from agpl license', () => { + const license = FileSystem.readFile( + path.join(FAKE_NODE_MODULES_FOLDER_PATH, 'fake-package-copyleft-license', 'license') + ); + const match = license.match(COPYRIGHT_REGEX); + + expect(match).toBeDefined(); + expect(match?.[0]).toBe('Copyright (C) 2007 Free Software Foundation, Inc. '); + }); +}); + +describe('LICENSE_FILES_REGEXP', () => { + for (const filename of ['LICENSE', 'LICENSE-MIT.txt', 'LICENSE.md', 'LICENSE.txt', 'license']) { + it(`should match ${filename}`, () => { + expect(LICENSE_FILES_REGEXP.test(filename)).toBe(true); + }); + } +}); + +for (const fixture of fixtures) { + describe('WebpackEmbeddedDependenciesPlugin', () => { + it('should run', async () => { + const stats = await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + defaultConfigurationWithPlugin + ); + + expect(stats).toBeDefined(); + }); + + it('should generate a secondary asset with the correct default name', async () => { + const stats = await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + defaultConfigurationWithPlugin + ); + const embeddedDepAsset = stats + ?.toJson({ all: false, assets: true }) + .assets?.some((asset) => asset.name === 'embedded-dependencies.json'); + + expect(embeddedDepAsset).toBe(true); + }); + + it('should generate a secondary asset with a custom outputFileName', async () => { + const stats = await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + defaultConfigurationCustomOutputFileName + ); + const embeddedDepAsset = stats + ?.toJson({ all: false, assets: true }) + .assets?.some((asset) => asset.name === 'custom-file-name.json'); + + expect(embeddedDepAsset).toBe(true); + }); + + it('should generate a tertiary asset if generating a license file', async () => { + const stats = await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + configurationWithLicenseFileGenerated + ); + const embeddedDepAsset = stats + ?.toJson({ all: false, assets: true }) + .assets?.some((asset) => asset.name === 'THIRD-PARTY-NOTICES.html'); + + // No dependencies fixture should not generate a license file + // and emit a warning so we'll exclude it here, but also should test separately + if (fixture !== 'no-dependencies') { + expect(embeddedDepAsset).toBe(true); + } + }); + }); + + const virtualFileSystem: IFs = createFsFromVolume(new Volume()); + + switch (fixture) { + case 'dependencies-with-copyleft-licenses': + break; + case 'dependencies-with-licenses': + break; + case 'dependencies-with-transient-copyleft-license': + it('should have three files created when using the generator from the entire build with correct default names and the licenses have been correctly detected', async () => { + // For this test we'll create the virtual file system and pass it to the Testing.getTestingWebpackCompilerAsync + // beacuse we want to reuse it to verify the files generated by the plugin + + await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + configurationWithLicenseFileGenerated, + virtualFileSystem + ); + + // get files generated from the plugin in the virtual file system + const files = virtualFileSystem.readdirSync(VIRTUAL_FILE_SYSTEM_OUTPUT_PATH); + + expect(files).toBeDefined(); + expect(files.length).toBe(3); + // verify the name of each file is correct + expect(files).toContain('embedded-dependencies.json'); + expect(files).toContain('THIRD-PARTY-NOTICES.html'); + expect(files).toContain('test-bundle.js'); + + for (const file of files) { + const fileContent = virtualFileSystem.readFileSync( + path.join(VIRTUAL_FILE_SYSTEM_OUTPUT_PATH, file.toString()), + { + encoding: 'utf8' + } + ); + + switch (file) { + case 'THIRD-PARTY-NOTICES.html': + expect(fileContent).toContain('Apache License'); + break; + case 'embedded-dependencies.json': + const json = JSON.parse(fileContent.toString()); + expect(json).toBeDefined(); + expect(json.embeddedDependencies).toBeDefined(); + expect(json.embeddedDependencies.length).toBe(2); + expect(json.embeddedDependencies[0].name).toBe('fake-package-apache-with-copyleft-dep'); + expect(json.embeddedDependencies[0].version).toBe('1.3.4'); + break; + default: + break; + } + + expect(fileContent).toBeDefined(); + } + }); + break; + case 'no-dependencies': + it('should not emit a warning if there are no third party deps but license generation is set to true', async () => { + const stats = await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + configurationWithLicenseFileGenerated + ); + + const warnings = stats?.toJson({ all: false, warnings: true }).warnings; + + expect(warnings).toBeDefined(); + expect(warnings?.length).toBe(0); + }); + + break; + + case 'dependencies-with-dependency-to-filter-out': + it('should filter out specific packages using a package filter function option', async () => { + // For this test we'll create the virtual file system and pass it to the Testing.getTestingWebpackCompilerAsync + // beacuse we want to reuse it to verify the files generated by the plugin + + await Testing.getTestingWebpackCompilerAsync( + `./fixtures/${fixture}/src`, + configurationWithLicenseFileGeneratedAndCustomPackageFilter, + virtualFileSystem + ); + + // get files generated from the plugin in the virtual file system + const files = virtualFileSystem.readdirSync(VIRTUAL_FILE_SYSTEM_OUTPUT_PATH); + + expect(files).toBeDefined(); + expect(files.length).toBe(3); + // verify the name of each file is correct + expect(files).toContain('embedded-dependencies.json'); + expect(files).toContain('THIRD-PARTY-NOTICES.html'); + expect(files).toContain('test-bundle.js'); + + for (const file of files) { + const fileContent = virtualFileSystem.readFileSync( + path.join(VIRTUAL_FILE_SYSTEM_OUTPUT_PATH, file.toString()), + { + encoding: 'utf8' + } + ); + + if (file.toString() === 'embedded-dependencies.json') { + const { embeddedDependencies } = JSON.parse(fileContent.toString()); + expect(embeddedDependencies[0].name).not.toBe('some-fake-custom-package'); + expect(embeddedDependencies).toBeDefined(); + } + + expect(fileContent).toBeDefined(); + } + }); + + break; + default: + break; + } +} diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-copyleft-licenses/src/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-copyleft-licenses/src/index.js new file mode 100644 index 00000000000..bf18de462b9 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-copyleft-licenses/src/index.js @@ -0,0 +1,3 @@ +import mod from 'fake-package-copyleft-license'; + +console.log(mod); diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-dependency-to-filter-out/src/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-dependency-to-filter-out/src/index.js new file mode 100644 index 00000000000..aa334daaad9 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-dependency-to-filter-out/src/index.js @@ -0,0 +1,4 @@ +import mod from 'fake-package-mit-license'; +import * as fakeNamespace from 'some-fake-custom-package'; + +console.log(pattern1, fakeNamespace); diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-licenses/src/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-licenses/src/index.js new file mode 100644 index 00000000000..488fe2fdb42 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-licenses/src/index.js @@ -0,0 +1 @@ +import mod from 'fake-package-mit-license'; diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-transient-copyleft-license/src/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-transient-copyleft-license/src/index.js new file mode 100644 index 00000000000..a02abbea8dd --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/dependencies-with-transient-copyleft-license/src/index.js @@ -0,0 +1,3 @@ +import mod from 'fake-package-apache-with-copyleft-dep'; + +console.log(mod); diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/file-a.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/file-a.js new file mode 100644 index 00000000000..668268e602d --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/file-a.js @@ -0,0 +1 @@ +export default 'file-a'; diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/file-b.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/file-b.js new file mode 100644 index 00000000000..15118154ccb --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/file-b.js @@ -0,0 +1 @@ +export default 'file-b'; diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/index.js new file mode 100644 index 00000000000..f7e2705754b --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/fixtures/no-dependencies/src/index.js @@ -0,0 +1,4 @@ +import fileA from './file-a'; +import fileB from './file-b'; + +document.write(`${fileA} + ${fileB}`); diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/LICENSE b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/LICENSE new file mode 100644 index 00000000000..be3f7b28e56 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/lib/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/lib/index.js new file mode 100644 index 00000000000..1342bcda23b --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/lib/index.js @@ -0,0 +1 @@ +export default "THIS HAS A COPYLEFT LICENSE"; \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/package.json b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/package.json new file mode 100644 index 00000000000..a276468db41 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-agpl-license/package.json @@ -0,0 +1,6 @@ +{ + "name": "fake-package-apgl-license", + "version": "1.0.0", + "license": "AGPL", + "main": "./lib" +} \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/LICENSE.txt b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/LICENSE.txt new file mode 100644 index 00000000000..1a638f265e2 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2023 Fake Package Apache License w/ AGPL Transitive + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/lib/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/lib/index.js new file mode 100644 index 00000000000..1e55461856b --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/lib/index.js @@ -0,0 +1,3 @@ +import copyLeftCode from "fake-package-agpl-license" + +export default `THIS PACKAGE HAS APACHE LICENSE BUT ${copyLeftCode}` \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/package.json b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/package.json new file mode 100644 index 00000000000..65d3380e0a8 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-apache-with-copyleft-dep/package.json @@ -0,0 +1,9 @@ +{ + "name": "fake-package-apache-with-copyleft-dep", + "module": "./lib/index.js", + "version": "1.3.4", + "license": "Apache-2.0", + "dependencies": { + "fake-package-agpl-license": "1.0.0" + } +} \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/lib/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/lib/index.js new file mode 100644 index 00000000000..1342bcda23b --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/lib/index.js @@ -0,0 +1 @@ +export default "THIS HAS A COPYLEFT LICENSE"; \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/license b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/license new file mode 100644 index 00000000000..a824e194d8e --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/license @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 2014 Fake Package Maker + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Fake Package Copyleft License Copyright (C) 2014 Fake Package Maker + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and`show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/package.json b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/package.json new file mode 100644 index 00000000000..513dcb29e81 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-copyleft-license/package.json @@ -0,0 +1,6 @@ +{ + "name": "fake-package-copyleft-license", + "version": "1.0.0", + "license": "GPL", + "main": "./lib" +} \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/LICENSE-MIT.txt b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/LICENSE-MIT.txt new file mode 100644 index 00000000000..ab23bff8de5 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/LICENSE-MIT.txt @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright © 2023 FAKE-PACKAGE-MIT-LICENSE + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/lib/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/lib/index.js new file mode 100644 index 00000000000..fc0fff7f6b5 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/lib/index.js @@ -0,0 +1 @@ +export default "THIS IS A MODULE WITH MIT LICENSE" \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/package.json b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/package.json new file mode 100644 index 00000000000..c5e6bc25799 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mit-license/package.json @@ -0,0 +1,6 @@ +{ + "name": "fake-package-good-license", + "module": "./lib/index.js", + "version": "1.1.1", + "license": "MIT" +} \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mpl-license/lib/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mpl-license/lib/index.js new file mode 100644 index 00000000000..1342bcda23b --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mpl-license/lib/index.js @@ -0,0 +1 @@ +export default "THIS HAS A COPYLEFT LICENSE"; \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mpl-license/package.json b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mpl-license/package.json new file mode 100644 index 00000000000..05dc8db0933 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/fake-package-mpl-license/package.json @@ -0,0 +1,6 @@ +{ + "name": "fake-package-mpl-license", + "version": "1.0.0", + "license": "MPL", + "main": "./lib" +} \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/1.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/1.js new file mode 100644 index 00000000000..8f99fabc3a2 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/1.js @@ -0,0 +1 @@ +module.exports = module.id; \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/2.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/2.js new file mode 100644 index 00000000000..8f99fabc3a2 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/2.js @@ -0,0 +1 @@ +module.exports = module.id; \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/index.js b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/index.js new file mode 100644 index 00000000000..d1ed864551f --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/lib/index.js @@ -0,0 +1,2 @@ +export * from "./1.js"; +export * from "./2.js"; \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/package.json b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/package.json new file mode 100644 index 00000000000..4f5cfb2e0a7 --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/src/test/node_modules/some-fake-custom-package/package.json @@ -0,0 +1,6 @@ +{ + "name": "some-fake-custom-package", + "version": "1.0.0", + "description": "some fake custom package", + "main": "lib/index.js" +} \ No newline at end of file diff --git a/webpack/webpack-embedded-dependencies-plugin/tsconfig.json b/webpack/webpack-embedded-dependencies-plugin/tsconfig.json new file mode 100644 index 00000000000..fbc2f5c0a6c --- /dev/null +++ b/webpack/webpack-embedded-dependencies-plugin/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "./node_modules/@rushstack/heft-node-rig/profiles/default/tsconfig-base.json", + + "compilerOptions": { + "types": ["heft-jest", "node"] + } +} diff --git a/webpack/webpack-plugin-utilities/CHANGELOG.json b/webpack/webpack-plugin-utilities/CHANGELOG.json index 8fa46649190..0ff05d335a3 100644 --- a/webpack/webpack-plugin-utilities/CHANGELOG.json +++ b/webpack/webpack-plugin-utilities/CHANGELOG.json @@ -1,6 +1,170 @@ { "name": "@rushstack/webpack-plugin-utilities", "entries": [ + { + "version": "0.2.1", + "tag": "@rushstack/webpack-plugin-utilities_v0.2.1", + "date": "Thu, 23 Mar 2023 15:24:08 GMT", + "comments": { + "patch": [ + { + "comment": "Fix an issue where the `Testing` library has a had a hard dependency on `webpack`, but the package declared it as an optional peerDependency." + } + ] + } + }, + { + "version": "0.2.0", + "tag": "@rushstack/webpack-plugin-utilities_v0.2.0", + "date": "Wed, 22 Mar 2023 20:48:30 GMT", + "comments": { + "minor": [ + { + "comment": "Added Testing.getTestingWebpackCompiler utility function for webpack plugin testing." + } + ] + } + }, + { + "version": "0.1.57", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.57", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.1.56", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.56", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.1.55", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.55", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.1.54", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.54", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.1.53", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.53", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.1.52", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.52", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.1.51", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.51", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.1.50", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.50", + "date": "Wed, 25 Jan 2023 07:26:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.1.49", + "tag": "@rushstack/webpack-plugin-utilities_v0.1.49", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.1.48", "tag": "@rushstack/webpack-plugin-utilities_v0.1.48", diff --git a/webpack/webpack-plugin-utilities/CHANGELOG.md b/webpack/webpack-plugin-utilities/CHANGELOG.md index 696e5d7064a..2868a309917 100644 --- a/webpack/webpack-plugin-utilities/CHANGELOG.md +++ b/webpack/webpack-plugin-utilities/CHANGELOG.md @@ -1,6 +1,67 @@ # Change Log - @rushstack/webpack-plugin-utilities -This log was last generated on Tue, 20 Dec 2022 01:18:23 GMT and should not be manually modified. +This log was last generated on Thu, 23 Mar 2023 15:24:08 GMT and should not be manually modified. + +## 0.2.1 +Thu, 23 Mar 2023 15:24:08 GMT + +### Patches + +- Fix an issue where the `Testing` library has a had a hard dependency on `webpack`, but the package declared it as an optional peerDependency. + +## 0.2.0 +Wed, 22 Mar 2023 20:48:30 GMT + +### Minor changes + +- Added Testing.getTestingWebpackCompiler utility function for webpack plugin testing. + +## 0.1.57 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.1.56 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.1.55 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.1.54 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.1.53 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 0.1.52 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.1.51 +Thu, 26 Jan 2023 02:55:10 GMT + +### Patches + +- Upgrade to webpack 5.75.0 + +## 0.1.50 +Wed, 25 Jan 2023 07:26:56 GMT + +_Version update only_ + +## 0.1.49 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.48 Tue, 20 Dec 2022 01:18:23 GMT diff --git a/webpack/webpack-plugin-utilities/README.md b/webpack/webpack-plugin-utilities/README.md index ffa1d8af3dc..b377c223fbd 100644 --- a/webpack/webpack-plugin-utilities/README.md +++ b/webpack/webpack-plugin-utilities/README.md @@ -10,6 +10,8 @@ This is a collection of utilities for writing webpack plugins # Usage +## VersionDetection + ```JavaScript import { VersionDetection } from "@rushstack/webpack-plugin-utilities" @@ -38,6 +40,66 @@ class MyExampleWebpackPlugin { } ``` +## Testing + +### `getTestingWebpackCompiler` + +```typescript + +import { getTestingWebpackCompiler } from "@rushstack/webpack-plugin-utilities" + +describe("MyPlugin", () => { + it("should run", async () => { + const stats = await getTestingWebpackCompiler("./src/index.ts"); + + expect(stats).toBeDefined(); + }); +}); +``` + +### `getTestingWebpackCompiler` with additional configuration + +If you want to pass in additional configuration to the webpack compiler, you can pass it in as the second parameter to `getTestingWebpackCompiler`. + +```typescript +import { getTestingWebpackCompiler } from "@rushstack/webpack-plugin-utilities" + +describe("MyPlugin", () => { + it("should run", async () => { + const stats = await getTestingWebpackCompiler("./src/index.ts", { + mode: "production", + }); + + expect(stats).toBeDefined(); + }); +}); +``` + +### `getTestingWebpackCompiler` with virtual filesystem + +If you want to be able to read, analyze, access the files written to the memory filesystem, +you can pass in a memory filesystem instance to the `memFs` parameter. + +```typescript +import { getTestingWebpackCompiler } from "@rushstack/webpack-plugin-utilities" +import { createFsFromVolume, Volume, IFs } from "memfs" +import path from "path" + +describe("MyPlugin", () => { + it("should run", async () => { + const virtualFileSystem: IFs = createFsFromVolume(new Volume()); + const stats = await getTestingWebpackCompiler( + `./src/index.ts`, + {}, + virtualFileSystem + ); + + expect(stats).toBeDefined(); + expect(virtualFileSystem.existsSync(path.join(__dirname, "dist", "index.js"))).toBe(true); + }); +}); +``` + ## Links - [CHANGELOG.md]( diff --git a/webpack/webpack-plugin-utilities/package.json b/webpack/webpack-plugin-utilities/package.json index 367d083259f..cfd351ec03b 100644 --- a/webpack/webpack-plugin-utilities/package.json +++ b/webpack/webpack-plugin-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack-plugin-utilities", - "version": "0.1.48", + "version": "0.2.1", "description": "This plugin sets the webpack public path at runtime.", "main": "lib/index.js", "typings": "dist/webpack-plugin-utilities.d.ts", @@ -14,6 +14,10 @@ "build": "heft build --clean", "_phase:build": "heft run --only build -- --clean" }, + "dependencies": { + "webpack-merge": "~5.8.0", + "memfs": "3.4.3" + }, "peerDependencies": { "@types/webpack": "^4.39.8", "webpack": "^5.35.1" @@ -30,8 +34,9 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", - "@types/node": "12.20.24", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/tapable": "1.0.6", - "webpack": "~5.68.0" + "webpack": "~5.75.0" } } diff --git a/webpack/webpack-plugin-utilities/src/Testing.ts b/webpack/webpack-plugin-utilities/src/Testing.ts new file mode 100644 index 00000000000..bb123e63879 --- /dev/null +++ b/webpack/webpack-plugin-utilities/src/Testing.ts @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { createFsFromVolume, Volume, IFs } from 'memfs'; +import path from 'path'; +import type { StatsCompilation as WebpackStatsCompilation } from 'webpack'; +import webpackMerge from 'webpack-merge'; + +import type { MultiStats, Stats, Configuration, Compiler, StatsError } from 'webpack'; + +/** + * @public + * This function generates a webpack compiler with default configuration and the output filesystem mapped to + * a memory filesystem. This is useful for testing webpack plugins/loaders where we do not need to write to disk (which can be costly). + * @param entry - The entry point for the webpack compiler + * @param additionalConfig - Any additional configuration that should be merged with the default configuration + * @param memFs - The memory filesystem to use for the output filesystem. Use this option if you want to _inspect_, analyze, or read the output + * files generated by the webpack compiler. If you do not need to do this, you can omit this parameter and the output files. + * + * @returns - A webpack compiler with the output filesystem mapped to a memory filesystem + * + * @example + * ```typescript + * import Testing from '@rushstack/webpack-plugin-utilities'; + * + * describe('MyPlugin', () => { + it('should run', async () => { + const stats = await Testing.getTestingWebpackCompiler( + `./src/index.ts`, + ); + + expect(stats).toBeDefined(); + }); + * }); + * ``` + * + * @remarks + * If you want to be able to read, analyze, access the files written to the memory filesystem, + * you can pass in a memory filesystem instance to the `memFs` parameter. + * + * @example + * ```typescript + * import Testing from '@rushstack/webpack-plugin-utilities'; + * import { createFsFromVolume, Volume, IFs } from 'memfs'; + * import path from 'path'; + * + * describe('MyPlugin', () => { + * it('should run', async () => { + * const virtualFileSystem: IFs = createFsFromVolume(new Volume()); + * const stats = await Testing.getTestingWebpackCompiler( + * `./src/index.ts`, + * {}, + * virtualFileSystem + * ); + * + * expect(stats).toBeDefined(); + * expect(virtualFileSystem.existsSync(path.join(__dirname, 'dist', 'index.js'))).toBe(true); + * }); + * }); + * ``` + */ +export async function getTestingWebpackCompilerAsync( + entry: string, + additionalConfig: Configuration = {}, + memFs: IFs = createFsFromVolume(new Volume()) +): Promise<(Stats | MultiStats) | undefined> { + let webpackModule: typeof import('webpack'); + try { + webpackModule = (await import('webpack')).default; + } catch (e) { + throw new Error( + 'Unable to load module "webpack". The @rushstack/webpack-plugin-utilities package declares "webpack" as ' + + 'an optional peer dependency, but a function was invoked on it that requires webpack. Make sure ' + + `the peer dependency on "webpack" is fulfilled. Inner error: ${e}` + ); + } + + const compilerOptions: Configuration = webpackMerge(_defaultWebpackConfig(entry), additionalConfig); + const compiler: Compiler = webpackModule(compilerOptions); + + compiler.outputFileSystem = memFs; + compiler.outputFileSystem.join = path.join.bind(path); + + return new Promise((resolve, reject) => { + compiler.run((err, stats) => { + compiler.close(() => { + if (err) { + return reject(err); + } + + _processAndHandleStatsErrorsAndWarnings(stats, reject); + + resolve(stats); + }); + }); + }); +} + +function _processAndHandleStatsErrorsAndWarnings( + stats: Stats | MultiStats | undefined, + reject: (reason: unknown) => void +): void { + if (stats?.hasErrors() || stats?.hasWarnings()) { + const serializedStats: WebpackStatsCompilation[] = [stats?.toJson('errors-warnings')]; + + const errors: StatsError[] = []; + const warnings: StatsError[] = []; + + for (const compilationStats of serializedStats) { + if (compilationStats.warnings) { + for (const warning of compilationStats.warnings) { + warnings.push(warning); + } + } + + if (compilationStats.errors) { + for (const error of compilationStats.errors) { + errors.push(error); + } + } + + if (compilationStats.children) { + for (const child of compilationStats.children) { + serializedStats.push(child); + } + } + } + + reject([...errors, ...warnings]); + } +} + +function _defaultWebpackConfig(entry: string = './src'): Configuration { + return { + // We don't want to have eval source maps, nor minification + // so we set mode to 'none' to disable both. Default is 'production' + mode: 'none', + context: __dirname, + entry, + output: { + filename: 'test-bundle.js' + } + }; +} diff --git a/webpack/webpack-plugin-utilities/src/index.ts b/webpack/webpack-plugin-utilities/src/index.ts index 38b15ffd63b..75a14e2aa39 100644 --- a/webpack/webpack-plugin-utilities/src/index.ts +++ b/webpack/webpack-plugin-utilities/src/index.ts @@ -8,4 +8,5 @@ */ import * as VersionDetection from './DetectWebpackVersion'; -export { VersionDetection }; +import * as Testing from './Testing'; +export { VersionDetection, Testing }; diff --git a/webpack/webpack4-localization-plugin/CHANGELOG.json b/webpack/webpack4-localization-plugin/CHANGELOG.json index 66a55363c55..6a1b008e739 100644 --- a/webpack/webpack4-localization-plugin/CHANGELOG.json +++ b/webpack/webpack4-localization-plugin/CHANGELOG.json @@ -1,6 +1,294 @@ { "name": "@rushstack/webpack4-localization-plugin", "entries": [ + { + "version": "0.17.6", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.6", + "date": "Thu, 23 Mar 2023 15:24:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.95`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.94` to `^3.3.95`" + } + ] + } + }, + { + "version": "0.17.5", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.5", + "date": "Wed, 22 Mar 2023 20:48:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.94`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.93` to `^3.3.94`" + } + ] + } + }, + { + "version": "0.17.4", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.4", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.47`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.93`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.92` to `^3.3.93`" + } + ] + } + }, + { + "version": "0.17.3", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.3", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.92`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.91` to `^3.3.92`" + } + ] + } + }, + { + "version": "0.17.2", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.46`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.91`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.90` to `^3.3.91`" + } + ] + } + }, + { + "version": "0.17.1", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.45`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.90`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.89` to `^3.3.90`" + } + ] + } + }, + { + "version": "0.17.0", + "tag": "@rushstack/webpack4-localization-plugin_v0.17.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.44`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.89`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.88` to `^3.3.89`" + } + ] + } + }, + { + "version": "0.16.0", + "tag": "@rushstack/webpack4-localization-plugin_v0.16.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.43`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.88`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.87` to `^3.3.88`" + } + ] + } + }, + { + "version": "0.15.45", + "tag": "@rushstack/webpack4-localization-plugin_v0.15.45", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.42`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.87`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.86` to `^3.3.87`" + } + ] + } + }, + { + "version": "0.15.44", + "tag": "@rushstack/webpack4-localization-plugin_v0.15.44", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.41`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.86`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.85` to `^3.3.86`" + } + ] + } + }, + { + "version": "0.15.43", + "tag": "@rushstack/webpack4-localization-plugin_v0.15.43", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.40`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.85`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.84` to `^3.3.85`" + } + ] + } + }, + { + "version": "0.15.42", + "tag": "@rushstack/webpack4-localization-plugin_v0.15.42", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.39`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" to `3.3.84`" + }, + { + "comment": "Updating dependency \"@rushstack/set-webpack-public-path-plugin\" from `^3.3.83` to `^3.3.84`" + } + ] + } + }, { "version": "0.15.41", "tag": "@rushstack/webpack4-localization-plugin_v0.15.41", diff --git a/webpack/webpack4-localization-plugin/CHANGELOG.md b/webpack/webpack4-localization-plugin/CHANGELOG.md index 47408537714..a0f07176814 100644 --- a/webpack/webpack4-localization-plugin/CHANGELOG.md +++ b/webpack/webpack4-localization-plugin/CHANGELOG.md @@ -1,6 +1,72 @@ # Change Log - @rushstack/webpack4-localization-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Thu, 23 Mar 2023 15:24:08 GMT and should not be manually modified. + +## 0.17.6 +Thu, 23 Mar 2023 15:24:08 GMT + +_Version update only_ + +## 0.17.5 +Wed, 22 Mar 2023 20:48:30 GMT + +_Version update only_ + +## 0.17.4 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.17.3 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 0.17.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.17.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.17.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.16.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.15.45 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.15.44 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.15.43 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.15.42 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.15.41 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/webpack4-localization-plugin/config/api-extractor.json b/webpack/webpack4-localization-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/webpack4-localization-plugin/config/api-extractor.json +++ b/webpack/webpack4-localization-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/webpack4-localization-plugin/package.json b/webpack/webpack4-localization-plugin/package.json index f16a4771c09..10fe130db00 100644 --- a/webpack/webpack4-localization-plugin/package.json +++ b/webpack/webpack4-localization-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack4-localization-plugin", - "version": "0.15.41", + "version": "0.17.6", "description": "This plugin facilitates localization with Webpack.", "main": "lib/index.js", "typings": "dist/webpack4-localization-plugin.d.ts", @@ -15,9 +15,10 @@ "_phase:build": "heft run --only build -- --clean" }, "peerDependencies": { - "@rushstack/set-webpack-public-path-plugin": "^3.3.83", + "@rushstack/set-webpack-public-path-plugin": "^3.3.95", "@types/webpack": "^4.39.0", - "webpack": "^4.31.0" + "webpack": "^4.31.0", + "@types/node": "*" }, "peerDependenciesMeta": { "@rushstack/set-webpack-public-path-plugin": { @@ -25,12 +26,14 @@ }, "@types/webpack": { "optional": true + }, + "@types/node": { + "optional": true } }, "dependencies": { "@rushstack/localization-utilities": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24", "@types/tapable": "1.0.6", "loader-utils": "1.4.2", "lodash": "~4.17.15", @@ -44,6 +47,7 @@ "@types/loader-utils": "1.1.3", "@types/lodash": "4.14.116", "@types/minimatch": "3.0.5", + "@types/node": "14.18.36", "@types/webpack": "4.41.32", "webpack": "~4.44.2" } diff --git a/webpack/webpack4-module-minifier-plugin/CHANGELOG.json b/webpack/webpack4-module-minifier-plugin/CHANGELOG.json index 1bcd2a429a6..350b09102e7 100644 --- a/webpack/webpack4-module-minifier-plugin/CHANGELOG.json +++ b/webpack/webpack4-module-minifier-plugin/CHANGELOG.json @@ -1,6 +1,222 @@ { "name": "@rushstack/webpack4-module-minifier-plugin", "entries": [ + { + "version": "0.11.3", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.11.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.11.2", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.11.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.11.1", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.11.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.11.0", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.11.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.10.0", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.10.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.9.48", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.9.48", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.49`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.48`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.9.47", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.9.47", + "date": "Sat, 28 Jan 2023 01:22:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.48`" + } + ] + } + }, + { + "version": "0.9.46", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.9.46", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.47`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.47`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.9.45", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.9.45", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.46`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.46`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.9.44", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.9.44", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.45`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.45`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.9.43", "tag": "@rushstack/webpack4-module-minifier-plugin_v0.9.43", diff --git a/webpack/webpack4-module-minifier-plugin/CHANGELOG.md b/webpack/webpack4-module-minifier-plugin/CHANGELOG.md index e9d2757da01..76561115988 100644 --- a/webpack/webpack4-module-minifier-plugin/CHANGELOG.md +++ b/webpack/webpack4-module-minifier-plugin/CHANGELOG.md @@ -1,6 +1,62 @@ # Change Log - @rushstack/webpack4-module-minifier-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.11.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.11.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.11.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.11.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.10.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.9.48 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.9.47 +Sat, 28 Jan 2023 01:22:02 GMT + +_Version update only_ + +## 0.9.46 +Thu, 26 Jan 2023 02:55:10 GMT + +_Version update only_ + +## 0.9.45 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.9.44 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.9.43 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/webpack4-module-minifier-plugin/config/api-extractor.json b/webpack/webpack4-module-minifier-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/webpack4-module-minifier-plugin/config/api-extractor.json +++ b/webpack/webpack4-module-minifier-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/webpack4-module-minifier-plugin/package.json b/webpack/webpack4-module-minifier-plugin/package.json index 857782f75df..69c427e994f 100644 --- a/webpack/webpack4-module-minifier-plugin/package.json +++ b/webpack/webpack4-module-minifier-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack4-module-minifier-plugin", - "version": "0.9.43", + "version": "0.11.3", "description": "This plugin splits minification of webpack compilations into smaller units.", "main": "lib/index.js", "typings": "dist/webpack4-module-minifier-plugin.d.ts", @@ -22,7 +22,8 @@ "@types/webpack": "*", "@types/webpack-sources": "*", "webpack": "^4.31.0", - "webpack-sources": "~1.4.3" + "webpack-sources": "~1.4.3", + "@types/node": "*" }, "peerDependenciesMeta": { "@types/webpack": { @@ -30,12 +31,14 @@ }, "@types/webpack-sources": { "optional": true + }, + "@types/node": { + "optional": true } }, "dependencies": { "@rushstack/module-minifier": "workspace:*", "@rushstack/worker-pool": "workspace:*", - "@types/node": "12.20.24", "@types/tapable": "1.0.6", "tapable": "1.1.3" }, @@ -43,6 +46,8 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "@types/webpack": "4.41.32", "@types/webpack-sources": "1.4.2", "webpack": "~4.44.2", diff --git a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json index d9da6b10a2c..c5c3b7fdf9f 100644 --- a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json +++ b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json @@ -1,6 +1,257 @@ { "name": "@microsoft/webpack5-load-themed-styles-loader", "entries": [ + { + "version": "0.1.13", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.13", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.31`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.30` to `^2.0.31`" + } + ] + } + }, + { + "version": "0.1.12", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.12", + "date": "Sat, 11 Mar 2023 01:24:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.30`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.29` to `^2.0.30`" + } + ] + } + }, + { + "version": "0.1.11", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.11", + "date": "Fri, 10 Feb 2023 01:18:50 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.29`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.28` to `^2.0.29`" + } + ] + } + }, + { + "version": "0.1.10", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.10", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.28`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.27` to `^2.0.28`" + } + ] + } + }, + { + "version": "0.1.9", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.9", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.27`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.26` to `^2.0.27`" + } + ] + } + }, + { + "version": "0.1.8", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.8", + "date": "Tue, 31 Jan 2023 01:23:24 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.26`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.25` to `^2.0.26`" + } + ] + } + }, + { + "version": "0.1.7", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.7", + "date": "Mon, 30 Jan 2023 16:22:31 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.25`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.24` to `^2.0.25`" + } + ] + } + }, + { + "version": "0.1.6", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.6", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.24`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.23` to `^2.0.24`" + } + ] + } + }, + { + "version": "0.1.5", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.5", + "date": "Thu, 26 Jan 2023 02:55:09 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.23`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.22` to `^2.0.23`" + } + ] + } + }, + { + "version": "0.1.4", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.4", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.22`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.21` to `^2.0.22`" + } + ] + } + }, + { + "version": "0.1.3", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.3", + "date": "Sun, 22 Jan 2023 20:37:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.21`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.20` to `^2.0.21`" + } + ] + } + }, + { + "version": "0.1.2", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.2", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.0.20`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.0.19` to `^2.0.20`" + } + ] + } + }, { "version": "0.1.1", "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.1.1", diff --git a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md index a09b04534a4..6446f1b912e 100644 --- a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md +++ b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md @@ -1,6 +1,68 @@ # Change Log - @microsoft/webpack5-load-themed-styles-loader -This log was last generated on Wed, 11 Jan 2023 05:17:04 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.1.13 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.1.12 +Sat, 11 Mar 2023 01:24:51 GMT + +_Version update only_ + +## 0.1.11 +Fri, 10 Feb 2023 01:18:50 GMT + +_Version update only_ + +## 0.1.10 +Sun, 05 Feb 2023 03:02:02 GMT + +_Version update only_ + +## 0.1.9 +Wed, 01 Feb 2023 02:16:34 GMT + +_Version update only_ + +## 0.1.8 +Tue, 31 Jan 2023 01:23:24 GMT + +_Version update only_ + +## 0.1.7 +Mon, 30 Jan 2023 16:22:31 GMT + +_Version update only_ + +## 0.1.6 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.1.5 +Thu, 26 Jan 2023 02:55:09 GMT + +### Patches + +- Upgrade to webpack 5.75.0 + +## 0.1.4 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.1.3 +Sun, 22 Jan 2023 20:37:08 GMT + +_Version update only_ + +## 0.1.2 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.1.1 Wed, 11 Jan 2023 05:17:04 GMT diff --git a/webpack/webpack5-load-themed-styles-loader/package.json b/webpack/webpack5-load-themed-styles-loader/package.json index d403620b6ec..cbb54e1a1cb 100644 --- a/webpack/webpack5-load-themed-styles-loader/package.json +++ b/webpack/webpack5-load-themed-styles-loader/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/webpack5-load-themed-styles-loader", - "version": "0.1.1", + "version": "0.1.13", "description": "This simple loader wraps the loading of CSS in script equivalent to `require('load-themed-styles').loadStyles( /* css text */ )`. It is designed to be a replacement for style-loader.", "main": "lib/index.js", "typings": "lib/index.d.ts", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@microsoft/load-themed-styles": "^2.0.19", + "@microsoft/load-themed-styles": "^2.0.31", "webpack": "^5" }, "peerDependenciesMeta": { @@ -29,9 +29,10 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@rushstack/heft": "workspace:*", + "@rushstack/node-core-library": "workspace:*", "@types/heft-jest": "1.0.1", - "@types/node": "12.20.24", - "webpack": "~5.68.0", + "@types/node": "14.18.36", + "webpack": "~5.75.0", "memfs": "3.4.3", "css-loader": "~6.6.0" } diff --git a/webpack/webpack5-load-themed-styles-loader/src/test/LoadThemedStylesLoader.test.ts b/webpack/webpack5-load-themed-styles-loader/src/test/LoadThemedStylesLoader.test.ts index 0b278c0a632..ffc723a0c4f 100644 --- a/webpack/webpack5-load-themed-styles-loader/src/test/LoadThemedStylesLoader.test.ts +++ b/webpack/webpack5-load-themed-styles-loader/src/test/LoadThemedStylesLoader.test.ts @@ -2,12 +2,28 @@ // See LICENSE in the project root for license information. import * as loader from '..'; +import type { Stats } from 'webpack'; import LoadThemedStylesMock = require('./testData/LoadThemedStylesMock'); import getCompiler from './testData/getCompiler'; +import { Path } from '@rushstack/node-core-library'; const MATCH_GENERATED_LOADER_STRING_REGEXP: RegExp = /var\sloader\s\=\srequire\(["'](.+?)["']\)/; const MATCH_LOADER_DOT_LOADSTYLES_FUNCTION_ASYNC_VALUE_REGEXP: RegExp = /loader\.loadStyles\(.+?,\s(.+?)\)/; +function getLoadThemedStylesLibPath(stats: Stats): string { + // Example: + // var loader = require("C:\\Git\\rushstack\\libraries\\load-themed-styles\\lib\\index.js"); + const content: string = stats.toJson({ source: true }).modules?.[0].source?.toString() ?? ''; + const match: RegExpExecArray | null = MATCH_GENERATED_LOADER_STRING_REGEXP.exec(content); + // Example: + // C:\\Git\\rushstack\\libraries\\load-themed-styles\\lib\\index.js + const escapedPath: string = match?.[1] ?? ''; + // Example: + // C:\Git\rushstack\libraries\load-themed-styles\lib\index.js + const loadThemedStylesLibPath: string = JSON.parse(`"${escapedPath}"`); + return loadThemedStylesLibPath; +} + describe('webpack5-load-themed-style-loader', () => { beforeEach(() => { LoadThemedStylesMock.loadedData = []; @@ -19,7 +35,7 @@ describe('webpack5-load-themed-style-loader', () => { }); it('it inserts the resolved load-themed-styles path', async () => { - const stats = await getCompiler('./MockStyle1.css'); + const stats: Stats | undefined = await getCompiler('./MockStyle1.css'); if (!stats) { throw new Error(`Expected stats`); } diff --git a/webpack/webpack5-load-themed-styles-loader/src/test/__snapshots__/LoadThemedStylesLoader.test.ts.snap b/webpack/webpack5-load-themed-styles-loader/src/test/__snapshots__/LoadThemedStylesLoader.test.ts.snap index a45813a3396..9f030bf98f0 100644 --- a/webpack/webpack5-load-themed-styles-loader/src/test/__snapshots__/LoadThemedStylesLoader.test.ts.snap +++ b/webpack/webpack5-load-themed-styles-loader/src/test/__snapshots__/LoadThemedStylesLoader.test.ts.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`webpack5-load-themed-style-loader generates desired loader output snapshot: LoaderContent 1`] = ` -"var content = require(\\"!!../../../../../common/temp/node_modules/.pnpm/css-loader@6.6.0_webpack@5.68.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./MockStyle1.css\\"); +"var content = require(\\"!!../../../../../common/temp/node_modules/.pnpm/css-loader@6.6.0_webpack@5.75.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./MockStyle1.css\\"); var loader = require(\\"../../../lib/test/testData/LoadThemedStylesMock\\"); if(typeof content === \\"string\\") content = [[module.id, content]]; @@ -13,7 +13,7 @@ if(content.locals) module.exports = content.locals;" `; exports[`webpack5-load-themed-style-loader generates desired output for esModule option set to "true" as a snapshot: LoaderContent ESModule 1`] = ` -"import content from \\"!!../../../../../common/temp/node_modules/.pnpm/css-loader@6.6.0_webpack@5.68.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./MockStyle1.css\\"; +"import content from \\"!!../../../../../common/temp/node_modules/.pnpm/css-loader@6.6.0_webpack@5.75.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./MockStyle1.css\\"; import { loadStyles } from \\"../../../lib/test/testData/LoadThemedStylesMock\\"; if(typeof content === \\"string\\") content = [[module.id, content]]; diff --git a/webpack/webpack5-localization-plugin/CHANGELOG.json b/webpack/webpack5-localization-plugin/CHANGELOG.json index d5b7cff302b..ffd38b5bf4f 100644 --- a/webpack/webpack5-localization-plugin/CHANGELOG.json +++ b/webpack/webpack5-localization-plugin/CHANGELOG.json @@ -1,6 +1,200 @@ { "name": "@rushstack/webpack5-localization-plugin", "entries": [ + { + "version": "0.4.3", + "tag": "@rushstack/webpack5-localization-plugin_v0.4.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.47`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + } + ] + } + }, + { + "version": "0.4.2", + "tag": "@rushstack/webpack5-localization-plugin_v0.4.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.46`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + } + ] + } + }, + { + "version": "0.4.1", + "tag": "@rushstack/webpack5-localization-plugin_v0.4.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.45`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + } + ] + } + }, + { + "version": "0.4.0", + "tag": "@rushstack/webpack5-localization-plugin_v0.4.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.44`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.55.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + } + ] + } + }, + { + "version": "0.3.0", + "tag": "@rushstack/webpack5-localization-plugin_v0.3.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.43`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `3.54.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/webpack5-localization-plugin_v0.2.4", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.42`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + } + ] + } + }, + { + "version": "0.2.3", + "tag": "@rushstack/webpack5-localization-plugin_v0.2.3", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.41`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + } + ] + } + }, + { + "version": "0.2.2", + "tag": "@rushstack/webpack5-localization-plugin_v0.2.2", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.40`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + } + ] + } + }, + { + "version": "0.2.1", + "tag": "@rushstack/webpack5-localization-plugin_v0.2.1", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.8.39`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + } + ] + } + }, { "version": "0.2.0", "tag": "@rushstack/webpack5-localization-plugin_v0.2.0", diff --git a/webpack/webpack5-localization-plugin/CHANGELOG.md b/webpack/webpack5-localization-plugin/CHANGELOG.md index 2c27b22c94f..0fb2bbda55e 100644 --- a/webpack/webpack5-localization-plugin/CHANGELOG.md +++ b/webpack/webpack5-localization-plugin/CHANGELOG.md @@ -1,6 +1,59 @@ # Change Log - @rushstack/webpack5-localization-plugin -This log was last generated on Tue, 20 Dec 2022 21:56:32 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 0.4.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 0.4.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 0.4.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 0.4.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 0.3.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 0.2.4 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 0.2.3 +Thu, 26 Jan 2023 02:55:10 GMT + +### Patches + +- Upgrade to webpack 5.75.0 + +## 0.2.2 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 0.2.1 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 0.2.0 Tue, 20 Dec 2022 21:56:32 GMT diff --git a/webpack/webpack5-localization-plugin/config/api-extractor.json b/webpack/webpack5-localization-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/webpack5-localization-plugin/config/api-extractor.json +++ b/webpack/webpack5-localization-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/webpack5-localization-plugin/package.json b/webpack/webpack5-localization-plugin/package.json index 6ea4096ba59..36c7a726adb 100644 --- a/webpack/webpack5-localization-plugin/package.json +++ b/webpack/webpack5-localization-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack5-localization-plugin", - "version": "0.2.0", + "version": "0.4.3", "description": "This plugin facilitates localization with Webpack.", "main": "lib/index.js", "typings": "dist/webpack5-localization-plugin.d.ts", @@ -16,18 +16,25 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "webpack": "^5.68.0" + "webpack": "^5.68.0", + "@types/node": "*" }, "dependencies": { "@rushstack/localization-utilities": "workspace:*", - "@rushstack/node-core-library": "workspace:*", - "@types/node": "12.20.24" + "@rushstack/node-core-library": "workspace:*" }, "devDependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "memfs": "3.4.3", - "webpack": "~5.68.0" + "webpack": "~5.75.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } } diff --git a/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedAsyncDynamic.test.ts.snap b/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedAsyncDynamic.test.ts.snap index 1fced211c34..88d98da64ac 100644 --- a/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedAsyncDynamic.test.ts.snap +++ b/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedAsyncDynamic.test.ts.snap @@ -173,8 +173,7 @@ const strings2_resjson_namespaceObject = JSON.parse('{\\"P\\":\\"some random tra /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); diff --git a/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedRuntime.test.ts.snap b/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedRuntime.test.ts.snap index e2cc5b2402a..2f003fc794c 100644 --- a/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedRuntime.test.ts.snap +++ b/webpack/webpack5-localization-plugin/src/test/__snapshots__/LocalizedRuntime.test.ts.snap @@ -164,8 +164,7 @@ const strings2_resjson_strings = {\\"another\\":\\"some random translation\\"}; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); @@ -406,8 +405,7 @@ __webpack_require__.e(/* import() | async */ 931).then(__webpack_require__.bind( /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); diff --git a/webpack/webpack5-localization-plugin/src/test/__snapshots__/MixedAsyncDynamic.test.ts.snap b/webpack/webpack5-localization-plugin/src/test/__snapshots__/MixedAsyncDynamic.test.ts.snap index 322812db577..01d056ec8ef 100644 --- a/webpack/webpack5-localization-plugin/src/test/__snapshots__/MixedAsyncDynamic.test.ts.snap +++ b/webpack/webpack5-localization-plugin/src/test/__snapshots__/MixedAsyncDynamic.test.ts.snap @@ -216,8 +216,7 @@ const strings2_loc_strings = {\\"another\\":\\"some random translation\\"}; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); diff --git a/webpack/webpack5-localization-plugin/src/test/__snapshots__/NoLocalizedFiles.test.ts.snap b/webpack/webpack5-localization-plugin/src/test/__snapshots__/NoLocalizedFiles.test.ts.snap index ab5b564e53c..6306a8b12f6 100644 --- a/webpack/webpack5-localization-plugin/src/test/__snapshots__/NoLocalizedFiles.test.ts.snap +++ b/webpack/webpack5-localization-plugin/src/test/__snapshots__/NoLocalizedFiles.test.ts.snap @@ -147,8 +147,7 @@ function foo() { console.log('foo'); } /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); diff --git a/webpack/webpack5-module-minifier-plugin/CHANGELOG.json b/webpack/webpack5-module-minifier-plugin/CHANGELOG.json index 2643cf37118..6dbf225e9d1 100644 --- a/webpack/webpack5-module-minifier-plugin/CHANGELOG.json +++ b/webpack/webpack5-module-minifier-plugin/CHANGELOG.json @@ -1,6 +1,257 @@ { "name": "@rushstack/webpack5-module-minifier-plugin", "entries": [ + { + "version": "5.3.3", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.3.3", + "date": "Sat, 18 Mar 2023 00:20:56 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.50.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.3.2", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.3.2", + "date": "Fri, 10 Feb 2023 01:18:51 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `3.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.3.1", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.3.1", + "date": "Sun, 05 Feb 2023 03:02:02 GMT", + "comments": { + "patch": [ + { + "comment": "Change the peer dependency selector on `@types/node` to a wildcard (`*`)." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.3`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.3.0", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.3.0", + "date": "Wed, 01 Feb 2023 02:16:34 GMT", + "comments": { + "minor": [ + { + "comment": "Bump @types/node peerDependency to ^14.18.36." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.2`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.2.0", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.2.0", + "date": "Mon, 30 Jan 2023 16:22:30 GMT", + "comments": { + "minor": [ + { + "comment": "Move the @types/node dependency to an optional peerDependency." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.1`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.2.0`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.1.49", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.1.49", + "date": "Mon, 30 Jan 2023 00:55:44 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.48`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.12.0`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.49`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.1.48", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.1.48", + "date": "Sat, 28 Jan 2023 01:22:02 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.48`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.1.47", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.1.47", + "date": "Thu, 26 Jan 2023 02:55:10 GMT", + "comments": { + "patch": [ + { + "comment": "Upgrade to webpack 5.75.0" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.47`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.14`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.47`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.1.46", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.1.46", + "date": "Wed, 25 Jan 2023 07:26:55 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.46`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.13`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.46`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, + { + "version": "5.1.45", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.1.45", + "date": "Wed, 18 Jan 2023 22:44:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.1.45`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `0.49.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `1.11.12`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.1.45`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `*`" + } + ] + } + }, { "version": "5.1.44", "tag": "@rushstack/webpack5-module-minifier-plugin_v5.1.44", diff --git a/webpack/webpack5-module-minifier-plugin/CHANGELOG.md b/webpack/webpack5-module-minifier-plugin/CHANGELOG.md index 77e16cc8953..db1721d1e6a 100644 --- a/webpack/webpack5-module-minifier-plugin/CHANGELOG.md +++ b/webpack/webpack5-module-minifier-plugin/CHANGELOG.md @@ -1,6 +1,64 @@ # Change Log - @rushstack/webpack5-module-minifier-plugin -This log was last generated on Tue, 20 Dec 2022 01:18:22 GMT and should not be manually modified. +This log was last generated on Sat, 18 Mar 2023 00:20:56 GMT and should not be manually modified. + +## 5.3.3 +Sat, 18 Mar 2023 00:20:56 GMT + +_Version update only_ + +## 5.3.2 +Fri, 10 Feb 2023 01:18:51 GMT + +_Version update only_ + +## 5.3.1 +Sun, 05 Feb 2023 03:02:02 GMT + +### Patches + +- Change the peer dependency selector on `@types/node` to a wildcard (`*`). + +## 5.3.0 +Wed, 01 Feb 2023 02:16:34 GMT + +### Minor changes + +- Bump @types/node peerDependency to ^14.18.36. + +## 5.2.0 +Mon, 30 Jan 2023 16:22:30 GMT + +### Minor changes + +- Move the @types/node dependency to an optional peerDependency. + +## 5.1.49 +Mon, 30 Jan 2023 00:55:44 GMT + +_Version update only_ + +## 5.1.48 +Sat, 28 Jan 2023 01:22:02 GMT + +_Version update only_ + +## 5.1.47 +Thu, 26 Jan 2023 02:55:10 GMT + +### Patches + +- Upgrade to webpack 5.75.0 + +## 5.1.46 +Wed, 25 Jan 2023 07:26:55 GMT + +_Version update only_ + +## 5.1.45 +Wed, 18 Jan 2023 22:44:12 GMT + +_Version update only_ ## 5.1.44 Tue, 20 Dec 2022 01:18:22 GMT diff --git a/webpack/webpack5-module-minifier-plugin/config/api-extractor.json b/webpack/webpack5-module-minifier-plugin/config/api-extractor.json index 996e271d3dd..fba8a2992f6 100644 --- a/webpack/webpack5-module-minifier-plugin/config/api-extractor.json +++ b/webpack/webpack5-module-minifier-plugin/config/api-extractor.json @@ -9,7 +9,7 @@ }, "docModel": { - "enabled": true, + "enabled": false, "apiJsonFilePath": "../../../common/temp/api/.api.json" }, diff --git a/webpack/webpack5-module-minifier-plugin/package.json b/webpack/webpack5-module-minifier-plugin/package.json index 74fbd9ed0f4..249b989dd5b 100644 --- a/webpack/webpack5-module-minifier-plugin/package.json +++ b/webpack/webpack5-module-minifier-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack5-module-minifier-plugin", - "version": "5.1.44", + "version": "5.3.3", "description": "This plugin splits minification of webpack compilations into smaller units.", "main": "lib/index.js", "typings": "dist/webpack5-module-minifier-plugin.d.ts", @@ -20,11 +20,11 @@ }, "peerDependencies": { "@rushstack/module-minifier": "*", - "webpack": "^5.68.0" + "webpack": "^5.68.0", + "@types/node": "*" }, "dependencies": { "@rushstack/worker-pool": "workspace:*", - "@types/node": "12.20.24", "@types/tapable": "1.0.6", "@types/estree": "0.0.50", "tapable": "2.2.1" @@ -34,9 +34,15 @@ "@rushstack/heft": "workspace:*", "@rushstack/heft-node-rig": "workspace:*", "@rushstack/module-minifier": "workspace:*", - "@types/estree": "0.0.50", + "@types/heft-jest": "1.0.1", + "@types/node": "14.18.36", "memfs": "3.4.3", - "webpack": "~5.68.0" + "webpack": "~5.75.0" }, - "sideEffects": false + "sideEffects": false, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } } diff --git a/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/AmdExternals.test.ts.snap b/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/AmdExternals.test.ts.snap index 6bdddae8a43..d29915d687f 100644 --- a/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/AmdExternals.test.ts.snap +++ b/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/AmdExternals.test.ts.snap @@ -35,7 +35,7 @@ function foo() { bar__WEBPACK_IMPORTED_MODULE_0___default().a(); baz__WEBPACK_IM // End Asset", "/release/async.js.LICENSE.txt": "// @license MIT ", - "/release/main.js": "// Begin Asset Hash=f42aafa7963204c463a12f082933bf799ffe3fd0f1f0d97c21edebc823cc70c7 + "/release/main.js": "// Begin Asset Hash=e27e1ab4650176726943ebe6738ed1d860bdb2fabfb54b39ada68898ca903312 define([\\"bar\\",\\"baz\\"], (__WEBPACK_EXTERNAL_MODULE__791__, __WEBPACK_EXTERNAL_MODULE__506__) => { return /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ @@ -185,8 +185,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__506__; /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); diff --git a/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/MultipleRuntimes.test.ts.snap b/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/MultipleRuntimes.test.ts.snap index 97e27f10183..05750a983b7 100644 --- a/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/MultipleRuntimes.test.ts.snap +++ b/webpack/webpack5-module-minifier-plugin/src/test/__snapshots__/MultipleRuntimes.test.ts.snap @@ -96,7 +96,7 @@ function a2() { console.log('async-2'); } "/release/async-2.js.LICENSE.txt": "// @license BAZ // @license MIT ", - "/release/entry1.js": "// Begin Asset Hash=c996a1acfe7a5c08cedd48b71f07127db18d3edb374b4029ea1f52b5f3d91046 + "/release/entry1.js": "// Begin Asset Hash=9b2f2c0d54fbb3ce1ede4408a8968452e80e92d384220ca8c3c87c535c02237b /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({}); /************************************************************************/ @@ -216,8 +216,7 @@ function a2() { console.log('async-2'); } /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload); @@ -355,7 +354,7 @@ __webpack_require__.e(/* import() | async-1 */ 842).then(__webpack_require__.bin /******/ })() ; // End Asset", - "/release/entry2.js": "// Begin Asset Hash=d9cd061f467e4700fec1af86a474a67c4d7365ee55f0de51449a8822cf4cd44f + "/release/entry2.js": "// Begin Asset Hash=b6b2dec55f1385016da9824761fd9d3624d5835eb8e6178c678910e1e84f25b0 /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({}); /************************************************************************/ @@ -475,8 +474,7 @@ __webpack_require__.e(/* import() | async-1 */ 842).then(__webpack_require__.bin /******/ script.parentNode && script.parentNode.removeChild(script); /******/ doneFns && doneFns.forEach((fn) => (fn(event))); /******/ if(prev) return prev(event); -/******/ } -/******/ ; +/******/ }; /******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); /******/ script.onerror = onScriptComplete.bind(null, script.onerror); /******/ script.onload = onScriptComplete.bind(null, script.onload);