diff --git a/.azure-devops/graphitation-release.yml b/.azure-devops/graphitation-release.yml index ff05be400..12497ebab 100644 --- a/.azure-devops/graphitation-release.yml +++ b/.azure-devops/graphitation-release.yml @@ -8,6 +8,8 @@ variables: value: production,externalfacing - name: serviceTreeID value: ade7d667-42f5-485a-91a9-f1dc6482a9b0 + - name: packagesArtifactName + value: packed-packages - name: adoNpmFeedBaseUrl value: https://pkgs.dev.azure.com/DomoreexpGithub/_packaging/GraphQL/npm/registry/ - name: adoMirrorNpmFeedBaseUrl @@ -24,8 +26,8 @@ extends: template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates parameters: - # settings: - # networkIsolationPolicy: Permissive,CFSClean + settings: + networkIsolationPolicy: Permissive,CFSClean sdl: sourceAnalysisPool: name: Azure-Pipelines-1ESPT-ExDShared @@ -34,39 +36,37 @@ extends: stages: - stage: release variables: - # OPTIONAL: Set this varibale to 'true' to enable signing in a target stage. - # Remove if signing is not required. - Build.ESRP.CodeSign.Enabled: true + # ESRP publishing is handled by EsrpRelease@9. + Build.ESRP.CodeSign.Enabled: false # OPTIONAL: To disable required tools not applicable in the pipeline set to false. # Supported values: BinSkim, Roslyn, ESLint, PREFast. Build.SDL..Enabled: false Build.SDL..Enabled: true jobs: - - job: Release + - job: Build + displayName: Build, test, and pack Graphitation packages pool: name: Azure-Pipelines-1ESPT-ExDShared image: ubuntu-latest os: linux + workspace: + clean: all + variables: + artifactPath: $(Build.StagingDirectory)/out + packagesArtifactPath: $(Build.StagingDirectory)/out/${{ variables.packagesArtifactName }} + templateContext: + outputParentDirectory: $(artifactPath) + outputs: + - output: pipelineArtifact + artifactName: ${{ variables.packagesArtifactName }} + targetPath: $(packagesArtifactPath) steps: - checkout: self persistCredentials: true # fix for beachball: https://github.com/microsoft/beachball/issues/674 - - script: | - cat <<'EOF' > "$(Agent.TempDirectory)/npm-mirror.npmrc" - always-auth=true - registry=$(adoMirrorNpmFeedBaseUrl) - EOF - displayName: Create temporary .npmrc for mirror feed - - task: npmAuthenticate@0 - inputs: - workingFile: "$(Agent.TempDirectory)/npm-mirror.npmrc" - - script: | - TOKEN=$(grep '_authToken' "$(Agent.TempDirectory)/npm-mirror.npmrc" | head -1 | cut -d'=' -f2) - echo "##vso[task.setvariable variable=NPM_TOKEN;issecret=true]$TOKEN" - displayName: Extract token from .npmrc - - script: | - yarn config set npmAlwaysAuth true - yarn config set npmRegistryServer $(adoMirrorNpmFeedBaseUrl) - displayName: Configure yarn for ADO npm feed + + - template: /.azure-devops/steps/npm-auth-steps.yml@self + parameters: + adoMirrorNpmFeedBaseUrl: ${{ variables.adoMirrorNpmFeedBaseUrl }} - script: yarn install displayName: yarn env: @@ -77,40 +77,128 @@ extends: displayName: build and test [test] env: NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/npm-mirror.npmrc + - script: | - git config user.email "gql-svc@microsoft.com" - git config user.name "Graphitation Service Account" - git fetch origin main - displayName: Configure git for release - - script: | + mkdir -p "$(packagesArtifactPath)" + packLayersPath="$(Build.StagingDirectory)/beachball-packed-layers" releaseBranch="origin/${BUILD_SOURCEBRANCH#refs/heads/}" - if [ "${BUILD_SOURCEBRANCH}" = "refs/heads/main" ]; then - yarn beachball publish -b "$releaseBranch" -t latest -y -n $(ossNpmToken) --access public --no-push --keep-change-files - else - yarn beachball canary -b "$releaseBranch" -t canary -y -n $(ossNpmToken) --access public - fi - displayName: Release to the npm registry - - script: | - git restore . - displayName: Discard beachball's changes + yarn beachball publish -b "$releaseBranch" -t latest -y --access public --no-push --keep-change-files --pack-to-path "$packLayersPath" + + find "$packLayersPath" -type f -name "*.tgz" -exec cp {} "$(packagesArtifactPath)" \; + displayName: Pack packages with beachball + env: + NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/npm-mirror.npmrc + + - job: PrivateAdoRelease + displayName: Release to ADO npm feed + dependsOn: Build + pool: + name: Azure-Pipelines-1ESPT-ExDShared + image: ubuntu-latest + os: linux + steps: + - checkout: self + persistCredentials: true # fix for beachball: https://github.com/microsoft/beachball/issues/674 + + - template: /.azure-devops/steps/npm-auth-steps.yml@self + parameters: + adoMirrorNpmFeedBaseUrl: ${{ variables.adoMirrorNpmFeedBaseUrl }} + + - script: yarn install + displayName: yarn install + env: + YARN_NPM_AUTH_TOKEN: $(NPM_TOKEN) + NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/npm-mirror.npmrc + + - script: yarn build + displayName: build + env: + NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/npm-mirror.npmrc + - script: | echo "always-auth=true" > .npmrc echo "registry=$(adoNpmFeedBaseUrl)" >> .npmrc + displayName: Create .npmrc for private ADO feed + - task: npmAuthenticate@0 + displayName: npm authenticate for private ADO feed inputs: workingFile: ".npmrc" + - script: | releaseBranch="origin/${BUILD_SOURCEBRANCH#refs/heads/}" + yarn beachball publish -b "$releaseBranch" -t latest -y --registry $(adoNpmFeedBaseUrl) --no-push --keep-change-files + displayName: Release to the ADO npm feed + env: + NPM_CONFIG_USERCONFIG: $(Build.SourcesDirectory)/.npmrc - if [ "${BUILD_SOURCEBRANCH}" = "refs/heads/main" ]; then - yarn beachball publish -b "$releaseBranch" -t latest -y --registry $(adoNpmFeedBaseUrl) - else - yarn beachball canary -b "$releaseBranch" -t canary -y --registry $(adoNpmFeedBaseUrl) - fi - displayName: Release to the ado npm feed - - task: 1ES.PublishPipelineArtifact@1 - displayName: 📒 Publish Manifest + - job: PublicNpmRelease + displayName: ESRP release to public npm + dependsOn: Build + pool: + name: Azure-Pipelines-1ESPT-ExDShared + image: ubuntu-latest + os: linux + variables: + packagesArtifactPath: $(Agent.BuildDirectory)/${{ variables.packagesArtifactName }} + templateContext: + type: releaseJob + isProduction: true + inputs: + - input: pipelineArtifact + artifactName: ${{ variables.packagesArtifactName }} + targetPath: $(packagesArtifactPath) + steps: + - script: find "$(packagesArtifactPath)" -maxdepth 2 -type f -name "*.tgz" -print + displayName: Show packages artifact contents + + - task: EsrpRelease@9 + displayName: ESRP Release to npm inputs: - artifactName: SBom-$(System.JobAttempt) - targetPath: $(System.DefaultWorkingDirectory)/_manifest + connectedservicename: $(Release.ConnectedServiceName) + usemanagedidentity: true + keyvaultname: $(Release.KeyVaultName) + signcertname: $(Release.SignCertName) + clientid: $(Release.ClientId) + contenttype: npm + folderlocation: $(packagesArtifactPath) + owners: $(Release.Owners) + approvers: $(Release.Approvers) + mainpublisher: ESRPRELPACMAN + domaintenantid: $(Release.DomainTenantId) + + - job: Bump + displayName: Bump package versions + dependsOn: + - PrivateAdoRelease + - PublicNpmRelease + condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/heads/')) + pool: + name: Azure-Pipelines-1ESPT-ExDShared + image: ubuntu-latest + os: linux + steps: + - checkout: self + persistCredentials: true # fix for beachball: https://github.com/microsoft/beachball/issues/674 + + - template: /.azure-devops/steps/npm-auth-steps.yml@self + parameters: + adoMirrorNpmFeedBaseUrl: ${{ variables.adoMirrorNpmFeedBaseUrl }} + + - script: yarn install + displayName: yarn install + env: + YARN_NPM_AUTH_TOKEN: $(NPM_TOKEN) + NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/npm-mirror.npmrc + + - script: | + git config user.email "gql-svc@microsoft.com" + git config user.name "Graphitation Service Account" + releaseBranchName="${BUILD_SOURCEBRANCH#refs/heads/}" + releaseBranch="origin/$releaseBranchName" + git fetch origin "$releaseBranchName" + yarn beachball publish -b "$releaseBranch" -t latest -y --access public --no-publish --message "applying package updates [skip ci]" + displayName: Bump versions and push changelogs + env: + NPM_CONFIG_USERCONFIG: $(Agent.TempDirectory)/npm-mirror.npmrc diff --git a/.azure-devops/steps/npm-auth-steps.yml b/.azure-devops/steps/npm-auth-steps.yml new file mode 100644 index 000000000..b7aab76dd --- /dev/null +++ b/.azure-devops/steps/npm-auth-steps.yml @@ -0,0 +1,25 @@ +# Reusable steps to authenticate against the ADO npm mirror feed and configure +# both npm and yarn to use it. Consumed via `- template: templates/npm-auth-steps.yml`. +parameters: + - name: adoMirrorNpmFeedBaseUrl + type: string + +steps: + - script: | + cat <<'EOF' > "$(Agent.TempDirectory)/npm-mirror.npmrc" + always-auth=true + registry=${{ parameters.adoMirrorNpmFeedBaseUrl }} + EOF + displayName: Create temporary .npmrc for mirror feed + - task: npmAuthenticate@0 + displayName: npm authenticate + inputs: + workingFile: "$(Agent.TempDirectory)/npm-mirror.npmrc" + - script: | + TOKEN=$(grep '_authToken' "$(Agent.TempDirectory)/npm-mirror.npmrc" | head -1 | cut -d'=' -f2) + echo "##vso[task.setvariable variable=NPM_TOKEN;issecret=true]$TOKEN" + displayName: Extract token from .npmrc + - script: | + yarn config set npmAlwaysAuth true + yarn config set npmRegistryServer ${{ parameters.adoMirrorNpmFeedBaseUrl }} + displayName: Configure yarn for ADO npm feed diff --git a/package.json b/package.json index 3cd093cfe..de8e88299 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "devDependencies": { "@babel/core": "^7.14.0", "@babel/preset-typescript": "^7.14.0", - "beachball": "^2.47.1", + "beachball": "3.0.0-alpha.4", "graphql": "^15.0.0", "lage": "^2.7.14", "patch-package": "^7.0.0", diff --git a/yarn.lock b/yarn.lock index 68aa25357..f8aa28f16 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6289,6 +6289,13 @@ __metadata: languageName: node linkType: hard +"@types/parse-path@npm:^7.0.0": + version: 7.0.3 + resolution: "@types/parse-path@npm:7.0.3" + checksum: 10c0/8344b6c7acba4e4e5a8d542f56f53c297685fa92f9b0c085d7532cc7e1b661432cecfc1c75c76cdb0d161c95679b6ecfe0573d9fef7c836962aacf604150a984 + languageName: node + linkType: hard + "@types/prettier@npm:^2.1.5": version: 2.7.2 resolution: "@types/prettier@npm:2.7.2" @@ -6695,6 +6702,13 @@ __metadata: languageName: node linkType: hard +"@vercel/detect-agent@npm:^1.2.1": + version: 1.2.3 + resolution: "@vercel/detect-agent@npm:1.2.3" + checksum: 10c0/12eb2e11603b0e9ff2fe89f969eac2327315a0f71b68acba2e4fe71f2ee6d282c519ccb7aa3b43e9b748a6db00517b88aa93628a20dbdab9ef6d8a003f8980e9 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": version: 1.14.1 resolution: "@webassemblyjs/ast@npm:1.14.1" @@ -7895,25 +7909,23 @@ __metadata: languageName: node linkType: hard -"beachball@npm:^2.47.1": - version: 2.47.1 - resolution: "beachball@npm:2.47.1" +"beachball@npm:3.0.0-alpha.4": + version: 3.0.0-alpha.4 + resolution: "beachball@npm:3.0.0-alpha.4" dependencies: - cosmiconfig: "npm:^8.3.6" - execa: "npm:^5.0.0" - fs-extra: "npm:^11.1.1" - lodash: "npm:^4.17.15" - minimatch: "npm:^3.0.4" - p-limit: "npm:^3.0.2" + "@vercel/detect-agent": "npm:^1.2.1" + cosmiconfig: "npm:^9.0.1" + execa: "npm:^5.1.1" + minimatch: "npm:^3.1.5" + p-graph: "npm:^3.0.0-alpha.1" + p-limit: "npm:^3.1.0" prompts: "npm:^2.4.2" - semver: "npm:^7.0.0" - toposort: "npm:^2.0.2" - uuid: "npm:^9.0.0" - workspace-tools: "npm:^0.36.3" - yargs-parser: "npm:^21.0.0" + semver: "npm:^7.7.4" + workspace-tools: "npm:^0.41.8" + yargs-parser: "npm:^21.1.1" bin: beachball: bin/beachball.js - checksum: 10c0/87d35286c185402527f3082cc259347cc1673ad592cfdc03c8dda493e375c8bc62b31c2707f5862d032a84d1af1754a7faa7c192af09c20b957985000b0d62d7 + checksum: 10c0/2df0cbcc1fc0d95ed663488e93c2ff5658ea82ba47dca23f0a5e8dffa0ad75090d60932a2913047ee4d874d59a899e641188f8c36c844cf85a6e77de172097c9 languageName: node linkType: hard @@ -8981,20 +8993,20 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^8.3.6": - version: 8.3.6 - resolution: "cosmiconfig@npm:8.3.6" +"cosmiconfig@npm:^9.0.1": + version: 9.0.2 + resolution: "cosmiconfig@npm:9.0.2" dependencies: + env-paths: "npm:^2.2.1" import-fresh: "npm:^3.3.0" js-yaml: "npm:^4.1.0" parse-json: "npm:^5.2.0" - path-type: "npm:^4.0.0" peerDependencies: typescript: ">=4.9.5" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a + checksum: 10c0/132d32863c0b3d9ace7010a10011e09089532b36e3b11e02004d671dcbd8b8f2f16293b82d510d9c15890f30358baf8722127c7b1c011449c90b6a178f9c6594 languageName: node linkType: hard @@ -9651,7 +9663,7 @@ __metadata: languageName: node linkType: hard -"env-paths@npm:^2.2.0": +"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 @@ -10163,7 +10175,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^5.0.0": +"execa@npm:^5.0.0, execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -10327,7 +10339,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -10340,6 +10352,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.8" + checksum: 10c0/f6aaa141d0d3384cf73cbcdfc52f475ed293f6d5b65bfc5def368b09163a9f7e5ec2b3014d80f733c405f58e470ee0cc451c2937685045cddcdeaa24199c43fe + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -10678,17 +10703,6 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.1": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 - languageName: node - linkType: hard - "fs-extra@npm:^8.0.0, fs-extra@npm:^8.1.0": version: 8.1.0 resolution: "fs-extra@npm:8.1.0" @@ -10949,22 +10963,22 @@ __metadata: languageName: node linkType: hard -"git-up@npm:^7.0.0": - version: 7.0.0 - resolution: "git-up@npm:7.0.0" +"git-up@npm:^8.1.0": + version: 8.1.1 + resolution: "git-up@npm:8.1.1" dependencies: is-ssh: "npm:^1.4.0" - parse-url: "npm:^8.1.0" - checksum: 10c0/a3fa02e1a63c7c824b5ebbf23f4a9a6b34dd80031114c5dd8adb7ef53493642e39d3d80dfef4025a452128400c35c2c138d20a0f6ae5d7d7ef70d9ba13083d34 + parse-url: "npm:^9.2.0" + checksum: 10c0/2cc4461d8565a3f7a1ecd3d262a58ddb8df0a67f7f7d4915df2913c460b2e88ae570a6ea810700a6d22fb3b9e4bea8dd10a8eb469900ddc12e35c62208608c03 languageName: node linkType: hard -"git-url-parse@npm:^13.0.0": - version: 13.1.1 - resolution: "git-url-parse@npm:13.1.1" +"git-url-parse@npm:^16.1.0": + version: 16.1.0 + resolution: "git-url-parse@npm:16.1.0" dependencies: - git-up: "npm:^7.0.0" - checksum: 10c0/9304e6fbc1a6acf5e351e84ad87574fa6b840ccbe531afbbce9ba38e01fcacf6adf386ef7593daa037da59d9fd43b5d7c5232d5648638f8301cc2f18d00ad386 + git-up: "npm:^8.1.0" + checksum: 10c0/b8f5ebcbd5b2baf9f1bb77a217376f0247c47fe1d42811ccaac3015768eebb0759a59051f758e50e70adf5c67ae059d1975bf6b750164f36bfd39138d11b940b languageName: node linkType: hard @@ -11088,7 +11102,7 @@ __metadata: languageName: node linkType: hard -"globby@npm:11.0.4, globby@npm:^11.0.0, globby@npm:^11.0.3, globby@npm:^11.0.4": +"globby@npm:11.0.4, globby@npm:^11.0.3, globby@npm:^11.0.4": version: 11.0.4 resolution: "globby@npm:11.0.4" dependencies: @@ -13106,6 +13120,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.2.0": + version: 4.3.0 + resolution: "js-yaml@npm:4.3.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/058b30473d6915ca5b4feb11e2f7d4d97242f98d00a798ed48dd90b46b7c640398afe9128c5db22c5300f8c6528fe2a174b9a93f351a70ebc28c6203938d8bff + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -14103,7 +14128,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.2, minimatch@npm:^3.1.5": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -14228,7 +14253,7 @@ __metadata: dependencies: "@babel/core": "npm:^7.14.0" "@babel/preset-typescript": "npm:^7.14.0" - beachball: "npm:^2.47.1" + beachball: "npm:3.0.0-alpha.4" graphql: "npm:^15.0.0" lage: "npm:^2.7.14" patch-package: "npm:^7.0.0" @@ -14732,6 +14757,13 @@ __metadata: languageName: node linkType: hard +"p-graph@npm:^3.0.0-alpha.1": + version: 3.0.0-alpha.2 + resolution: "p-graph@npm:3.0.0-alpha.2" + checksum: 10c0/c52b0705bd1fbebdaef584726649af33dc57686f94f339b4319de85670051f2c827db0f9ee3106b12ddc3faf95b1f44a560124f505782ff8c5f00bc36be02636 + languageName: node + linkType: hard + "p-limit@npm:3.1.0, p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": version: 3.1.0 resolution: "p-limit@npm:3.1.0" @@ -14865,12 +14897,13 @@ __metadata: languageName: node linkType: hard -"parse-url@npm:^8.1.0": - version: 8.1.0 - resolution: "parse-url@npm:8.1.0" +"parse-url@npm:^9.2.0": + version: 9.2.0 + resolution: "parse-url@npm:9.2.0" dependencies: + "@types/parse-path": "npm:^7.0.0" parse-path: "npm:^7.0.0" - checksum: 10c0/68b95afdf4bbf72e57c7ab66f8757c935fff888f7e2b0f1e06098b4faa19e06b6b743bddaed5bc8df4f0c2de6fc475355d787373b2fdd40092be9e4e4b996648 + checksum: 10c0/b8f56cdb01e76616255dff82544f4b5ab4378f6f4bac8604ed6fde03a75b0f71c547d92688386d8f22f38fad3c928c075abf69458677c6185da76c841bfd7a93 languageName: node linkType: hard @@ -16200,6 +16233,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.7.4": + version: 7.8.5 + resolution: "semver@npm:7.8.5" + bin: + semver: bin/semver.js + checksum: 10c0/b1f3127a5be8125a94f37188b361c212466c292c6910adce3ec106cff5dc211ccaedc4739c11bb70fda59d6fc1f040a9bca289f4e093451521a2372e5231fe0c + languageName: node + linkType: hard + "semver@npm:~7.3.0": version: 7.3.8 resolution: "semver@npm:7.3.8" @@ -17212,13 +17254,6 @@ __metadata: languageName: node linkType: hard -"toposort@npm:^2.0.2": - version: 2.0.2 - resolution: "toposort@npm:2.0.2" - checksum: 10c0/ab9ca91fce4b972ccae9e2f539d755bf799a0c7eb60da07fd985fce0f14c159ed1e92305ff55697693b5bc13e300f5417db90e2593b127d421c9f6c440950222 - languageName: node - linkType: hard - "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -17852,15 +17887,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 10c0/1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b - languageName: node - linkType: hard - "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" @@ -18298,18 +18324,17 @@ __metadata: languageName: node linkType: hard -"workspace-tools@npm:^0.36.3": - version: 0.36.4 - resolution: "workspace-tools@npm:0.36.4" +"workspace-tools@npm:^0.41.8": + version: 0.41.10 + resolution: "workspace-tools@npm:0.41.10" dependencies: "@yarnpkg/lockfile": "npm:^1.1.0" - fast-glob: "npm:^3.3.1" - git-url-parse: "npm:^13.0.0" - globby: "npm:^11.0.0" + fast-glob: "npm:^3.3.3" + git-url-parse: "npm:^16.1.0" jju: "npm:^1.4.0" - js-yaml: "npm:^4.1.0" - micromatch: "npm:^4.0.0" - checksum: 10c0/39aa445637921b5e5a1786ea6ac8ef23fbede6a8f6c41eb75c2a4d69caa19fc49f5707f9b37cc8ce5f7f3f8c58558316450159424fc931068efbf7656b926c52 + js-yaml: "npm:^4.2.0" + micromatch: "npm:^4.0.8" + checksum: 10c0/2a6e7bad84e1855afb63854d76eb9129e2ca06abb2936251988924a852c071fd7f276b557587a052665cca1800bee0c1dec82804e47e89ceebebd45a6305cb2c languageName: node linkType: hard @@ -18529,7 +18554,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.0.0, yargs-parser@npm:^21.1.1": +"yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2