chore: import upstream snapshot with attribution

This commit is contained in:
wehub-resource-sync
2026-07-13 12:44:08 +08:00
commit 983960e2dd
1244 changed files with 281996 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
import fs from 'node:fs'
import execa from 'execa'
import { LogHelper } from '@/helpers/log-helper'
/**
* Update version number in files which need version number
*/
export default (version) =>
new Promise(async (resolve, reject) => {
const changelog = 'CHANGELOG.md'
const tmpChangelog = 'TMP-CHANGELOG.md'
LogHelper.info(`Generating ${changelog}...`)
try {
await execa('git-changelog', [
'--changelogrc',
'.changelogrc',
'--template',
'scripts/assets/CHANGELOG-TEMPLATE.md',
'--file',
`scripts/tmp/${tmpChangelog}`,
'--version_name',
version
])
} catch (e) {
LogHelper.error(`Error during git-changelog: ${e}`)
reject(e)
}
try {
LogHelper.info('Getting remote origin URL...')
LogHelper.info('Getting previous tag...')
const remoteOriginResult = await execa('git', [
'config',
'--get',
'remote.origin.url'
])
const gitTagResult = await execa('git', ['tag'])
const repoUrl = remoteOriginResult.stdout
.trim()
.replace(/\.git$/, '')
const previousTag = gitTagResult.stdout.trim().split('\n').pop() || ''
const changelogData = await fs.promises.readFile(changelog, 'utf8')
const compareUrl = `${repoUrl}/compare/${previousTag}...v${version}`
let tmpData = await fs.promises.readFile(
`scripts/tmp/${tmpChangelog}`,
'utf8'
)
LogHelper.success(`Remote origin URL gotten: ${repoUrl}.git`)
LogHelper.success(`Previous tag gotten: ${previousTag}`)
if (previousTag !== '') {
tmpData = tmpData.replace(version, `[${version}](${compareUrl})`)
}
try {
await fs.promises.writeFile(changelog, `${tmpData}${changelogData}`)
await fs.promises.unlink(`scripts/tmp/${tmpChangelog}`)
LogHelper.success(`${changelog} generated`)
resolve()
} catch (error) {
LogHelper.error(`Failed to write into file: ${error}`)
}
} catch (e) {
LogHelper.error(`Error during git commands: ${e}`)
reject(e)
}
})
+36
View File
@@ -0,0 +1,36 @@
import { LogHelper } from '@/helpers/log-helper'
import { LoaderHelper } from '@/helpers/loader-helper'
import updateVersion from './update-version'
import generateChangelog from './generate-changelog'
/**
* Main entry of the release preparation
*/
;(async () => {
LoaderHelper.start()
LogHelper.info('Preparing for release...')
const { argv } = process
const version = argv[2].toLowerCase()
const semverRegex =
/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/
if (version.match(semverRegex) !== null) {
try {
await updateVersion(version)
await generateChangelog(version)
LogHelper.success('Hooray! Leon is ready to be released!')
LoaderHelper.stop()
} catch (e) {
LogHelper.error(e)
LoaderHelper.stop()
}
} else {
LogHelper.error(
'The version number does match the Semantic Versioning rules (https://semver.org)'
)
LoaderHelper.stop()
}
})()
+29
View File
@@ -0,0 +1,29 @@
import fs from 'node:fs'
import { LogHelper } from '@/helpers/log-helper'
/**
* Update version number in files which need version number
*/
export default (version) =>
new Promise(async (resolve, reject) => {
LogHelper.info('Updating version...')
try {
const packageJSONPath = 'package.json'
const packageJSON = JSON.parse(
await fs.promises.readFile(packageJSONPath, 'utf8')
)
packageJSON.version = version
await fs.promises.writeFile(
packageJSONPath,
`${JSON.stringify(packageJSON, null, 2)}\n`
)
LogHelper.success(`Version updated to ${version}`)
resolve()
} catch (e) {
LogHelper.error(`Error while updating version: ${e}`)
reject(e)
}
})