diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9a2500a0..7ae530d3 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -6,6 +6,7 @@ -- [x] Read the contribution [guide](../CONTRIBUTING.md) and accept the [code](../CODE_OF_CONDUCT.md) of conduct +- [x] Read the contribution [guide](https://github.com/game-ci/unity-builder/blob/main/CONTRIBUTING.md) and accept the + [code](https://github.com/game-ci/unity-builder/blob/main/CODE_OF_CONDUCT.md) of conduct - [ ] Readme (updated or not needed) - [ ] Tests (added, updated or not needed) diff --git a/.github/workflows/build-tests.yml b/.github/workflows/build-tests.yml index 92c4d926..52b894d7 100644 --- a/.github/workflows/build-tests.yml +++ b/.github/workflows/build-tests.yml @@ -1,6 +1,7 @@ name: Builds on: + workflow_dispatch: push: { branches: [main] } pull_request: paths-ignore: @@ -45,12 +46,24 @@ jobs: projectPath: - test-project unityVersion: - - 2019.2.11f1 + - 2018.3.14f1 + - 2018.4.36f1 + - 2019.1.14f1 + - 2019.2.21f1 - 2019.3.15f1 + - 2019.4.40f1 + - 2020.1.17f1 + - 2020.2.7f1 + - 2020.3.44f1 + - 2021.1.28f1 + - 2021.2.19f1 + - 2021.3.18f1 + - 2022.1.24f1 + - 2022.2.6f1 targetPlatform: - - StandaloneOSX # Build a macOS standalone (Intel 64-bit). - - StandaloneWindows64 # Build a Windows 64-bit standalone. - - StandaloneLinux64 # Build a Linux 64-bit standalone. + - StandaloneOSX # Build a macOS standalone (Intel 64-bit) with mono backend. + - StandaloneWindows64 # Build a Windows 64-bit standalone with mono backend. + - StandaloneLinux64 # Build a Linux 64-bit standalone with mono backend. - iOS # Build an iOS player. - Android # Build an Android .apk. - WebGL # WebGL. diff --git a/.github/workflows/mac-build-tests.yml b/.github/workflows/mac-build-tests.yml index ec5a50e3..05d5c43c 100644 --- a/.github/workflows/mac-build-tests.yml +++ b/.github/workflows/mac-build-tests.yml @@ -1,12 +1,36 @@ name: Mac Builds on: + workflow_dispatch: push: branches: - main env: - UNITY_LICENSE: "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nm0Db8UK+ktnOLJBtHybkfetpcKo=o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==" + UNITY_LICENSE: + "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nm0Db8UK+ktnOLJBtHybkfetpcKo=o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==" jobs: buildForAllPlatformsWindows: @@ -18,7 +42,15 @@ jobs: projectPath: - test-project unityVersion: - - 2020.3.24f1 + - 2019.4.40f1 # Minimum version for IL2CPP + - 2020.1.17f1 + - 2020.2.7f1 + - 2020.3.44f1 + - 2021.1.28f1 + - 2021.2.19f1 + - 2021.3.18f1 + - 2022.1.24f1 + - 2022.2.6f1 targetPlatform: - StandaloneOSX # Build a MacOS executable diff --git a/.github/workflows/windows-build-tests.yml b/.github/workflows/windows-build-tests.yml index f01c4946..6a83ad8d 100644 --- a/.github/workflows/windows-build-tests.yml +++ b/.github/workflows/windows-build-tests.yml @@ -1,12 +1,36 @@ name: Windows Builds on: + workflow_dispatch: push: branches: - main env: - UNITY_LICENSE: "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nm0Db8UK+ktnOLJBtHybkfetpcKo=o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==" + UNITY_LICENSE: + "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \nm0Db8UK+ktnOLJBtHybkfetpcKo=o/pUbSQAukz7+ZYAWhnA0AJbIlyyCPL7bKVEM2lVqbrXt7cyey+umkCXamuOgsWPVUKBMkXtMH8L\n5etLmD0getWIhTGhzOnDCk+gtIPfL4jMo9tkEuOCROQAXCci23VFscKcrkB+3X6h4wEOtA2APhOY\nB+wvC794o8/82ffjP79aVAi57rp3Wmzx+9pe9yMwoJuljAy2sc2tIMgdQGWVmOGBpQm3JqsidyzI\nJWG2kjnc7pDXK9pwYzXoKiqUqqrut90d+kQqRyv7MSZXR50HFqD/LI69h68b7P8Bjo3bPXOhNXGR\n9YCoemH6EkfCJxp2gIjzjWW+l2Hj2EsFQi8YXw==" jobs: buildForAllPlatformsWindows: @@ -18,7 +42,14 @@ jobs: projectPath: - test-project unityVersion: - - 2020.3.24f1 + - 2019.3.15f1 # Minimum version for IL2CPP + - 2019.4.40f1 + - 2020.1.17f1 + - 2020.2.7f1 + - 2020.3.44f1 + - 2021.3.18f1 # 2021.1 and 2021.2 seem to have IL2CPP issues + - 2022.1.24f1 + - 2022.2.6f1 targetPlatform: - StandaloneWindows64 # Build a Windows 64-bit standalone. - StandaloneWindows # Build a Windows 32-bit standalone. @@ -54,7 +85,56 @@ jobs: ########################### # Build # ########################### - - uses: ./ + - name: Build + uses: ./ + id: build-1 + continue-on-error: true + timeout-minutes: 60 + env: + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} + with: + projectPath: ${{ matrix.projectPath }} + unityVersion: ${{ matrix.unityVersion }} + targetPlatform: ${{ matrix.targetPlatform }} + customParameters: -profile SomeProfile -someBoolean -someValue exampleValue + allowDirtyBuild: true + # We use dirty build because we are replacing the default project settings file above + + - name: Sleep for Retry + if: ${{ steps.build-1.outcome == 'failure' }} + run: | + Start-Sleep -s 120 + + - name: Build Retry 1 + uses: ./ + id: build-2 + continue-on-error: true + timeout-minutes: 60 + if: steps.build-1.outcome == 'failure' + env: + UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} + UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} + UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }} + with: + projectPath: ${{ matrix.projectPath }} + unityVersion: ${{ matrix.unityVersion }} + targetPlatform: ${{ matrix.targetPlatform }} + customParameters: -profile SomeProfile -someBoolean -someValue exampleValue + allowDirtyBuild: true + # We use dirty build because we are replacing the default project settings file above + + - name: Sleep for Retry + if: ${{ steps.build-1.outcome == 'failure' && steps.build-2.outcome == 'failure' }} + run: | + Start-Sleep -s 240 + + - name: Build Retry 2 + uses: ./ + id: build-3 + timeout-minutes: 60 + if: ${{ steps.build-1.outcome == 'failure' && steps.build-2.outcome == 'failure' }} env: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..4fd02195 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true \ No newline at end of file diff --git a/action.yml b/action.yml index f7e111d7..f5539f52 100644 --- a/action.yml +++ b/action.yml @@ -22,7 +22,7 @@ inputs: buildName: required: false default: '' - description: 'Name of the build.' + description: 'Name of the build. Should not include a file extension.' buildsPath: required: false default: '' @@ -50,7 +50,12 @@ inputs: androidAppBundle: required: false default: 'false' - description: 'Whether to build .aab instead of .apk' + description: '[Deprecated] Use androidExportType instead. Whether to build .aab instead of .apk' + androidExportType: + required: false + description: + 'The android export type. Should be androidPackage for apk, androidAppBundle for aab, or androidStudioProject for + an android studio project.' androidKeystoreName: required: false default: '' @@ -75,9 +80,13 @@ inputs: required: false default: '' description: 'The android target API level.' + androidSymbolType: + required: false + default: 'none' + description: 'The android symbol type to export. Should be "none", "public" or "debugging".' sshAgent: required: false - default: '' + default: 'public' description: 'SSH Agent path to forward to the container' gitPrivateToken: required: false @@ -187,6 +196,17 @@ inputs: description: '[CloudRunner] Whether or not to watch the build to the end. Can be used for especially long running jobs e.g imports or self-hosted ephemeral runners.' + cacheUnityInstallationOnMac: + default: 'false' + required: false + description: 'Whether to cache the Unity hub and editor installation on MacOS' + unityHubVersionOnMac: + default: '' + required: false + description: + 'The version of Unity Hub to install on MacOS (e.g. 3.4.0). Defaults to latest available on brew if empty string + or nothing is specified.' + outputs: volume: description: 'The Persistent Volume (PV) where the build artifacts have been stored by Kubernetes' diff --git a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/AndroidSettings.cs b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/AndroidSettings.cs index cb3f4480..8008f79c 100644 --- a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/AndroidSettings.cs +++ b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/AndroidSettings.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using UnityEditor; +using System.Reflection; namespace UnityBuilderAction.Input { @@ -8,7 +9,6 @@ namespace UnityBuilderAction.Input { public static void Apply(Dictionary options) { - EditorUserBuildSettings.buildAppBundle = options["customBuildPath"].EndsWith(".aab"); #if UNITY_2019_1_OR_NEWER if (options.TryGetValue("androidKeystoreName", out string keystoreName) && !string.IsNullOrEmpty(keystoreName)) { @@ -16,13 +16,21 @@ namespace UnityBuilderAction.Input PlayerSettings.Android.keystoreName = keystoreName; } #endif - if (options.TryGetValue("androidKeystorePass", out string keystorePass) && !string.IsNullOrEmpty(keystorePass)) + // Can't use out variable declaration as Unity 2018 doesn't support it + string keystorePass; + if (options.TryGetValue("androidKeystorePass", out keystorePass) && !string.IsNullOrEmpty(keystorePass)) PlayerSettings.Android.keystorePass = keystorePass; - if (options.TryGetValue("androidKeyaliasName", out string keyaliasName) && !string.IsNullOrEmpty(keyaliasName)) + + string keyaliasName; + if (options.TryGetValue("androidKeyaliasName", out keyaliasName) && !string.IsNullOrEmpty(keyaliasName)) PlayerSettings.Android.keyaliasName = keyaliasName; - if (options.TryGetValue("androidKeyaliasPass", out string keyaliasPass) && !string.IsNullOrEmpty(keyaliasPass)) + + string keyaliasPass; + if (options.TryGetValue("androidKeyaliasPass", out keyaliasPass) && !string.IsNullOrEmpty(keyaliasPass)) PlayerSettings.Android.keyaliasPass = keyaliasPass; - if (options.TryGetValue("androidTargetSdkVersion", out string androidTargetSdkVersion) && !string.IsNullOrEmpty(androidTargetSdkVersion)) + + string androidTargetSdkVersion; + if (options.TryGetValue("androidTargetSdkVersion", out androidTargetSdkVersion) && !string.IsNullOrEmpty(androidTargetSdkVersion)) { var targetSdkVersion = AndroidSdkVersions.AndroidApiLevelAuto; try @@ -36,6 +44,62 @@ namespace UnityBuilderAction.Input } PlayerSettings.Android.targetSdkVersion = targetSdkVersion; } + + string androidExportType; + if (options.TryGetValue("androidExportType", out androidExportType) && !string.IsNullOrEmpty(androidExportType)) + { + // Only exists in 2018.3 and above + FieldInfo buildAppBundle = typeof(EditorUserBuildSettings) + .GetField("buildAppBundle", System.Reflection.BindingFlags.Public | BindingFlags.Instance); + switch (androidExportType) + { + case "androidStudioProject": + EditorUserBuildSettings.exportAsGoogleAndroidProject = true; + if (buildAppBundle != null) + buildAppBundle.SetValue(null, false); + break; + case "androidAppBundle": + EditorUserBuildSettings.exportAsGoogleAndroidProject = false; + if (buildAppBundle != null) + buildAppBundle.SetValue(null, true); + break; + case "androidPackage": + EditorUserBuildSettings.exportAsGoogleAndroidProject = false; + if (buildAppBundle != null) + buildAppBundle.SetValue(null, false); + break; + } + } + + string symbolType; + if (options.TryGetValue("androidSymbolType", out symbolType) && !string.IsNullOrEmpty(symbolType)) + { +#if UNITY_2021_1_OR_NEWER + switch (symbolType) + { + case "public": + EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Public; + break; + case "debugging": + EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Debugging; + break; + case "none": + EditorUserBuildSettings.androidCreateSymbols = AndroidCreateSymbols.Disabled; + break; + } +#elif UNITY_2019_2_OR_NEWER + switch (symbolType) + { + case "public": + case "debugging": + EditorUserBuildSettings.androidCreateSymbolsZip = true; + break; + case "none": + EditorUserBuildSettings.androidCreateSymbolsZip = false; + break; + } +#endif + } } } } diff --git a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/ArgumentsParser.cs b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/ArgumentsParser.cs index 58ebe6b5..c53b7d37 100644 --- a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/ArgumentsParser.cs +++ b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Input/ArgumentsParser.cs @@ -12,14 +12,17 @@ namespace UnityBuilderAction.Input public static Dictionary GetValidatedOptions() { - ParseCommandLineArguments(out var validatedOptions); + Dictionary validatedOptions; + ParseCommandLineArguments(out validatedOptions); - if (!validatedOptions.TryGetValue("projectPath", out var projectPath)) { + string projectPath; + if (!validatedOptions.TryGetValue("projectPath", out projectPath)) { Console.WriteLine("Missing argument -projectPath"); EditorApplication.Exit(110); } - if (!validatedOptions.TryGetValue("buildTarget", out var buildTarget)) { + string buildTarget; + if (!validatedOptions.TryGetValue("buildTarget", out buildTarget)) { Console.WriteLine("Missing argument -buildTarget"); EditorApplication.Exit(120); } @@ -28,13 +31,15 @@ namespace UnityBuilderAction.Input EditorApplication.Exit(121); } - if (!validatedOptions.TryGetValue("customBuildPath", out var customBuildPath)) { + string customBuildPath; + if (!validatedOptions.TryGetValue("customBuildPath", out customBuildPath)) { Console.WriteLine("Missing argument -customBuildPath"); EditorApplication.Exit(130); } const string defaultCustomBuildName = "TestBuild"; - if (!validatedOptions.TryGetValue("customBuildName", out var customBuildName)) { + string customBuildName; + if (!validatedOptions.TryGetValue("customBuildName", out customBuildName)) { Console.WriteLine($"Missing argument -customBuildName, defaulting to {defaultCustomBuildName}."); validatedOptions.Add("customBuildName", defaultCustomBuildName); } else if (customBuildName == "") { diff --git a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/Git.cs b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/Git.cs index c822da3e..dbf3c4fa 100644 --- a/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/Git.cs +++ b/dist/default-build-script/Assets/Editor/UnityBuilderAction/Versioning/Git.cs @@ -106,7 +106,8 @@ namespace UnityBuilderAction.Versioning using (var process = new System.Diagnostics.Process()) { string workingDirectory = UnityEngine.Application.dataPath; - int exitCode = process.Run(application, arguments, workingDirectory, out string output, out string errors); + string output, errors; + int exitCode = process.Run(application, arguments, workingDirectory, out output, out errors); if (exitCode != 0) { throw new GitException(exitCode, errors); } return output; diff --git a/dist/index.js b/dist/index.js index 552c8ab0..3bf6f6b8 100644 Binary files a/dist/index.js and b/dist/index.js differ diff --git a/dist/index.js.map b/dist/index.js.map index c88931c9..d877d297 100644 Binary files a/dist/index.js.map and b/dist/index.js.map differ diff --git a/dist/licenses.txt b/dist/licenses.txt index 98b21314..b7820d06 100644 Binary files a/dist/licenses.txt and b/dist/licenses.txt differ diff --git a/dist/platforms/mac/steps/activate.sh b/dist/platforms/mac/steps/activate.sh index 4a6d2e6f..c9511eb5 100755 --- a/dist/platforms/mac/steps/activate.sh +++ b/dist/platforms/mac/steps/activate.sh @@ -8,7 +8,7 @@ echo "Requesting activation" # Activate license /Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \ - -logFile /dev/stdout \ + -logFile - \ -batchmode \ -nographics \ -quit \ diff --git a/dist/platforms/mac/steps/build.sh b/dist/platforms/mac/steps/build.sh index abacceef..8fd98f69 100755 --- a/dist/platforms/mac/steps/build.sh +++ b/dist/platforms/mac/steps/build.sh @@ -128,6 +128,7 @@ echo "" # Reference: https://docs.unity3d.com/2019.3/Documentation/Manual/CommandLineArguments.html /Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \ + -logFile - \ -quit \ -batchmode \ -nographics \ @@ -146,8 +147,9 @@ echo "" -androidKeyaliasName "$ANDROID_KEYALIAS_NAME" \ -androidKeyaliasPass "$ANDROID_KEYALIAS_PASS" \ -androidTargetSdkVersion "$ANDROID_TARGET_SDK_VERSION" \ - $CUSTOM_PARAMETERS \ - > "$UNITY_PROJECT_PATH/out.log" 2>&1 + -androidExportType "$ANDROID_EXPORT_TYPE" \ + -androidSymbolType "$ANDROID_SYMBOL_TYPE" \ + $CUSTOM_PARAMETERS # Catch exit code BUILD_EXIT_CODE=$? diff --git a/dist/platforms/mac/steps/return_license.sh b/dist/platforms/mac/steps/return_license.sh index 423a32f0..1749f9e7 100755 --- a/dist/platforms/mac/steps/return_license.sh +++ b/dist/platforms/mac/steps/return_license.sh @@ -5,7 +5,7 @@ echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory." pushd "$ACTIVATE_LICENSE_PATH" /Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \ - -logFile /dev/stdout \ + -logFile - \ -batchmode \ -nographics \ -quit \ diff --git a/dist/platforms/ubuntu/steps/build.sh b/dist/platforms/ubuntu/steps/build.sh index ba9a3ad9..66149409 100755 --- a/dist/platforms/ubuntu/steps/build.sh +++ b/dist/platforms/ubuntu/steps/build.sh @@ -133,6 +133,8 @@ unity-editor \ -androidKeyaliasName "$ANDROID_KEYALIAS_NAME" \ -androidKeyaliasPass "$ANDROID_KEYALIAS_PASS" \ -androidTargetSdkVersion "$ANDROID_TARGET_SDK_VERSION" \ + -androidExportType "$ANDROID_EXPORT_TYPE" \ + -androidSymbolType "$ANDROID_SYMBOL_TYPE" \ $CUSTOM_PARAMETERS # Catch exit code diff --git a/dist/platforms/windows/build.ps1 b/dist/platforms/windows/build.ps1 index 150d2c9b..50ae2795 100644 --- a/dist/platforms/windows/build.ps1 +++ b/dist/platforms/windows/build.ps1 @@ -126,11 +126,13 @@ $_, $customParametersArray = Invoke-Expression('Write-Output -- "" ' + $Env:CUST -androidKeyaliasName $Env:ANDROID_KEYALIAS_NAME ` -androidKeyaliasPass $Env:ANDROID_KEYALIAS_PASS ` -androidTargetSdkVersion $Env:ANDROID_TARGET_SDK_VERSION ` + -androidExportType $Env:ANDROID_EXPORT_TYPE ` + -androidSymbolType $Env:ANDROID_SYMBOL_TYPE ` $customParametersArray ` -logfile | Out-Host # Catch exit code -$Env:BUILD_EXIT_CODE=$? +$Env:BUILD_EXIT_CODE=$LastExitCode # Display results if ($Env:BUILD_EXIT_CODE -eq 0) diff --git a/package.json b/package.json index ad2dc4f3..98d43e3f 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,11 @@ "test-i-aws": "cross-env cloudRunnerTests=true cloudRunnerCluster=aws yarn test -i -t \"cloud runner\"", "test-i-k8s": "cross-env cloudRunnerTests=true cloudRunnerCluster=k8s yarn test -i -t \"cloud runner\"" }, + "engines": { + "node": ">=16.0.0" + }, "dependencies": { + "@actions/cache": "^3.1.3", "@actions/core": "^1.10.0", "@actions/exec": "^1.1.0", "@actions/github": "^5.0.0", @@ -64,6 +68,7 @@ "prettier": "^2.5.1", "ts-jest": "^27.1.3", "ts-node": "10.4.0", - "typescript": "4.1.3" + "typescript": "4.1.3", + "yarn-audit-fix": "^9.3.8" } } diff --git a/src/index.ts b/src/index.ts index 99654f20..3478af03 100644 --- a/src/index.ts +++ b/src/index.ts @@ -24,7 +24,7 @@ async function runMain() { core.info('Building locally'); await PlatformSetup.setup(buildParameters, actionFolder); if (process.platform === 'darwin') { - MacBuilder.run(actionFolder, workspace, buildParameters); + MacBuilder.run(actionFolder); } else { await Docker.run(baseImage, { workspace, actionFolder, ...buildParameters }); } diff --git a/src/model/build-parameters.test.ts b/src/model/build-parameters.test.ts index c41befba..2d44194b 100644 --- a/src/model/build-parameters.test.ts +++ b/src/model/build-parameters.test.ts @@ -95,34 +95,41 @@ describe('BuildParameters', () => { await expect(BuildParameters.create()).resolves.toEqual(expect.objectContaining({ buildFile: mockValue })); }); - test.each([Platform.types.StandaloneWindows, Platform.types.StandaloneWindows64])( - 'appends exe for %s', - async (targetPlatform) => { + test.each` + targetPlatform | expectedExtension | androidExportType + ${Platform.types.Android} | ${'.apk'} | ${'androidPackage'} + ${Platform.types.Android} | ${'.aab'} | ${'androidAppBundle'} + ${Platform.types.Android} | ${''} | ${'androidStudioProject'} + ${Platform.types.StandaloneWindows} | ${'.exe'} | ${'n/a'} + ${Platform.types.StandaloneWindows64} | ${'.exe'} | ${'n/a'} + `( + 'appends $expectedExtension for $targetPlatform with androidExportType $androidExportType', + async ({ targetPlatform, expectedExtension, androidExportType }) => { jest.spyOn(Input, 'targetPlatform', 'get').mockReturnValue(targetPlatform); jest.spyOn(Input, 'buildName', 'get').mockReturnValue(targetPlatform); + jest.spyOn(Input, 'androidExportType', 'get').mockReturnValue(androidExportType); await expect(BuildParameters.create()).resolves.toEqual( - expect.objectContaining({ buildFile: `${targetPlatform}.exe` }), + expect.objectContaining({ buildFile: `${targetPlatform}${expectedExtension}` }), ); }, ); - test.each([Platform.types.Android])('appends apk for %s', async (targetPlatform) => { - jest.spyOn(Input, 'targetPlatform', 'get').mockReturnValue(targetPlatform); - jest.spyOn(Input, 'buildName', 'get').mockReturnValue(targetPlatform); - jest.spyOn(Input, 'androidAppBundle', 'get').mockReturnValue(false); - await expect(BuildParameters.create()).resolves.toEqual( - expect.objectContaining({ buildFile: `${targetPlatform}.apk` }), - ); - }); - - test.each([Platform.types.Android])('appends aab for %s', async (targetPlatform) => { - jest.spyOn(Input, 'targetPlatform', 'get').mockReturnValue(targetPlatform); - jest.spyOn(Input, 'buildName', 'get').mockReturnValue(targetPlatform); - jest.spyOn(Input, 'androidAppBundle', 'get').mockReturnValue(true); - await expect(BuildParameters.create()).resolves.toEqual( - expect.objectContaining({ buildFile: `${targetPlatform}.aab` }), - ); - }); + test.each` + targetPlatform | androidSymbolType + ${Platform.types.Android} | ${'none'} + ${Platform.types.Android} | ${'public'} + ${Platform.types.Android} | ${'debugging'} + ${Platform.types.StandaloneWindows} | ${'none'} + ${Platform.types.StandaloneWindows64} | ${'none'} + `( + 'androidSymbolType is set to $androidSymbolType when targetPlatform is $targetPlatform and input targetSymbolType is $androidSymbolType', + async ({ targetPlatform, androidSymbolType }) => { + jest.spyOn(Input, 'targetPlatform', 'get').mockReturnValue(targetPlatform); + jest.spyOn(Input, 'androidSymbolType', 'get').mockReturnValue(androidSymbolType); + jest.spyOn(Input, 'buildName', 'get').mockReturnValue(targetPlatform); + await expect(BuildParameters.create()).resolves.toEqual(expect.objectContaining({ androidSymbolType })); + }, + ); it('returns the build method', async () => { const mockValue = 'Namespace.ClassName.BuildMethod'; diff --git a/src/model/build-parameters.ts b/src/model/build-parameters.ts index 581036d1..867b00c9 100644 --- a/src/model/build-parameters.ts +++ b/src/model/build-parameters.ts @@ -33,6 +33,9 @@ class BuildParameters { public androidKeyaliasPass!: string; public androidTargetSdkVersion!: string; public androidSdkManagerParameters!: string; + public androidExportType!: string; + public androidSymbolType!: string; + public customParameters!: string; public sshAgent!: string; public cloudRunnerCluster!: string; @@ -71,14 +74,30 @@ class BuildParameters { public garbageCollectionMaxAge!: number; public constantGarbageCollection!: boolean; public githubChecks!: boolean; + public cacheUnityInstallationOnMac!: boolean; + public unityHubVersionOnMac!: string; static async create(): Promise { - const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle); + const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidExportType); const editorVersion = UnityVersioning.determineUnityVersion(Input.projectPath, Input.unityVersion); const buildVersion = await Versioning.determineBuildVersion(Input.versioningStrategy, Input.specifiedVersion); const androidVersionCode = AndroidVersioning.determineVersionCode(buildVersion, Input.androidVersionCode); const androidSdkManagerParameters = AndroidVersioning.determineSdkManagerParameters(Input.androidTargetSdkVersion); + const androidSymbolExportType = Input.androidSymbolType; + if (Platform.isAndroid(Input.targetPlatform)) { + switch (androidSymbolExportType) { + case 'none': + case 'public': + case 'debugging': + break; + default: + throw new Error( + `Invalid androidSymbolType: ${Input.androidSymbolType}. Must be one of: none, public, debugging`, + ); + } + } + // Todo - Don't use process.env directly, that's what the input model class is for. // --- let unitySerial = ''; @@ -118,6 +137,8 @@ class BuildParameters { androidKeyaliasPass: Input.androidKeyaliasPass, androidTargetSdkVersion: Input.androidTargetSdkVersion, androidSdkManagerParameters, + androidExportType: Input.androidExportType, + androidSymbolType: androidSymbolExportType, customParameters: Input.customParameters, sshAgent: Input.sshAgent, gitPrivateToken: Input.gitPrivateToken || (await GithubCliReader.GetGitHubAuthToken()), @@ -155,22 +176,35 @@ class BuildParameters { constantGarbageCollection: CloudRunnerOptions.constantGarbageCollection, garbageCollectionMaxAge: CloudRunnerOptions.garbageCollectionMaxAge, githubChecks: CloudRunnerOptions.githubChecks, + cacheUnityInstallationOnMac: Input.cacheUnityInstallationOnMac, + unityHubVersionOnMac: Input.unityHubVersionOnMac, }; } - static parseBuildFile(filename, platform, androidAppBundle) { + static parseBuildFile(filename: string, platform: string, androidExportType: string): string { if (Platform.isWindows(platform)) { return `${filename}.exe`; } if (Platform.isAndroid(platform)) { - return androidAppBundle ? `${filename}.aab` : `${filename}.apk`; + switch (androidExportType) { + case `androidPackage`: + return `${filename}.apk`; + case `androidAppBundle`: + return `${filename}.aab`; + case `androidStudioProject`: + return filename; + default: + throw new Error( + `Unknown Android Export Type: ${androidExportType}. Must be one of androidPackage for apk, androidAppBundle for aab, androidStudioProject for android project`, + ); + } } return filename; } - static getSerialFromLicenseFile(license) { + static getSerialFromLicenseFile(license: string) { const startKey = ``; const startIndex = license.indexOf(startKey) + startKey.length; diff --git a/src/model/docker.ts b/src/model/docker.ts index b7a00bec..b9943400 100644 --- a/src/model/docker.ts +++ b/src/model/docker.ts @@ -1,4 +1,4 @@ -import { exec } from '@actions/exec'; +import { execWithErrorCheck } from './exec-with-error-check'; import ImageEnvironmentFactory from './image-environment-factory'; import { existsSync, mkdirSync } from 'fs'; import path from 'path'; @@ -23,9 +23,9 @@ class Docker { } if (options !== false) { options.silent = silent; - await exec(runCommand, undefined, options); + await execWithErrorCheck(runCommand, undefined, options); } else { - await exec(runCommand, undefined, { silent }); + await execWithErrorCheck(runCommand, undefined, { silent }); } } diff --git a/src/model/exec-with-error-check.ts b/src/model/exec-with-error-check.ts new file mode 100644 index 00000000..529a2d7a --- /dev/null +++ b/src/model/exec-with-error-check.ts @@ -0,0 +1,24 @@ +import { getExecOutput, ExecOptions } from '@actions/exec'; + +export async function execWithErrorCheck( + commandLine: string, + arguments_?: string[], + options?: ExecOptions, +): Promise { + const result = await getExecOutput(commandLine, arguments_, options); + + // Check for errors in the Build Results section + const match = result.stdout.match(/^#\s*Build results\s*#(.*)^Size:/ms); + + if (match) { + const buildResults = match[1]; + const errorMatch = buildResults.match(/^Errors:\s*(\d+)$/m); + if (errorMatch && Number.parseInt(errorMatch[1], 10) !== 0) { + throw new Error(`There was an error building the project. Please read the logs for details.`); + } + } else { + throw new Error(`There was an error building the project. Please read the logs for details.`); + } + + return result.exitCode; +} diff --git a/src/model/image-environment-factory.ts b/src/model/image-environment-factory.ts index 014bd56e..8398acde 100644 --- a/src/model/image-environment-factory.ts +++ b/src/model/image-environment-factory.ts @@ -7,7 +7,7 @@ class Parameter { } class ImageEnvironmentFactory { - public static getEnvVarString(parameters, additionalVariables: any[] = []) { + public static getEnvVarString(parameters: BuildParameters, additionalVariables: any[] = []) { const environmentVariables = ImageEnvironmentFactory.getEnvironmentVariables(parameters, additionalVariables); let string = ''; for (const p of environmentVariables) { @@ -50,6 +50,8 @@ class ImageEnvironmentFactory { { name: 'ANDROID_KEYALIAS_PASS', value: parameters.androidKeyaliasPass }, { name: 'ANDROID_TARGET_SDK_VERSION', value: parameters.androidTargetSdkVersion }, { name: 'ANDROID_SDK_MANAGER_PARAMETERS', value: parameters.androidSdkManagerParameters }, + { name: 'ANDROID_EXPORT_TYPE', value: parameters.androidExportType }, + { name: 'ANDROID_SYMBOL_TYPE', value: parameters.androidSymbolType }, { name: 'CUSTOM_PARAMETERS', value: parameters.customParameters }, { name: 'CHOWN_FILES_TO', value: parameters.chownFilesTo }, { name: 'GITHUB_REF', value: process.env.GITHUB_REF }, diff --git a/src/model/input.test.ts b/src/model/input.test.ts index 7cf2fc54..20b3e6de 100644 --- a/src/model/input.test.ts +++ b/src/model/input.test.ts @@ -161,6 +161,82 @@ describe('Input', () => { }); }); + describe('androidExportType', () => { + it('returns the default value', () => { + expect(Input.androidExportType).toStrictEqual('androidPackage'); + }); + + // TODO: Remove "and androidAppBundle is not set" in v3 + test.each` + input | expected + ${'androidPackage'} | ${'androidPackage'} + ${'androidAppBundle'} | ${'androidAppBundle'} + ${'androidStudioProject'} | ${'androidStudioProject'} + `('returns $expected when $input is passed and androidAppBundle is not set', ({ input, expected }) => { + const spy = jest.spyOn(core, 'getInput').mockReturnValue(input); + expect(Input.androidExportType).toStrictEqual(expected); + expect(spy).toHaveBeenCalledTimes(1); + }); + + // TODO: Remove in v3 + test.each` + input | expected + ${'androidPackage'} | ${'androidPackage'} + ${'androidAppBundle'} | ${'androidAppBundle'} + ${'androidStudioProject'} | ${'androidStudioProject'} + `('returns $expected when $input is passed and overrides androidAppBundle if it is set', ({ input, expected }) => { + const spy = jest.spyOn(Input, 'getInput'); + spy.mockImplementationOnce(() => { + return input; + }); + + spy.mockImplementationOnce(() => { + return true; + }); + expect(Input.androidExportType).toStrictEqual(expected); + expect(spy).toHaveBeenCalledTimes(1); + }); + + // TODO: Remove in v3 + test.each` + input | expected + ${'true'} | ${'androidAppBundle'} + ${'false'} | ${'androidPackage'} + `( + 'returns $expected when androidExportType is undefined and androidAppBundle is set to $input', + ({ input, expected }) => { + const spy = jest.spyOn(Input, 'getInput'); + spy.mockImplementationOnce(() => { + return; + }); + + spy.mockImplementationOnce(() => { + return input; + }); + + expect(Input.androidExportType).toStrictEqual(expected); + expect(spy).toHaveBeenCalledTimes(2); + }, + ); + }); + + describe('androidSymbolType', () => { + it('returns the default value', () => { + expect(Input.androidSymbolType).toStrictEqual('none'); + }); + + test.each` + input | expected + ${'none'} | ${'none'} + ${'public'} | ${'public'} + ${'debugging'} | ${'debugging'} + `('returns $expected when $input is passed', ({ input, expected }) => { + const spy = jest.spyOn(core, 'getInput').mockReturnValue(input); + expect(Input.androidExportType).toStrictEqual(expected); + expect(spy).toHaveBeenCalledTimes(1); + }); + }); + describe('androidKeystoreName', () => { it('returns the default value', () => { expect(Input.androidKeystoreName).toStrictEqual(''); diff --git a/src/model/input.ts b/src/model/input.ts index 4a0993ae..465663c4 100644 --- a/src/model/input.ts +++ b/src/model/input.ts @@ -134,11 +134,28 @@ class Input { } static get androidAppBundle() { + core.warning('androidAppBundle is deprecated, please use androidExportType instead'); const input = Input.getInput('androidAppBundle') || false; return input === 'true'; } + static get androidExportType() { + // TODO: remove this in V3 + const exportType = Input.getInput('androidExportType'); + + if (exportType) { + return exportType || 'androidPackage'; + } + + return Input.androidAppBundle ? 'androidAppBundle' : 'androidPackage'; + + // End TODO + + // Use this in V3 when androidAppBundle is removed + // return Input.getInput('androidExportType') || 'androidPackage'; + } + static get androidKeystoreName() { return Input.getInput('androidKeystoreName') || ''; } @@ -163,6 +180,10 @@ class Input { return Input.getInput('androidTargetSdkVersion') || ''; } + static get androidSymbolType() { + return Input.getInput('androidSymbolType') || 'none'; + } + static get sshAgent() { return Input.getInput('sshAgent') || ''; } @@ -181,6 +202,18 @@ class Input { return input === 'true'; } + static get cacheUnityInstallationOnMac() { + const input = Input.getInput('cacheUnityInstallationOnMac') || false; + + return input === 'true'; + } + + static get unityHubVersionOnMac() { + const input = Input.getInput('unityHubVersionOnMac') || ''; + + return input !== '' ? input : ''; + } + public static ToEnvVarFormat(input: string) { if (input.toUpperCase() === input) { return input; diff --git a/src/model/mac-builder.ts b/src/model/mac-builder.ts index a95cf7cb..d4b9ae45 100644 --- a/src/model/mac-builder.ts +++ b/src/model/mac-builder.ts @@ -1,11 +1,9 @@ -import { exec } from '@actions/exec'; -import { BuildParameters } from '.'; +import { execWithErrorCheck } from './exec-with-error-check'; class MacBuilder { - public static async run(actionFolder, workspace, buildParameters: BuildParameters, silent = false) { - await exec('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { + public static async run(actionFolder, silent = false) { + await execWithErrorCheck('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { silent, - ignoreReturnCode: true, }); } } diff --git a/src/model/platform-setup/setup-mac.ts b/src/model/platform-setup/setup-mac.ts index 9a9f215a..bab218dc 100644 --- a/src/model/platform-setup/setup-mac.ts +++ b/src/model/platform-setup/setup-mac.ts @@ -1,16 +1,19 @@ import { BuildParameters } from '..'; import { getUnityChangeset } from 'unity-changeset'; -import { exec } from '@actions/exec'; +import { exec, getExecOutput } from '@actions/exec'; +import { restoreCache, saveCache } from '@actions/cache'; + import fs from 'fs'; class SetupMac { - static unityHubPath = `"/Applications/Unity Hub.app/Contents/MacOS/Unity Hub"`; + static unityHubBasePath = `/Applications/"Unity Hub.app"`; + static unityHubExecPath = `${SetupMac.unityHubBasePath}/Contents/MacOS/"Unity Hub"`; public static async setup(buildParameters: BuildParameters, actionFolder: string) { const unityEditorPath = `/Applications/Unity/Hub/Editor/${buildParameters.editorVersion}/Unity.app/Contents/MacOS/Unity`; - if (!fs.existsSync(this.unityHubPath)) { - await SetupMac.installUnityHub(); + if (!fs.existsSync(this.unityHubExecPath)) { + await SetupMac.installUnityHub(buildParameters); } if (!fs.existsSync(unityEditorPath)) { @@ -20,45 +23,27 @@ class SetupMac { await SetupMac.setEnvironmentVariables(buildParameters, actionFolder); } - private static async installUnityHub(silent = false) { - const command = 'brew install unity-hub'; - if (!fs.existsSync(this.unityHubPath)) { - // Ignoring return code because the log seems to overflow the internal buffer which triggers - // a false error - const errorCode = await exec(command, undefined, { silent, ignoreReturnCode: true }); - if (errorCode) { - throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); + private static async installUnityHub(buildParameters, silent = false) { + // Can't use quotes in the cache package so we need a different path + const unityHubCachePath = `/Applications/Unity\\ Hub.app`; + + const targetHubVersion = + buildParameters.unityHubVersionOnMac !== '' + ? buildParameters.unityHubVersionOnMac + : await SetupMac.getLatestUnityHubVersion(); + + const restoreKey = `Cache-MacOS-UnityHub@${targetHubVersion}`; + + if (buildParameters.cacheUnityInstallationOnMac) { + const cacheId = await restoreCache([unityHubCachePath], restoreKey); + if (cacheId) { + // Cache restored successfully, unity hub is installed now + return; } } - } - private static async installUnity(buildParameters: BuildParameters, silent = false) { - const unityChangeset = await getUnityChangeset(buildParameters.editorVersion); - let command = `${this.unityHubPath} -- --headless install \ - --version ${buildParameters.editorVersion} \ - --changeset ${unityChangeset.changeset} `; - - switch (buildParameters.targetPlatform) { - case 'iOS': - command += `--module ios `; - break; - case 'tvOS': - command += '--module tvos '; - break; - case 'StandaloneOSX': - command += `--module mac-il2cpp `; - break; - case 'Android': - command += `--module android `; - break; - case 'WebGL': - command += '--module webgl '; - break; - default: - throw new Error(`Unsupported module for target platform: ${buildParameters.targetPlatform}.`); - } - - command += `--childModules`; + const commandSuffix = buildParameters.unityHubVersionOnMac !== '' ? `@${buildParameters.unityHubVersionOnMac}` : ''; + const command = `brew install unity-hub${commandSuffix}`; // Ignoring return code because the log seems to overflow the internal buffer which triggers // a false error @@ -66,6 +51,83 @@ class SetupMac { if (errorCode) { throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); } + + if (buildParameters.cacheUnityInstallationOnMac) { + await saveCache([unityHubCachePath], restoreKey); + } + } + + /** + * Gets the latest version of Unity Hub available on brew + * @returns The latest version of Unity Hub available on brew + */ + private static async getLatestUnityHubVersion(): Promise { + // Need to check if the latest version available is the same as the one we have cached + const hubVersionCommand = `/bin/bash -c "brew info unity-hub | grep -o '[0-9]\\+\\.[0-9]\\+\\.[0-9]\\+'"`; + const result = await getExecOutput(hubVersionCommand, undefined, { silent: true }); + if (result.exitCode === 0 && result.stdout !== '') { + return result.stdout; + } + + return ''; + } + + private static getModuleParametersForTargetPlatform(targetPlatform: string): string { + let moduleArgument = ''; + switch (targetPlatform) { + case 'iOS': + moduleArgument += `--module ios `; + break; + case 'tvOS': + moduleArgument += '--module tvos '; + break; + case 'StandaloneOSX': + moduleArgument += `--module mac-il2cpp `; + break; + case 'Android': + moduleArgument += `--module android `; + break; + case 'WebGL': + moduleArgument += '--module webgl '; + break; + default: + throw new Error(`Unsupported module for target platform: ${targetPlatform}.`); + } + + return moduleArgument; + } + + private static async installUnity(buildParameters: BuildParameters, silent = false) { + const unityEditorPath = `/Applications/Unity/Hub/Editor/${buildParameters.editorVersion}`; + const key = `Cache-MacOS-UnityEditor-With-Module-${buildParameters.targetPlatform}@${buildParameters.editorVersion}`; + + if (buildParameters.cacheUnityInstallationOnMac) { + const cacheId = await restoreCache([unityEditorPath], key); + if (cacheId) { + // Cache restored successfully, unity editor is installed now + return; + } + } + + const unityChangeset = await getUnityChangeset(buildParameters.editorVersion); + const moduleArgument = SetupMac.getModuleParametersForTargetPlatform(buildParameters.targetPlatform); + + const command = `${this.unityHubExecPath} -- --headless install \ + --version ${buildParameters.editorVersion} \ + --changeset ${unityChangeset.changeset} \ + ${moduleArgument} \ + --childModules `; + + // Ignoring return code because the log seems to overflow the internal buffer which triggers + // a false error + const errorCode = await exec(command, undefined, { silent, ignoreReturnCode: true }); + if (errorCode) { + throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); + } + + if (buildParameters.cacheUnityInstallationOnMac) { + await saveCache([unityEditorPath], key); + } } private static async setEnvironmentVariables(buildParameters: BuildParameters, actionFolder: string) { @@ -90,6 +152,8 @@ class SetupMac { process.env.ANDROID_KEYALIAS_PASS = buildParameters.androidKeyaliasPass; process.env.ANDROID_TARGET_SDK_VERSION = buildParameters.androidTargetSdkVersion; process.env.ANDROID_SDK_MANAGER_PARAMETERS = buildParameters.androidSdkManagerParameters; + process.env.ANDROID_EXPORT_TYPE = buildParameters.androidExportType; + process.env.ANDROID_SYMBOL_TYPE = buildParameters.androidSymbolType; process.env.CUSTOM_PARAMETERS = buildParameters.customParameters; process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo; } diff --git a/src/model/versioning.ts b/src/model/versioning.ts index 7ef0ca47..e39dff42 100644 --- a/src/model/versioning.ts +++ b/src/model/versioning.ts @@ -62,10 +62,15 @@ export default class Versioning { */ static async logDiff() { const diffCommand = `git --no-pager diff | head -n ${this.maxDiffLines.toString()}`; - await System.run('sh', undefined, { - input: Buffer.from(diffCommand), - silent: true, - }); + await System.run( + 'sh', + undefined, + { + input: Buffer.from(diffCommand), + silent: true, + }, + false, + ); } /** @@ -307,6 +312,6 @@ export default class Versioning { * Run git in the specified project path */ static async git(arguments_, options = {}) { - return System.run('git', arguments_, { cwd: this.projectPath, ...options }); + return System.run('git', arguments_, { cwd: this.projectPath, ...options }, false); } } diff --git a/test-project/ProjectSettings/ProjectSettings.asset b/test-project/ProjectSettings/ProjectSettings.asset index aa060258..7b66fd1f 100644 --- a/test-project/ProjectSettings/ProjectSettings.asset +++ b/test-project/ProjectSettings/ProjectSettings.asset @@ -13,7 +13,7 @@ PlayerSettings: useOnDemandResources: 0 accelerometerFrequency: 60 companyName: DefaultCompany - productName: simple-test-project + productName: simpletestproject defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} @@ -165,6 +165,7 @@ PlayerSettings: androidMaxAspectRatio: 2.1 applicationIdentifier: Standalone: com.Company.ProductName + Android: com.DefaultCompany.simpletestproject buildNumber: {} AndroidBundleVersionCode: 1 AndroidMinSdkVersion: 16 diff --git a/test-project/ProjectSettings/ProjectSettingsIl2cpp.asset b/test-project/ProjectSettings/ProjectSettingsIl2cpp.asset index d62e93ca..81fa1255 100644 --- a/test-project/ProjectSettings/ProjectSettingsIl2cpp.asset +++ b/test-project/ProjectSettings/ProjectSettingsIl2cpp.asset @@ -13,7 +13,7 @@ PlayerSettings: useOnDemandResources: 0 accelerometerFrequency: 60 companyName: DefaultCompany - productName: simple-test-project + productName: simpletestproject defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} @@ -154,11 +154,12 @@ PlayerSettings: androidMaxAspectRatio: 2.1 applicationIdentifier: Standalone: com.Company.ProductName + Android: com.DefaultCompany.simpletestproject buildNumber: Standalone: 0 iPhone: 0 tvOS: 0 - overrideDefaultApplicationIdentifier: 1 + overrideDefaultApplicationIdentifier: 0 AndroidBundleVersionCode: 1 AndroidMinSdkVersion: 19 AndroidTargetSdkVersion: 0 diff --git a/yarn.lock b/yarn.lock index c0868e38..aee0be74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,23 @@ # yarn lockfile v1 -"@actions/core@^1.10.0": +"@actions/cache@^3.1.3": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@actions/cache/-/cache-3.1.3.tgz#6521648a259dab2ce981cdaadf98bf192293b569" + integrity sha512-5YbATJUS6nVs9EkpK7JaliC3G5koKdJT99NLreL0gJlznudzZzXGNIheW5+HUT9C2DBvubOxYIyfX4v2UpZWrA== + dependencies: + "@actions/core" "^1.10.0" + "@actions/exec" "^1.0.1" + "@actions/glob" "^0.1.0" + "@actions/http-client" "^2.0.1" + "@actions/io" "^1.0.1" + "@azure/abort-controller" "^1.1.0" + "@azure/ms-rest-js" "^2.6.0" + "@azure/storage-blob" "^12.8.0" + semver "^6.1.0" + uuid "^3.3.3" + +"@actions/core@^1.10.0", "@actions/core@^1.2.6": version "1.10.0" resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.10.0.tgz#44551c3c71163949a2f06e94d9ca2157a0cfac4f" integrity sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug== @@ -10,6 +26,13 @@ "@actions/http-client" "^2.0.1" uuid "^8.3.2" +"@actions/exec@^1.0.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611" + integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== + dependencies: + "@actions/io" "^1.0.1" + "@actions/exec@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.0.tgz#53441d968e56d2fec69ad3f15773d4d94e01162c" @@ -27,6 +50,14 @@ "@octokit/plugin-paginate-rest" "^2.13.3" "@octokit/plugin-rest-endpoint-methods" "^5.1.1" +"@actions/glob@^0.1.0": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@actions/glob/-/glob-0.1.2.tgz#9685ed2d6583093479c8f137d067c4329d7d0974" + integrity sha512-SclLR7Ia5sEqjkJTPs7Sd86maMDw43p769YxBOxvPvEWuPEhpAnBsQfENOpXjFYMmhCqd127bmf+YdvJqVqR4A== + dependencies: + "@actions/core" "^1.2.6" + minimatch "^3.0.4" + "@actions/http-client@^1.0.11": version "1.0.11" resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz#c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0" @@ -58,6 +89,110 @@ resolved "https://registry.yarnpkg.com/@arkweid/lefthook/-/lefthook-0.7.7.tgz#12951b09b955d8054885ffe929aa07a49f39027c" integrity sha512-Eq30OXKmjxIAIsTtbX2fcF3SNZIXS8yry1u8yty7PQFYRctx04rVlhOJCEB2UmfTh8T2vrOMC9IHHUvvo5zbaQ== +"@azure/abort-controller@^1.0.0", "@azure/abort-controller@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@azure/abort-controller/-/abort-controller-1.1.0.tgz#788ee78457a55af8a1ad342acb182383d2119249" + integrity sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw== + dependencies: + tslib "^2.2.0" + +"@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.4.0.tgz#6fa9661c1705857820dbc216df5ba5665ac36a9e" + integrity sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ== + dependencies: + "@azure/abort-controller" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-http@^2.0.0": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@azure/core-http/-/core-http-2.3.1.tgz#eed8a7d012ba8c576c557828f66af0fc4e52b23a" + integrity sha512-cur03BUwV0Tbv81bQBOLafFB02B6G++K6F2O3IMl8pSE2QlXm3cu11bfyBNlDUKi5U+xnB3GC63ae3athhkx6Q== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-auth" "^1.3.0" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/core-util" "^1.1.1" + "@azure/logger" "^1.0.0" + "@types/node-fetch" "^2.5.0" + "@types/tunnel" "^0.0.3" + form-data "^4.0.0" + node-fetch "^2.6.7" + process "^0.11.10" + tough-cookie "^4.0.0" + tslib "^2.2.0" + tunnel "^0.0.6" + uuid "^8.3.0" + xml2js "^0.4.19" + +"@azure/core-lro@^2.2.0": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@azure/core-lro/-/core-lro-2.5.1.tgz#9c6be24b84f8a8c8e8ac376c5018460c5a585d0b" + integrity sha512-JHQy/bA3NOz2WuzOi5zEk6n/TJdAropupxUT521JIJvW7EXV2YN2SFYZrf/2RHeD28QAClGdynYadZsbmP+nyQ== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/logger" "^1.0.0" + tslib "^2.2.0" + +"@azure/core-paging@^1.1.1": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@azure/core-paging/-/core-paging-1.5.0.tgz#5a5b09353e636072e6a7fc38f7879e11d0afb15f" + integrity sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw== + dependencies: + tslib "^2.2.0" + +"@azure/core-tracing@1.0.0-preview.13": + version "1.0.0-preview.13" + resolved "https://registry.yarnpkg.com/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz#55883d40ae2042f6f1e12b17dd0c0d34c536d644" + integrity sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ== + dependencies: + "@opentelemetry/api" "^1.0.1" + tslib "^2.2.0" + +"@azure/core-util@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@azure/core-util/-/core-util-1.1.1.tgz#8f87b3dd468795df0f0849d9f096c3e7b29452c1" + integrity sha512-A4TBYVQCtHOigFb2ETiiKFDocBoI1Zk2Ui1KpI42aJSIDexF7DHQFpnjonltXAIU/ceH+1fsZAWWgvX6/AKzog== + dependencies: + "@azure/abort-controller" "^1.0.0" + tslib "^2.2.0" + +"@azure/logger@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@azure/logger/-/logger-1.0.3.tgz#6e36704aa51be7d4a1bae24731ea580836293c96" + integrity sha512-aK4s3Xxjrx3daZr3VylxejK3vG5ExXck5WOHDJ8in/k9AqlfIyFMMT1uG7u8mNjX+QRILTIn0/Xgschfh/dQ9g== + dependencies: + tslib "^2.2.0" + +"@azure/ms-rest-js@^2.6.0": + version "2.6.4" + resolved "https://registry.yarnpkg.com/@azure/ms-rest-js/-/ms-rest-js-2.6.4.tgz#b0a0f89841434471adf757d09e7e39e8ecfcd650" + integrity sha512-2sbOpGhlBfv9itWdF7Qlk0CmoQCARxe5unwjNOprU7OdgEgabQncZ35L5u1A+zgdkVtNYF9Eo6XAhXzTweIhag== + dependencies: + "@azure/core-auth" "^1.1.4" + abort-controller "^3.0.0" + form-data "^2.5.0" + node-fetch "^2.6.7" + tough-cookie "^3.0.1" + tslib "^1.10.0" + tunnel "0.0.6" + uuid "^8.3.2" + xml2js "^0.4.19" + +"@azure/storage-blob@^12.8.0": + version "12.12.0" + resolved "https://registry.yarnpkg.com/@azure/storage-blob/-/storage-blob-12.12.0.tgz#25e277c885692d5adcd8c2a949789b2837a74c59" + integrity sha512-o/Mf6lkyYG/eBW4/hXB9864RxVNmAkcKHjsGR6Inlp5hupa3exjSyH2KjO3tLO//YGA+tS+17hM2bxRl9Sn16g== + dependencies: + "@azure/abort-controller" "^1.0.0" + "@azure/core-http" "^2.0.0" + "@azure/core-lro" "^2.2.0" + "@azure/core-paging" "^1.1.1" + "@azure/core-tracing" "1.0.0-preview.13" + "@azure/logger" "^1.0.0" + events "^3.0.0" + tslib "^2.2.0" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz" @@ -956,6 +1091,11 @@ dependencies: "@octokit/openapi-types" "^11.2.0" +"@opentelemetry/api@^1.0.1": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.0.tgz#2c91791a9ba6ca0a0f4aaac5e45d58df13639ac8" + integrity sha512-IgMK9i3sFGNUqPMbjABm0G26g0QCKCUBfglhQ7rQq6WcxbKfEHRcmwsoER4hZcuYqJgkYn2OeuoJIv7Jsftp7g== + "@panva/asn1.js@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" @@ -1083,6 +1223,18 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.2.tgz#f65d3d6389e01eeb458bd54dc8f52b95a9463bc8" integrity sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w== +"@types/find-cache-dir@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz#7b959a4b9643a1e6a1a5fe49032693cc36773501" + integrity sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw== + +"@types/fs-extra@^9.0.13": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + "@types/got@^9.6.9": version "9.6.12" resolved "https://registry.yarnpkg.com/@types/got/-/got-9.6.12.tgz#fd42a6e1f5f64cd6bb422279b08c30bb5a15a56f" @@ -1158,6 +1310,18 @@ dependencies: "@types/node" "*" +"@types/lodash-es@^4.17.6": + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.6.tgz#c2ed4c8320ffa6f11b43eb89e9eaeec65966a0a0" + integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + "@types/minipass@*": version "3.1.2" resolved "https://registry.yarnpkg.com/@types/minipass/-/minipass-3.1.2.tgz#e2d7f9df0698aff421dcf145b4fc05b8183b9030" @@ -1165,6 +1329,14 @@ dependencies: "@types/node" "*" +"@types/node-fetch@^2.5.0": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node@*": version "17.0.21" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" @@ -1207,6 +1379,11 @@ dependencies: "@types/node" "*" +"@types/semver@^7.3.12": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + "@types/semver@^7.3.9": version "7.3.9" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" @@ -1237,6 +1414,13 @@ resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.1.tgz#8f80dd965ad81f3e1bc26d6f5c727e132721ff40" integrity sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg== +"@types/tunnel@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@types/tunnel/-/tunnel-0.0.3.tgz#f109e730b072b3136347561fc558c9358bb8c6e9" + integrity sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA== + dependencies: + "@types/node" "*" + "@types/underscore@^1.8.9": version "1.11.4" resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" @@ -1261,6 +1445,11 @@ dependencies: "@types/yargs-parser" "*" +"@types/yarnpkg__lockfile@^1.1.5": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/yarnpkg__lockfile/-/yarnpkg__lockfile-1.1.5.tgz#9639020e1fb65120a2f4387db8f1e8b63efdf229" + integrity sha512-8NYnGOctzsI4W0ApsP/BIHD/LnxpJ6XaGf2AZmz4EyDYJMxtprN4279dLNI1CPZcwC9H18qYcaFv4bXi0wmokg== + "@typescript-eslint/eslint-plugin@^4.20.0": version "4.22.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.22.0.tgz" @@ -1381,11 +1570,23 @@ resolved "https://registry.yarnpkg.com/@vercel/ncc/-/ncc-0.33.3.tgz#aacc6b3ea9f7b175e0c9a18c9b97e4005a2f4fcc" integrity sha512-JGZ11QV+/ZcfudW2Cz2JVp54/pJNXbsuWRgSh2ZmmZdQBKXqBtIGrwI1Wyx8nlbzAiEFe7FHi4K1zX4//jxTnQ== +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" @@ -1520,6 +1721,11 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + array-includes@^3.1.1: version "3.1.3" resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz" @@ -1683,6 +1889,27 @@ base64url@^3.0.1: resolved "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz" integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== +bash-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bash-glob/-/bash-glob-2.0.0.tgz#a8ef19450783403ed93fccca2dbe09f2cf6320dc" + integrity sha512-53/NJ+t2UAkEYgQPO6aFjbx1Ue8vNNXCYaA4EljNKP1SR8A9dSQQoBmYWR8BLXO0/NDRJEMSJ4BxWihi//m3Kw== + dependencies: + bash-path "^1.0.1" + component-emitter "^1.2.1" + cross-spawn "^5.1.0" + each-parallel-async "^1.0.0" + extend-shallow "^2.0.1" + is-extglob "^2.1.1" + is-glob "^4.0.0" + +bash-path@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bash-path/-/bash-path-1.0.3.tgz#dbc9efbdf18b1c11413dcb59b960e6aa56c84258" + integrity sha512-mGrYvOa6yTY/qNCiZkPFJqWmODK68y6kmVRAJ1NNbWlNoJrUrsFxu7FU2EKg7gbrer6ttrKkF2s/E/lhRy7/OA== + dependencies: + arr-union "^3.1.0" + is-windows "^1.0.1" + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -1874,6 +2101,11 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.0.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + char-regex@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" @@ -1966,6 +2198,11 @@ colorette@^1.2.2: resolved "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colors@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -1980,6 +2217,16 @@ commander-ts@^0.2.0: dependencies: commander "^7.2.0" +commander@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" + integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== + +commander@^2.11.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -1990,6 +2237,16 @@ commander@^9.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-9.0.0.tgz#86d58f24ee98126568936bd1d3574e0308a99a40" integrity sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw== +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2024,6 +2281,15 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" +cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -2195,6 +2461,11 @@ duplexer3@^0.1.4: resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +each-parallel-async@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/each-parallel-async/-/each-parallel-async-1.0.0.tgz#91783e190000c7dd588336b2d468ebaf71980f7b" + integrity sha512-P/9kLQiQj0vZNzphvKKTgRgMnlqs5cJsxeAiuog1jrUnwv0Z3hVUwJDQiP7MnLb2I9S15nR9SRUceFT9IxtqRg== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2237,6 +2508,11 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" +eol@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" + integrity sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg== + error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" @@ -2530,11 +2806,21 @@ esutils@^2.0.2: resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + events@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz" integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= +events@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + execa@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" @@ -2580,6 +2866,13 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== + dependencies: + is-extendable "^0.1.0" + extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -2617,6 +2910,17 @@ fast-glob@^3.1.1: micromatch "^4.0.2" picomatch "^2.2.1" +fast-glob@^3.2.11: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -2655,6 +2959,14 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-cache-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" + integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== + dependencies: + common-path-prefix "^3.0.0" + pkg-dir "^7.0.0" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" @@ -2670,6 +2982,14 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== + dependencies: + locate-path "^7.1.0" + path-exists "^5.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" @@ -2706,6 +3026,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -2715,6 +3044,15 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +fs-extra@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -2792,7 +3130,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -2835,10 +3173,21 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" +globby@^13.1.2: + version "13.1.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.3.tgz#f62baf5720bcb2c1330c8d4ef222ee12318563ff" + integrity sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw== + dependencies: + dir-glob "^3.0.1" + fast-glob "^3.2.11" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^4.0.0" + got@^11.8.0: - version "11.8.3" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.3.tgz#f496c8fdda5d729a90b4905d2b07dbd148170770" - integrity sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg== + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" @@ -2874,6 +3223,11 @@ graceful-fs@^4.1.2: resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" @@ -3007,6 +3361,11 @@ ignore@^5.0.5, ignore@^5.1.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +ignore@^5.2.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" @@ -3056,6 +3415,11 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -3097,6 +3461,11 @@ is-date-object@^1.0.1: resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== +is-extendable@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -3179,6 +3548,11 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + isarray@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" @@ -3671,9 +4045,9 @@ jose@^1.27.1: "@panva/asn1.js" "^1.0.0" jose@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/jose/-/jose-2.0.5.tgz#29746a18d9fff7dcf9d5d2a6f62cb0c7cd27abd3" - integrity sha512-BAiDNeDKTMgk4tvD0BbxJ8xHEHBZgpeRZ1zGPPsitSyMgjoMWiLGYAE7H7NpP5h0lPppQajQs871E8NHUrzVPA== + version "2.0.6" + resolved "https://registry.yarnpkg.com/jose/-/jose-2.0.6.tgz#894ba19169af339d3911be933f913dd02fc57c7c" + integrity sha512-FVoPY7SflDodE4lknJmbAHSUjLCzE2H1F6MS0RYKMQ8SR+lNccpMf8R4eqkNYyyUjR5qZReOzZo5C5YiHOCjjg== dependencies: "@panva/asn1.js" "^1.0.0" @@ -3818,11 +4192,9 @@ json-stringify-safe@~5.0.1: integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@2.x, json5@^2.1.2: - version "2.2.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== json5@^1.0.1: version "1.0.2" @@ -3831,6 +4203,15 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + jsonpath-plus@^0.19.0: version "0.19.0" resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-0.19.0.tgz#b901e57607055933dc9a8bef0cc25160ee9dd64c" @@ -3935,6 +4316,18 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== + dependencies: + p-locate "^6.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" @@ -3955,7 +4348,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.7.0: +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.7.0: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3970,6 +4363,14 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -4001,7 +4402,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -4048,7 +4449,7 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.2.0: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== @@ -4098,6 +4499,13 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +nmtree@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/nmtree/-/nmtree-1.0.6.tgz#953e057ad545e9e627f1275bd25fea4e92c1cf63" + integrity sha512-SUPCoyX5w/lOT6wD/PZEymR+J899984tYEOYjuDqQlIOeX5NSb1MEsCcT0az+dhZD0MLAj5hGBZEpKQxuDdniA== + dependencies: + commander "^2.11.0" + node-fetch@^2.6.1: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -4105,6 +4513,13 @@ node-fetch@^2.6.1: dependencies: whatwg-url "^5.0.0" +node-fetch@^2.6.7: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" @@ -4300,6 +4715,13 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" +p-limit@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== + dependencies: + yocto-queue "^1.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" @@ -4314,6 +4736,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== + dependencies: + p-limit "^4.0.0" + p-some@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz" @@ -4371,6 +4800,11 @@ path-exists@^4.0.0: resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== +path-exists@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -4437,6 +4871,13 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-dir@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" + integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== + dependencies: + find-up "^6.3.0" + pluralize@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" @@ -4493,6 +4934,11 @@ pretty-format@^27.5.1: ansi-styles "^5.0.0" react-is "^17.0.1" +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + progress@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" @@ -4506,6 +4952,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + psl@^1.1.28, psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" @@ -4530,9 +4981,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@^6.9.0: - version "6.10.1" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz" - integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -4809,11 +5260,25 @@ semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.7: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -4821,6 +5286,11 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -4864,6 +5334,11 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + slice-ansi@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" @@ -4873,6 +5348,11 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +sort-object-keys@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" + integrity sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg== + source-map-support@^0.5.6: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz" @@ -5072,6 +5552,21 @@ symbol-tree@^3.2.4: resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +synp@^1.9.10: + version "1.9.10" + resolved "https://registry.yarnpkg.com/synp/-/synp-1.9.10.tgz#53163321a600418c9b06af0db499939ffce12907" + integrity sha512-G9Z/TXTaBG1xNslUf3dHFidz/8tvvRaR560WWyOwyI7XrGGEGBTEIIg4hdRh1qFtz8mPYynAUYwWXUg/Zh0Pzw== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + bash-glob "^2.0.0" + colors "1.4.0" + commander "^7.2.0" + eol "^0.9.1" + lodash "4.17.21" + nmtree "^1.0.6" + semver "^7.3.5" + sort-object-keys "^1.1.3" + table@^6.0.4: version "6.3.1" resolved "https://registry.npmjs.org/table/-/table-6.3.1.tgz" @@ -5170,6 +5665,15 @@ tough-cookie@^2.3.3, tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + tough-cookie@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz" @@ -5233,11 +5737,16 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.2.0, tslib@^2.4.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + tsutils@^3.17.1: version "3.21.0" resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" @@ -5342,6 +5851,11 @@ universalify@^0.1.2: resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5374,12 +5888,12 @@ uuid@3.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== -uuid@^3.3.2: +uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.3.2: +uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -5491,6 +6005,13 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -5557,6 +6078,19 @@ xml2js@0.4.19: sax ">=0.6.0" xmlbuilder "~9.0.1" +xml2js@^0.4.19: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + xmlbuilder@~9.0.1: version "9.0.7" resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" @@ -5572,6 +6106,11 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -5605,7 +6144,36 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yarn-audit-fix@^9.3.8: + version "9.3.8" + resolved "https://registry.yarnpkg.com/yarn-audit-fix/-/yarn-audit-fix-9.3.8.tgz#2f83deb3519a4d390bc913ce6b1cd58c0a6558d8" + integrity sha512-ftjmghVUrBUYDqgi4dw079duxRwu8PwwwvnsCUwPJgARrmT+f+OkHQiaDqY9PsGxDcYSRv16okZtdOH7p/WgXA== + dependencies: + "@types/find-cache-dir" "^3.2.1" + "@types/fs-extra" "^9.0.13" + "@types/lodash-es" "^4.17.6" + "@types/semver" "^7.3.12" + "@types/yarnpkg__lockfile" "^1.1.5" + "@yarnpkg/lockfile" "^1.1.0" + chalk "^5.0.1" + commander "^10.0.0" + find-cache-dir "^4.0.0" + find-up "^6.3.0" + fs-extra "^10.1.0" + globby "^13.1.2" + js-yaml "^4.1.0" + lodash-es "^4.17.21" + pkg-dir "^7.0.0" + semver "^7.3.7" + synp "^1.9.10" + tslib "^2.4.0" + yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==