From 227c690c626400d4330afa7b938db933e904399b Mon Sep 17 00:00:00 2001 From: boocmp Date: Wed, 4 Dec 2024 13:25:09 +0700 Subject: [PATCH] Added --force-next-version command line param. --- lib/util.js | 9 +++++++-- scripts/ntp-sponsored-images/package.js | 7 ++++--- scripts/packageAdBlock.js | 6 ++++-- scripts/packageBraveAdsResourcesComponent.js | 7 ++++--- scripts/packageBravePlayer.js | 6 +++--- scripts/packageIpfsDaemon.js | 7 ++++--- scripts/packageLeoLocalModels.js | 6 +++--- scripts/packageLocalDataFiles.js | 6 +++--- scripts/packageNTPBackgroundImagesComponent.js | 7 ++++--- scripts/packageNTPSuperReferrerComponent.js | 7 ++++--- scripts/packageNTPSuperReferrerMappingTableComponent.js | 7 ++++--- scripts/packagePlaylist.js | 7 ++++--- scripts/packageTorClient.js | 7 ++++--- scripts/packageTorPluggableTransports.js | 7 ++++--- scripts/packageWalletDataFiles.js | 6 +++--- 15 files changed, 59 insertions(+), 43 deletions(-) diff --git a/lib/util.js b/lib/util.js index 326aa9ec..03d543a9 100644 --- a/lib/util.js +++ b/lib/util.js @@ -533,7 +533,7 @@ const createTableIfNotExists = (endpoint, region) => { }) } -const getNextVersion = (endpoint, region, id, contentHash) => { +const getNextVersion = (endpoint, region, id, contentHash, forceNextVersion) => { const dynamodb = createDynamoDBInstance(endpoint, region) const params = { ExpressionAttributeValues: { @@ -546,7 +546,10 @@ const getNextVersion = (endpoint, region, id, contentHash) => { } return dynamodb.send(new QueryCommand(params)).then((data) => { if (data.Items.length === 1 && data.Items[0].Version.S !== '') { - if (data.Items[0].ContentHash !== undefined && data.Items[0].ContentHash.S !== undefined && data.Items[0].ContentHash.S === contentHash) { + if (!forceNextVersion && + data.Items[0].ContentHash !== undefined && + data.Items[0].ContentHash.S !== undefined && + data.Items[0].ContentHash.S === contentHash) { // return no next version if the content hash matches the last cached value return undefined } else { @@ -602,6 +605,8 @@ const addCommonScriptOptions = (command) => { 'Second private key for generating publisher proof. Useful when rotating keys.') .option('-vc, --verified-contents-key ', 'Private key for generating verified_contents.json.') + .option('-f, --force-next-version', + 'Force to create the new version of the component even if content is not changed.') // If setup locally, use --endpoint http://localhost:8000 .option('-e, --endpoint ', 'DynamoDB endpoint to connect to', '') diff --git a/scripts/ntp-sponsored-images/package.js b/scripts/ntp-sponsored-images/package.js index 18cc6145..16d1a44f 100644 --- a/scripts/ntp-sponsored-images/package.js +++ b/scripts/ntp-sponsored-images/package.js @@ -47,13 +47,13 @@ function getManifestPath (regionPlatform) { } const generateCRXFile = (binary, endpoint, region, keyDir, platformRegion, - componentData, publisherProofKey, publisherProofKeyAlt) => { + componentData, publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const rootBuildDir = path.join(path.resolve(), 'build', 'ntp-sponsored-images') const stagingDir = path.join(rootBuildDir, 'staging', platformRegion) const crxOutputDir = path.join(rootBuildDir, 'output') mkdirp.sync(stagingDir) mkdirp.sync(crxOutputDir) - util.getNextVersion(endpoint, region, componentData.id).then((version) => { + util.getNextVersion(endpoint, region, componentData.id, forceNextVersion).then((version) => { const crxFile = path.join(crxOutputDir, `ntp-sponsored-images-${platformRegion}.crx`) // Desktop private key file names do not have the -desktop suffix, but android has -android const privateKeyFile = path.join(keyDir, `ntp-sponsored-images-${platformRegion.replace('-desktop', '')}.pem`) @@ -88,6 +88,7 @@ util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { generateManifestFile(platformRegion, componentData) generateCRXFile(commander.binary, commander.endpoint, commander.region, keyDir, platformRegion, componentData, - commander.publisherProofKey, commander.publisherProofKeyAlt) + commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) } }) diff --git a/scripts/packageAdBlock.js b/scripts/packageAdBlock.js index ea013bfe..0f848562 100644 --- a/scripts/packageAdBlock.js +++ b/scripts/packageAdBlock.js @@ -66,6 +66,7 @@ const processComponent = ( publisherProofKeyAlt, localRun, verifiedContentsKey, + forceNextVersion, componentSubdir) => { const originalManifest = getOriginalManifest(componentSubdir) @@ -94,7 +95,7 @@ const processComponent = ( } if (!localRun) { - util.getNextVersion(endpoint, region, id, contentHash).then((version) => { + util.getNextVersion(endpoint, region, id, contentHash, forceNextVersion).then((version) => { if (version !== undefined) { postNextVersionWork(componentSubdir, keyDir, publisherProofKey, publisherProofKeyAlt, binary, localRun, version, contentHash, verifiedContentsKey) @@ -127,7 +128,8 @@ const processJob = async (commander, keyDir) => { commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun, - commander.verifiedContentsKey)) + commander.verifiedContentsKey, + commander.forceNextVersion)) } util.installErrorHandlers() diff --git a/scripts/packageBraveAdsResourcesComponent.js b/scripts/packageBraveAdsResourcesComponent.js index 7a38cfc7..da9b1162 100644 --- a/scripts/packageBraveAdsResourcesComponent.js +++ b/scripts/packageBraveAdsResourcesComponent.js @@ -268,14 +268,14 @@ const getOriginalManifest = (locale) => { } const generateCRXFile = (binary, endpoint, region, keyDir, publisherProofKey, - publisherProofKeyAlt, componentData) => { + publisherProofKeyAlt, forceNextVersion, componentData) => { const locale = componentData.locale const rootBuildDir = path.join(path.resolve(), 'build', 'user-model-installer') const stagingDir = path.join(rootBuildDir, 'staging', locale) const crxOutputDir = path.join(rootBuildDir, 'output') mkdirp.sync(stagingDir) mkdirp.sync(crxOutputDir) - util.getNextVersion(endpoint, region, componentData.id).then((version) => { + util.getNextVersion(endpoint, region, componentData.id, forceNextVersion).then((version) => { const crxFile = path.join(crxOutputDir, `user-model-installer-${locale}.crx`) const privateKeyFile = path.join(keyDir, `user-model-installer-${locale}.pem`) stageFiles(locale, version, stagingDir) @@ -304,5 +304,6 @@ util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { getComponentDataList().forEach( generateCRXFile.bind(null, commander.binary, commander.endpoint, commander.region, keyDir, - commander.publisherProofKey, commander.publisherProofKeyAlt)) + commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion)) }) diff --git a/scripts/packageBravePlayer.js b/scripts/packageBravePlayer.js index bb68c113..2bbef037 100644 --- a/scripts/packageBravePlayer.js +++ b/scripts/packageBravePlayer.js @@ -39,13 +39,13 @@ const postNextVersionWork = (key, publisherProofKey, publisherProofKeyAlt, binar console.log(`Generated ${crxFile} with version number ${version}`) } -const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun) => { +const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun, forceNextVersion) => { const originalManifest = getOriginalManifest() const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) if (!localRun) { - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { postNextVersionWork(key, publisherProofKey, publisherProofKeyAlt, binary, localRun, version) }) @@ -57,7 +57,7 @@ const processDATFile = (binary, endpoint, region, key, publisherProofKey, publis const processJob = (commander, keyParam) => { processDATFile(commander.binary, commander.endpoint, commander.region, - keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun) + keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun, commander.forceNextVersion) } util.installErrorHandlers() diff --git a/scripts/packageIpfsDaemon.js b/scripts/packageIpfsDaemon.js index 087f4f7c..3a063116 100644 --- a/scripts/packageIpfsDaemon.js +++ b/scripts/packageIpfsDaemon.js @@ -23,13 +23,13 @@ const getOriginalManifest = (platform) => { } const packageIpfsDaemon = (binary, endpoint, region, os, arch, key, - publisherProofKey, publisherProofKeyAlt) => { + publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const platform = `${os}-${arch}` const originalManifest = getOriginalManifest(platform) const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { const stagingDir = path.join('build', 'ipfs-daemon-updater', platform) const ipfsDaemon = getIpfsDaemonPath(os, arch) const crxOutputDir = path.join('build', 'ipfs-daemon-updater') @@ -72,7 +72,8 @@ util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { for (const os of ['darwin', 'linux', 'win32']) { for (const arch of ['amd64', 'arm64']) { packageIpfsDaemon(commander.binary, commander.endpoint, commander.region, - os, arch, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt) + os, arch, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) } } }) diff --git a/scripts/packageLeoLocalModels.js b/scripts/packageLeoLocalModels.js index 78ac4f16..ff9a99ee 100644 --- a/scripts/packageLeoLocalModels.js +++ b/scripts/packageLeoLocalModels.js @@ -36,13 +36,13 @@ const postNextVersionWork = (key, publisherProofKey, publisherProofKeyAlt, binar console.log(`Generated ${crxFile} with version number ${version}`) } -const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun) => { +const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun, forceNextVersion) => { const originalManifest = getOriginalManifest() const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) if (!localRun) { - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { postNextVersionWork(key, publisherProofKey, publisherProofKeyAlt, binary, localRun, version) }) @@ -54,7 +54,7 @@ const processDATFile = (binary, endpoint, region, key, publisherProofKey, publis const processJob = (commander, keyParam) => { processDATFile(commander.binary, commander.endpoint, commander.region, - keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun) + keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun, commander.forceNextVersion) } util.installErrorHandlers() diff --git a/scripts/packageLocalDataFiles.js b/scripts/packageLocalDataFiles.js index 2824aecf..1a20177c 100644 --- a/scripts/packageLocalDataFiles.js +++ b/scripts/packageLocalDataFiles.js @@ -61,13 +61,13 @@ const postNextVersionWork = (key, publisherProofKey, publisherProofKeyAlt, binar console.log(`Generated ${crxFile} with version number ${version}`) } -const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun) => { +const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun, forceNextVersion) => { const originalManifest = getOriginalManifest() const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) if (!localRun) { - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { postNextVersionWork(key, publisherProofKey, publisherProofKeyAlt, binary, localRun, version) }) @@ -79,7 +79,7 @@ const processDATFile = (binary, endpoint, region, key, publisherProofKey, publis const processJob = (commander, keyParam) => { processDATFile(commander.binary, commander.endpoint, commander.region, - keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun) + keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, commander.localRun, commander.forceNextVersion) } util.installErrorHandlers() diff --git a/scripts/packageNTPBackgroundImagesComponent.js b/scripts/packageNTPBackgroundImagesComponent.js index 7dc6182b..e6d9c230 100644 --- a/scripts/packageNTPBackgroundImagesComponent.js +++ b/scripts/packageNTPBackgroundImagesComponent.js @@ -31,13 +31,13 @@ const generateManifestFile = (publicKey) => { } const generateCRXFile = (binary, endpoint, region, componentID, privateKeyFile, - publisherProofKey, publisherProofKeyAlt) => { + publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const rootBuildDir = path.join(path.resolve(), 'build', 'ntp-background-images') const stagingDir = path.join(rootBuildDir, 'staging') const crxOutputDir = path.join(rootBuildDir, 'output') mkdirp.sync(stagingDir) mkdirp.sync(crxOutputDir) - util.getNextVersion(endpoint, region, componentID).then((version) => { + util.getNextVersion(endpoint, region, componentID, forceNextVersion).then((version) => { const crxFile = path.join(crxOutputDir, 'ntp-background-images.crx') stageFiles(version, stagingDir) util.generateCRXFile(binary, crxFile, privateKeyFile, publisherProofKey, @@ -64,5 +64,6 @@ util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { const [publicKey, componentID] = ntpUtil.generatePublicKeyAndID(privateKeyFile) generateManifestFile(publicKey) generateCRXFile(commander.binary, commander.endpoint, commander.region, - componentID, privateKeyFile, commander.publisherProofKey, commander.publisherProofKeyAlt) + componentID, privateKeyFile, commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) }) diff --git a/scripts/packageNTPSuperReferrerComponent.js b/scripts/packageNTPSuperReferrerComponent.js index 84c69796..9bd23791 100644 --- a/scripts/packageNTPSuperReferrerComponent.js +++ b/scripts/packageNTPSuperReferrerComponent.js @@ -34,13 +34,13 @@ const getOriginalManifest = (superReferrerName) => { } const generateCRXFile = (binary, endpoint, region, superReferrerName, - componentID, privateKeyFile, publisherProofKey, publisherProofKeyAlt) => { + componentID, privateKeyFile, publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const rootBuildDir = path.join(path.resolve(), 'build', 'ntp-super-referrer') const stagingDir = path.join(rootBuildDir, 'staging', superReferrerName) const crxOutputDir = path.join(rootBuildDir, 'output') mkdirp.sync(stagingDir) mkdirp.sync(crxOutputDir) - util.getNextVersion(endpoint, region, componentID).then((version) => { + util.getNextVersion(endpoint, region, componentID, forceNextVersion).then((version) => { const crxFile = path.join(crxOutputDir, `ntp-super-referrer-${superReferrerName}.crx`) stageFiles(superReferrerName, version, stagingDir) util.generateCRXFile(binary, crxFile, privateKeyFile, publisherProofKey, @@ -69,5 +69,6 @@ util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { generateManifestFile(commander.superReferrerName, publicKey) generateCRXFile(commander.binary, commander.endpoint, commander.region, commander.superReferrerName, componentID, privateKeyFile, - commander.publisherProofKey, commander.publisherProofKeyAlt) + commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) }) diff --git a/scripts/packageNTPSuperReferrerMappingTableComponent.js b/scripts/packageNTPSuperReferrerMappingTableComponent.js index 2853ec62..950454b7 100644 --- a/scripts/packageNTPSuperReferrerMappingTableComponent.js +++ b/scripts/packageNTPSuperReferrerMappingTableComponent.js @@ -34,13 +34,13 @@ const getOriginalManifest = () => { } const generateCRXFile = (binary, endpoint, region, componentID, privateKeyFile, - publisherProofKey, publisherProofKeyAlt) => { + publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const rootBuildDir = path.join(path.resolve(), 'build', 'ntp-super-referrer', 'mapping-table') const stagingDir = path.join(rootBuildDir, 'staging') const crxOutputDir = path.join(rootBuildDir, 'output') mkdirp.sync(stagingDir) mkdirp.sync(crxOutputDir) - util.getNextVersion(endpoint, region, componentID).then((version) => { + util.getNextVersion(endpoint, region, componentID, forceNextVersion).then((version) => { const crxFile = path.join(crxOutputDir, 'ntp-super-referrer-mapping-table.crx') stageFiles(version, stagingDir) util.generateCRXFile(binary, crxFile, privateKeyFile, publisherProofKey, @@ -67,5 +67,6 @@ util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { const [publicKey, componentID] = ntpUtil.generatePublicKeyAndID(privateKeyFile) generateManifestFile(publicKey) generateCRXFile(commander.binary, commander.endpoint, commander.region, - componentID, privateKeyFile, commander.publisherProofKey, commander.publisherProofKeyAlt) + componentID, privateKeyFile, commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) }) diff --git a/scripts/packagePlaylist.js b/scripts/packagePlaylist.js index 2dfe5375..8060e73d 100644 --- a/scripts/packagePlaylist.js +++ b/scripts/packagePlaylist.js @@ -19,13 +19,13 @@ const stageFiles = util.stageDir.bind( getOriginalManifest()) const generateCRXFile = (binary, endpoint, region, componentID, privateKeyFile, - publisherProofKey, publisherProofKeyAlt) => { + publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const rootBuildDir = path.join(path.resolve(), 'build', 'playlist') const stagingDir = path.join(rootBuildDir, 'staging') const crxOutputDir = path.join(rootBuildDir, 'output') mkdirp.sync(stagingDir) mkdirp.sync(crxOutputDir) - util.getNextVersion(endpoint, region, componentID).then((version) => { + util.getNextVersion(endpoint, region, componentID, forceNextVersion).then((version) => { const crxFile = path.join(crxOutputDir, 'playlist.crx') stageFiles(version, stagingDir) util.generateCRXFile(binary, crxFile, privateKeyFile, publisherProofKey, @@ -51,5 +51,6 @@ if (fs.existsSync(commander.keyFile)) { util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { const [, componentID] = ntpUtil.generatePublicKeyAndID(privateKeyFile) generateCRXFile(commander.binary, commander.endpoint, commander.region, - componentID, privateKeyFile, commander.publisherProofKey, commander.publisherProofKeyAlt) + componentID, privateKeyFile, commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) }) diff --git a/scripts/packageTorClient.js b/scripts/packageTorClient.js index 39b17c43..2bade6e8 100644 --- a/scripts/packageTorClient.js +++ b/scripts/packageTorClient.js @@ -68,12 +68,12 @@ const getOriginalManifest = (platform) => { } const packageTorClient = (binary, endpoint, region, platform, key, - publisherProofKey, publisherProofKeyAlt) => { + publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const originalManifest = getOriginalManifest(platform) const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { const stagingDir = path.join('build', 'tor-client-updater', platform) const torClient = downloadTorClient(platform) const crxOutputDir = path.join('build', 'tor-client-updater') @@ -124,6 +124,7 @@ if (fs.existsSync(commander.keyFile)) { util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { for (const platform of ['darwin', 'linux', 'linux-arm64', 'win32']) { packageTorClient(commander.binary, commander.endpoint, commander.region, - platform, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt) + platform, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) } }) diff --git a/scripts/packageTorPluggableTransports.js b/scripts/packageTorPluggableTransports.js index a0b20302..babacb96 100644 --- a/scripts/packageTorPluggableTransports.js +++ b/scripts/packageTorPluggableTransports.js @@ -45,12 +45,12 @@ const getOriginalManifest = (platform) => { return path.join('manifests', TOR_PLUGGABLE_TRANSPORTS_UPDATER, `${TOR_PLUGGABLE_TRANSPORTS_UPDATER}-${platform}-manifest.json`) } -const packageTorPluggableTransports = (binary, endpoint, region, platform, key, publisherProofKey, publisherProofKeyAlt) => { +const packageTorPluggableTransports = (binary, endpoint, region, platform, key, publisherProofKey, publisherProofKeyAlt, forceNextVersion) => { const originalManifest = getOriginalManifest(platform) const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { const snowflake = downloadTorPluggableTransport(platform, 'snowflake') const obfs4 = downloadTorPluggableTransport(platform, 'obfs4') @@ -94,6 +94,7 @@ if (fs.existsSync(commander.keyFile)) { util.createTableIfNotExists(commander.endpoint, commander.region).then(() => { for (const platform of ['darwin', 'linux', 'win32']) { packageTorPluggableTransports(commander.binary, commander.endpoint, commander.region, - platform, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt) + platform, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, + commander.forceNextVersion) } }) diff --git a/scripts/packageWalletDataFiles.js b/scripts/packageWalletDataFiles.js index 6316f3a6..9a414996 100644 --- a/scripts/packageWalletDataFiles.js +++ b/scripts/packageWalletDataFiles.js @@ -40,13 +40,13 @@ const postNextVersionWork = (key, publisherProofKey, publisherProofKeyAlt, binar console.log(`Generated ${crxFile} with version number ${version}`) } -const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun) => { +const processDATFile = (binary, endpoint, region, key, publisherProofKey, publisherProofKeyAlt, localRun, forceNextVersion) => { const originalManifest = getOriginalManifest() const parsedManifest = util.parseManifest(originalManifest) const id = util.getIDFromBase64PublicKey(parsedManifest.key) if (!localRun) { - util.getNextVersion(endpoint, region, id).then((version) => { + util.getNextVersion(endpoint, region, id, forceNextVersion).then((version) => { postNextVersionWork(key, publisherProofKey, publisherProofKeyAlt, binary, localRun, version) }) @@ -59,7 +59,7 @@ const processDATFile = (binary, endpoint, region, key, publisherProofKey, publis const processJob = (commander, keyParam) => { processDATFile(commander.binary, commander.endpoint, commander.region, keyParam, commander.publisherProofKey, commander.publisherProofKeyAlt, - commander.localRun) + commander.localRun, commander.forceNextVersion) } util.installErrorHandlers()