From 59111cdb3d603ab319efdf72a60e9a065b30629b Mon Sep 17 00:00:00 2001 From: Simon Chan <1330321+yume-chan@users.noreply.github.com> Date: Sun, 7 Jul 2024 15:13:42 +0800 Subject: [PATCH] chore: replace rush with pnpm workspace and changesets --- .changeset/README.md | 8 + .changeset/config.json | 19 + codecov.yml | 2 +- common/config/rush/.npmrc | 22 - common/config/rush/.npmrc-publish | 21 - common/config/rush/.pnpmfile.cjs | 38 - common/config/rush/artifactory.json | 85 -- common/config/rush/build-cache.json | 84 -- common/config/rush/command-line.json | 342 -------- common/config/rush/common-versions.json | 62 -- common/config/rush/experiments.json | 32 - common/config/rush/pnpm-config.json | 7 - common/config/rush/repo-state.json | 5 - common/config/rush/version-policies.json | 95 -- common/git-hooks/commit-msg.sample | 25 - common/scripts/install-run-rush-pnpm.js | 31 - common/scripts/install-run-rush.js | 218 ----- common/scripts/install-run-rushx.js | 31 - common/scripts/install-run.js | 730 ---------------- package.json | 12 + .../rush/pnpm-lock.yaml => pnpm-lock.yaml | 815 +++++++++++++++--- pnpm-workspace.yaml | 4 + rush.json | 457 ---------- toolchain/eslint-config/package.json | 1 + toolchain/tsconfig/package.json | 1 + 25 files changed, 735 insertions(+), 2412 deletions(-) create mode 100644 .changeset/README.md create mode 100644 .changeset/config.json delete mode 100644 common/config/rush/.npmrc delete mode 100644 common/config/rush/.npmrc-publish delete mode 100644 common/config/rush/.pnpmfile.cjs delete mode 100644 common/config/rush/artifactory.json delete mode 100644 common/config/rush/build-cache.json delete mode 100644 common/config/rush/command-line.json delete mode 100644 common/config/rush/common-versions.json delete mode 100644 common/config/rush/experiments.json delete mode 100644 common/config/rush/pnpm-config.json delete mode 100644 common/config/rush/repo-state.json delete mode 100644 common/config/rush/version-policies.json delete mode 100644 common/git-hooks/commit-msg.sample delete mode 100644 common/scripts/install-run-rush-pnpm.js delete mode 100644 common/scripts/install-run-rush.js delete mode 100644 common/scripts/install-run-rushx.js delete mode 100644 common/scripts/install-run.js create mode 100644 package.json rename common/config/rush/pnpm-lock.yaml => pnpm-lock.yaml (86%) create mode 100644 pnpm-workspace.yaml delete mode 100644 rush.json diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 00000000..e5b6d8d6 --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..cc900224 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.2/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [ + [ + "**" + ] + ], + "access": "public", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [], + "privatePackages": { + "version": false, + "tag": false + } +} diff --git a/codecov.yml b/codecov.yml index 78750f61..3364c4a4 100644 --- a/codecov.yml +++ b/codecov.yml @@ -1,7 +1,7 @@ coverage: status: project: - default: off + default: false struct: target: 80% flags: diff --git a/common/config/rush/.npmrc b/common/config/rush/.npmrc deleted file mode 100644 index b902e270..00000000 --- a/common/config/rush/.npmrc +++ /dev/null @@ -1,22 +0,0 @@ -# Rush uses this file to configure the NPM package registry during installation. It is applicable -# to PNPM, NPM, and Yarn package managers. It is used by operations such as "rush install", -# "rush update", and the "install-run.js" scripts. -# -# NOTE: The "rush publish" command uses .npmrc-publish instead. -# -# Before invoking the package manager, Rush will copy this file to the folder where installation -# is performed. The copied file will omit any config lines that reference environment variables -# that are undefined in that session; this avoids problems that would otherwise result due to -# a missing variable being replaced by an empty string. -# -# * * * SECURITY WARNING * * * -# -# It is NOT recommended to store authentication tokens in a text file on a lab machine, because -# other unrelated processes may be able to read the file. Also, the file may persist indefinitely, -# for example if the machine loses power. A safer practice is to pass the token via an -# environment variable, which can be referenced from .npmrc using ${} expansion. For example: -# -# //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} -# -registry=https://registry.npmjs.org/ -always-auth=false diff --git a/common/config/rush/.npmrc-publish b/common/config/rush/.npmrc-publish deleted file mode 100644 index db3ac2c8..00000000 --- a/common/config/rush/.npmrc-publish +++ /dev/null @@ -1,21 +0,0 @@ -# This config file is very similar to common/config/rush/.npmrc, except that .npmrc-publish -# is used by the "rush publish" command, as publishing often involves different credentials -# and registries than other operations. -# -# Before invoking the package manager, Rush will copy this file to "common/temp/publish-home/.npmrc" -# and then temporarily map that folder as the "home directory" for the current user account. -# This enables the same settings to apply for each project folder that gets published. The copied file -# will omit any config lines that reference environment variables that are undefined in that session; -# this avoids problems that would otherwise result due to a missing variable being replaced by -# an empty string. -# -# * * * SECURITY WARNING * * * -# -# It is NOT recommended to store authentication tokens in a text file on a lab machine, because -# other unrelated processes may be able to read the file. Also, the file may persist indefinitely, -# for example if the machine loses power. A safer practice is to pass the token via an -# environment variable, which can be referenced from .npmrc using ${} expansion. For example: -# -# //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} -# -//registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN} diff --git a/common/config/rush/.pnpmfile.cjs b/common/config/rush/.pnpmfile.cjs deleted file mode 100644 index d52bbf53..00000000 --- a/common/config/rush/.pnpmfile.cjs +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -/** - * When using the PNPM package manager, you can use pnpmfile.js to workaround - * dependencies that have mistakes in their package.json file. (This feature is - * functionally similar to Yarn's "resolutions".) - * - * For details, see the PNPM documentation: - * https://pnpm.js.org/docs/en/hooks.html - * - * IMPORTANT: SINCE THIS FILE CONTAINS EXECUTABLE CODE, MODIFYING IT IS LIKELY TO INVALIDATE - * ANY CACHED DEPENDENCY ANALYSIS. After any modification to pnpmfile.js, it's recommended to run - * "rush update --full" so that PNPM will recalculate all version selections. - */ -module.exports = { - hooks: { - readPackage - } -}; - -/** - * This hook is invoked during installation before a package's dependencies - * are selected. - * The `packageJson` parameter is the deserialized package.json - * contents for the package that is about to be installed. - * The `context` parameter provides a log() function. - * The return value is the updated object. - */ -function readPackage(packageJson, context) { - - // // The karma types have a missing dependency on typings from the log4js package. - // if (packageJson.name === '@types/karma') { - // context.log('Fixed up dependencies for @types/karma'); - // packageJson.dependencies['log4js'] = '0.6.38'; - // } - - return packageJson; -} diff --git a/common/config/rush/artifactory.json b/common/config/rush/artifactory.json deleted file mode 100644 index 65f7da00..00000000 --- a/common/config/rush/artifactory.json +++ /dev/null @@ -1,85 +0,0 @@ -/** - * This configuration file manages Rush integration with JFrog Artifactory services. - * More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/artifactory.schema.json", - - "packageRegistry": { - /** - * (Required) Set this to "true" to enable Rush to manage tokens for an Artifactory NPM registry. - * When enabled, "rush install" will automatically detect when the user's ~/.npmrc - * authentication token is missing or expired. And "rush setup" will prompt the user to - * renew their token. - * - * The default value is false. - */ - "enabled": false, - - /** - * (Required) Specify the URL of your NPM registry. This is the same URL that appears in - * your .npmrc file. It should look something like this example: - * - * https://your-company.jfrog.io/your-project/api/npm/npm-private/ - */ - "registryUrl": "", - - /** - * A list of custom strings that "rush setup" should add to the user's ~/.npmrc file at the time - * when the token is updated. This could be used for example to configure the company registry - * to be used whenever NPM is invoked as a standalone command (but it's not needed for Rush - * operations like "rush add" and "rush install", which get their mappings from the monorepo's - * common/config/rush/.npmrc file). - * - * NOTE: The ~/.npmrc settings are global for the user account on a given machine, so be careful - * about adding settings that may interfere with other work outside the monorepo. - */ - "userNpmrcLinesToAdd": [ - // "@example:registry=https://your-company.jfrog.io/your-project/api/npm/npm-private/" - ], - - /** - * (Required) Specifies the URL of the Artifactory control panel where the user can generate - * an API key. This URL is printed after the "visitWebsite" message. - * It should look something like this example: https://your-company.jfrog.io/ - * Specify an empty string to suppress this line entirely. - */ - "artifactoryWebsiteUrl": "", - - /** - * These settings allow the "rush setup" interactive prompts to be customized, for - * example with messages specific to your team or configuration. Specify an empty string - * to suppress that message entirely. - */ - "messageOverrides": { - /** - * Overrides the message that normally says: - * "This monorepo consumes packages from an Artifactory private NPM registry." - */ - // "introduction": "", - /** - * Overrides the message that normally says: - * "Please contact the repository maintainers for help with setting up an Artifactory user account." - */ - // "obtainAnAccount": "", - /** - * Overrides the message that normally says: - * "Please open this URL in your web browser:" - * - * The "artifactoryWebsiteUrl" string is printed after this message. - */ - // "visitWebsite": "", - /** - * Overrides the message that normally says: - * "Your user name appears in the upper-right corner of the JFrog website." - */ - // "locateUserName": "", - /** - * Overrides the message that normally says: - * "Click 'Edit Profile' on the JFrog website. Click the 'Generate API Key' - * button if you haven't already done so previously." - */ - // "locateApiKey": "" - } - } -} diff --git a/common/config/rush/build-cache.json b/common/config/rush/build-cache.json deleted file mode 100644 index 9d0a2af2..00000000 --- a/common/config/rush/build-cache.json +++ /dev/null @@ -1,84 +0,0 @@ -/** - * This configuration file manages Rush's build cache feature. - * More documentation is available on the Rush website: https://rushjs.io - */ - { - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/build-cache.schema.json", - - /** - * (Required) EXPERIMENTAL - Set this to true to enable the build cache feature. - * - * See https://rushjs.io/pages/maintainer/build_cache/ for details about this experimental feature. - */ - "buildCacheEnabled": false, - - /** - * (Required) Choose where project build outputs will be cached. - * - * Possible values: "local-only", "azure-blob-storage", "amazon-s3" - */ - "cacheProvider": "local-only", - - /** - * 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:normalized] token. - */ - // "cacheEntryNamePattern": "[projectName:normalized]-[hash]" - - /** - * Use this configuration with "cacheProvider"="azure-blob-storage" - */ - "azureBlobStorageConfiguration": { - /** - * (Required) The name of the the Azure storage account to use for build cache. - */ - // "storageAccountName": "example", - - /** - * (Required) The name of the container in the Azure storage account to use for build cache. - */ - // "storageContainerName": "my-container", - - /** - * The Azure environment the storage account exists in. Defaults to AzurePublicCloud. - * - * Possible values: "AzurePublicCloud", "AzureChina", "AzureGermany", "AzureGovernment" - */ - // "azureEnvironment": "AzurePublicCloud", - - /** - * An optional prefix for cache item blob names. - */ - // "blobPrefix": "my-prefix", - - /** - * If set to true, allow writing to the cache. Defaults to false. - */ - // "isCacheWriteAllowed": true - }, - - /** - * Use this configuration with "cacheProvider"="amazon-s3" - */ - "amazonS3Configuration": { - /** - * (Required) The Amazon S3 region of the bucket to use for build cache (e.g. "us-east-1"). - */ - // "s3Region": "us-east-1", - - /** - * The name of the bucket in Amazon S3 to use for build cache. - */ - // (Required) "s3Bucket": "my-bucket", - - /** - * An optional prefix ("folder") for cache items. - */ - // "s3Prefix": "my-prefix", - - /** - * If set to true, allow writing to the cache. Defaults to false. - */ - // "isCacheWriteAllowed": true - } -} diff --git a/common/config/rush/command-line.json b/common/config/rush/command-line.json deleted file mode 100644 index c803cd7e..00000000 --- a/common/config/rush/command-line.json +++ /dev/null @@ -1,342 +0,0 @@ -/** - * This configuration file defines custom commands for the "rush" command-line. - * More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", - /** - * Custom "commands" introduce new verbs for the command-line. To see the help for these - * example commands, try "rush --help", "rush my-bulk-command --help", or - * "rush my-global-command --help". - */ - "commands": [ - // { - // /** - // * (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). - // * 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. - // * 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). - // * - // * Note that if the "rebuild" command is overridden here, it becomes separated from the "build" command - // * and will call the "rebuild" script instead of the "build" script. - // */ - // "name": "my-bulk-command", - // - // /** - // * (Required) A short summary of the custom command to be shown when printing command line - // * help, e.g. "rush --help". - // */ - // "summary": "Example bulk custom command", - // - // /** - // * A detailed description of the command to be shown when printing command line - // * help (e.g. "rush --help my-command"). - // * If omitted, the "summary" text will be shown instead. - // * - // * 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": "This is an example custom command that runs separately for each project", - // - // /** - // * By default, Rush operations acquire a lock file which prevents multiple commands from executing simultaneously - // * in the same repo folder. (For example, it would be a mistake to run "rush install" and "rush build" at the - // * same time.) If your command makes sense to run concurrently with other operations, - // * set "safeForSimultaneousRushProcesses" to true to disable this protection. - // * - // * In particular, this is needed for custom scripts that invoke other Rush commands. - // */ - // "safeForSimultaneousRushProcesses": false, - // - // /** - // * (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. - // */ - // "enableParallelism": false, - // - // /** - // * Normally projects will be processed according to their dependency order: a given project will not start - // * processing the command until all of its dependencies have completed. This restriction doesn't apply for - // * certain operations, for example a "clean" task that deletes output files. In this case - // * you can set "ignoreDependencyOrder" to true to increase parallelism. - // */ - // "ignoreDependencyOrder": false, - // - // /** - // * Normally Rush requires that each project's package.json has a "scripts" entry matching - // * the custom command name. To disable this check, set "ignoreMissingScript" to true; - // * projects with a missing definition will be skipped. - // */ - // "ignoreMissingScript": false, - // - // /** - // * When invoking shell scripts, Rush uses a heuristic to distinguish errors from warnings: - // * - If the shell script returns a nonzero process exit code, Rush interprets this as "one or more errors". - // * Error output is displayed in red, and it prevents Rush from attempting to process any downstream projects. - // * - If the shell script returns a zero process exit code but writes something to its stderr stream, - // * Rush interprets this as "one or more warnings". Warning output is printed in yellow, but does NOT prevent - // * Rush from processing downstream projects. - // * - // * Thus, warnings do not interfere with local development, but they will cause a CI job to fail, because - // * the Rush process itself returns a nonzero exit code if there are any warnings or errors. This is by design. - // * In an active monorepo, we've found that if you allow any warnings in your master branch, it inadvertently - // * teaches developers to ignore warnings, which quickly leads to a situation where so many "expected" warnings - // * have accumulated that warnings no longer serve any useful purpose. - // * - // * Sometimes a poorly behaved task will write output to stderr even though its operation was successful. - // * In that case, it's strongly recommended to fix the task. However, as a workaround you can set - // * allowWarningsInSuccessfulBuild=true, which causes Rush to return a nonzero exit code for errors only. - // * - // * Note: The default value is false. In Rush 5.7.x and earlier, the default value was true. - // */ - // "allowWarningsInSuccessfulBuild": false, - // - // /** - // * If true then this command will be incremental like the built-in "build" command - // */ - // "incremental": false, - // - // /** - // * (EXPERIMENTAL) Normally Rush terminates after the command finishes. If this option is set to "true" Rush - // * will instead enter a loop where it watches the file system for changes to the selected projects. Whenever a - // * change is detected, the command will be invoked again for the changed project and any selected projects that - // * directly or indirectly depend on it. - // * - // * For details, refer to the website article "Using watch mode". - // */ - // "watchForChanges": false, - // - // /** - // * (EXPERIMENTAL) Disable cache for this action. This may be useful if this command affects state outside of - // * projects' own folders. - // */ - // "disableBuildCache ": false - // }, - // - // { - // /** - // * (Required) Determines the type of custom command. - // * Rush's "global" commands are invoked once for the entire repo. - // */ - // "commandKind": "global", - // - // "name": "my-global-command", - // "summary": "Example global custom command", - // "description": "This is an example custom command that runs once for the entire repo", - // - // "safeForSimultaneousRushProcesses": false, - // - // /** - // * (Required) 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-global-command.js", - // - // /** - // * If your "shellCommand" script depends on NPM packages, the recommended best practice is - // * to make it into a regular Rush project that builds using your normal toolchain. In cases where - // * the command needs to work without first having to run "rush build", the recommended practice - // * is to publish the project to an NPM registry and use common/scripts/install-run.js to launch it. - // * - // * Autoinstallers offer another possibility: They are folders under "common/autoinstallers" with - // * a package.json file and shrinkwrap file. Rush will automatically invoke the package manager to - // * install these dependencies before an associated command is invoked. Autoinstallers have the - // * advantage that they work even in a branch where "rush install" is broken, which makes them a - // * good solution for Git hook scripts. But they have the disadvantages of not being buildable - // * projects, and of increasing the overall installation footprint for your monorepo. - // * - // * The "autoinstallerName" setting must not contain a path and must be a valid NPM package name. - // * For example, the name "my-task" would map to "common/autoinstallers/my-task/package.json", and - // * the "common/autoinstallers/my-task/node_modules/.bin" folder would be added to the shell PATH when - // * invoking the "shellCommand". - // */ - // // "autoinstallerName": "my-task" - // } - { - "commandKind": "bulk", - "name": "build", - "summary": "Builds all projects", - "ignoreMissingScript": true, - "allowWarningsInSuccessfulBuild": true, - "enableParallelism": true, - "incremental": true - }, - { - "commandKind": "bulk", - "name": "test", - "summary": "Run Jest tests in each projects", - "ignoreMissingScript": true, - "allowWarningsInSuccessfulBuild": true, - "enableParallelism": true, - "incremental": true, - "safeForSimultaneousRushProcesses": true - }, - { - "commandKind": "bulk", - "name": "lint", - "summary": "Run ESLint in each projects", - "ignoreMissingScript": true, - "allowWarningsInSuccessfulBuild": true, - "enableParallelism": true, - // "incremental": true, - "safeForSimultaneousRushProcesses": true - }, - { - "commandKind": "bulk", - "name": "build:watch", - "summary": "Watch all libraries", - "ignoreMissingScript": true, - "enableParallelism": true, - "incremental": true, - "watchForChanges": true - }, - { - "commandKind": "bulk", - "name": "postinstall", - "summary": "Run all postinstall scripts", - "ignoreMissingScript": true, - "enableParallelism": true, - "ignoreDependencyOrder": true, - "safeForSimultaneousRushProcesses": true - } - ], - /** - * Custom "parameters" introduce new parameters for specified Rush command-line commands. - * For example, you might define a "--production" parameter for the "rush build" command. - */ - "parameters": [ - // { - // /** - // * (Required) Determines the type of custom parameter. - // * A "flag" is a custom command-line parameter whose presence acts as an on/off switch. - // */ - // "parameterKind": "flag", - // - // /** - // * (Required) The long name of the parameter. It must be lower-case and use dash delimiters. - // */ - // "longName": "--my-flag", - // - // /** - // * An optional alternative short name for the parameter. It must be a dash followed by a single - // * lower-case or upper-case letter, which is case-sensitive. - // * - // * NOTE: The Rush developers recommend that automation scripts should always use the long name - // * to improve readability. The short name is only intended as a convenience for humans. - // * The alphabet letters run out quickly, and are difficult to memorize, so *only* use - // * a short name if you expect the parameter to be needed very often in everyday operations. - // */ - // "shortName": "-m", - // - // /** - // * (Required) A long description to 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": "A custom flag parameter that is passed to the scripts that are invoked when building projects", - // - // /** - // * (Required) A list of custom commands and/or built-in Rush commands that this parameter may - // * be used with. The parameter will be appended to the shell command that Rush invokes. - // */ - // "associatedCommands": ["build", "rebuild"] - // }, - // - // { - // /** - // * (Required) Determines the type of custom parameter. - // * A "string" is a custom command-line parameter whose value is a simple text string. - // */ - // "parameterKind": "string", - // "longName": "--my-string", - // "description": "A custom string parameter for the \"my-global-command\" custom command", - // - // "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", - // - // /** - // * If true, this parameter must be included with the command. The default is false. - // */ - // "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. - // */ - // "parameterKind": "choice", - // "longName": "--my-choice", - // "description": "A custom choice parameter for the \"my-global-command\" custom command", - // - // "associatedCommands": ["my-global-command"], - // - // /** - // * If true, this parameter must be included with the command. The default is false. - // */ - // "required": false, - // - // /** - // * 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. - // */ - // "defaultValue": "vanilla", - // - // /** - // * (Required) A list of alternative argument values that can be chosen for this parameter. - // */ - // "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 (the default)" - // }, - // - // { - // "name": "chocolate", - // "description": "Use the chocolate flavor" - // }, - // - // { - // "name": "strawberry", - // "description": "Use the strawberry flavor" - // } - // ] - // } - ] -} diff --git a/common/config/rush/common-versions.json b/common/config/rush/common-versions.json deleted file mode 100644 index 1df9ccf9..00000000 --- a/common/config/rush/common-versions.json +++ /dev/null @@ -1,62 +0,0 @@ -/** - * This configuration file specifies NPM dependency version selections that affect all projects - * in a Rush repo. More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$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. - * - * The "preferredVersions" value can be any SemVer range specifier (e.g. "~1.2.3"). Rush injects these values into - * the "dependencies" field of the top-level common/temp/package.json, which influences how the package manager - * will calculate versions. The specific effect depends on your package manager. Generally it will have no - * effect on an incompatible or already constrained SemVer range. If you are using PNPM, similar effects can be - * achieved using the pnpmfile.js hook. See the Rush documentation for more details. - * - * After modifying this field, it's recommended to run "rush update --full" so that the package manager - * will recalculate all version selections. - */ - "preferredVersions": { - /** - * When someone asks for "^1.0.0" make sure they get "1.2.3" when working in this repo, - * instead of the latest version. - */ - // "some-library": "1.2.3" - }, - - /** - * 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 - * package managers, this tended to reduce duplication of indirect dependencies. However, it can sometimes cause - * trouble for indirect dependencies with incompatible peerDependencies ranges. - * - * The default value is true. If you're encountering installation errors related to peer dependencies, - * it's recommended to set this to false. - * - * After modifying this field, it's recommended to run "rush update --full" so that the package manager - * 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. - * The allowedAlternativeVersions table allows you to list other SemVer ranges that will be - * accepted by "rush check" for a given dependency. - * - * IMPORTANT: THIS TABLE IS FOR *ADDITIONAL* VERSION RANGES THAT ARE ALTERNATIVES TO THE - * USUAL VERSION (WHICH IS INFERRED BY LOOKING AT ALL PROJECTS IN THE REPO). - * This design avoids unnecessary churn in this file. - */ - "allowedAlternativeVersions": { - /** - * For example, allow some projects to use an older TypeScript compiler - * (in addition to whatever "usual" version is being used by other projects in the repo): - */ - // "typescript": [ - // "~2.4.0" - // ] - } -} diff --git a/common/config/rush/experiments.json b/common/config/rush/experiments.json deleted file mode 100644 index c00e3470..00000000 --- a/common/config/rush/experiments.json +++ /dev/null @@ -1,32 +0,0 @@ -/** - * This configuration file allows repo maintainers to enable and disable experimental - * Rush features. More documentation is available on the Rush website: https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/experiments.schema.json", - - /** - * By default, 'rush install' passes --no-prefer-frozen-lockfile to 'pnpm install'. - * Set this option to true to pass '--frozen-lockfile' instead for faster installs. - */ - // "usePnpmFrozenLockfileForRushInstall": true, - - /** - * By default, 'rush update' passes --no-prefer-frozen-lockfile to 'pnpm install'. - * Set this option to true to pass '--prefer-frozen-lockfile' instead to minimize shrinkwrap changes. - */ - // "usePnpmPreferFrozenLockfileForRushUpdate": true, - - /** - * If using the 'preventManualShrinkwrapChanges' option, restricts the hash to only include the layout of external dependencies. - * Used to allow links between workspace projects or the addition/removal of references to existing dependency versions to not - * cause hash changes. - */ - // "omitImportersFromPreventManualShrinkwrapChanges": true, - - /** - * If true, the chmod field in temporary project tar headers will not be normalized. - * This normalization can help ensure consistent tarball integrity across platforms. - */ - // "noChmodFieldInTarHeaderNormalization": true -} diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json deleted file mode 100644 index ff8b0dba..00000000 --- a/common/config/rush/pnpm-config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/microsoft/rushstack/main/libraries/rush-lib/src/schemas/pnpm-config.schema.json", - "pnpmStore": "global", - "strictPeerDependencies": false, - "useWorkspaces": true, - "preventManualShrinkwrapChanges": true -} diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json deleted file mode 100644 index f6dce227..00000000 --- a/common/config/rush/repo-state.json +++ /dev/null @@ -1,5 +0,0 @@ -// DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. -{ - "pnpmShrinkwrapHash": "da24e0f47f73039e8b8115a53b30d831ec58b808", - "preferredVersionsHash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f" -} diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json deleted file mode 100644 index 3e8defd8..00000000 --- a/common/config/rush/version-policies.json +++ /dev/null @@ -1,95 +0,0 @@ -/** - * This is configuration file is used for advanced publishing configurations with Rush. - * More documentation is available on the Rush website: https://rushjs.io - */ -/** - * A list of version policy definitions. A "version policy" is a custom package versioning - * strategy that affects "rush change", "rush version", and "rush publish". The strategy applies - * to a set of projects that are specified using the "versionPolicyName" field in rush.json. - */ -[ - // { - // /** - // * (Required) Indicates the kind of version policy being defined ("lockStepVersion" or "individualVersion"). - // * - // * The "lockStepVersion" mode specifies that the projects will use "lock-step versioning". This - // * strategy is appropriate for a set of packages that act as selectable components of a - // * unified product. The entire set of packages are always published together, and always share - // * the same NPM version number. When the packages depend on other packages in the set, the - // * SemVer range is usually restricted to a single version. - // */ - // "definitionName": "lockStepVersion", - // - // /** - // * (Required) The name that will be used for the "versionPolicyName" field in rush.json. - // * This name is also used command-line parameters such as "--version-policy" - // * and "--to-version-policy". - // */ - // "policyName": "MyBigFramework", - // - // /** - // * (Required) The current version. All packages belonging to the set should have this version - // * in the current branch. When bumping versions, Rush uses this to determine the next version. - // * (The "version" field in package.json is NOT considered.) - // */ - // "version": "1.0.0", - // - // /** - // * (Required) The type of bump that will be performed when publishing the next release. - // * When creating a release branch in Git, this field should be updated according to the - // * type of release. - // * - // * Valid values are: "prerelease", "release", "minor", "patch", "major" - // */ - // "nextBump": "prerelease", - // - // /** - // * (Optional) If specified, all packages in the set share a common CHANGELOG.md file. - // * This file is stored with the specified "main" project, which must be a member of the set. - // * - // * If this field is omitted, then a separate CHANGELOG.md file will be maintained for each - // * package in the set. - // */ - // "mainProject": "my-app" - // }, - // - // { - // /** - // * (Required) Indicates the kind of version policy being defined ("lockStepVersion" or "individualVersion"). - // * - // * The "individualVersion" mode specifies that the projects will use "individual versioning". - // * This is the typical NPM model where each package has an independent version number - // * and CHANGELOG.md file. Although a single CI definition is responsible for publishing the - // * packages, they otherwise don't have any special relationship. The version bumping will - // * depend on how developers answer the "rush change" questions for each package that - // * is changed. - // */ - // "definitionName": "individualVersion", - // - // "policyName": "MyRandomLibraries", - // - // /** - // * (Optional) This can be used to enforce that all packages in the set must share a common - // * major version number, e.g. because they are from the same major release branch. - // * It can also be used to discourage people from accidentally making "MAJOR" SemVer changes - // * inappropriately. The minor/patch version parts will be bumped independently according - // * to the types of changes made to each project, according to the "rush change" command. - // */ - // "lockedMajor": 3, - // - // /** - // * (Optional) When publishing is managed by Rush, by default the "rush change" command will - // * request changes for any projects that are modified by a pull request. These change entries - // * will produce a CHANGELOG.md file. If you author your CHANGELOG.md manually or announce updates - // * in some other way, set "exemptFromRushChange" to true to tell "rush change" to ignore the projects - // * belonging to this version policy. - // */ - // "exemptFromRushChange": false - // } - { - "definitionName": "lockStepVersion", - "policyName": "adb", - "version": "0.0.24", - "nextBump": "patch" - } -] diff --git a/common/git-hooks/commit-msg.sample b/common/git-hooks/commit-msg.sample deleted file mode 100644 index 59cacb80..00000000 --- a/common/git-hooks/commit-msg.sample +++ /dev/null @@ -1,25 +0,0 @@ -#!/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/scripts/install-run-rush-pnpm.js b/common/scripts/install-run-rush-pnpm.js deleted file mode 100644 index 2356649f..00000000 --- a/common/scripts/install-run-rush-pnpm.js +++ /dev/null @@ -1,31 +0,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 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/ -// -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for details. - -/******/ (() => { // 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 LICENSE in the project root 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 deleted file mode 100644 index 9676fc71..00000000 --- a/common/scripts/install-run-rush.js +++ /dev/null @@ -1,218 +0,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 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 it. -// An example usage would be: -// -// node common/scripts/install-run-rush.js install -// -// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ -// -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for details. - -/******/ (() => { // 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 LICENSE in the project root for license information. -/* eslint-disable no-console */ - - -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 = findRushJsonFolder(); - const rushJsonPath = path__WEBPACK_IMPORTED_MODULE_0__.join(rushJsonFolder, RUSH_JSON_FILENAME); - try { - 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.+\-]+)\"/); - return rushJsonMatches[1]; - } - catch (e) { - throw new Error(`Unable to determine the required version of Rush from ${RUSH_JSON_FILENAME} (${rushJsonFolder}). ` + - `The 'rushVersion' field is either not assigned in ${RUSH_JSON_FILENAME} or was specified ` + - '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__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'); - } - let commandFound = false; - let logger = { info: console.log, error: console.error }; - for (const arg of packageBinArgs) { - if (arg === '-q' || arg === '--quiet') { - // The -q/--quiet flag is supported by both `rush` and `rushx`, and will suppress - // any normal informational/diagnostic information printed during startup. - // - // To maintain the same user experience, the install-run* scripts pass along this - // flag but also use it to suppress any diagnostic information normally printed - // to stdout. - logger = { - info: () => { }, - error: console.error - }; - } - else if (!arg.startsWith('-') || arg === '-h' || arg === '--help') { - // We either found something that looks like a command (i.e. - doesn't start with a "-"), - // or we found the -h/--help flag, which can be run without a command - commandFound = true; - } - } - if (!commandFound) { - console.log(`Usage: ${scriptName} [args...]`); - 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 { - console.log(`Example: ${scriptName} custom-command`); - } - process.exit(1); - } - runWithErrorAndStatusCode(logger, () => { - const version = _getRushVersion(logger); - logger.info(`The ${RUSH_JSON_FILENAME} configuration requests Rush version ${version}`); - 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 deleted file mode 100644 index 6581521f..00000000 --- a/common/scripts/install-run-rushx.js +++ /dev/null @@ -1,31 +0,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 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 -// rushx command. -// -// An example usage would be: -// -// node common/scripts/install-run-rushx.js custom-command -// -// For more information, see: https://rushjs.io/pages/maintainer/setup_new_repo/ -// -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for details. - -/******/ (() => { // 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 LICENSE in the project root 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 deleted file mode 100644 index 9f54b3ee..00000000 --- a/common/scripts/install-run.js +++ /dev/null @@ -1,730 +0,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 -// been preinstalled, or may have an unpredictable version. This script will automatically install the specified -// version of the specified tool (if not already installed), and then pass a command-line to it. -// An example usage would be: -// -// 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/ -// -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See the @microsoft/rush package's LICENSE file for details. - -/******/ (() => { // 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 */ "isVariableSetInNpmrcFile": () => (/* binding */ isVariableSetInNpmrcFile), -/* 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 - - -/** - * This function reads the content for given .npmrc file path, and also trims - * unusable lines from the .npmrc file. - * - * @returns - * The text of the the .npmrc. - */ -// create a global _combinedNpmrc for cache purpose -const _combinedNpmrcMap = new Map(); -function _trimNpmrcFile(options) { - const { sourceNpmrcPath, linesToPrepend, linesToAppend } = options; - const combinedNpmrcFromCache = _combinedNpmrcMap.get(sourceNpmrcPath); - if (combinedNpmrcFromCache !== undefined) { - return combinedNpmrcFromCache; - } - let npmrcFileLines = []; - if (linesToPrepend) { - npmrcFileLines.push(...linesToPrepend); - } - if (fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { - npmrcFileLines.push(...fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync(sourceNpmrcPath).toString().split('\n')); - } - if (linesToAppend) { - npmrcFileLines.push(...linesToAppend); - } - npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim()); - const resultLines = []; - // This finds environment variable tokens that look like "${VAR_NAME}" - const expansionRegExp = /\$\{([^\}]+)\}/g; - // Comment lines start with "#" or ";" - const commentRegExp = /^\s*[#;]/; - // Trim out lines that reference environment variables that aren't defined - for (let line of npmrcFileLines) { - let lineShouldBeTrimmed = false; - //remove spaces before or after key and value - line = line - .split('=') - .map((lineToTrim) => lineToTrim.trim()) - .join('='); - // Ignore comment lines - if (!commentRegExp.test(line)) { - const environmentVariables = line.match(expansionRegExp); - if (environmentVariables) { - for (const token of environmentVariables) { - // Remove the leading "${" and the trailing "}" from the token - const environmentVariableName = token.substring(2, token.length - 1); - // Is the environment variable defined? - if (!process.env[environmentVariableName]) { - // No, so trim this line - lineShouldBeTrimmed = true; - break; - } - } - } - } - if (lineShouldBeTrimmed) { - // Example output: - // "; MISSING ENVIRONMENT VARIABLE: //my-registry.com/npm/:_authToken=${MY_AUTH_TOKEN}" - resultLines.push('; MISSING ENVIRONMENT VARIABLE: ' + line); - } - else { - resultLines.push(line); - } - } - const combinedNpmrc = resultLines.join('\n'); - //save the cache - _combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc); - return combinedNpmrc; -} -function _copyAndTrimNpmrcFile(options) { - const { logger, sourceNpmrcPath, targetNpmrcPath, linesToPrepend, linesToAppend } = options; - logger.info(`Transforming ${sourceNpmrcPath}`); // Verbose - logger.info(` --> "${targetNpmrcPath}"`); - const combinedNpmrc = _trimNpmrcFile({ - sourceNpmrcPath, - linesToPrepend, - linesToAppend - }); - fs__WEBPACK_IMPORTED_MODULE_0__.writeFileSync(targetNpmrcPath, combinedNpmrc); - return combinedNpmrc; -} -function syncNpmrc(options) { - const { sourceNpmrcFolder, targetNpmrcFolder, useNpmrcPublish, logger = { - // eslint-disable-next-line no-console - info: console.log, - // eslint-disable-next-line no-console - error: console.error - }, createIfMissing = false, linesToAppend, linesToPrepend } = options; - 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__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath) || createIfMissing) { - // Ensure the target folder exists - if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(targetNpmrcFolder)) { - fs__WEBPACK_IMPORTED_MODULE_0__.mkdirSync(targetNpmrcFolder, { recursive: true }); - } - return _copyAndTrimNpmrcFile({ - sourceNpmrcPath, - targetNpmrcPath, - logger, - linesToAppend, - linesToPrepend - }); - } - 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__WEBPACK_IMPORTED_MODULE_0__.unlinkSync(targetNpmrcPath); - } - } - catch (e) { - throw new Error(`Error syncing .npmrc file: ${e}`); - } -} -function isVariableSetInNpmrcFile(sourceNpmrcFolder, variableKey) { - const sourceNpmrcPath = `${sourceNpmrcFolder}/.npmrc`; - //if .npmrc file does not exist, return false directly - if (!fs__WEBPACK_IMPORTED_MODULE_0__.existsSync(sourceNpmrcPath)) { - return false; - } - const trimmedNpmrcFile = _trimNpmrcFile({ sourceNpmrcPath }); - const variableKeyRegExp = new RegExp(`^${variableKey}=`, 'm'); - return trimmedNpmrcFile.match(variableKeyRegExp) !== null; -} -//# 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 LICENSE in the project root for license information. -/* eslint-disable no-console */ - - - - - -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 - */ -function getNpmPath() { - if (!_npmPath) { - try { - if (os__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32') { - // We're on Windows - 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 = 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__WEBPACK_IMPORTED_MODULE_1__.existsSync(_npmPath)) { - throw new Error('The NPM executable does not exist'); - } - } - return _npmPath; -} -function _ensureFolder(folderPath) { - if (!fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(folderPath)) { - const parentDir = path__WEBPACK_IMPORTED_MODULE_3__.dirname(folderPath); - _ensureFolder(parentDir); - fs__WEBPACK_IMPORTED_MODULE_1__.mkdirSync(folderPath); - } -} -/** - * Create missing directories under the specified base directory, and return the resolved directory. - * - * Does not support "." or ".." path segments. - * Assumes the baseFolder exists. - */ -function _ensureAndJoinPath(baseFolder, ...pathSegments) { - let joinedPath = baseFolder; - try { - for (let pathSegment of pathSegments) { - pathSegment = pathSegment.replace(/[\\\/]/g, '+'); - 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__WEBPACK_IMPORTED_MODULE_3__.join(baseFolder, ...pathSegments)}): ${e}`); - } - return joinedPath; -} -function _getRushTempFolder(rushCommonFolder) { - const rushTempFolder = process.env[RUSH_TEMP_FOLDER_ENV_VARIABLE_NAME]; - if (rushTempFolder !== undefined) { - _ensureFolder(rushTempFolder); - return rushTempFolder; - } - else { - return _ensureAndJoinPath(rushCommonFolder, 'temp'); - } -} -/** - * Compare version strings according to semantic versioning. - * Returns a positive integer if "a" is a later version than "b", - * a negative integer if "b" is later than "a", - * and 0 otherwise. - */ -function _compareVersionStrings(a, b) { - const aParts = a.split(/[.-]/); - const bParts = b.split(/[.-]/); - const numberOfParts = Math.max(aParts.length, bParts.length); - for (let i = 0; i < numberOfParts; i++) { - if (aParts[i] !== bParts[i]) { - return (Number(aParts[i]) || 0) - (Number(bParts[i]) || 0); - } - } - return 0; -} -/** - * Resolve a package specifier to a static version - */ -function _resolvePackageVersion(logger, rushCommonFolder, { name, version }) { - if (!version) { - version = '*'; // If no version is specified, use the latest version - } - if (version.match(/^[a-zA-Z0-9\-\+\.]+$/)) { - // If the version contains only characters that we recognize to be used in static version specifiers, - // pass the version through - return version; - } - else { - // version resolves to - try { - const rushTempFolder = _getRushTempFolder(rushCommonFolder); - const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); - (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)({ - sourceNpmrcFolder, - targetNpmrcFolder: rushTempFolder, - logger - }); - const npmPath = getNpmPath(); - // This returns something that looks like: - // ``` - // [ - // "3.0.0", - // "3.0.1", - // ... - // "3.0.20" - // ] - // ``` - // - // if multiple versions match the selector, or - // - // ``` - // "3.0.0" - // ``` - // - // if only a single version matches. - const npmVersionSpawnResult = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(npmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier', '--json'], { - cwd: rushTempFolder, - stdio: [] - }); - if (npmVersionSpawnResult.status !== 0) { - throw new Error(`"npm view" returned error code ${npmVersionSpawnResult.status}`); - } - const npmViewVersionOutput = npmVersionSpawnResult.stdout.toString(); - const parsedVersionOutput = JSON.parse(npmViewVersionOutput); - const versions = Array.isArray(parsedVersionOutput) - ? parsedVersionOutput - : [parsedVersionOutput]; - let latestVersion = versions[0]; - for (let i = 1; i < versions.length; i++) { - const latestVersionCandidate = versions[i]; - if (_compareVersionStrings(latestVersionCandidate, latestVersion) > 0) { - latestVersion = latestVersionCandidate; - } - } - if (!latestVersion) { - throw new Error('No versions found for the specified version range.'); - } - return latestVersion; - } - catch (e) { - throw new Error(`Unable to resolve version ${version} of package ${name}: ${e}`); - } - } -} -let _rushJsonFolder; -/** - * Find the absolute path to the folder containing rush.json - */ -function findRushJsonFolder() { - if (!_rushJsonFolder) { - let basePath = __dirname; - let tempPath = __dirname; - do { - 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__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_FILENAME}.`); - } - } - return _rushJsonFolder; -} -/** - * Detects if the package in the specified directory is installed - */ -function _isPackageAlreadyInstalled(packageInstallFolder) { - try { - 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__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, lockFilePath) { - try { - 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); - } - 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) { - throw new Error(`Error cleaning the package install folder (${packageInstallFolder}): ${e}`); - } -} -function _createPackageJson(packageInstallFolder, name, version) { - try { - const packageJsonContents = { - name: 'ci-rush', - version: '0.0.0', - dependencies: { - [name]: version - }, - description: "DON'T WARN", - repository: "DON'T WARN", - license: 'MIT' - }; - 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}`); - } -} -/** - * Run "npm install" in the package install folder. - */ -function _installPackage(logger, packageInstallFolder, name, version, command) { - try { - logger.info(`Installing ${name}...`); - const npmPath = getNpmPath(); - 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 ${command}" encountered an error`); - } - logger.info(`Successfully installed ${name}@${version}`); - } - catch (e) { - throw new Error(`Unable to install package: ${e}`); - } -} -/** - * Get the ".bin" path for the package. - */ -function _getBinPath(packageInstallFolder, binName) { - 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__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, lockFilePath = process.env[INSTALL_RUN_LOCKFILE_PATH_VARIABLE]) { - const rushJsonFolder = findRushJsonFolder(); - 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, lockFilePath); - const sourceNpmrcFolder = path__WEBPACK_IMPORTED_MODULE_3__.join(rushCommonFolder, 'config', 'rush'); - (0,_utilities_npmrcUtilities__WEBPACK_IMPORTED_MODULE_4__.syncNpmrc)({ - sourceNpmrcFolder, - targetNpmrcFolder: packageInstallFolder, - logger - }); - _createPackageJson(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('\n' + statusMessage + '\n' + statusMessageLine + '\n'); - const binPath = _getBinPath(packageInstallFolder, packageBinName); - 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 || ''; - let result; - 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__WEBPACK_IMPORTED_MODULE_2__.platform() === 'win32'; - const platformBinPath = shouldUseShell ? `"${binPath}"` : binPath; - 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, - cwd: process.cwd(), - env: process.env - }); - } - finally { - process.env.PATH = originalEnvPath; - } - if (result.status !== null) { - return result.status; - } - else { - throw result.error || new Error('An unknown error occurred.'); - } -} -function runWithErrorAndStatusCode(logger, fn) { - process.exitCode = 1; - try { - const exitCode = fn(); - process.exitCode = exitCode; - } - catch (e) { - logger.error('\n\n' + e.toString() + '\n\n'); - } -} -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__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; - } - if (process.argv.length < 4) { - console.log('Usage: install-run.js @ [args...]'); - console.log('Example: install-run.js qrcode@1.2.2 qrcode https://rushjs.io'); - process.exit(1); - } - const logger = { info: console.log, error: console.error }; - runWithErrorAndStatusCode(logger, () => { - const rushJsonFolder = findRushJsonFolder(); - const rushCommonFolder = _ensureAndJoinPath(rushJsonFolder, 'common'); - const packageSpecifier = _parsePackageSpecifier(rawPackageSpecifier); - const name = packageSpecifier.name; - const version = _resolvePackageVersion(logger, rushCommonFolder, packageSpecifier); - if (packageSpecifier.version !== version) { - console.log(`Resolved to ${name}@${version}`); - } - return installAndRun(logger, name, version, packageBinName, packageBinArgs); - }); -} -_run(); -//# sourceMappingURL=install-run.js.map -})(); - -module.exports = __webpack_exports__; -/******/ })() -; -//# sourceMappingURL=install-run.js.map \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 00000000..52b96b88 --- /dev/null +++ b/package.json @@ -0,0 +1,12 @@ +{ + "name": "@tango-adb/monorepo", + "private": true, + "scripts": { + "build": "pnpm recursive run build", + "test": "pnpm recursive run test", + "lint": "pnpm recursive run lint" + }, + "dependencies": { + "@changesets/cli": "^2.27.7" + } +} diff --git a/common/config/rush/pnpm-lock.yaml b/pnpm-lock.yaml similarity index 86% rename from common/config/rush/pnpm-lock.yaml rename to pnpm-lock.yaml index 46170664..dadbb0f1 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,16 +1,18 @@ lockfileVersion: '9.0' settings: - autoInstallPeers: false + autoInstallPeers: true excludeLinksFromLockfile: false -pnpmfileChecksum: bah4qk2ariqsqdnx47kcwtwinq - importers: - .: {} + .: + dependencies: + '@changesets/cli': + specifier: ^2.27.7 + version: 2.27.7 - ../../apps/cli: + apps/cli: dependencies: '@yume-chan/adb': specifier: workspace:^0.0.24 @@ -33,7 +35,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -42,7 +44,7 @@ importers: version: link:../../toolchain/tsconfig jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -50,7 +52,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/adb: + libraries/adb: dependencies: '@yume-chan/async': specifier: ^2.2.0 @@ -73,7 +75,7 @@ importers: version: 30.0.0-alpha.5 '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -85,7 +87,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -96,7 +98,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/adb-credential-web: + libraries/adb-credential-web: dependencies: '@yume-chan/adb': specifier: workspace:^0.0.24 @@ -115,7 +117,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/adb-daemon-webusb: + libraries/adb-daemon-webusb: dependencies: '@types/w3c-web-usb': specifier: ^1.0.10 @@ -135,7 +137,7 @@ importers: version: 30.0.0-alpha.5 '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -147,7 +149,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -158,7 +160,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/adb-scrcpy: + libraries/adb-scrcpy: dependencies: '@yume-chan/adb': specifier: workspace:^0.0.24 @@ -193,7 +195,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -204,7 +206,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/adb-server-node-tcp: + libraries/adb-server-node-tcp: dependencies: '@yume-chan/adb': specifier: workspace:^0.0.24 @@ -218,7 +220,7 @@ importers: devDependencies: '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -227,7 +229,7 @@ importers: version: link:../../toolchain/tsconfig jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -235,7 +237,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/android-bin: + libraries/android-bin: dependencies: '@yume-chan/adb': specifier: workspace:^0.0.24 @@ -261,7 +263,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -272,7 +274,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/aoa: + libraries/aoa: dependencies: '@types/w3c-web-usb': specifier: ^1.0.10 @@ -288,7 +290,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/event: + libraries/event: dependencies: '@yume-chan/async': specifier: ^2.2.0 @@ -308,7 +310,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -319,7 +321,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/fetch-scrcpy-server: + libraries/fetch-scrcpy-server: dependencies: gh-release-fetch: specifier: ^4.0.3 @@ -327,16 +329,16 @@ importers: devDependencies: '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 - ../../libraries/no-data-view: + libraries/no-data-view: devDependencies: '@jest/globals': specifier: ^30.0.0-alpha.4 version: 30.0.0-alpha.5 '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 '@yume-chan/eslint-config': specifier: workspace:^1.0.0 version: link:../../toolchain/eslint-config @@ -348,7 +350,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -362,7 +364,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/pcm-player: + libraries/pcm-player: devDependencies: '@jest/globals': specifier: ^30.0.0-alpha.4 @@ -381,7 +383,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -392,7 +394,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/scrcpy: + libraries/scrcpy: dependencies: '@yume-chan/async': specifier: ^2.2.0 @@ -421,7 +423,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -432,7 +434,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/scrcpy-decoder-tinyh264: + libraries/scrcpy-decoder-tinyh264: dependencies: '@yume-chan/async': specifier: ^2.2.0 @@ -470,7 +472,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -481,7 +483,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/scrcpy-decoder-webcodecs: + libraries/scrcpy-decoder-webcodecs: dependencies: '@yume-chan/event': specifier: workspace:^0.0.24 @@ -513,7 +515,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -524,7 +526,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/stream-extra: + libraries/stream-extra: dependencies: '@yume-chan/async': specifier: ^2.2.0 @@ -547,7 +549,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -558,7 +560,7 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../libraries/struct: + libraries/struct: dependencies: '@yume-chan/no-data-view': specifier: workspace:^0.0.24 @@ -578,7 +580,7 @@ importers: version: 7.0.3 jest: specifier: ^30.0.0-alpha.4 - version: 30.0.0-alpha.5(@types/node@20.14.9) + version: 30.0.0-alpha.5(@types/node@20.14.10) prettier: specifier: ^3.3.2 version: 3.3.2 @@ -589,20 +591,20 @@ importers: specifier: ^5.5.3 version: 5.5.3 - ../../toolchain/eslint-config: + toolchain/eslint-config: dependencies: '@eslint/js': specifier: ^9.6.0 version: 9.6.0 '@types/node': specifier: ^20.14.9 - version: 20.14.9 + version: 20.14.10 eslint: specifier: ^9.6.0 version: 9.6.0 eslint-plugin-import-x: specifier: ^0.5.2 - version: 0.5.2(eslint@9.6.0)(typescript@5.5.3) + version: 0.5.3(eslint@9.6.0)(typescript@5.5.3) typescript: specifier: ^5.5.3 version: 5.5.3 @@ -614,7 +616,7 @@ importers: specifier: ^3.3.2 version: 3.3.2 - ../../toolchain/tsconfig: + toolchain/tsconfig: devDependencies: prettier: specifier: ^3.3.2 @@ -778,6 +780,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/runtime@7.24.7': + resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + engines: {node: '>=6.9.0'} + '@babel/template@7.24.7': resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} @@ -793,6 +799,61 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@changesets/apply-release-plan@7.0.4': + resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} + + '@changesets/assemble-release-plan@6.0.3': + resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} + + '@changesets/changelog-git@0.2.0': + resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} + + '@changesets/cli@2.27.7': + resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} + hasBin: true + + '@changesets/config@3.0.2': + resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} + + '@changesets/errors@0.2.0': + resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + + '@changesets/get-dependents-graph@2.1.1': + resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} + + '@changesets/get-release-plan@4.0.3': + resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} + + '@changesets/get-version-range-type@0.4.0': + resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + + '@changesets/git@3.0.0': + resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} + + '@changesets/logger@0.1.0': + resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} + + '@changesets/parse@0.4.0': + resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} + + '@changesets/pre@2.0.0': + resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} + + '@changesets/read@0.6.0': + resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} + + '@changesets/should-skip-package@0.1.0': + resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@6.0.0': + resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} + + '@changesets/write@0.3.1': + resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -939,6 +1000,12 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1009,8 +1076,14 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/node@20.14.9': - resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@20.14.10': + resolution: {integrity: sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -1118,14 +1191,18 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1205,6 +1282,10 @@ packages: 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'} + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1256,8 +1337,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001639: - resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==} + caniuse-lite@1.0.30001640: + resolution: {integrity: sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -1271,6 +1352,9 @@ packages: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -1328,6 +1412,9 @@ packages: engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1338,6 +1425,11 @@ packages: debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true debug@4.3.5: resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} @@ -1371,6 +1463,10 @@ packages: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -1390,8 +1486,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.816: - resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} + electron-to-chromium@1.4.818: + resolution: {integrity: sha512-eGvIk2V0dGImV9gWLq8fDfTTsCAeMDwZqEPMr+jMInxZdnp9Us8UpovYpRCf9NQ7VOFgrN2doNSgvISbsbNpxA==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -1403,6 +1499,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -1429,8 +1529,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-plugin-import-x@0.5.2: - resolution: {integrity: sha512-6f1YMmg3PdLwfiJDYnCRPfh67zJKbwbOKL99l6xGZDmIFkMht/4xyudafGEcDOmDlgp36e41W4RXDfOn7+pGRg==} + eslint-plugin-import-x@0.5.3: + resolution: {integrity: sha512-hJ/wkMcsLQXAZL3+txXIDpbW5cqwdm1rLTqV4VRY03aIbzE3zWE7rPZKW6Gzf7xyl1u3V1iYC6tOG77d9NF4GQ==} engines: {node: '>=16'} peerDependencies: eslint: ^8.56.0 || ^9.0.0-0 @@ -1497,6 +1597,13 @@ packages: resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} engines: {node: '>=4'} + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -1554,6 +1661,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -1573,6 +1683,14 @@ packages: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -1615,9 +1733,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.4.3: + resolution: {integrity: sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==} + engines: {node: '>=18'} hasBin: true glob@7.2.3: @@ -1668,10 +1786,17 @@ packages: resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==} engines: {node: '>=10.19.0'} + human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + 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'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -1749,6 +1874,14 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1768,17 +1901,17 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@5.0.5: - resolution: {integrity: sha512-gKf4eJ8bHmSX/ljiOCpnd8vtmHTwG71uugm0kXYd5aqFCl6z8cj8k7QduXSwU6QOst6LCdSXTlaoc8W4554crQ==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.1.7: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} + jackspeak@3.4.1: + resolution: {integrity: sha512-U23pQPDnmYybVkYjObcuYMk43VRlMLLqLI+RdZy8s8WV8WsxO9SnqSroKaluuvcNOdCAlauKszDwd+umbot5Mg==} + engines: {node: '>=18'} jest-changed-files@30.0.0-alpha.5: resolution: {integrity: sha512-B6GjanWozUsg3tho2CFo4JYZ3iqMOdXexOEre1CQHTUecwAH3uNm9aIy4E1QTX41xEGEbPdBq7b1SHZKe6yPkg==} @@ -1946,6 +2079,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -1964,6 +2100,10 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -1978,13 +2118,19 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lowercase-keys@3.0.0: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.3.0: - resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} - engines: {node: 14 || >=16.14} + lru-cache@10.3.1: + resolution: {integrity: sha512-9/8QXrtbGeMB6LxwQd4x1tIMnsmUxMvIH/qWGsccz6bt9Uln3S+sgAaqfQNhbGA8ufzs2fHuP/yqapGgP9Hh2g==} + engines: {node: '>=18'} + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2041,6 +2187,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -2087,6 +2237,13 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + p-cancelable@3.0.0: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} @@ -2095,6 +2252,10 @@ packages: resolution: {integrity: sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -2111,6 +2272,10 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + p-timeout@5.1.0: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} @@ -2153,8 +2318,8 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - peek-readable@5.1.0: - resolution: {integrity: sha512-Tq2I+yoz6Xq3S09E2PyjzOy/oYuNg5v7wyjmrw7OQYSKc7QnDs63q4RXFXraMoI6LZyiEOJ/wDEYzGDPhWwNPA==} + peek-readable@5.1.1: + resolution: {integrity: sha512-4hEOSH7KeEaZpMDF/xfm1W9fS5rT7Ett3BkXWHqAEzRLLwLaHkwOL+GvvpIEh9UrvX9BDhzfkvteslgraoH69w==} engines: {node: '>=14.16'} pend@1.2.0: @@ -2171,6 +2336,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -2179,10 +2348,19 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} + preferred-pm@3.1.4: + resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} + engines: {node: '>=10'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + prettier@3.3.2: resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} engines: {node: '>=14'} @@ -2192,6 +2370,9 @@ packages: resolution: {integrity: sha512-qRzqj0zWh2CRvL9UbWGksN9YSSuzzvNqexrDBwKiH48RVX00BQCxHwSfWF+sigp3IZGKxjG2nud42SQQU8q3Yg==} engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -2212,6 +2393,10 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -2220,6 +2405,9 @@ packages: resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} engines: {node: '>=8'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -2264,6 +2452,9 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + seek-bzip@1.0.6: resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} hasBin: true @@ -2277,10 +2468,18 @@ packages: engines: {node: '>=10'} hasBin: true + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -2314,9 +2513,15 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -2347,6 +2552,10 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} + 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'} @@ -2366,8 +2575,8 @@ packages: resolution: {integrity: sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - strtok3@7.0.0: - resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} + strtok3@7.1.0: + resolution: {integrity: sha512-19dQEwG6Jd+VabjPRyBhymIF069vZiqWSZa2jJBoKJTsqGKnTxowGoQaLnz+yLARfDI041IUQekyPUMWElOgsQ==} engines: {node: '>=14.16'} supports-color@5.5.0: @@ -2393,6 +2602,10 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -2412,6 +2625,10 @@ packages: tinyh264@0.0.7: resolution: {integrity: sha512-etkBRgYkSFBdAi2Cqk4sZgi+xWs/vhzNgvjO3z2i4WILeEmORiNqxuQ4URJatrWQ9LPNV3WPWAtzsh/LA/XL/g==} + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -2497,8 +2714,12 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + update-browserslist-db@1.1.0: + resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2520,6 +2741,14 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} + which-pm@2.2.0: + resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} + engines: {node: '>=8.15'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2548,6 +2777,9 @@ packages: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -2683,7 +2915,9 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/parser@7.24.7': {} + '@babel/parser@7.24.7': + dependencies: + '@babel/types': 7.24.7 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': dependencies: @@ -2755,6 +2989,10 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 + '@babel/runtime@7.24.7': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 @@ -2784,6 +3022,162 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@changesets/apply-release-plan@7.0.4': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/config': 3.0.2 + '@changesets/get-version-range-type': 0.4.0 + '@changesets/git': 3.0.0 + '@changesets/should-skip-package': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + detect-indent: 6.1.0 + fs-extra: 7.0.1 + lodash.startcase: 4.4.0 + outdent: 0.5.0 + prettier: 2.8.8 + resolve-from: 5.0.0 + semver: 7.6.2 + + '@changesets/assemble-release-plan@6.0.3': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/should-skip-package': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + semver: 7.6.2 + + '@changesets/changelog-git@0.2.0': + dependencies: + '@changesets/types': 6.0.0 + + '@changesets/cli@2.27.7': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/apply-release-plan': 7.0.4 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/changelog-git': 0.2.0 + '@changesets/config': 3.0.2 + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/get-release-plan': 4.0.3 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/should-skip-package': 0.1.0 + '@changesets/types': 6.0.0 + '@changesets/write': 0.3.1 + '@manypkg/get-packages': 1.1.3 + '@types/semver': 7.5.8 + ansi-colors: 4.1.3 + chalk: 2.4.2 + ci-info: 3.9.0 + enquirer: 2.4.1 + external-editor: 3.1.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + mri: 1.2.0 + outdent: 0.5.0 + p-limit: 2.3.0 + preferred-pm: 3.1.4 + resolve-from: 5.0.0 + semver: 7.6.2 + spawndamnit: 2.0.0 + term-size: 2.2.1 + + '@changesets/config@3.0.2': + dependencies: + '@changesets/errors': 0.2.0 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/logger': 0.1.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + micromatch: 4.0.7 + + '@changesets/errors@0.2.0': + dependencies: + extendable-error: 0.1.7 + + '@changesets/get-dependents-graph@2.1.1': + dependencies: + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + chalk: 2.4.2 + fs-extra: 7.0.1 + semver: 7.6.2 + + '@changesets/get-release-plan@4.0.3': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/config': 3.0.2 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/get-version-range-type@0.4.0': {} + + '@changesets/git@3.0.0': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + is-subdir: 1.2.0 + micromatch: 4.0.7 + spawndamnit: 2.0.0 + + '@changesets/logger@0.1.0': + dependencies: + chalk: 2.4.2 + + '@changesets/parse@0.4.0': + dependencies: + '@changesets/types': 6.0.0 + js-yaml: 3.14.1 + + '@changesets/pre@2.0.0': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + fs-extra: 7.0.1 + + '@changesets/read@0.6.0': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/parse': 0.4.0 + '@changesets/types': 6.0.0 + chalk: 2.4.2 + fs-extra: 7.0.1 + p-filter: 2.1.0 + + '@changesets/should-skip-package@0.1.0': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/types': 6.0.0 + '@manypkg/get-packages': 1.1.3 + + '@changesets/types@4.1.0': {} + + '@changesets/types@6.0.0': {} + + '@changesets/write@0.3.1': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/types': 6.0.0 + fs-extra: 7.0.1 + human-id: 1.0.2 + prettier: 2.8.8 + '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': dependencies: eslint: 9.6.0 @@ -2843,7 +3237,7 @@ snapshots: '@jest/console@30.0.0-alpha.5': dependencies: '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 jest-message-util: 30.0.0-alpha.5 jest-util: 30.0.0-alpha.5 @@ -2857,14 +3251,14 @@ snapshots: '@jest/test-result': 30.0.0-alpha.5 '@jest/transform': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.0.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 30.0.0-alpha.5 - jest-config: 30.0.0-alpha.5(@types/node@20.14.9) + jest-config: 30.0.0-alpha.5(@types/node@20.14.10) jest-haste-map: 30.0.0-alpha.5 jest-message-util: 30.0.0-alpha.5 jest-regex-util: 30.0.0-alpha.5 @@ -2889,7 +3283,7 @@ snapshots: dependencies: '@jest/fake-timers': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 jest-mock: 30.0.0-alpha.5 '@jest/expect-utils@30.0.0-alpha.5': @@ -2907,7 +3301,7 @@ snapshots: dependencies: '@jest/types': 30.0.0-alpha.5 '@sinonjs/fake-timers': 11.2.2 - '@types/node': 20.14.9 + '@types/node': 20.14.10 jest-message-util: 30.0.0-alpha.5 jest-mock: 30.0.0-alpha.5 jest-util: 30.0.0-alpha.5 @@ -2923,7 +3317,7 @@ snapshots: '@jest/pattern@30.0.0-alpha.5': dependencies: - '@types/node': 20.14.9 + '@types/node': 20.14.10 jest-regex-util: 30.0.0-alpha.5 '@jest/reporters@30.0.0-alpha.5': @@ -2934,16 +3328,16 @@ snapshots: '@jest/transform': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 - glob: 10.4.2 + glob: 10.4.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.5 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 jest-message-util: 30.0.0-alpha.5 jest-util: 30.0.0-alpha.5 @@ -3015,7 +3409,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.9 + '@types/node': 20.14.10 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -3025,7 +3419,7 @@ snapshots: '@jest/schemas': 30.0.0-alpha.5 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.9 + '@types/node': 20.14.10 '@types/yargs': 17.0.32 chalk: 4.1.2 @@ -3046,6 +3440,22 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + '@manypkg/find-root@1.1.0': + dependencies: + '@babel/runtime': 7.24.7 + '@types/node': 12.20.55 + find-up: 4.1.0 + fs-extra: 8.1.0 + + '@manypkg/get-packages@1.1.3': + dependencies: + '@babel/runtime': 7.24.7 + '@changesets/types': 4.1.0 + '@manypkg/find-root': 1.1.0 + fs-extra: 8.1.0 + globby: 11.1.0 + read-yaml-file: 1.1.0 + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3118,10 +3528,14 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/node@20.14.9': + '@types/node@12.20.55': {} + + '@types/node@20.14.10': dependencies: undici-types: 5.26.5 + '@types/semver@7.5.8': {} + '@types/stack-utils@2.0.3': {} '@types/w3c-web-usb@1.0.10': {} @@ -3270,11 +3684,11 @@ snapshots: dependencies: tslib: 2.6.3 - acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.12.0 + acorn: 8.12.1 - acorn@8.12.0: {} + acorn@8.12.1: {} ajv@6.12.6: dependencies: @@ -3283,6 +3697,8 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -3377,6 +3793,10 @@ snapshots: base64-js@1.5.1: {} + better-path-resolve@1.0.0: + dependencies: + is-windows: 1.0.2 + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -3392,10 +3812,10 @@ snapshots: browserslist@4.23.1: dependencies: - caniuse-lite: 1.0.30001639 - electron-to-chromium: 1.4.816 + caniuse-lite: 1.0.30001640 + electron-to-chromium: 1.4.818 node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) + update-browserslist-db: 1.1.0(browserslist@4.23.1) bs-logger@0.2.6: dependencies: @@ -3432,7 +3852,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001639: {} + caniuse-lite@1.0.30001640: {} chalk@2.4.2: dependencies: @@ -3447,6 +3867,8 @@ snapshots: char-regex@1.0.2: {} + chardet@0.7.0: {} + ci-info@3.9.0: {} ci-info@4.0.0: {} @@ -3491,6 +3913,12 @@ snapshots: dependencies: cross-spawn: 7.0.3 + cross-spawn@5.1.0: + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -3519,6 +3947,8 @@ snapshots: defer-to-connect@2.0.1: {} + detect-indent@6.1.0: {} + detect-newline@3.1.0: {} diff-sequences@30.0.0-alpha.5: {} @@ -3533,7 +3963,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.816: {} + electron-to-chromium@1.4.818: {} emittery@0.13.1: {} @@ -3541,6 +3971,11 @@ snapshots: emoji-regex@9.2.2: {} + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -3560,8 +3995,10 @@ snapshots: debug: 3.2.7 is-core-module: 2.14.0 resolve: 1.22.8 + transitivePeerDependencies: + - supports-color - eslint-plugin-import-x@0.5.2(eslint@9.6.0)(typescript@5.5.3): + eslint-plugin-import-x@0.5.3(eslint@9.6.0)(typescript@5.5.3): dependencies: '@typescript-eslint/utils': 7.15.0(eslint@9.6.0)(typescript@5.5.3) debug: 4.3.5 @@ -3572,6 +4009,7 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.2 + stable-hash: 0.0.4 tslib: 2.6.3 transitivePeerDependencies: - supports-color @@ -3627,8 +4065,8 @@ snapshots: espree@10.1.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 esprima@4.0.1: {} @@ -3676,6 +4114,14 @@ snapshots: ext-list: 2.2.2 sort-keys-length: 1.0.1 + extendable-error@0.1.7: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} @@ -3716,7 +4162,7 @@ snapshots: file-type@18.7.0: dependencies: readable-web-to-node-stream: 3.0.2 - strtok3: 7.0.0 + strtok3: 7.1.0 token-types: 5.0.1 filename-reserved-regex@3.0.0: {} @@ -3741,6 +4187,11 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + find-yarn-workspace-root2@1.2.16: + dependencies: + micromatch: 4.0.7 + pkg-dir: 4.2.0 + flat-cache@4.0.1: dependencies: flatted: 3.3.1 @@ -3759,6 +4210,18 @@ snapshots: dependencies: fetch-blob: 3.2.0 + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -3792,10 +4255,10 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.2: + glob@10.4.3: dependencies: foreground-child: 3.2.1 - jackspeak: 3.4.0 + jackspeak: 3.4.1 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.0 @@ -3858,8 +4321,14 @@ snapshots: quick-lru: 5.1.1 resolve-alpn: 1.2.1 + human-id@1.0.2: {} + human-signals@2.1.0: {} + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.1: {} @@ -3915,6 +4384,12 @@ snapshots: is-stream@3.0.0: {} + is-subdir@1.2.0: + dependencies: + better-path-resolve: 1.0.0 + + is-windows@1.0.2: {} + isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -3945,7 +4420,7 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@5.0.5: + istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.5 @@ -3958,7 +4433,7 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@3.4.0: + jackspeak@3.4.1: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -3976,7 +4451,7 @@ snapshots: '@jest/expect': 30.0.0-alpha.5 '@jest/test-result': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -3996,7 +4471,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.0.0-alpha.5(@types/node@20.14.9): + jest-cli@30.0.0-alpha.5(@types/node@20.14.10): dependencies: '@jest/core': 30.0.0-alpha.5 '@jest/test-result': 30.0.0-alpha.5 @@ -4004,7 +4479,7 @@ snapshots: chalk: 4.1.2 exit: 0.1.2 import-local: 3.1.0 - jest-config: 30.0.0-alpha.5(@types/node@20.14.9) + jest-config: 30.0.0-alpha.5(@types/node@20.14.10) jest-util: 30.0.0-alpha.5 jest-validate: 30.0.0-alpha.5 yargs: 17.7.2 @@ -4014,7 +4489,7 @@ snapshots: - supports-color - ts-node - jest-config@30.0.0-alpha.5(@types/node@20.14.9): + jest-config@30.0.0-alpha.5(@types/node@20.14.10): dependencies: '@babel/core': 7.24.7 '@jest/pattern': 30.0.0-alpha.5 @@ -4024,7 +4499,7 @@ snapshots: chalk: 4.1.2 ci-info: 4.0.0 deepmerge: 4.3.1 - glob: 10.4.2 + glob: 10.4.3 graceful-fs: 4.2.11 jest-circus: 30.0.0-alpha.5 jest-environment-node: 30.0.0-alpha.5 @@ -4040,7 +4515,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.14.9 + '@types/node': 20.14.10 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -4069,7 +4544,7 @@ snapshots: '@jest/environment': 30.0.0-alpha.5 '@jest/fake-timers': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 jest-mock: 30.0.0-alpha.5 jest-util: 30.0.0-alpha.5 @@ -4078,7 +4553,7 @@ snapshots: jest-haste-map@30.0.0-alpha.5: dependencies: '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -4117,7 +4592,7 @@ snapshots: jest-mock@30.0.0-alpha.5: dependencies: '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 jest-util: 30.0.0-alpha.5 jest-pnp-resolver@1.2.3(jest-resolve@30.0.0-alpha.5): @@ -4152,7 +4627,7 @@ snapshots: '@jest/test-result': 30.0.0-alpha.5 '@jest/transform': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -4180,11 +4655,11 @@ snapshots: '@jest/test-result': 30.0.0-alpha.5 '@jest/transform': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 cjs-module-lexer: 1.3.1 collect-v8-coverage: 1.0.2 - glob: 10.4.2 + glob: 10.4.3 graceful-fs: 4.2.11 jest-haste-map: 30.0.0-alpha.5 jest-message-util: 30.0.0-alpha.5 @@ -4227,7 +4702,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -4236,7 +4711,7 @@ snapshots: jest-util@30.0.0-alpha.5: dependencies: '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 chalk: 4.1.2 ci-info: 4.0.0 graceful-fs: 4.2.11 @@ -4255,7 +4730,7 @@ snapshots: dependencies: '@jest/test-result': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 - '@types/node': 20.14.9 + '@types/node': 20.14.10 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -4264,17 +4739,17 @@ snapshots: jest-worker@30.0.0-alpha.5: dependencies: - '@types/node': 20.14.9 + '@types/node': 20.14.10 jest-util: 30.0.0-alpha.5 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.0.0-alpha.5(@types/node@20.14.9): + jest@30.0.0-alpha.5(@types/node@20.14.10): dependencies: '@jest/core': 30.0.0-alpha.5 '@jest/types': 30.0.0-alpha.5 import-local: 3.1.0 - jest-cli: 30.0.0-alpha.5(@types/node@20.14.9) + jest-cli: 30.0.0-alpha.5(@types/node@20.14.10) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -4304,6 +4779,10 @@ snapshots: json5@2.2.3: {} + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -4319,6 +4798,13 @@ snapshots: lines-and-columns@1.2.4: {} + load-yaml-file@0.2.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -4331,9 +4817,16 @@ snapshots: lodash.merge@4.6.2: {} + lodash.startcase@4.4.0: {} + lowercase-keys@3.0.0: {} - lru-cache@10.3.0: {} + lru-cache@10.3.1: {} + + lru-cache@4.1.5: + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 lru-cache@5.1.1: dependencies: @@ -4380,6 +4873,8 @@ snapshots: minipass@7.1.2: {} + mri@1.2.0: {} + ms@2.1.2: {} ms@2.1.3: {} @@ -4423,12 +4918,20 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + os-tmpdir@1.0.2: {} + + outdent@0.5.0: {} + p-cancelable@3.0.0: {} p-event@5.0.1: dependencies: p-timeout: 5.1.0 + p-filter@2.1.0: + dependencies: + p-map: 2.1.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -4445,6 +4948,8 @@ snapshots: dependencies: p-limit: 3.1.0 + p-map@2.1.0: {} + p-timeout@5.1.0: {} p-try@2.2.0: {} @@ -4472,12 +4977,12 @@ snapshots: path-scurry@1.11.1: dependencies: - lru-cache: 10.3.0 + lru-cache: 10.3.1 minipass: 7.1.2 path-type@4.0.0: {} - peek-readable@5.1.0: {} + peek-readable@5.1.1: {} pend@1.2.0: {} @@ -4487,14 +4992,25 @@ snapshots: picomatch@4.0.2: {} + pify@4.0.1: {} + pirates@4.0.6: {} pkg-dir@4.2.0: dependencies: find-up: 4.1.0 + preferred-pm@3.1.4: + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.2.0 + prelude-ls@1.2.1: {} + prettier@2.8.8: {} + prettier@3.3.2: {} pretty-format@30.0.0-alpha.5: @@ -4503,6 +5019,8 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pseudomap@1.0.2: {} + punycode@2.3.1: {} pure-rand@6.1.0: {} @@ -4515,6 +5033,13 @@ snapshots: react-is@18.3.1: {} + read-yaml-file@1.1.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -4525,6 +5050,8 @@ snapshots: dependencies: readable-stream: 3.6.2 + regenerator-runtime@0.14.1: {} + require-directory@2.1.1: {} resolve-alpn@1.2.1: {} @@ -4559,6 +5086,8 @@ snapshots: safe-buffer@5.2.1: {} + safer-buffer@2.1.2: {} + seek-bzip@1.0.6: dependencies: commander: 2.20.3 @@ -4567,10 +5096,16 @@ snapshots: semver@7.6.2: {} + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 + shebang-regex@1.0.0: {} + shebang-regex@3.0.0: {} signal-exit@3.0.7: {} @@ -4599,8 +5134,15 @@ snapshots: source-map@0.6.1: {} + spawndamnit@2.0.0: + dependencies: + cross-spawn: 5.1.0 + signal-exit: 3.0.7 + sprintf-js@1.0.3: {} + stable-hash@0.0.4: {} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -4642,6 +5184,8 @@ snapshots: dependencies: ansi-regex: 6.0.1 + strip-bom@3.0.0: {} + strip-bom@4.0.0: {} strip-dirs@3.0.0: @@ -4655,10 +5199,10 @@ snapshots: strip-outer@2.0.0: {} - strtok3@7.0.0: + strtok3@7.1.0: dependencies: '@tokenizer/token': 0.3.0 - peek-readable: 5.1.0 + peek-readable: 5.1.1 supports-color@5.5.0: dependencies: @@ -4685,6 +5229,8 @@ snapshots: fast-fifo: 1.3.2 streamx: 2.18.0 + term-size@2.2.1: {} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -4703,6 +5249,10 @@ snapshots: tinyh264@0.0.7: {} + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + tmpl@1.0.5: {} to-fast-properties@2.0.0: {} @@ -4728,7 +5278,7 @@ snapshots: dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 30.0.0-alpha.5(@types/node@20.14.9) + jest: 30.0.0-alpha.5(@types/node@20.14.10) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -4770,7 +5320,9 @@ snapshots: undici-types@5.26.5: {} - update-browserslist-db@1.0.16(browserslist@4.23.1): + universalify@0.1.2: {} + + update-browserslist-db@1.1.0(browserslist@4.23.1): dependencies: browserslist: 4.23.1 escalade: 3.1.2 @@ -4794,6 +5346,15 @@ snapshots: web-streams-polyfill@3.3.3: {} + which-pm@2.2.0: + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 @@ -4821,6 +5382,8 @@ snapshots: y18n@5.0.8: {} + yallist@2.1.2: {} + yallist@3.1.1: {} yargs-parser@21.1.1: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..0ff27541 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - apps/* + - libraries/* + - toolchain/* diff --git a/rush.json b/rush.json deleted file mode 100644 index 0a63fb56..00000000 --- a/rush.json +++ /dev/null @@ -1,457 +0,0 @@ -/** - * This is the main configuration file for Rush. - * For full documentation, please see https://rushjs.io - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush.schema.json", - /** - * (Required) This specifies the version of the Rush engine to be used in this repo. - * Rush's "version selector" feature ensures that the globally installed tool will - * behave like this release, regardless of which version is installed globally. - * - * The common/scripts/install-run-rush.js automation script also uses this version. - * - * NOTE: If you upgrade to a new major version of Rush, you should replace the "v5" - * 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.120.0", - /** - * The next field selects which package manager should be installed and determines its version. - * Rush installs its own local copy of the package manager to ensure that your build process - * is fully isolated from whatever tools are present in the local environment. - * - * Specify one of: "pnpmVersion", "npmVersion", or "yarnVersion". See the Rush documentation - * for details about these alternatives. - */ - "pnpmVersion": "9.2.0", - /** - * Older releases of the Node.js engine may be missing features required by your system. - * Other releases may have bugs. In particular, the "latest" version will not be a - * Long Term Support (LTS) version and is likely to have regressions. - * - * Specify a SemVer range to ensure developers use a Node.js version that is appropriate - * for your repo. - * - * LTS schedule: https://nodejs.org/en/about/releases/ - * LTS versions: https://nodejs.org/en/download/releases/ - */ - "nodeSupportedVersionRange": ">= 18.18.0 <19.0.0 || >=20.0.0 <21.0.0", - /** - * 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. - * For example, 8.9.0 was the first LTS version of Node.js 8. Pre-LTS versions are not recommended - * for production usage because they frequently have bugs. They may cause Rush itself - * to malfunction. - * - * Rush normally prints a warning if it detects a pre-LTS Node.js version. If you are testing - * pre-LTS versions in preparation for supporting the first LTS version, you can use this setting - * to disable Rush's warning. - */ - // "suppressNodeLtsWarning": false, - /** - * If you would like the version specifiers for your dependencies to be consistent, then - * uncomment this line. This is effectively similar to running "rush check" before any - * of the following commands: - * - * rush install, rush update, rush link, rush version, rush publish - * - * In some cases you may want this turned on, but need to allow certain packages to use a different - * version. In those cases, you will need to add an entry to the "allowedAlternativeVersions" - * section of the common-versions.json. - */ - "ensureConsistentVersions": true, - /** - * Large monorepos can become intimidating for newcomers if project folder paths don't follow - * a consistent and recognizable pattern. When the system allows nested folder trees, - * we've found that teams will often use subfolders to create islands that isolate - * their work from others ("shipping the org"). This hinders collaboration and code sharing. - * - * The Rush developers recommend a "category folder" model, where buildable project folders - * must always be exactly two levels below the repo root. The parent folder acts as the category. - * This provides a basic facility for grouping related projects (e.g. "apps", "libraries", - * "tools", "prototypes") while still encouraging teams to organize their projects into - * a unified taxonomy. Limiting to 2 levels seems very restrictive at first, but if you have - * 20 categories and 20 projects in each category, this scheme can easily accommodate hundreds - * of projects. In practice, you will find that the folder hierarchy needs to be rebalanced - * occasionally, but if that's painful, it's a warning sign that your development style may - * discourage refactoring. Reorganizing the categories should be an enlightening discussion - * that brings people together, and maybe also identifies poor coding practices (e.g. file - * references that reach into other project's folders without using Node.js module resolution). - * - * The defaults are projectFolderMinDepth=1 and projectFolderMaxDepth=2. - * - * To remove these restrictions, you could set projectFolderMinDepth=1 - * and set projectFolderMaxDepth to a large number. - */ - "projectFolderMinDepth": 2, - "projectFolderMaxDepth": 2, - /** - * Today the npmjs.com registry enforces fairly strict naming rules for packages, but in the early - * days there was no standard and hardly any enforcement. A few large legacy projects are still using - * nonstandard package names, and private registries sometimes allow it. Set "allowMostlyStandardPackageNames" - * to true to relax Rush's enforcement of package names. This allows upper case letters and in the future may - * relax other rules, however we want to minimize these exceptions. Many popular tools use certain punctuation - * characters as delimiters, based on the assumption that they will never appear in a package name; thus if we relax - * the rules too much it is likely to cause very confusing malfunctions. - * - * The default value is false. - */ - // "allowMostlyStandardPackageNames": true, - /** - * This feature helps you to review and approve new packages before they are introduced - * to your monorepo. For example, you may be concerned about licensing, code quality, - * performance, or simply accumulating too many libraries with overlapping functionality. - * The approvals are tracked in two config files "browser-approved-packages.json" - * and "nonbrowser-approved-packages.json". See the Rush documentation for details. - */ - // "approvedPackagesPolicy": { - // /** - // * The review categories allow you to say for example "This library is approved for usage - // * in prototypes, but not in production code." - // * - // * Each project can be associated with one review category, by assigning the "reviewCategory" field - // * in the "projects" section of rush.json. The approval is then recorded in the files - // * "common/config/rush/browser-approved-packages.json" and "nonbrowser-approved-packages.json" - // * which are automatically generated during "rush update". - // * - // * Designate categories with whatever granularity is appropriate for your review process, - // * or you could just have a single category called "default". - // */ - // "reviewCategories": [ - // "libraries", // library projects that ship - // "tests" // non-shipping test projects - // ], - // /** - // * A list of NPM package scopes that will be excluded from review. - // * We recommend to exclude TypeScript typings (the "@types" scope), because - // * if the underlying package was already approved, this would imply that the typings - // * are also approved. - // */ - // "ignoredNpmScopes": [ - // "@types" - // ] - // }, - /** - * If you use Git as your version control system, this section has some additional - * optional features you can use. - */ - "gitPolicy": { - /** - * Work at a big company? Tired of finding Git commits at work with unprofessional Git - * emails such as "beer-lover@my-college.edu"? Rush can validate people's Git email address - * before they get started. - * - * Define a list of regular expressions describing allowable e-mail patterns for Git commits. - * They are case-insensitive anchored JavaScript RegExps. Example: ".*@example\.com" - * - * IMPORTANT: Because these are regular expressions encoded as JSON string literals, - * RegExp escapes need two backslashes, and ordinary periods should be "\\.". - */ - // "allowedEmailRegExps": [ - // "[^@]+@users\\.noreply\\.github\\.com" - // ], - /** - * When Rush reports that the address is malformed, the notice can include an example - * of a recommended email. Make sure it conforms to one of the allowedEmailRegExps - * expressions. - */ - // "sampleEmail": "example@users.noreply.github.com" - /** - * The commit message to use when committing changes during 'rush publish'. - * - * For example, if you want to prevent these commits from triggering a CI build, - * 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. - */ - // "versionBumpCommitMessage": "Bump versions [skip ci]", - /** - * The commit message to use when committing changes during 'rush version'. - * - * For example, if you want to prevent these commits from triggering a CI build, - * 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]" - /** - * The commit message to use when commiting changefiles during 'rush change --commit' - * - * If no commit message is set it will default to 'Rush change' - */ - // "changefilesCommitMessage": "Rush change" - }, - "repository": { - /** - * The URL of this Git repository, used by "rush change" to determine the base branch for your PR. - * - * The "rush change" command needs to determine which files are affected by your PR diff. - * If you merged or cherry-picked commits from the main branch into your PR branch, those commits - * should be excluded from this diff (since they belong to some other PR). In order to do that, - * Rush needs to know where to find the base branch for your PR. This information cannot be - * determined from Git alone, since the "pull request" feature is not a Git concept. Ideally - * Rush would use a vendor-specific protocol to query the information from GitHub, Azure DevOps, etc. - * But to keep things simple, - "rush change" simply assumes that your PR is against the "main" branch - * of the Git remote indicated by the repository.url setting in rush.json. If you are working in - * a GitHub "fork" of the real repo, this setting will be different from the repository URL of your - * your PR branch, and in this situation "rush change" will also automatically invoke "git fetch" - * to retrieve the latest activity for the remote main branch. - */ - "urls": [ - "https://github.com/yume-chan/ya-webadb.git" - ], - /** - * The default branch name. This tells "rush change" which remote branch to compare against. - * The default value is "main" - */ - "defaultBranch": "main" - /** - * The default remote. This tells "rush change" which remote to compare against if the remote URL is - * not set or if a remote matching the provided remote URL is not found. - */ - // "defaultRemote": "origin" - }, - /** - * Event hooks are customized script actions that Rush executes when specific events occur - */ - "eventHooks": { - /** - * The list of shell commands to run before the Rush installation starts - */ - "preRushInstall": [ - // "common/scripts/pre-rush-install.js" - ], - /** - * The list of shell commands to run after the Rush installation finishes - */ - "postRushInstall": [], - /** - * The list of shell commands to run before the Rush build command starts - */ - "preRushBuild": [], - /** - * The list of shell commands to run after the Rush build command finishes - */ - "postRushBuild": [] - }, - /** - * Rush can collect anonymous telemetry about everyday developer activity such as - * success/failure of installs, builds, and other operations. You can use this to identify - * problems with your toolchain or Rush itself. THIS TELEMETRY IS NOT SHARED WITH MICROSOFT. - * It is written into JSON files in the common/temp folder. It's up to you to write scripts - * that read these JSON files and do something with them. These scripts are typically registered - * in the "eventHooks" section. - */ - "telemetryEnabled": false, - /** - * Allows creation of hotfix changes. This feature is experimental so it is disabled by default. - * If this is set, 'rush change' only allows a 'hotfix' change type to be specified. This change type - * will be used when publishing subsequent changes from the monorepo. - */ - // "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. - */ - // "allowedProjectTags": [ "apps", "Web", "tools" ], - /** - * (Required) This is the inventory of projects to be managed by Rush. - * - * Rush does not automatically scan for projects using wildcards, for a few reasons: - * 1. Depth-first scans are expensive, particularly when tools need to repeatedly collect the list. - * 2. On a caching CI machine, scans can accidentally pick up files left behind from a previous build. - * 3. It's useful to have a centralized inventory of all projects and their important metadata. - */ - "projects": [ - // { - // /** - // * The NPM package name of the project (must match package.json) - // */ - // "packageName": "my-app", - // - // /** - // * The path to the project folder, relative to the rush.json config file. - // */ - // "projectFolder": "apps/my-app", - // - // /** - // * An optional category for usage in the "browser-approved-packages.json" - // * and "nonbrowser-approved-packages.json" files. The value must be one of the - // * strings from the "reviewCategories" defined above. - // */ - // "reviewCategory": "production", - // - // /** - // * A list of Rush project names that are to be installed from NPM - // * instead of linking to the local project. - // * - // * If a project's package.json specifies a dependency that is another Rush project - // * in the monorepo workspace, normally Rush will locally link its folder instead of - // * installing from NPM. If you are using PNPM workspaces, this is indicated by - // * a SemVer range such as "workspace:^1.2.3". To prevent mistakes, Rush reports - // * an error if the "workspace:" protocol is missing. - // * - // * Locally linking ensures that regressions are caught as early as possible and is - // * a key benefit of monorepos. However there are occasional situations where - // * installing from NPM is needed. A classic example is a cyclic dependency. - // * Imagine three Rush projects: "my-toolchain" depends on "my-tester", which depends - // * on "my-library". Suppose that we add "my-toolchain" to the "devDependencies" - // * of "my-library" so it can be built by our toolchain. This cycle creates - // * a problem -- Rush can't build a project using a not-yet-built dependency. - // * We can solve it by adding "my-toolchain" to the "decoupledLocalDependencies" - // * of "my-library", so it builds using the last published release. Choose carefully - // * which package to decouple; some choices are much easier to manage than others. - // * - // * (In older Rush releases, this setting was called "cyclicDependencyProjects".) - // */ - // "decoupledLocalDependencies": [ - // // "my-toolchain" - // ], - // - // /** - // * If true, then this project will be ignored by the "rush check" command. - // * The default value is false. - // */ - // // "skipRushCheck": false, - // - // /** - // * A flag indicating that changes to this project will be published to npm, which affects - // * the Rush change and publish workflows. The default value is false. - // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. - // */ - // // "shouldPublish": false, - // - // /** - // * Facilitates postprocessing of a project's files prior to publishing. - // * - // * If specified, the "publishFolder" is the relative path to a subfolder of the project folder. - // * The "rush publish" command will publish the subfolder instead of the project folder. The subfolder - // * must contain its own package.json file, which is typically a build output. - // */ - // // "publishFolder": "temp/publish", - // - // /** - // * An optional version policy associated with the project. Version policies are defined - // * in "version-policies.json" file. See the "rush publish" documentation for more info. - // * NOTE: "versionPolicyName" and "shouldPublish" are alternatives; you cannot specify them both. - // */ - // // "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"] - // }, - { - "packageName": "@yume-chan/adb", - "projectFolder": "libraries/adb", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/aoa", - "projectFolder": "libraries/aoa", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/event", - "projectFolder": "libraries/event", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/struct", - "projectFolder": "libraries/struct", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/adb-daemon-webusb", - "projectFolder": "libraries/adb-daemon-webusb", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/adb-credential-web", - "projectFolder": "libraries/adb-credential-web", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/android-bin", - "projectFolder": "libraries/android-bin", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/scrcpy", - "projectFolder": "libraries/scrcpy", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/fetch-scrcpy-server", - "projectFolder": "libraries/fetch-scrcpy-server", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/no-data-view", - "projectFolder": "libraries/no-data-view", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/scrcpy-decoder-tinyh264", - "projectFolder": "libraries/scrcpy-decoder-tinyh264", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/scrcpy-decoder-webcodecs", - "projectFolder": "libraries/scrcpy-decoder-webcodecs", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/stream-extra", - "projectFolder": "libraries/stream-extra", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/tsconfig", - "projectFolder": "toolchain/tsconfig" - }, - { - "packageName": "@yume-chan/eslint-config", - "projectFolder": "toolchain/eslint-config" - }, - { - "packageName": "@yume-chan/pcm-player", - "projectFolder": "libraries/pcm-player", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/adb-scrcpy", - "projectFolder": "libraries/adb-scrcpy", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/adb-server-node-tcp", - "projectFolder": "libraries/adb-server-node-tcp", - "shouldPublish": true, - "versionPolicyName": "adb" - }, - { - "packageName": "@yume-chan/adb-cli", - "projectFolder": "apps/cli" - } - ] -} diff --git a/toolchain/eslint-config/package.json b/toolchain/eslint-config/package.json index 5d8602f9..3d4a6506 100644 --- a/toolchain/eslint-config/package.json +++ b/toolchain/eslint-config/package.json @@ -1,6 +1,7 @@ { "name": "@yume-chan/eslint-config", "version": "1.0.0", + "private": true, "type": "module", "main": "eslint.config.js", "bin": { diff --git a/toolchain/tsconfig/package.json b/toolchain/tsconfig/package.json index 6e108f1d..01fb56d5 100644 --- a/toolchain/tsconfig/package.json +++ b/toolchain/tsconfig/package.json @@ -1,6 +1,7 @@ { "name": "@yume-chan/tsconfig", "version": "1.0.0", + "private": true, "devDependencies": { "prettier": "^3.3.2" }