mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-23 02:25:07 +00:00
Migrate to changesets from custom release tooling (#5840)
- Remove custom release tooling in favor of changesets - Add changesets for all unreleased commits
This commit is contained in:
parent
0525a2c91a
commit
0c24c5aeab
24 changed files with 576 additions and 949 deletions
8
.changeset/README.md
Normal file
8
.changeset/README.md
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
# Changesets
|
||||
|
||||
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
|
||||
with multi-package repos, or single-package repos to help you version and publish your code. You can
|
||||
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
|
||||
|
||||
We have a quick list of common questions to get you started engaging with this project in
|
||||
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
|
||||
5
.changeset/breezy-showers-wash.md
Normal file
5
.changeset/breezy-showers-wash.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@uppy/vue": patch
|
||||
---
|
||||
|
||||
Fix uppy prop in UppyContextProvider
|
||||
5
.changeset/clear-weeks-fall.md
Normal file
5
.changeset/clear-weeks-fall.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@uppy/webcam": minor
|
||||
---
|
||||
|
||||
Add image preview with accept/discard buttons
|
||||
11
.changeset/config.json
Normal file
11
.changeset/config.json
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
|
||||
"changelog": "@changesets/cli/changelog",
|
||||
"commit": false,
|
||||
"fixed": [],
|
||||
"linked": [],
|
||||
"access": "public",
|
||||
"baseBranch": "main",
|
||||
"updateInternalDependencies": "patch",
|
||||
"ignore": []
|
||||
}
|
||||
5
.changeset/easy-pianos-heal.md
Normal file
5
.changeset/easy-pianos-heal.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@uppy/core": patch
|
||||
---
|
||||
|
||||
Resolve stale state in checkAndUpdateFileState
|
||||
5
.changeset/hot-paths-repeat.md
Normal file
5
.changeset/hot-paths-repeat.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@uppy/companion": minor
|
||||
---
|
||||
|
||||
Add provider name to metadata for observability
|
||||
5
.changeset/lemon-candles-ask.md
Normal file
5
.changeset/lemon-candles-ask.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@uppy/companion": patch
|
||||
---
|
||||
|
||||
Make StreamableBlob spec compliant for Node.js 24+
|
||||
5
.changeset/twenty-birds-take.md
Normal file
5
.changeset/twenty-birds-take.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"@uppy/locales": minor
|
||||
---
|
||||
|
||||
Update Swedish translations
|
||||
50
.changeset/warm-pugs-lay.md
Normal file
50
.changeset/warm-pugs-lay.md
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
"@uppy/audio": minor
|
||||
"@uppy/aws-s3": minor
|
||||
"@uppy/aws-s3-multipart": minor
|
||||
"@uppy/box": minor
|
||||
"@uppy/companion-client": minor
|
||||
"@uppy/components": minor
|
||||
"@uppy/compressor": minor
|
||||
"@uppy/core": minor
|
||||
"@uppy/dashboard": minor
|
||||
"@uppy/drag-drop": minor
|
||||
"@uppy/drop-target": minor
|
||||
"@uppy/dropbox": minor
|
||||
"@uppy/facebook": minor
|
||||
"@uppy/file-input": minor
|
||||
"@uppy/form": minor
|
||||
"@uppy/golden-retriever": minor
|
||||
"@uppy/google-drive": minor
|
||||
"@uppy/google-drive-picker": minor
|
||||
"@uppy/google-photos-picker": minor
|
||||
"@uppy/image-editor": minor
|
||||
"@uppy/informer": minor
|
||||
"@uppy/instagram": minor
|
||||
"@uppy/locales": minor
|
||||
"@uppy/onedrive": minor
|
||||
"@uppy/progress-bar": minor
|
||||
"@uppy/provider-views": minor
|
||||
"@uppy/react": minor
|
||||
"@uppy/redux-dev-tools": minor
|
||||
"@uppy/remote-sources": minor
|
||||
"@uppy/screen-capture": minor
|
||||
"@uppy/status-bar": minor
|
||||
"@uppy/store-default": minor
|
||||
"@uppy/store-redux": minor
|
||||
"@uppy/svelte": minor
|
||||
"@uppy/thumbnail-generator": minor
|
||||
"@uppy/transloadit": minor
|
||||
"@uppy/tus": minor
|
||||
"@uppy/unsplash": minor
|
||||
"@uppy/url": minor
|
||||
"@uppy/utils": minor
|
||||
"@uppy/vue": minor
|
||||
"@uppy/webcam": minor
|
||||
"@uppy/webdav": minor
|
||||
"@uppy/xhr-upload": minor
|
||||
"@uppy/zoom": minor
|
||||
"uppy": minor
|
||||
---
|
||||
|
||||
Use TypeScript compiler instead of Babel
|
||||
91
.github/workflows/release-candidate.yml
vendored
91
.github/workflows/release-candidate.yml
vendored
|
|
@ -1,91 +0,0 @@
|
|||
name: Release candidate
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- release
|
||||
|
||||
env:
|
||||
YARN_ENABLE_GLOBAL_CACHE: false
|
||||
|
||||
jobs:
|
||||
prepare-release:
|
||||
name: Prepare release candidate Pull Request
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout sources
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: release
|
||||
- name: Rebase
|
||||
run: |
|
||||
git fetch origin HEAD --depth=1
|
||||
git config --global user.email "actions@github.com"
|
||||
git config --global user.name "GitHub Actions"
|
||||
git rebase FETCH_HEAD
|
||||
- name: Get yarn cache directory path
|
||||
id: yarn-cache-dir-path
|
||||
run:
|
||||
echo "dir=$(corepack yarn config get cacheFolder)" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/cache@v4
|
||||
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
- name: Install dependencies
|
||||
run: corepack yarn install --immutable
|
||||
env:
|
||||
# https://docs.cypress.io/guides/references/advanced-installation#Skipping-installation
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
- name: Bump candidate packages version
|
||||
run: corepack yarn version apply --all --json | jq -s > releases.json
|
||||
- name: Prepare changelog
|
||||
run:
|
||||
corepack yarn workspace @uppy-dev/release update-changelogs
|
||||
releases.json | xargs git add
|
||||
- name: Update CDN URLs
|
||||
run:
|
||||
corepack yarn workspace @uppy-dev/release update-version-URLs | xargs
|
||||
git add
|
||||
- name: Stage changes and remove temp files
|
||||
run: |
|
||||
git rm -rf .yarn/versions
|
||||
git rm CHANGELOG.next.md
|
||||
jq -r 'map(.cwd) | join("\n")' < releases.json | awk '{ print "git add " $0 "/package.json" }' | sh
|
||||
- name: Commit
|
||||
run: |
|
||||
echo "Release: uppy@$(jq -r 'map(select(.ident == "uppy"))[0].newVersion' < releases.json)" > commitMessage
|
||||
echo >> commitMessage
|
||||
echo "This is a release candidate for the following packages:" >> commitMessage
|
||||
echo >> commitMessage
|
||||
jq -r 'map("- `"+.ident+"`: "+.oldVersion+" -> "+.newVersion) | join("\n") ' < releases.json >> commitMessage
|
||||
git commit -n --amend --file commitMessage
|
||||
- name: Open Pull Request
|
||||
id: pr_opening
|
||||
run: |
|
||||
git push origin HEAD:release-candidate
|
||||
gh api repos/${{ github.repository }}/pulls \
|
||||
-F base="$(gh api /repos/${{ github.repository }} | jq -r .default_branch)" \
|
||||
-F head="release-candidate" \
|
||||
-F title="$(head -1 commitMessage)" \
|
||||
-F body="$(git --no-pager diff HEAD^ -- CHANGELOG.md | awk '{ if( substr($0,0,1) == "+" && $1 != "+##" && $1 != "+Released:" && $1 != "+++" ) { print substr($0,2) } }')" \
|
||||
--jq '.number | tostring | "pr_number="+.' >> $GITHUB_OUTPUT
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Assign to the releaser
|
||||
run:
|
||||
echo '{"assignees":[${{ toJSON(github.actor) }}]}' | gh api repos/${{
|
||||
github.repository }}/issues/${{ steps.pr_opening.outputs.pr_number
|
||||
}}/assignees --input -
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Enable Release workflow
|
||||
run: gh workflow enable 15329895 --repo ${{ github.repository }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
185
.github/workflows/release.yml
vendored
185
.github/workflows/release.yml
vendored
|
|
@ -1,172 +1,43 @@
|
|||
name: Release
|
||||
on:
|
||||
pull_request_review:
|
||||
types: [submitted]
|
||||
name: release
|
||||
|
||||
env:
|
||||
YARN_ENABLE_GLOBAL_CACHE: false
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
concurrency: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Publish releases
|
||||
if:
|
||||
${{ github.event.review.state == 'approved' && github.event.sender.login
|
||||
== github.event.pull_request.assignee.login &&
|
||||
github.event.pull_request.head.ref == 'release-candidate' }}
|
||||
outputs:
|
||||
companionWasReleased:
|
||||
${{ steps.checkIfCompanionWasReleased.outputs.version }}
|
||||
name: Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout sources
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Get yarn cache directory path
|
||||
id: yarn-cache-dir-path
|
||||
run:
|
||||
echo "dir=$(corepack yarn config get cacheFolder)" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/cache@v4
|
||||
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
- name: Install Node.js
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: lts/*
|
||||
|
||||
# Allow yarn to make changes during release
|
||||
- run: corepack yarn config set enableHardenedMode false
|
||||
- run: corepack yarn --mode=update-lockfile
|
||||
|
||||
- name: Install dependencies
|
||||
run: corepack yarn install --immutable
|
||||
env:
|
||||
# https://docs.cypress.io/guides/references/advanced-installation#Skipping-installation
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
- name: Get CHANGELOG diff
|
||||
run:
|
||||
git --no-pager diff HEAD^ -- CHANGELOG.md | awk '{ if( substr($0,0,1)
|
||||
== "+" && $1 != "+##" && $1 != "+Released:" && $1 != "+++" ) { print
|
||||
substr($0,2) } }' > CHANGELOG.diff.md
|
||||
- name: Copy README for `uppy` package
|
||||
run: cp README.md packages/uppy/.
|
||||
- name: Build before publishing
|
||||
run: corepack yarn run build
|
||||
- name: Hack to allow the publish of the Angular package
|
||||
run: corepack yarn workspace @uppy/angular prepublishOnly
|
||||
- name: Publish to the npm registry
|
||||
run:
|
||||
corepack yarn workspaces foreach --all --no-private npm publish
|
||||
--access public --tolerate-republish
|
||||
env:
|
||||
YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
- name: Merge PR
|
||||
id: merge
|
||||
run: |
|
||||
gh api -X PUT repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/merge \
|
||||
-F merge_method="squash" \
|
||||
-F commit_message="$(cat CHANGELOG.diff.md)" \
|
||||
--jq 'if .merged then "sha="+.sha else error("not merged") end' >> $GITHUB_OUTPUT
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Create tags
|
||||
continue-on-error: true
|
||||
run: |
|
||||
git --no-pager diff --name-only HEAD^ | awk '$0 ~ /^packages\/.+\/package\.json$/ { print "jq -r '"'"'\"gh api /repos/{owner}/{repo}/git/refs -f ref=\\\"refs/tags/\"+.name+\"@\"+.version+\"\\\" -f sha=${{ steps.merge.outputs.sha }}\"'"'"' < " $0 }' > createTags.sh
|
||||
cat createTags.sh
|
||||
sh createTags.sh | sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Get Uppy version number
|
||||
id: uppyVersion
|
||||
run:
|
||||
jq -r '"version="+.version' < packages/uppy/package.json >>
|
||||
$GITHUB_OUTPUT
|
||||
- name: Create GitHub release
|
||||
run: |
|
||||
if ! gh release view uppy@${{ steps.uppyVersion.outputs.version }} > /dev/null 2>&1; then
|
||||
gh release create uppy@${{ steps.uppyVersion.outputs.version }} \
|
||||
-t "Uppy ${{ steps.uppyVersion.outputs.version }}" \
|
||||
-F CHANGELOG.diff.md
|
||||
else
|
||||
echo "Release ${{ steps.uppyVersion.outputs.version }} already exists. Skipping."
|
||||
fi
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Upload `uppy` to CDN
|
||||
run: corepack yarn run uploadcdn uppy -- --force
|
||||
env:
|
||||
EDGLY_KEY: ${{secrets.EDGLY_KEY}}
|
||||
EDGLY_SECRET: ${{secrets.EDGLY_SECRET}}
|
||||
- name: Upload `@uppy/locales` to CDN if it was released
|
||||
run: corepack yarn run uploadcdn @uppy/locales -- --force
|
||||
env:
|
||||
EDGLY_KEY: ${{secrets.EDGLY_KEY}}
|
||||
EDGLY_SECRET: ${{secrets.EDGLY_SECRET}}
|
||||
- name: Check if Companion was released
|
||||
id: checkIfCompanionWasReleased
|
||||
run:
|
||||
git diff --exit-code --quiet HEAD^ --
|
||||
packages/@uppy/companion/package.json || echo "version=$(jq -r
|
||||
.version < packages/@uppy/companion/package.json)" >> $GITHUB_OUTPUT
|
||||
- name: Remove release-candidate branch
|
||||
run:
|
||||
gh api -X DELETE repos/${{ github.repository
|
||||
}}/git/refs/heads/release-candidate || echo "Already deleted"
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Remove release branch
|
||||
run:
|
||||
gh api -X DELETE repos/${{ github.repository }}/git/refs/heads/release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Disable Release workflow
|
||||
run: gh workflow disable 15329895 --repo ${{ github.repository }}
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: In case of failure
|
||||
if: ${{ failure() }}
|
||||
run:
|
||||
gh pr comment ${{ github.event.pull_request.number }} --body "Release
|
||||
job failed, please take action."
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# See also companion-deploy.yml
|
||||
docker:
|
||||
name: DockerHub
|
||||
needs: release
|
||||
if: ${{ needs.release.outputs.companionWasReleased }}
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DOCKER_BUILDKIT: 0
|
||||
COMPOSE_DOCKER_CLI_BUILD: 0
|
||||
steps:
|
||||
- name: Checkout sources
|
||||
uses: actions/checkout@v4
|
||||
- name: Docker meta
|
||||
id: docker_meta
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
||||
- name: Build
|
||||
run: corepack yarn build
|
||||
|
||||
- name: Create Release Pull Request or Publish
|
||||
id: changesets
|
||||
uses: changesets/action@v1
|
||||
with:
|
||||
images: transloadit/companion
|
||||
tags: |
|
||||
type=edge
|
||||
type=semver,pattern={{version}},value=${{ needs.release.outputs.companionWasReleased }}
|
||||
# set latest tag for default branch
|
||||
type=raw,value=latest,enable=true
|
||||
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
||||
- uses: docker/setup-buildx-action@v3
|
||||
- name: Log in to DockerHub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
username: ${{secrets.DOCKER_USERNAME}}
|
||||
password: ${{secrets.DOCKER_PASSWORD}}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||
with:
|
||||
push: true
|
||||
context: .
|
||||
platforms: linux/amd64,linux/arm64
|
||||
file: Dockerfile
|
||||
tags: ${{ steps.docker_meta.outputs.tags }}
|
||||
labels: ${{ steps.docker_meta.outputs.labels }}
|
||||
version: corepack yarn run version
|
||||
publish: corepack yarn run release
|
||||
commit: '[ci] release'
|
||||
title: '[ci] release'
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "example-companion-custom-provider",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@uppy/companion-client": "workspace:*",
|
||||
|
|
@ -23,7 +24,6 @@
|
|||
"npm-run-all": "^4.1.2",
|
||||
"vite": "^5.4.17"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "npm-run-all --parallel start:server start:client",
|
||||
"start:client": "vite",
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
"e2e:generate": "yarn workspace e2e generate-test",
|
||||
"e2e:headless": "yarn workspace e2e cypress:headless",
|
||||
"e2e": "npm-run-all --parallel build:watch e2e:client start:companion:with-loadbalancer e2e:cypress",
|
||||
"release": "PACKAGES=$(yarn workspaces list --json) yarn workspace @uppy-dev/release interactive",
|
||||
"size": "echo 'JS Bundle mingz:' && cat ./packages/uppy/dist/uppy.min.js | gzip | wc -c && echo 'CSS Bundle mingz:' && cat ./packages/uppy/dist/uppy.min.css | gzip | wc -c",
|
||||
"start:companion": "yarn workspace @uppy/companion start:dev",
|
||||
"start:companion:with-loadbalancer": "e2e/start-companion-with-load-balancer.mjs",
|
||||
|
|
@ -36,7 +35,8 @@
|
|||
"test:watch": "turbo watch test --filter='./packages/@uppy/*' --filter='./packages/uppy'",
|
||||
"typecheck": "turbo run typecheck --filter='./packages/@uppy/*' --filter='./packages/uppy'",
|
||||
"uploadcdn": "yarn workspace uppy exec -- node upload-to-cdn.js",
|
||||
"version": "yarn node ./bin/after-version-bump.js"
|
||||
"version": "changeset version && corepack yarn install --mode=update-lockfile",
|
||||
"release": "changeset publish"
|
||||
},
|
||||
"resolutions": {
|
||||
"@types/react": "^18",
|
||||
|
|
@ -48,6 +48,8 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "2.0.5",
|
||||
"@changesets/changelog-github": "^0.5.1",
|
||||
"@changesets/cli": "^2.29.5",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"start-server-and-test": "^1.14.0",
|
||||
"turbo": "^2.5.4",
|
||||
|
|
|
|||
|
|
@ -1,84 +0,0 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { open } from 'node:fs/promises'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import { globby } from 'globby'
|
||||
|
||||
const ROOT = new URL('../../', import.meta.url)
|
||||
const PACKAGES_FOLDER = new URL('./packages/', ROOT)
|
||||
|
||||
const VERSION_URL =
|
||||
/(?<=https:\/\/\S+\/v)\d+\.\d+\.\d+(?:-(?:alpha|beta)(?:[.-]\d+)?)?(?=\/)/g
|
||||
|
||||
async function replaceInFile(filename, replacements) {
|
||||
const file = await open(filename, 'r+')
|
||||
let content = await file.readFile('utf8')
|
||||
|
||||
let hasBeenModified = false
|
||||
let exec
|
||||
exec = VERSION_URL.exec(content)
|
||||
while (exec) {
|
||||
const pkg = Object.keys(replacements).find(
|
||||
(pkgName) =>
|
||||
content.slice(exec.index - pkgName.length, exec.index) === pkgName,
|
||||
)
|
||||
if (pkg && exec[0] !== replacements[pkg]) {
|
||||
hasBeenModified = true
|
||||
content =
|
||||
content.slice(0, exec.index) +
|
||||
replacements[pkg] +
|
||||
content.slice(VERSION_URL.lastIndex)
|
||||
}
|
||||
exec = VERSION_URL.exec(content)
|
||||
}
|
||||
|
||||
if (hasBeenModified) {
|
||||
const { bytesWritten } = await file.write(content, 0, 'utf8')
|
||||
await file.truncate(bytesWritten)
|
||||
console.log(filename)
|
||||
}
|
||||
|
||||
await file.close()
|
||||
}
|
||||
|
||||
async function updateVersions(files, packageNames) {
|
||||
const replacements = Object.fromEntries(
|
||||
packageNames.map((packageName) => {
|
||||
const { version } = JSON.parse(
|
||||
readFileSync(
|
||||
new URL(`./${packageName}/package.json`, PACKAGES_FOLDER),
|
||||
'utf8',
|
||||
),
|
||||
)
|
||||
// uppy → /uppy/v
|
||||
// @uppy/robodog → /uppy/robodog/v
|
||||
const urlPart = `/${packageName.replace(/^@/, '')}/v`
|
||||
return [urlPart, version]
|
||||
}),
|
||||
)
|
||||
|
||||
await Promise.all(files.map((f) => replaceInFile(f, replacements)))
|
||||
}
|
||||
|
||||
const files = await globby(
|
||||
[
|
||||
'README.md',
|
||||
'BUNDLE-README.md',
|
||||
'examples/**/*.html',
|
||||
'packages/*/README.md',
|
||||
'packages/@uppy/*/README.md',
|
||||
'website/src/docs/**',
|
||||
'website/src/examples/**',
|
||||
'website/themes/uppy/layout/**',
|
||||
'!**/node_modules/**',
|
||||
],
|
||||
{
|
||||
gitignore: true,
|
||||
onlyFiles: true,
|
||||
cwd: fileURLToPath(ROOT),
|
||||
absolute: true,
|
||||
},
|
||||
)
|
||||
|
||||
await updateVersions(files, ['uppy', '@uppy/locales'])
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
// Usage: autoFixConflicts.js | sh
|
||||
|
||||
import { spawn } from 'node:child_process'
|
||||
import { createInterface as readLines } from 'node:readline'
|
||||
|
||||
const VERSION_URL =
|
||||
/(?<=https:\/\/\S+\/v)\d+\.\d+\.\d+(?:-(?:alpha|beta)(?:[.-]\d+)?)?(?=\/)/
|
||||
|
||||
const gitStatus = spawn('git', ['status', '--porcelain'])
|
||||
|
||||
for await (const line of readLines(gitStatus.stdout)) {
|
||||
if (!line.startsWith('UU ')) continue
|
||||
|
||||
const file = line.slice(3)
|
||||
if (file === 'yarn.lock') {
|
||||
console.log('corepack yarn install')
|
||||
console.log('git add yarn.lock')
|
||||
continue
|
||||
}
|
||||
|
||||
if (file.endsWith('/package.json')) {
|
||||
console.log(`git checkout --ours ${file}`)
|
||||
console.log(`git add ${file}`)
|
||||
continue
|
||||
}
|
||||
|
||||
const gitDiff = spawn('git', ['--no-pager', 'diff', '--', file])
|
||||
let conflictHasStarted = false
|
||||
let containsCDNChanges = true
|
||||
let currentConflictContainsCDNChanges = false
|
||||
|
||||
for await (const line of readLines(gitDiff.stdout)) {
|
||||
if (conflictHasStarted) {
|
||||
if (line.startsWith('++>>>>>>>')) {
|
||||
conflictHasStarted = false
|
||||
containsCDNChanges &&= currentConflictContainsCDNChanges
|
||||
currentConflictContainsCDNChanges = false
|
||||
} else {
|
||||
currentConflictContainsCDNChanges ||= VERSION_URL.test(line)
|
||||
}
|
||||
} else if (line === '++<<<<<<< HEAD') {
|
||||
conflictHasStarted = true
|
||||
}
|
||||
}
|
||||
if (containsCDNChanges) {
|
||||
console.log(`git checkout --ours ${file}`)
|
||||
console.log(`git add ${file}`)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
import { spawnSync } from 'node:child_process'
|
||||
import { createWriteStream, mkdirSync } from 'node:fs'
|
||||
|
||||
import prompts from 'prompts'
|
||||
import { TARGET_BRANCH } from './config.js'
|
||||
|
||||
function maxSemverness(a, b) {
|
||||
if (a === 'major' || b === 'major') return 'major'
|
||||
if (a === 'premajor' || b === 'premajor') return 'premajor'
|
||||
if (a === 'minor' || b === 'minor') return 'minor'
|
||||
if (a === 'preminor' || b === 'preminor') return 'preminor'
|
||||
if (a === 'prepatch' || b === 'prepatch') return 'prepatch'
|
||||
if (a === 'prepatch' || b === 'prerelease') return 'prerelease'
|
||||
return 'patch'
|
||||
}
|
||||
|
||||
export default async function pickSemverness(
|
||||
spawnOptions,
|
||||
LAST_RELEASE_COMMIT,
|
||||
releaseFileUrl,
|
||||
packagesList,
|
||||
) {
|
||||
mkdirSync(new URL('.', releaseFileUrl), { recursive: true })
|
||||
const releaseFile = createWriteStream(releaseFileUrl)
|
||||
releaseFile.write('releases:\n')
|
||||
|
||||
let uppySemverness
|
||||
|
||||
for await (const workspaceInfo of packagesList) {
|
||||
const { location, name } = JSON.parse(workspaceInfo)
|
||||
if (!name.startsWith('@uppy/')) continue
|
||||
|
||||
const { stdout } = spawnSync(
|
||||
'git',
|
||||
[
|
||||
'--no-pager',
|
||||
'log',
|
||||
'--format=- %s',
|
||||
`${LAST_RELEASE_COMMIT}..`,
|
||||
'--',
|
||||
location,
|
||||
],
|
||||
spawnOptions,
|
||||
)
|
||||
if (stdout.length === 0) {
|
||||
console.log(`No commits since last release for ${name}, skipping.`)
|
||||
continue
|
||||
}
|
||||
console.log('\n')
|
||||
console.log('-'.repeat(20))
|
||||
console.log(name)
|
||||
console.log(
|
||||
`\nHere are the commits that landed on ${name} since previous release:\n${stdout}\n`,
|
||||
)
|
||||
console.log(
|
||||
`Check the web UI at https://github.com/transloadit/uppy/tree/${TARGET_BRANCH}/${encodeURI(
|
||||
location,
|
||||
)}.`,
|
||||
)
|
||||
|
||||
const response = await prompts({
|
||||
type: 'select',
|
||||
name: 'value',
|
||||
message: `What should be the semverness of next ${name} release?`,
|
||||
choices: [
|
||||
{ title: 'Pre-release', value: 'prerelease' },
|
||||
{ title: 'Skip this package', value: '' },
|
||||
{ title: 'Patch', value: 'patch' },
|
||||
{ title: 'Minor', value: 'minor' },
|
||||
{ title: 'Major', value: 'major' },
|
||||
],
|
||||
initial: 2,
|
||||
})
|
||||
|
||||
if (!response.value) {
|
||||
console.log('Skipping.')
|
||||
continue
|
||||
}
|
||||
|
||||
releaseFile.write(` ${JSON.stringify(name)}: ${response.value}\n`)
|
||||
uppySemverness = maxSemverness(uppySemverness, response.value)
|
||||
}
|
||||
|
||||
if (uppySemverness == null)
|
||||
throw new Error('No package to release, aborting.')
|
||||
|
||||
releaseFile.write(` "uppy": ${uppySemverness}\n`)
|
||||
releaseFile.close()
|
||||
}
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
import { spawnSync } from 'node:child_process'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import prompts from 'prompts'
|
||||
import { REPO_NAME, REPO_OWNER } from './config.js'
|
||||
|
||||
export default async function commit(spawnOptions, ...files) {
|
||||
console.log(`Now is the time to do manual edits to:`)
|
||||
files.forEach((f) => console.log(f.toString()))
|
||||
console.log()
|
||||
|
||||
await prompts({
|
||||
type: 'toggle',
|
||||
name: 'value',
|
||||
message: 'Ready to commit?',
|
||||
initial: true,
|
||||
active: 'yes',
|
||||
inactive: 'no',
|
||||
})
|
||||
|
||||
spawnSync(
|
||||
'git',
|
||||
['add', ...files.map((url) => fileURLToPath(url))],
|
||||
spawnOptions,
|
||||
)
|
||||
spawnSync('git', ['commit', '-n', '-m', 'Prepare next release'], {
|
||||
...spawnOptions,
|
||||
stdio: 'inherit',
|
||||
})
|
||||
const sha = spawnSync('git', ['rev-parse', 'HEAD'], spawnOptions)
|
||||
.stdout.toString()
|
||||
.trim()
|
||||
const getRemoteCommamnd = `git remote -v | grep '${REPO_OWNER}/${REPO_NAME}' | awk '($3 == "(push)") { print $1; exit }'`
|
||||
const remote =
|
||||
spawnSync('/bin/sh', ['-c', getRemoteCommamnd]).stdout.toString().trim() ||
|
||||
`git@github.com:${REPO_OWNER}/${REPO_NAME}.git`
|
||||
|
||||
console.log(`Please run \`git push ${remote} ${sha}:refs/heads/release\`.`)
|
||||
console.log(`An automation will kick off and open a release candidate PR
|
||||
on the GitHub repository. Do not merge it manually! Review the PR (you may need to close and
|
||||
re-open so the CI and test will run on it). If everything looks good, approve the PR —
|
||||
this will publish updated packages to npm, then the PR will be merged.`)
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
export const REPO_OWNER = 'transloadit'
|
||||
export const REPO_NAME = 'uppy'
|
||||
export const TARGET_BRANCH = 'main'
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
import { spawn } from 'node:child_process'
|
||||
import { createWriteStream } from 'node:fs'
|
||||
import { createInterface } from 'node:readline'
|
||||
|
||||
import prompts from 'prompts'
|
||||
|
||||
const subsystem =
|
||||
/((?<=^packages\/)@uppy\/[a-z0-9-]+|(?<=^)(?:docs|e2e|examples))\//
|
||||
async function inferPackageForCommit(sha, spawnOptions) {
|
||||
const cp = spawn(
|
||||
'git',
|
||||
['--no-pager', 'log', '-1', '--name-only', sha],
|
||||
spawnOptions,
|
||||
)
|
||||
const candidates = {}
|
||||
for await (const path of createInterface({ input: cp.stdout })) {
|
||||
const match = subsystem.exec(path)
|
||||
if (match != null) {
|
||||
candidates[match[1]] ??= 0
|
||||
candidates[match[1]]++
|
||||
}
|
||||
}
|
||||
const maxVal = Math.max(...Object.values(candidates))
|
||||
return {
|
||||
inferredPackages: Number.isFinite(maxVal)
|
||||
? Object.entries(candidates)
|
||||
.flatMap(([pkg, nbOfFiles]) =>
|
||||
nbOfFiles === maxVal || nbOfFiles === maxVal - 1 ? [pkg] : [],
|
||||
)
|
||||
.join(',')
|
||||
: 'meta',
|
||||
candidates,
|
||||
}
|
||||
}
|
||||
|
||||
export default async function formatChangeLog(
|
||||
spawnOptions,
|
||||
LAST_RELEASE_COMMIT,
|
||||
changeLogUrl,
|
||||
) {
|
||||
const changeLogCommits = createWriteStream(changeLogUrl)
|
||||
|
||||
const gitLog = spawn(
|
||||
'git',
|
||||
[
|
||||
'--no-pager',
|
||||
'log',
|
||||
'--format="%H::%s::%an"',
|
||||
`${LAST_RELEASE_COMMIT}..HEAD`,
|
||||
],
|
||||
spawnOptions,
|
||||
)
|
||||
const expectedFormat =
|
||||
/^"([a-f0-9]+)::(?:((?:@uppy\/[a-z0-9-]+(?:,@uppy\/[a-z0-9-]+)*)|meta|docs|e2e|examples):\s?)?(.+?)(\s\(#\d+\))?::(.+)"$/
|
||||
for await (const log of createInterface({ input: gitLog.stdout })) {
|
||||
const [, sha, packageName, title, PR, authorName] = expectedFormat.exec(log)
|
||||
|
||||
const formattedCommitTitle = {
|
||||
packageName,
|
||||
title,
|
||||
authorInfo: PR ? `${authorName} / #${PR.slice(3, -1)}` : authorName,
|
||||
}
|
||||
|
||||
if (!packageName) {
|
||||
console.log(
|
||||
`No package info found in commit title: ${sha} (https://github.com/transloadit/uppy/commit/${sha})`,
|
||||
)
|
||||
console.log(log)
|
||||
const { inferredPackages, candidates } = await inferPackageForCommit(
|
||||
sha,
|
||||
spawnOptions,
|
||||
)
|
||||
const { useInferred } = await prompts({
|
||||
type: 'confirm',
|
||||
name: 'useInferred',
|
||||
message: `Assign commit to ${inferredPackages} (inferred from the files it touches)?`,
|
||||
initial: true,
|
||||
})
|
||||
|
||||
if (useInferred) {
|
||||
formattedCommitTitle.packageName = inferredPackages
|
||||
} else {
|
||||
const response = await prompts({
|
||||
type: 'autocompleteMultiselect',
|
||||
name: 'value',
|
||||
message: 'Which package(s) does this commit belong to?',
|
||||
min: 1,
|
||||
choices: [
|
||||
{ title: 'Docs', value: 'docs' },
|
||||
{ title: 'Meta', value: 'meta' },
|
||||
...Object.entries(candidates)
|
||||
.sort((a, b) => a[1] > b[1])
|
||||
.map(([value]) => ({ title: value, value })),
|
||||
],
|
||||
})
|
||||
if (!Array.isArray(response.value)) throw new Error('Aborting release')
|
||||
formattedCommitTitle.packageName = response.value.join(',')
|
||||
}
|
||||
}
|
||||
|
||||
changeLogCommits.write(
|
||||
`- ${formattedCommitTitle.packageName}: ${formattedCommitTitle.title} (${formattedCommitTitle.authorInfo})\n`,
|
||||
)
|
||||
}
|
||||
|
||||
changeLogCommits.close()
|
||||
}
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
import { spawnSync } from 'node:child_process'
|
||||
import prompts from 'prompts'
|
||||
import { REPO_NAME, REPO_OWNER, TARGET_BRANCH } from './config.js'
|
||||
|
||||
async function apiCall(endpoint, errorMessage) {
|
||||
const response = await fetch(
|
||||
`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}${endpoint}`,
|
||||
)
|
||||
if (response.ok) {
|
||||
return response.json()
|
||||
}
|
||||
console.warn(response)
|
||||
throw new Error(errorMessage)
|
||||
}
|
||||
|
||||
export async function getRemoteHEAD() {
|
||||
return (
|
||||
await apiCall(
|
||||
`/git/ref/heads/${TARGET_BRANCH}`,
|
||||
'Cannot get remote HEAD, check your internet connection.',
|
||||
)
|
||||
).object.sha
|
||||
}
|
||||
|
||||
async function getLatestReleaseSHA() {
|
||||
const response = await fetch(
|
||||
`https://raw.githubusercontent.com/${REPO_OWNER}/${REPO_NAME}/${TARGET_BRANCH}/packages/uppy/package.json`,
|
||||
)
|
||||
if (!response.ok)
|
||||
throw new Error(
|
||||
`Network call failed: ${response.status} ${response.statusText}`,
|
||||
)
|
||||
const { version } = await response.json()
|
||||
const tag_name = `uppy@${version}`
|
||||
console.log(`Last release was ${tag_name}.`)
|
||||
return (
|
||||
await apiCall(
|
||||
`/git/ref/tags/${encodeURIComponent(tag_name)}`,
|
||||
`Failed to fetch information for release ${JSON.stringify(tag_name)}`,
|
||||
)
|
||||
).object.sha
|
||||
}
|
||||
|
||||
async function getLocalHEAD() {
|
||||
return spawnSync('git', ['rev-parse', 'HEAD']).stdout.toString().trim()
|
||||
}
|
||||
|
||||
export function rewindGitHistory(spawnOptions, sha) {
|
||||
return spawnSync('git', ['reset', sha, '--hard'], spawnOptions).status === 0
|
||||
}
|
||||
|
||||
export async function validateGitStatus(spawnOptions) {
|
||||
const latestRelease = getLatestReleaseSHA() // run in parallel to speed things up
|
||||
const [REMOTE_HEAD, LOCAL_HEAD] = await Promise.all([
|
||||
getRemoteHEAD(),
|
||||
getLocalHEAD(),
|
||||
])
|
||||
|
||||
const { status, stderr } = spawnSync(
|
||||
'git',
|
||||
['diff', '--exit-code', '--quiet', REMOTE_HEAD, '--', '.'],
|
||||
spawnOptions,
|
||||
)
|
||||
if (status !== 0) {
|
||||
console.error(stderr.toString())
|
||||
console.log(
|
||||
`git repository is not clean and/or not in sync with ${REPO_OWNER}/${REPO_NAME}`,
|
||||
)
|
||||
if (
|
||||
spawnSync(
|
||||
'git',
|
||||
['diff', '--exit-code', '--quiet', LOCAL_HEAD, '--', '.'],
|
||||
spawnOptions,
|
||||
).status !== 0
|
||||
) {
|
||||
const { value } = await prompts({
|
||||
type: 'confirm',
|
||||
name: 'value',
|
||||
message:
|
||||
'Do you want to hard reset your local repository (all uncommitted changes will be lost)?',
|
||||
})
|
||||
if (!value) {
|
||||
throw new Error(
|
||||
'Please ensure manually that your local repository is clean and up to date.',
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (stderr.indexOf('bad object') !== -1) {
|
||||
const { status, stdout, stderr } = spawnSync(
|
||||
'git',
|
||||
[
|
||||
'fetch',
|
||||
`https://github.com/${REPO_OWNER}/${REPO_NAME}.git`,
|
||||
TARGET_BRANCH,
|
||||
],
|
||||
spawnOptions,
|
||||
)
|
||||
|
||||
if (status) {
|
||||
console.log(stdout.toString())
|
||||
console.error(stderr.toString())
|
||||
throw new Error(
|
||||
'Failed to fetch, please ensure manually that your local repository is up to date',
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (!rewindGitHistory(spawnOptions, REMOTE_HEAD)) {
|
||||
throw new Error(
|
||||
'Failed to reset, please ensure manually that your local repository is clean and up to date.',
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return [await latestRelease, LOCAL_HEAD]
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
#!/usr/bin/env node
|
||||
import process from 'node:process'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
|
||||
import pickSemverness from './choose-semverness.js'
|
||||
import commit from './commit-and-open-pr.js'
|
||||
import formatChangeLog from './formatChangeLog.js'
|
||||
import {
|
||||
rewindGitHistory,
|
||||
validateGitStatus,
|
||||
} from './getUpToDateRefsFromGitHub.js'
|
||||
|
||||
const ROOT = new URL('../../', import.meta.url)
|
||||
const spawnOptions = { cwd: fileURLToPath(ROOT) }
|
||||
|
||||
const deferredReleaseFile = new URL('./.yarn/versions/next.yml', ROOT)
|
||||
const temporaryChangeLog = new URL('./CHANGELOG.next.md', ROOT)
|
||||
|
||||
console.log('Validating local repo status and get previous release info...')
|
||||
const [LAST_RELEASE_COMMIT, LOCAL_HEAD] = await validateGitStatus(spawnOptions)
|
||||
try {
|
||||
console.log('Local git repository is ready, starting release process...')
|
||||
await pickSemverness(
|
||||
spawnOptions,
|
||||
LAST_RELEASE_COMMIT,
|
||||
deferredReleaseFile,
|
||||
process.env.PACKAGES.split(' '),
|
||||
)
|
||||
console.log('Working on the changelog...')
|
||||
await formatChangeLog(spawnOptions, LAST_RELEASE_COMMIT, temporaryChangeLog)
|
||||
console.log('Final step...')
|
||||
await commit(spawnOptions, deferredReleaseFile, temporaryChangeLog)
|
||||
} finally {
|
||||
console.log('Rewinding git history...')
|
||||
await rewindGitHistory(spawnOptions, LOCAL_HEAD)
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"name": "@uppy-dev/release",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"globby": "^13.0.0",
|
||||
"prompts": "^2.4.2"
|
||||
},
|
||||
"scripts": {
|
||||
"interactive": "node ./interactive.js",
|
||||
"update-changelogs": "node ./updateChangelogs.js",
|
||||
"update-version-URLs": "node ./afterVersionBump.js"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,134 +0,0 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
import { Buffer } from 'node:buffer'
|
||||
import { createReadStream, promises as fs } from 'node:fs'
|
||||
import process from 'node:process'
|
||||
import { createInterface } from 'node:readline'
|
||||
|
||||
const ROOT = new URL('../../', import.meta.url)
|
||||
const PACKAGES_FOLDER = new URL('./packages/', ROOT)
|
||||
|
||||
const releasedDate = new Date().toISOString().slice(0, 10)
|
||||
|
||||
const releases = JSON.parse(
|
||||
await fs.readFile(new URL(process.argv[2], ROOT), 'utf-8'),
|
||||
)
|
||||
const uppyRelease = releases.find(({ ident }) => ident === 'uppy')
|
||||
|
||||
const changelog = await fs.open(new URL('./CHANGELOG.md', ROOT), 'r+')
|
||||
|
||||
const changelogContent = await changelog.readFile()
|
||||
|
||||
const mostRecentReleaseHeading = changelogContent.indexOf('\n## ')
|
||||
|
||||
function* makeTable(versions) {
|
||||
const pkgNameMaxLength = Math.max(
|
||||
'Package'.length,
|
||||
...versions.map((pkg) => pkg.ident.length),
|
||||
)
|
||||
const pkgVersionMaxLength = Math.max(
|
||||
'Version'.length,
|
||||
...versions.map((pkg) => pkg.newVersion.length),
|
||||
)
|
||||
const makeRow = (...cells) =>
|
||||
`| ${cells.map((cell, i) => cell[i % 2 ? 'padStart' : 'padEnd'](i % 2 ? pkgVersionMaxLength : pkgNameMaxLength)).join(' | ')} |`
|
||||
|
||||
yield makeRow('Package', 'Version', 'Package', 'Version')
|
||||
yield makeRow(
|
||||
...Array.from({ length: 4 }, (_, i) =>
|
||||
'-'.repeat(i % 2 ? pkgVersionMaxLength : pkgNameMaxLength),
|
||||
),
|
||||
)
|
||||
|
||||
const mid = Math.ceil(versions.length / 2)
|
||||
for (let i = 0; i < mid; i++) {
|
||||
const left = versions[i] || { ident: '', newVersion: '' }
|
||||
const right = versions[i + mid] || { ident: '', newVersion: '' }
|
||||
yield makeRow(left.ident, left.newVersion, right.ident, right.newVersion)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens the changelog of a given package, creating it if it doesn't exist.
|
||||
*
|
||||
* @param {string} pkg Package name
|
||||
* @returns {Promise<fs.FileHandle>}
|
||||
*/
|
||||
async function updateSubPackageChangelog(pkg, lines, subsetOfLines) {
|
||||
const packageReleaseInfo = releases.find(({ ident }) => ident === pkg)
|
||||
if (packageReleaseInfo == null) {
|
||||
console.warn(pkg, 'is not being released')
|
||||
return null
|
||||
}
|
||||
const { newVersion } = packageReleaseInfo
|
||||
const url = new URL(`./${pkg}/CHANGELOG.md`, PACKAGES_FOLDER)
|
||||
const heading = Buffer.from(`# ${pkg}\n`)
|
||||
let fh
|
||||
let oldContent
|
||||
try {
|
||||
fh = await fs.open(url, 'r+') // this will throw if the file doesn't exist
|
||||
oldContent = await fh.readFile()
|
||||
} catch (e) {
|
||||
if (e.code !== 'ENOENT') {
|
||||
throw e
|
||||
}
|
||||
// Creates the file if it doesn't exist yet.
|
||||
fh = await fs.open(url, 'wx')
|
||||
await fh.writeFile(heading)
|
||||
}
|
||||
const { bytesWritten } = await fh.write(
|
||||
`
|
||||
## ${newVersion}
|
||||
|
||||
Released: ${releasedDate}
|
||||
Included in: Uppy v${uppyRelease.newVersion}
|
||||
|
||||
${subsetOfLines.map((index) => lines[index]).join('\n')}
|
||||
`,
|
||||
heading.byteLength,
|
||||
)
|
||||
if (oldContent != null) {
|
||||
await fh.write(
|
||||
oldContent,
|
||||
heading.byteLength,
|
||||
undefined,
|
||||
bytesWritten + heading.byteLength,
|
||||
)
|
||||
}
|
||||
console.log(`packages/${pkg}/CHANGELOG.md`) // outputing the relative path of the file to git add it.
|
||||
return fh.close()
|
||||
}
|
||||
|
||||
const subPackagesChangelogs = {}
|
||||
const lines = []
|
||||
for await (const line of createInterface({
|
||||
input: createReadStream(new URL('./CHANGELOG.next.md', ROOT)),
|
||||
})) {
|
||||
const index = lines.push(line) - 1
|
||||
for (const pkg of line.slice(2, line.indexOf(':')).split(',')) {
|
||||
subPackagesChangelogs[pkg] ??= []
|
||||
subPackagesChangelogs[pkg].push(index)
|
||||
}
|
||||
}
|
||||
|
||||
await changelog.write(
|
||||
`
|
||||
## ${uppyRelease.newVersion}
|
||||
|
||||
Released: ${releasedDate}
|
||||
|
||||
${Array.from(makeTable(releases)).join('\n')}
|
||||
|
||||
${lines.join('\n')}
|
||||
|
||||
${changelogContent.slice(mostRecentReleaseHeading)}`,
|
||||
mostRecentReleaseHeading,
|
||||
)
|
||||
console.log('CHANGELOG.md') // outputing the relative path of the file to git add it.
|
||||
await changelog.close()
|
||||
|
||||
await Promise.all(
|
||||
Object.entries(subPackagesChangelogs).map(([pkg, subsetOfLines]) =>
|
||||
updateSubPackageChangelog(pkg, lines, subsetOfLines),
|
||||
),
|
||||
)
|
||||
464
yarn.lock
464
yarn.lock
|
|
@ -4891,7 +4891,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@babel/runtime@npm:^7.20.0":
|
||||
"@babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.5.5":
|
||||
version: 7.27.6
|
||||
resolution: "@babel/runtime@npm:7.27.6"
|
||||
checksum: 10/cc957a12ba3781241b83d528eb69ddeb86ca5ac43179a825e83aa81263a6b3eb88c57bed8a937cdeacfc3192e07ec24c73acdfea4507d0c0428c8e23d6322bfe
|
||||
|
|
@ -5122,6 +5122,261 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/apply-release-plan@npm:^7.0.12":
|
||||
version: 7.0.12
|
||||
resolution: "@changesets/apply-release-plan@npm:7.0.12"
|
||||
dependencies:
|
||||
"@changesets/config": "npm:^3.1.1"
|
||||
"@changesets/get-version-range-type": "npm:^0.4.0"
|
||||
"@changesets/git": "npm:^3.0.4"
|
||||
"@changesets/should-skip-package": "npm:^0.1.2"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
detect-indent: "npm:^6.0.0"
|
||||
fs-extra: "npm:^7.0.1"
|
||||
lodash.startcase: "npm:^4.4.0"
|
||||
outdent: "npm:^0.5.0"
|
||||
prettier: "npm:^2.7.1"
|
||||
resolve-from: "npm:^5.0.0"
|
||||
semver: "npm:^7.5.3"
|
||||
checksum: 10/3ce05caa73b7b96a8a6be943507591925c44b22f209da001fb9d83df1d7a4569659e889373f5f7a208a121b3cf7bc17788969b8849bddaf13c27d6720e4e1c47
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/assemble-release-plan@npm:^6.0.9":
|
||||
version: 6.0.9
|
||||
resolution: "@changesets/assemble-release-plan@npm:6.0.9"
|
||||
dependencies:
|
||||
"@changesets/errors": "npm:^0.2.0"
|
||||
"@changesets/get-dependents-graph": "npm:^2.1.3"
|
||||
"@changesets/should-skip-package": "npm:^0.1.2"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
semver: "npm:^7.5.3"
|
||||
checksum: 10/f84656eabb700ed77f97751b282e1701636ed45a44b443abd9af0291870495cc046fee301478010f39a1dc455799065ae007b9d7d2bb5ae8b793b65bbb8e052a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/changelog-git@npm:^0.2.1":
|
||||
version: 0.2.1
|
||||
resolution: "@changesets/changelog-git@npm:0.2.1"
|
||||
dependencies:
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
checksum: 10/c22f3c0baf50c102a6890046351ee42f65ff6d58747ba4f75e5e40da1ed5fbcfd0dc2d11cdfb86acbb3262e58acb93f096c798827cac570c1e22e8f32f58a30f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/changelog-github@npm:^0.5.1":
|
||||
version: 0.5.1
|
||||
resolution: "@changesets/changelog-github@npm:0.5.1"
|
||||
dependencies:
|
||||
"@changesets/get-github-info": "npm:^0.6.0"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
dotenv: "npm:^8.1.0"
|
||||
checksum: 10/1284e7dc067652edfa14792196e6036849455d121afabe63e8d1a7dc0e8fb0310edb58d1130f2a5944819ae4011eeecc7e0c44c1cda43e6a581a3add187c3447
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/cli@npm:^2.29.5":
|
||||
version: 2.29.5
|
||||
resolution: "@changesets/cli@npm:2.29.5"
|
||||
dependencies:
|
||||
"@changesets/apply-release-plan": "npm:^7.0.12"
|
||||
"@changesets/assemble-release-plan": "npm:^6.0.9"
|
||||
"@changesets/changelog-git": "npm:^0.2.1"
|
||||
"@changesets/config": "npm:^3.1.1"
|
||||
"@changesets/errors": "npm:^0.2.0"
|
||||
"@changesets/get-dependents-graph": "npm:^2.1.3"
|
||||
"@changesets/get-release-plan": "npm:^4.0.13"
|
||||
"@changesets/git": "npm:^3.0.4"
|
||||
"@changesets/logger": "npm:^0.1.1"
|
||||
"@changesets/pre": "npm:^2.0.2"
|
||||
"@changesets/read": "npm:^0.6.5"
|
||||
"@changesets/should-skip-package": "npm:^0.1.2"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@changesets/write": "npm:^0.4.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
ansi-colors: "npm:^4.1.3"
|
||||
ci-info: "npm:^3.7.0"
|
||||
enquirer: "npm:^2.4.1"
|
||||
external-editor: "npm:^3.1.0"
|
||||
fs-extra: "npm:^7.0.1"
|
||||
mri: "npm:^1.2.0"
|
||||
p-limit: "npm:^2.2.0"
|
||||
package-manager-detector: "npm:^0.2.0"
|
||||
picocolors: "npm:^1.1.0"
|
||||
resolve-from: "npm:^5.0.0"
|
||||
semver: "npm:^7.5.3"
|
||||
spawndamnit: "npm:^3.0.1"
|
||||
term-size: "npm:^2.1.0"
|
||||
bin:
|
||||
changeset: bin.js
|
||||
checksum: 10/f401da29025d7bcc07b732bb09a9627f785bfc21c7c2005861d11ffea732bc14d33394fc2fcae50cc5f2b710f6080c5babe2fa90d432de5fdb47ae6afc147936
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/config@npm:^3.1.1":
|
||||
version: 3.1.1
|
||||
resolution: "@changesets/config@npm:3.1.1"
|
||||
dependencies:
|
||||
"@changesets/errors": "npm:^0.2.0"
|
||||
"@changesets/get-dependents-graph": "npm:^2.1.3"
|
||||
"@changesets/logger": "npm:^0.1.1"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
fs-extra: "npm:^7.0.1"
|
||||
micromatch: "npm:^4.0.8"
|
||||
checksum: 10/9500e02b68801f052478b3e10523bd3a39b9e5e989e718832832537c9da965580f496262c2bc3f6e23a4e6fb4303f730a69dcbf2041f68d2fa7bd03dd1f82db0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/errors@npm:^0.2.0":
|
||||
version: 0.2.0
|
||||
resolution: "@changesets/errors@npm:0.2.0"
|
||||
dependencies:
|
||||
extendable-error: "npm:^0.1.5"
|
||||
checksum: 10/4b79373f92287af4f723e8dbbccaf0299aa8735fc043243d0ad587f04a7614615ea50180be575d4438b9f00aa82d1cf85e902b77a55bdd3e0a8dd97e77b18c60
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/get-dependents-graph@npm:^2.1.3":
|
||||
version: 2.1.3
|
||||
resolution: "@changesets/get-dependents-graph@npm:2.1.3"
|
||||
dependencies:
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
picocolors: "npm:^1.1.0"
|
||||
semver: "npm:^7.5.3"
|
||||
checksum: 10/33f2bb5dc88443b68fd796fd3b019a553fb3e21cb957a8a117db2a6770ad81f7c156ebdc3b12cfa75169de918f11271a71f61034aec48a53bf1a936d6d783e3d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/get-github-info@npm:^0.6.0":
|
||||
version: 0.6.0
|
||||
resolution: "@changesets/get-github-info@npm:0.6.0"
|
||||
dependencies:
|
||||
dataloader: "npm:^1.4.0"
|
||||
node-fetch: "npm:^2.5.0"
|
||||
checksum: 10/4ba61eafb0a75fa7f741885b465d90559e63581e748527e060f90c37380a02f62810db3bc79a4e74d109754d7f72dc45249e1ac2be5fcaec6a7d0f99db1cee78
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/get-release-plan@npm:^4.0.13":
|
||||
version: 4.0.13
|
||||
resolution: "@changesets/get-release-plan@npm:4.0.13"
|
||||
dependencies:
|
||||
"@changesets/assemble-release-plan": "npm:^6.0.9"
|
||||
"@changesets/config": "npm:^3.1.1"
|
||||
"@changesets/pre": "npm:^2.0.2"
|
||||
"@changesets/read": "npm:^0.6.5"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
checksum: 10/9983fae5a68012c4c418ddd62f2fb3d325363f21160252ff7b868503a1a2effb8fdd32e4a0289b72653afc3605ce19d163ff69205c942a0004efb571a5f78fd0
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/get-version-range-type@npm:^0.4.0":
|
||||
version: 0.4.0
|
||||
resolution: "@changesets/get-version-range-type@npm:0.4.0"
|
||||
checksum: 10/9868e99b31af652d3fa08fc33d55b9636f2feed1f4efdb318a6dbb4bb061281868de089b93041ce7f2775ab9cf454b92b1199767d0f4f228d8bbc483e61d2fd8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/git@npm:^3.0.4":
|
||||
version: 3.0.4
|
||||
resolution: "@changesets/git@npm:3.0.4"
|
||||
dependencies:
|
||||
"@changesets/errors": "npm:^0.2.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
is-subdir: "npm:^1.1.1"
|
||||
micromatch: "npm:^4.0.8"
|
||||
spawndamnit: "npm:^3.0.1"
|
||||
checksum: 10/4f5a1f3354ec39d530df78b198eaaf2a8ef6cca873dd18efb8706aae09cab04e0d985abd236288644fac5d10cc5cb6ba2538c3e0be023c4d80790ff841f39fa6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/logger@npm:^0.1.1":
|
||||
version: 0.1.1
|
||||
resolution: "@changesets/logger@npm:0.1.1"
|
||||
dependencies:
|
||||
picocolors: "npm:^1.1.0"
|
||||
checksum: 10/bbfc050ddd0afdaa95bb790e81894b7548a2def059deeaed1685e22c10ede245ec2264df42bb2200cc0c8bd040e427bcd68a7afcca2633dc263a28e923d7c175
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/parse@npm:^0.4.1":
|
||||
version: 0.4.1
|
||||
resolution: "@changesets/parse@npm:0.4.1"
|
||||
dependencies:
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
js-yaml: "npm:^3.13.1"
|
||||
checksum: 10/2973ab8f38592a80efea589e148e5bdfd6ed3af86aa9206f941b5b3955f68464bf70a5965349f642667c708ebae60e4266be538328cd27075cace3f7cc1022e3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/pre@npm:^2.0.2":
|
||||
version: 2.0.2
|
||||
resolution: "@changesets/pre@npm:2.0.2"
|
||||
dependencies:
|
||||
"@changesets/errors": "npm:^0.2.0"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
fs-extra: "npm:^7.0.1"
|
||||
checksum: 10/daaedd2747492ced61f107d38f90e535607bcb073b10ffac3d9e3bcad1a4cc082370884224fc6785af2d92d37f6b0a3bf853f9759b8fda294878d00d24344415
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/read@npm:^0.6.5":
|
||||
version: 0.6.5
|
||||
resolution: "@changesets/read@npm:0.6.5"
|
||||
dependencies:
|
||||
"@changesets/git": "npm:^3.0.4"
|
||||
"@changesets/logger": "npm:^0.1.1"
|
||||
"@changesets/parse": "npm:^0.4.1"
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
fs-extra: "npm:^7.0.1"
|
||||
p-filter: "npm:^2.1.0"
|
||||
picocolors: "npm:^1.1.0"
|
||||
checksum: 10/fec0ac28801e0560fae0eb1d21250dd2a48aaff67bddd1b446a960afd761690d5873dca6eff369d43763bec61f1023d38a38876d5824e316e6de622dc52a24f3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/should-skip-package@npm:^0.1.2":
|
||||
version: 0.1.2
|
||||
resolution: "@changesets/should-skip-package@npm:0.1.2"
|
||||
dependencies:
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
"@manypkg/get-packages": "npm:^1.1.3"
|
||||
checksum: 10/d09fcf1200ee201f0dd5b8049d90e8b5e0cfd34cc94f5c661c4cdab182a8263628733f9bc5886550a92f6f7857339d79fc77f12ffd53559b029a2bf9a2fa7ace
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/types@npm:^4.0.1":
|
||||
version: 4.1.0
|
||||
resolution: "@changesets/types@npm:4.1.0"
|
||||
checksum: 10/4d7c65a447400ac474b2dc2d79bc1a5341c305fbce4a648ef59d9939bc1bbbbd6852684c417a9a4ef0226468b9cb522b9ac2b5393f21fa5f20f1b12bee94eab5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/types@npm:^6.1.0":
|
||||
version: 6.1.0
|
||||
resolution: "@changesets/types@npm:6.1.0"
|
||||
checksum: 10/2dcd00712cb85d0c53afdd8d0e856b4bf9c0ce8dc36c838c918d44799aacd9ba8659b9ff610ff92b94fc03c8fd2b52c5b05418fcf8a1bd138cd9182414ede373
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@changesets/write@npm:^0.4.0":
|
||||
version: 0.4.0
|
||||
resolution: "@changesets/write@npm:0.4.0"
|
||||
dependencies:
|
||||
"@changesets/types": "npm:^6.1.0"
|
||||
fs-extra: "npm:^7.0.1"
|
||||
human-id: "npm:^4.1.1"
|
||||
prettier: "npm:^2.7.1"
|
||||
checksum: 10/bcea8431a09e282bdf66adbd8411d5d3cc19b4a2df519a42586c912b23a7b3ef18d1d0765e2d1a27ff175e2dfc9ef4c2df95cfa920dd4dd2972aaaf662afc6b9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@cnakazawa/watch@npm:^1.0.3":
|
||||
version: 1.0.4
|
||||
resolution: "@cnakazawa/watch@npm:1.0.4"
|
||||
|
|
@ -7543,6 +7798,32 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@manypkg/find-root@npm:^1.1.0":
|
||||
version: 1.1.0
|
||||
resolution: "@manypkg/find-root@npm:1.1.0"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.5.5"
|
||||
"@types/node": "npm:^12.7.1"
|
||||
find-up: "npm:^4.1.0"
|
||||
fs-extra: "npm:^8.1.0"
|
||||
checksum: 10/31e7dde82612a0e37ebb07876d76b1bf2aedc5b285b5e50d94cdf63edbf1fa3970349b84a5837a3c687e5b643e9a4f4588ae1f4b4ae9d412516d57bf977a08db
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@manypkg/get-packages@npm:^1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "@manypkg/get-packages@npm:1.1.3"
|
||||
dependencies:
|
||||
"@babel/runtime": "npm:^7.5.5"
|
||||
"@changesets/types": "npm:^4.0.1"
|
||||
"@manypkg/find-root": "npm:^1.1.0"
|
||||
fs-extra: "npm:^8.1.0"
|
||||
globby: "npm:^11.0.0"
|
||||
read-yaml-file: "npm:^1.1.0"
|
||||
checksum: 10/4912e002199ff3974ec48586376a04c5f1815a4faa5f4d36b0698838eec143c9d4e3d42c41e0de009f48a1e2251802ed63c1311ab44de225b50102f85919a248
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@mischnic/json-sourcemap@npm:^0.1.0":
|
||||
version: 0.1.1
|
||||
resolution: "@mischnic/json-sourcemap@npm:0.1.1"
|
||||
|
|
@ -11942,6 +12223,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node@npm:^12.7.1":
|
||||
version: 12.20.55
|
||||
resolution: "@types/node@npm:12.20.55"
|
||||
checksum: 10/1f916a06fff02faadb09a16ed6e31820ce170798b202ef0b14fc244bfbd721938c54a3a99836e185e4414ca461fe96c5bb5c67c3d248f153555b7e6347f061dd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/prop-types@npm:*":
|
||||
version: 15.7.12
|
||||
resolution: "@types/prop-types@npm:15.7.12"
|
||||
|
|
@ -12277,6 +12565,8 @@ __metadata:
|
|||
resolution: "@uppy-dev/build@workspace:."
|
||||
dependencies:
|
||||
"@biomejs/biome": "npm:2.0.5"
|
||||
"@changesets/changelog-github": "npm:^0.5.1"
|
||||
"@changesets/cli": "npm:^2.29.5"
|
||||
npm-run-all: "npm:^4.1.5"
|
||||
start-server-and-test: "npm:^1.14.0"
|
||||
turbo: "npm:^2.5.4"
|
||||
|
|
@ -12294,15 +12584,6 @@ __metadata:
|
|||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@uppy-dev/release@workspace:private/release":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@uppy-dev/release@workspace:private/release"
|
||||
dependencies:
|
||||
globby: "npm:^13.0.0"
|
||||
prompts: "npm:^2.4.2"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@uppy/angular@workspace:*, @uppy/angular@workspace:packages/@uppy/angular/projects/uppy/angular":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@uppy/angular@workspace:packages/@uppy/angular/projects/uppy/angular"
|
||||
|
|
@ -15063,6 +15344,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"better-path-resolve@npm:1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "better-path-resolve@npm:1.0.0"
|
||||
dependencies:
|
||||
is-windows: "npm:^1.0.0"
|
||||
checksum: 10/5392dbe04e7fe68b944eb37961d9dfa147aaac3ee9ee3f6e13d42e2c9fbe949e68d16e896c14ee9016fa5f8e6e53ec7fd8b5f01b50a32067a7d94ac9cfb9a050
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"big-integer@npm:1.6.x":
|
||||
version: 1.6.52
|
||||
resolution: "big-integer@npm:1.6.52"
|
||||
|
|
@ -15829,7 +16119,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ci-info@npm:^3.2.0, ci-info@npm:^3.3.0":
|
||||
"ci-info@npm:^3.2.0, ci-info@npm:^3.3.0, ci-info@npm:^3.7.0":
|
||||
version: 3.9.0
|
||||
resolution: "ci-info@npm:3.9.0"
|
||||
checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397
|
||||
|
|
@ -16680,7 +16970,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cross-spawn@npm:^7.0.6":
|
||||
"cross-spawn@npm:^7.0.5, cross-spawn@npm:^7.0.6":
|
||||
version: 7.0.6
|
||||
resolution: "cross-spawn@npm:7.0.6"
|
||||
dependencies:
|
||||
|
|
@ -17093,6 +17383,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dataloader@npm:^1.4.0":
|
||||
version: 1.4.0
|
||||
resolution: "dataloader@npm:1.4.0"
|
||||
checksum: 10/8dc2181f7fc243f657aa97b5aa51b9e0da88dee9a59a689bab50d4bac826c27ae0457db8d9a5d59559d636f6b997f419303ccfde595cc26191f37ab9c792fe01
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"date-format@npm:^4.0.14":
|
||||
version: 4.0.14
|
||||
resolution: "date-format@npm:4.0.14"
|
||||
|
|
@ -17473,6 +17770,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"detect-indent@npm:^6.0.0":
|
||||
version: 6.1.0
|
||||
resolution: "detect-indent@npm:6.1.0"
|
||||
checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"detect-libc@npm:^1.0.3":
|
||||
version: 1.0.3
|
||||
resolution: "detect-libc@npm:1.0.3"
|
||||
|
|
@ -17712,6 +18016,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv@npm:^8.1.0":
|
||||
version: 8.6.0
|
||||
resolution: "dotenv@npm:8.6.0"
|
||||
checksum: 10/31d7b5c010cebb80046ba6853d703f9573369b00b15129536494f04b0af4ea0060ce8646e3af58b455af2f6f1237879dd261a5831656410ec92561ae1ea44508
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"dotenv@npm:~16.4.5":
|
||||
version: 16.4.7
|
||||
resolution: "dotenv@npm:16.4.7"
|
||||
|
|
@ -17954,7 +18265,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"enquirer@npm:^2.3.6":
|
||||
"enquirer@npm:^2.3.6, enquirer@npm:^2.4.1":
|
||||
version: 2.4.1
|
||||
resolution: "enquirer@npm:2.4.1"
|
||||
dependencies:
|
||||
|
|
@ -19996,6 +20307,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"extendable-error@npm:^0.1.5":
|
||||
version: 0.1.7
|
||||
resolution: "extendable-error@npm:0.1.7"
|
||||
checksum: 10/80478be7429a1675d2085f701239796bab3230ed6f2fb1b138fbabec24bea6516b7c5ceb6e9c209efcc9c089948d93715703845653535f8e8a49655066a9255e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"external-editor@npm:^3.1.0":
|
||||
version: 3.1.0
|
||||
resolution: "external-editor@npm:3.1.0"
|
||||
|
|
@ -20693,6 +21011,17 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fs-extra@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "fs-extra@npm:7.0.1"
|
||||
dependencies:
|
||||
graceful-fs: "npm:^4.1.2"
|
||||
jsonfile: "npm:^4.0.0"
|
||||
universalify: "npm:^0.1.0"
|
||||
checksum: 10/3fc6e56ba2f07c00d452163f27f21a7076b72ef7da8a50fef004336d59ef4c34deda11d10ecd73fd8fbcf20e4f575f52857293090b3c9f8741d4e0598be30fea
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"fs-extra@npm:^8.1.0":
|
||||
version: 8.1.0
|
||||
resolution: "fs-extra@npm:8.1.0"
|
||||
|
|
@ -21098,7 +21427,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globby@npm:^11.1.0":
|
||||
"globby@npm:^11.0.0, globby@npm:^11.1.0":
|
||||
version: 11.1.0
|
||||
resolution: "globby@npm:11.1.0"
|
||||
dependencies:
|
||||
|
|
@ -21112,7 +21441,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"globby@npm:^13.0.0, globby@npm:^13.1.1":
|
||||
"globby@npm:^13.1.1":
|
||||
version: 13.2.2
|
||||
resolution: "globby@npm:13.2.2"
|
||||
dependencies:
|
||||
|
|
@ -21178,7 +21507,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
|
||||
"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
|
||||
version: 4.2.11
|
||||
resolution: "graceful-fs@npm:4.2.11"
|
||||
checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2
|
||||
|
|
@ -21744,6 +22073,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"human-id@npm:^4.1.1":
|
||||
version: 4.1.1
|
||||
resolution: "human-id@npm:4.1.1"
|
||||
bin:
|
||||
human-id: dist/cli.js
|
||||
checksum: 10/84fef1edd470fc155a34161107beed8baf77bafd20bf515c3fadfbce3690ecc9aa0bacf3fcf4cf9add3c274772ead3ef64aa6531374538ffebe8129fccfb0015
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"human-signals@npm:^1.1.1":
|
||||
version: 1.1.1
|
||||
resolution: "human-signals@npm:1.1.1"
|
||||
|
|
@ -22635,6 +22973,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-subdir@npm:^1.1.1":
|
||||
version: 1.2.0
|
||||
resolution: "is-subdir@npm:1.2.0"
|
||||
dependencies:
|
||||
better-path-resolve: "npm:1.0.0"
|
||||
checksum: 10/31029a383972bff4cc4f1bd1463fd04dde017e0a04ae3a6f6e08124a90c6c4656312d593101b0f38805fa3f3c8f6bc4583524bbf72c50784fa5ca0d3e5a76279
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3":
|
||||
version: 1.0.4
|
||||
resolution: "is-symbol@npm:1.0.4"
|
||||
|
|
@ -22707,7 +23054,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"is-windows@npm:^1.0.2":
|
||||
"is-windows@npm:^1.0.0, is-windows@npm:^1.0.2":
|
||||
version: 1.0.2
|
||||
resolution: "is-windows@npm:1.0.2"
|
||||
checksum: 10/438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7
|
||||
|
|
@ -23540,7 +23887,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"js-yaml@npm:^3.13.1":
|
||||
"js-yaml@npm:^3.13.1, js-yaml@npm:^3.6.1":
|
||||
version: 3.14.1
|
||||
resolution: "js-yaml@npm:3.14.1"
|
||||
dependencies:
|
||||
|
|
@ -25010,6 +25357,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.startcase@npm:^4.4.0":
|
||||
version: 4.4.0
|
||||
resolution: "lodash.startcase@npm:4.4.0"
|
||||
checksum: 10/3091048a54a2f92bcf2c6441d2bd9a706fb133d5f461ae7c310d6dca1530338a06c91e9e42a5b14b12e875ddae1814d448050dc02afe2cec09b3995d8e836837
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.template@npm:^4.5.0":
|
||||
version: 4.5.0
|
||||
resolution: "lodash.template@npm:4.5.0"
|
||||
|
|
@ -26695,7 +27049,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"node-fetch@npm:^2.2.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.12":
|
||||
"node-fetch@npm:^2.2.0, node-fetch@npm:^2.5.0, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.12":
|
||||
version: 2.7.0
|
||||
resolution: "node-fetch@npm:2.7.0"
|
||||
dependencies:
|
||||
|
|
@ -27630,6 +27984,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"outdent@npm:^0.5.0":
|
||||
version: 0.5.0
|
||||
resolution: "outdent@npm:0.5.0"
|
||||
checksum: 10/7d94a7d93883afa32c99d84f33248b221f4eeeedbb571921fe0e5cf0bee32e64746c587e9606d98ec22762870c782d21dd4bc3a0edf442d347cb54aa107b198d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-cancelable@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "p-cancelable@npm:3.0.0"
|
||||
|
|
@ -27637,6 +27998,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-filter@npm:^2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "p-filter@npm:2.1.0"
|
||||
dependencies:
|
||||
p-map: "npm:^2.0.0"
|
||||
checksum: 10/76e552ca624ce2233448d68b19eec9de42b695208121998f7e011edce71d1079a83096ee6a2078fb2a59cfa8a5c999f046edf00ebf16a8e780022010b4693234
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-finally@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "p-finally@npm:1.0.0"
|
||||
|
|
@ -27707,6 +28077,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-map@npm:^2.0.0":
|
||||
version: 2.1.0
|
||||
resolution: "p-map@npm:2.1.0"
|
||||
checksum: 10/9e3ad3c9f6d75a5b5661bcad78c91f3a63849189737cd75e4f1225bf9ac205194e5c44aac2ef6f09562b1facdb9bd1425584d7ac375bfaa17b3f1a142dab936d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-map@npm:^4.0.0":
|
||||
version: 4.0.0
|
||||
resolution: "p-map@npm:4.0.0"
|
||||
|
|
@ -27775,6 +28152,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"package-manager-detector@npm:^0.2.0":
|
||||
version: 0.2.11
|
||||
resolution: "package-manager-detector@npm:0.2.11"
|
||||
dependencies:
|
||||
quansync: "npm:^0.2.7"
|
||||
checksum: 10/2c1a8da0e5895f0be06a8e1f4b4336fb78a19167ca3932dbaeca7260f948e67cf53b32585a13f8108341e7a468b38b4f2a8afc7b11691cb2d856ecd759d570fb
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pacote@npm:18.0.6":
|
||||
version: 18.0.6
|
||||
resolution: "pacote@npm:18.0.6"
|
||||
|
|
@ -28919,6 +29305,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier@npm:^2.7.1":
|
||||
version: 2.8.8
|
||||
resolution: "prettier@npm:2.8.8"
|
||||
bin:
|
||||
prettier: bin-prettier.js
|
||||
checksum: 10/00cdb6ab0281f98306cd1847425c24cbaaa48a5ff03633945ab4c701901b8e96ad558eb0777364ffc312f437af9b5a07d0f45346266e8245beaf6247b9c62b24
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pretty-bytes@npm:^5.6.0":
|
||||
version: 5.6.0
|
||||
resolution: "pretty-bytes@npm:5.6.0"
|
||||
|
|
@ -29262,6 +29657,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"quansync@npm:^0.2.7":
|
||||
version: 0.2.10
|
||||
resolution: "quansync@npm:0.2.10"
|
||||
checksum: 10/b54d955de867e104025f2666d52b2b67befe4e0f184a96acc9adcbdc572e46dce49c69d1e79f99413beae8a974a576383806a05f85f9a826865dc589ee1bcaf2
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"querystringify@npm:^2.1.1":
|
||||
version: 2.2.0
|
||||
resolution: "querystringify@npm:2.2.0"
|
||||
|
|
@ -29645,6 +30047,18 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"read-yaml-file@npm:^1.1.0":
|
||||
version: 1.1.0
|
||||
resolution: "read-yaml-file@npm:1.1.0"
|
||||
dependencies:
|
||||
graceful-fs: "npm:^4.1.5"
|
||||
js-yaml: "npm:^3.6.1"
|
||||
pify: "npm:^4.0.1"
|
||||
strip-bom: "npm:^3.0.0"
|
||||
checksum: 10/41ee5f075507ef0403328dd54e225a61c3149f915675ce7fd0fd791ddcce2e6c30a9fe0f76ffa7a465c1c157b9b4ad8ded1dcf47dc3b396103eeb013490bbc2e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"readable-stream@npm:1.1.x":
|
||||
version: 1.1.14
|
||||
resolution: "readable-stream@npm:1.1.14"
|
||||
|
|
@ -31760,6 +32174,16 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"spawndamnit@npm:^3.0.1":
|
||||
version: 3.0.1
|
||||
resolution: "spawndamnit@npm:3.0.1"
|
||||
dependencies:
|
||||
cross-spawn: "npm:^7.0.5"
|
||||
signal-exit: "npm:^4.0.1"
|
||||
checksum: 10/47d88a7f1e5691e13e435eddc3d34123c2f7746e2853e91bfac5ea7c6e3bb4b1d1995223b25f7a8745871510d92f63ecd3c9fa02aa2896ac0c79fb618eb08bbe
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"spdx-correct@npm:^3.0.0":
|
||||
version: 3.2.0
|
||||
resolution: "spdx-correct@npm:3.2.0"
|
||||
|
|
@ -32638,7 +33062,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"term-size@npm:^2.2.1":
|
||||
"term-size@npm:^2.1.0, term-size@npm:^2.2.1":
|
||||
version: 2.2.1
|
||||
resolution: "term-size@npm:2.2.1"
|
||||
checksum: 10/f96aca2d4139c91e3359f5949ffb86f0a58f8c254ab7fe4a64b65126974939c782db6aaa91bf51a56d0344e505e22f9a0186f2f689e23ac9382b54606603c537
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue