From ab4e8129d5c94ff96e6c85d0d2b66a04a052b4e5 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期四, 09 六月 2022 15:26:15 +0800 Subject: [PATCH] TODO#139888 嚴選配對 - 文案修改 --- PAMapp/node_modules/browserslist/update-db.js | 229 +++++++++++++++++++++++++++----------------------------- 1 files changed, 110 insertions(+), 119 deletions(-) diff --git a/PAMapp/node_modules/browserslist/update-db.js b/PAMapp/node_modules/browserslist/update-db.js index 5707602..3e69e64 100644 --- a/PAMapp/node_modules/browserslist/update-db.js +++ b/PAMapp/node_modules/browserslist/update-db.js @@ -6,7 +6,7 @@ var BrowserslistError = require('./error') -function detectLockfile () { +function detectLockfile() { var packageDir = escalade('.', function (dir, names) { return names.indexOf('package.json') !== -1 ? dir : '' }) @@ -14,7 +14,7 @@ if (!packageDir) { throw new BrowserslistError( 'Cannot find package.json. ' + - 'Is this the right directory to run `npx browserslist --update-db` in?' + 'Is this the right directory to run `npx browserslist --update-db` in?' ) } @@ -40,7 +40,7 @@ ) } -function getLatestInfo (lock) { +function getLatestInfo(lock) { if (lock.mode === 'yarn') { if (lock.version === 1) { return JSON.parse( @@ -57,8 +57,10 @@ ) } -function getBrowsersList () { - return childProcess.execSync('npx browserslist').toString() +function getBrowsersList() { + return childProcess + .execSync('npx browserslist') + .toString() .trim() .split('\n') .map(function (line) { @@ -73,44 +75,49 @@ }, {}) } -function diffBrowsersLists (old, current) { +function diffBrowsersLists(old, current) { var browsers = Object.keys(old).concat( Object.keys(current).filter(function (browser) { return old[browser] === undefined }) ) - return browsers.map(function (browser) { - var oldVersions = old[browser] || [] - var currentVersions = current[browser] || [] - var intersection = oldVersions.filter(function (version) { - return currentVersions.indexOf(version) !== -1 + return browsers + .map(function (browser) { + var oldVersions = old[browser] || [] + var currentVersions = current[browser] || [] + var intersection = oldVersions.filter(function (version) { + return currentVersions.indexOf(version) !== -1 + }) + var addedVersions = currentVersions.filter(function (version) { + return intersection.indexOf(version) === -1 + }) + var removedVersions = oldVersions.filter(function (version) { + return intersection.indexOf(version) === -1 + }) + return removedVersions + .map(function (version) { + return pico.red('- ' + browser + ' ' + version) + }) + .concat( + addedVersions.map(function (version) { + return pico.green('+ ' + browser + ' ' + version) + }) + ) }) - var addedVersions = currentVersions.filter(function (version) { - return intersection.indexOf(version) === -1 - }) - var removedVersions = oldVersions.filter(function (version) { - return intersection.indexOf(version) === -1 - }) - return removedVersions.map(function (version) { - return pico.red('- ' + browser + ' ' + version) - }).concat(addedVersions.map(function (version) { - return pico.green('+ ' + browser + ' ' + version) - })) - }) .reduce(function (result, array) { return result.concat(array) }, []) .join('\n') } -function updateNpmLockfile (lock, latest) { +function updateNpmLockfile(lock, latest) { var metadata = { latest: latest, versions: [] } var content = deletePackage(JSON.parse(lock.content), metadata) metadata.content = JSON.stringify(content, null, ' ') return metadata } -function deletePackage (node, metadata) { +function deletePackage(node, metadata) { if (node.dependencies) { if (node.dependencies['caniuse-lite']) { var version = node.dependencies['caniuse-lite'].version @@ -124,9 +131,9 @@ return node } -var yarnVersionRe = new RegExp('version "(.*?)"') +var yarnVersionRe = /version "(.*?)"/ -function updateYarnLockfile (lock, latest) { +function updateYarnLockfile(lock, latest) { var blocks = lock.content.split(/(\n{2,})/).map(function (block) { return block.split('\n') }) @@ -137,78 +144,52 @@ versions[match[1]] = true if (match[1] !== latest.version) { lines[1] = lines[1].replace( - /version "[^"]+"/, 'version "' + latest.version + '"' + /version "[^"]+"/, + 'version "' + latest.version + '"' ) lines[2] = lines[2].replace( - /resolved "[^"]+"/, 'resolved "' + latest.dist.tarball + '"' + /resolved "[^"]+"/, + 'resolved "' + latest.dist.tarball + '"' ) - lines[3] = latest.dist.integrity ? lines[3].replace( - /integrity .+/, 'integrity ' + latest.dist.integrity - ) : '' + if (lines.length === 4) { + lines[3] = latest.dist.integrity + ? lines[3].replace( + /integrity .+/, + 'integrity ' + latest.dist.integrity + ) + : '' + } } } }) - var content = blocks.map(function (lines) { - return lines.join('\n') - }).join('') + var content = blocks + .map(function (lines) { + return lines.join('\n') + }) + .join('') return { content: content, versions: versions } } -function updatePnpmLockfile (lock, latest) { - var versions = {} - var lines = lock.content.split('\n') - var i - var j - var lineParts - - for (i = 0; i < lines.length; i++) { - if (lines[i].indexOf('caniuse-lite:') >= 0) { - lineParts = lines[i].split(/:\s?/, 2) - versions[lineParts[1]] = true - lines[i] = lineParts[0] + ': ' + latest.version - } else if (lines[i].indexOf('/caniuse-lite') >= 0) { - lineParts = lines[i].split(/([/:])/) - for (j = 0; j < lineParts.length; j++) { - if (lineParts[j].indexOf('caniuse-lite') >= 0) { - versions[lineParts[j + 2]] = true - lineParts[j + 2] = latest.version - break - } - } - lines[i] = lineParts.join('') - for (i = i + 1; i < lines.length; i++) { - if (lines[i].indexOf('integrity: ') !== -1) { - lines[i] = lines[i].replace( - /integrity: .+/, 'integrity: ' + latest.dist.integrity - ) - } else if (lines[i].indexOf(' /') !== -1) { - break - } - } - } - } - return { content: lines.join('\n'), versions: versions } -} - -function updateLockfile (lock, latest) { +function updateLockfile(lock, latest) { if (!lock.content) lock.content = fs.readFileSync(lock.file).toString() - if (lock.mode === 'npm') { - return updateNpmLockfile(lock, latest) - } else if (lock.mode === 'yarn') { + if (lock.mode === 'yarn') { return updateYarnLockfile(lock, latest) + } else { + return updateNpmLockfile(lock, latest) } - return updatePnpmLockfile(lock, latest) } -function updatePackageManually (print, lock, latest) { +function updatePackageManually(print, lock, latest) { var lockfileData = updateLockfile(lock, latest) var caniuseVersions = Object.keys(lockfileData.versions).sort() - if (caniuseVersions.length === 1 && - caniuseVersions[0] === latest.version) { + if (caniuseVersions.length === 1 && caniuseVersions[0] === latest.version) { print( - 'Installed version: ' + pico.bold(pico.green(latest.version)) + '\n' + - pico.bold(pico.green('caniuse-lite is up to date')) + '\n' + 'Installed version: ' + + pico.bold(pico.green(latest.version)) + + '\n' + + pico.bold(pico.green('caniuse-lite is up to date')) + + '\n' ) return } @@ -218,41 +199,67 @@ } print( 'Installed version' + - (caniuseVersions.length === 1 ? ': ' : 's: ') + - pico.bold(pico.red(caniuseVersions.join(', '))) + - '\n' + - 'Removing old caniuse-lite from lock file\n' + (caniuseVersions.length === 1 ? ': ' : 's: ') + + pico.bold(pico.red(caniuseVersions.join(', '))) + + '\n' + + 'Removing old caniuse-lite from lock file\n' ) fs.writeFileSync(lock.file, lockfileData.content) var install = lock.mode === 'yarn' ? 'yarn add -W' : lock.mode + ' install' print( 'Installing new caniuse-lite version\n' + - pico.yellow('$ ' + install + ' caniuse-lite') + '\n' + pico.yellow('$ ' + install + ' caniuse-lite') + + '\n' ) try { childProcess.execSync(install + ' caniuse-lite') - } catch (e) /* istanbul ignore next */ { + } catch (e) /* c8 ignore start */ { print( pico.red( '\n' + - e.stack + '\n\n' + - 'Problem with `' + install + ' caniuse-lite` call. ' + - 'Run it manually.\n' + e.stack + + '\n\n' + + 'Problem with `' + + install + + ' caniuse-lite` call. ' + + 'Run it manually.\n' ) ) process.exit(1) - } + } /* c8 ignore end */ var del = lock.mode === 'yarn' ? 'yarn remove -W' : lock.mode + ' uninstall' print( 'Cleaning package.json dependencies from caniuse-lite\n' + - pico.yellow('$ ' + del + ' caniuse-lite') + '\n' + pico.yellow('$ ' + del + ' caniuse-lite') + + '\n' ) childProcess.execSync(del + ' caniuse-lite') } -module.exports = function updateDB (print) { +function updateWith(print, cmd) { + print('Updating caniuse-lite version\n' + pico.yellow('$ ' + cmd) + '\n') + try { + childProcess.execSync(cmd) + } catch (e) /* c8 ignore start */ { + print(pico.red(e.stdout.toString())) + print( + pico.red( + '\n' + + e.stack + + '\n\n' + + 'Problem with `' + + cmd + + '` call. ' + + 'Run it manually.\n' + ) + ) + process.exit(1) + } /* c8 ignore end */ +} + +module.exports = function updateDB(print) { var lock = detectLockfile() var latest = getLatestInfo(lock) @@ -264,29 +271,12 @@ browsersListRetrievalError = e } - print( - 'Latest version: ' + pico.bold(pico.green(latest.version)) + '\n' - ) + print('Latest version: ' + pico.bold(pico.green(latest.version)) + '\n') if (lock.mode === 'yarn' && lock.version !== 1) { - var update = 'yarn up -R' - print( - 'Updating caniuse-lite version\n' + - pico.yellow('$ ' + update + ' caniuse-lite') + '\n' - ) - try { - childProcess.execSync(update + ' caniuse-lite') - } catch (e) /* istanbul ignore next */ { - print( - pico.red( - '\n' + - e.stack + '\n\n' + - 'Problem with `' + update + ' caniuse-lite` call. ' + - 'Run it manually.\n' - ) - ) - process.exit(1) - } + updateWith(print, 'yarn up -R caniuse-lite') + } else if (lock.mode === 'pnpm') { + updateWith(print, 'pnpm up caniuse-lite') } else { updatePackageManually(print, lock, latest) } @@ -297,18 +287,19 @@ if (!browsersListRetrievalError) { try { currentBrowsersList = getBrowsersList() - } catch (e) /* istanbul ignore next */ { + } catch (e) /* c8 ignore start */ { browsersListRetrievalError = e - } + } /* c8 ignore end */ } if (browsersListRetrievalError) { print( pico.red( '\n' + - browsersListRetrievalError.stack + '\n\n' + - 'Problem with browser list retrieval.\n' + - 'Target browser changes won� be shown.\n' + browsersListRetrievalError.stack + + '\n\n' + + 'Problem with browser list retrieval.\n' + + 'Target browser changes won� be shown.\n' ) ) } else { -- Gitblit v1.8.0