expo-release-it 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/build/{EnvUtil-C6QbCIoV.js → EnvUtil-D5sfaKZs.js} +1 -1
- package/build/{EnvUtil-C6QbCIoV.js.map → EnvUtil-D5sfaKZs.js.map} +1 -1
- package/build/FastlaneOption-y0DYOkjC.js +50 -0
- package/build/FastlaneOption-y0DYOkjC.js.map +1 -0
- package/build/{FileUtil-Dbvp87_g.js → FileUtil-B9JnWobK.js} +1 -1
- package/build/{FileUtil-Dbvp87_g.js.map → FileUtil-B9JnWobK.js.map} +1 -1
- package/build/{InqueryInputs-hizV8u_U.js → InqueryInputs-CyW-i_4N.js} +2 -16
- package/build/InqueryInputs-CyW-i_4N.js.map +1 -0
- package/build/{MetadataSyncUtil-BbrQb4Bc.js → MetadataSyncUtil-BqWEE06B.js} +9 -9
- package/build/MetadataSyncUtil-BqWEE06B.js.map +1 -0
- package/build/NativeEnvironment-BAohR8aj.js +50 -0
- package/build/NativeEnvironment-BAohR8aj.js.map +1 -0
- package/build/{OptionHolder-CJ5tzHpp.js → OptionHolder-ooRZtG0l.js} +6 -6
- package/build/OptionHolder-ooRZtG0l.js.map +1 -0
- package/build/RubyEnvironment-CqupQjgn.js +113 -0
- package/build/RubyEnvironment-CqupQjgn.js.map +1 -0
- package/build/RubyEnvironment-K1nIGrMJ.d.ts +28 -0
- package/build/{VersionUtil-BPRjtPK_.js → VersionUtil-CttA4ATC.js} +4 -4
- package/build/{VersionUtil-BPRjtPK_.js.map → VersionUtil-CttA4ATC.js.map} +1 -1
- package/build/build-R29EBnOC.js +64 -0
- package/build/build-R29EBnOC.js.map +1 -0
- package/build/{bump-BBGyihtk.js → bump-NbU_02fP.js} +9 -9
- package/build/{bump-BBGyihtk.js.map → bump-NbU_02fP.js.map} +1 -1
- package/build/command/build.js +19 -20
- package/build/command/bump.js +12 -12
- package/build/command/init.js +11 -11
- package/build/command/pull.js +16 -20
- package/build/command/submit.js +16 -20
- package/build/command/upload.js +16 -20
- package/build/execShellScript-ZLVCvae2.js +32 -0
- package/build/execShellScript-ZLVCvae2.js.map +1 -0
- package/build/{generateAppStoreConnectApiKeyFile-DeuJUndI.js → generateAppStoreConnectApiKeyFile-Bt2nK7lP.js} +3 -3
- package/build/{generateAppStoreConnectApiKeyFile-DeuJUndI.js.map → generateAppStoreConnectApiKeyFile-Bt2nK7lP.js.map} +1 -1
- package/build/{hydrateKeyholderFileValues-BKnI9nbx.js → hydrateKeyholderFileValues-Cwmc5iwo.js} +3 -3
- package/build/{hydrateKeyholderFileValues-BKnI9nbx.js.map → hydrateKeyholderFileValues-Cwmc5iwo.js.map} +1 -1
- package/build/index.js +26 -28
- package/build/index.js.map +1 -1
- package/build/{init-Cce02h7G.js → init-DwlkVt7G.js} +22 -25
- package/build/init-DwlkVt7G.js.map +1 -0
- package/build/{iterateAllFiles-CcRtjpos.js → iterateAllFiles-Yx59MXv2.js} +2 -2
- package/build/{iterateAllFiles-CcRtjpos.js.map → iterateAllFiles-Yx59MXv2.js.map} +1 -1
- package/build/logger-CSZA77Zt.js +21 -0
- package/build/logger-CSZA77Zt.js.map +1 -0
- package/build/{parseConfigFile-Bv50df4o.js → parseConfigFile-DTkIYMK1.js} +7 -5
- package/build/parseConfigFile-DTkIYMK1.js.map +1 -0
- package/build/prepareAndroid-BQBbb44J.js +29 -0
- package/build/prepareAndroid-BQBbb44J.js.map +1 -0
- package/build/prepareFastlane-BmFwr96S.js +23 -0
- package/build/prepareFastlane-BmFwr96S.js.map +1 -0
- package/build/prepareIos-CGc-nhwf.js +63 -0
- package/build/prepareIos-CGc-nhwf.js.map +1 -0
- package/build/{pull-CVuxaHAJ.js → pull-COg4G-1u.js} +28 -24
- package/build/pull-COg4G-1u.js.map +1 -0
- package/build/{setup-BhGhMcG5.js → setup-Be5UwL9d.js} +8 -8
- package/build/setup-Be5UwL9d.js.map +1 -0
- package/build/submit-BaL5kRHE.js +28 -0
- package/build/submit-BaL5kRHE.js.map +1 -0
- package/build/{throwError-bsy4sijK.js → throwError-ebp_0a_3.js} +3 -3
- package/build/{throwError-bsy4sijK.js.map → throwError-ebp_0a_3.js.map} +1 -1
- package/build/type/ExpoReleaseItConfiguration.d.ts +15 -1
- package/build/upload-BY1mGc-G.js +32 -0
- package/build/upload-BY1mGc-G.js.map +1 -0
- package/build/util/EnvUtil.js +1 -1
- package/build/util/FastlaneOption.d.ts +4 -3
- package/build/util/FastlaneOption.js +4 -4
- package/build/util/FileUtil.js +1 -1
- package/build/util/MetadataSyncUtil.d.ts +2 -2
- package/build/util/MetadataSyncUtil.js +4 -4
- package/build/util/OptionHolder.d.ts +5 -2
- package/build/util/OptionHolder.js +2 -2
- package/build/util/generateAppStoreConnectApiKeyFile.js +3 -3
- package/build/util/injectTemplatePlaceHolders.js +15 -5
- package/build/util/injectTemplatePlaceHolders.js.map +1 -0
- package/build/util/input/InqueryInputs.d.ts +0 -1
- package/build/util/input/InqueryInputs.js +3 -3
- package/build/util/iterateAllFiles.js +2 -2
- package/build/util/logger.d.ts +2 -1
- package/build/util/logger.js +4 -2
- package/build/util/parseConfigFile.js +3 -3
- package/build/util/replaceStringIfNotContain.js +9 -2
- package/build/util/replaceStringIfNotContain.js.map +1 -0
- package/build/util/setup/NativeEnvironment.d.ts +5 -0
- package/build/util/setup/NativeEnvironment.js +7 -0
- package/build/util/setup/RubyEnvironment.d.ts +2 -0
- package/build/util/setup/RubyEnvironment.js +7 -0
- package/build/util/setup/VersionUtil.js +6 -6
- package/build/util/setup/execShellScript.d.ts +11 -14
- package/build/util/setup/execShellScript.js +5 -2
- package/build/util/setup/hydrateKeyholderFileValues.js +3 -3
- package/build/util/setup/prepareAndroid.d.ts +8 -2
- package/build/util/setup/prepareAndroid.js +4 -11
- package/build/util/setup/prepareFastlane.d.ts +21 -0
- package/build/util/setup/prepareFastlane.js +9 -0
- package/build/util/setup/prepareIos.d.ts +19 -2
- package/build/util/setup/prepareIos.js +4 -10
- package/build/util/setup/setup.js +9 -9
- package/build/util/spinner.js +14 -2
- package/build/util/spinner.js.map +1 -0
- package/build/util/throwError.js +5 -3
- package/expo-release-it.schema.json +16 -2
- package/package.json +4 -4
- package/template/android/fastlane/Fastfile +8 -2
- package/template/android/release-signing.gradle +15 -0
- package/template/ios/fastlane/Fastfile +52 -18
- package/template/ruby/Gemfile +10 -0
- package/template/ruby/Gemfile.lock +330 -0
- package/build/FastlaneOption-CxjO9q-w.js +0 -35
- package/build/FastlaneOption-CxjO9q-w.js.map +0 -1
- package/build/InqueryInputs-hizV8u_U.js.map +0 -1
- package/build/MetadataSyncUtil-BbrQb4Bc.js.map +0 -1
- package/build/OptionHolder-CJ5tzHpp.js.map +0 -1
- package/build/build-I9mcpo6x.js +0 -88
- package/build/build-I9mcpo6x.js.map +0 -1
- package/build/execShellScript-Bd5xbFX5.js +0 -22
- package/build/execShellScript-Bd5xbFX5.js.map +0 -1
- package/build/init-Cce02h7G.js.map +0 -1
- package/build/injectTemplatePlaceHolders-BzxCkQrW.js +0 -16
- package/build/injectTemplatePlaceHolders-BzxCkQrW.js.map +0 -1
- package/build/logger-DvQ7ScMQ.js +0 -16
- package/build/logger-DvQ7ScMQ.js.map +0 -1
- package/build/parseConfigFile-Bv50df4o.js.map +0 -1
- package/build/prepareAndroid-bUMPHe4p.js +0 -53
- package/build/prepareAndroid-bUMPHe4p.js.map +0 -1
- package/build/prepareIos-D1ar2VGf.js +0 -33
- package/build/prepareIos-D1ar2VGf.js.map +0 -1
- package/build/pull-CVuxaHAJ.js.map +0 -1
- package/build/replaceStringIfNotContain-BncPMRZq.js +0 -10
- package/build/replaceStringIfNotContain-BncPMRZq.js.map +0 -1
- package/build/setup-BhGhMcG5.js.map +0 -1
- package/build/spinner-BVmbE9I_.js +0 -15
- package/build/spinner-BVmbE9I_.js.map +0 -1
- package/build/submit-BQ3IEiKv.js +0 -65
- package/build/submit-BQ3IEiKv.js.map +0 -1
- package/build/upload-DJXVLkT_.js +0 -68
- package/build/upload-DJXVLkT_.js.map +0 -1
- package/template/android/Gemfile +0 -3
- package/template/ios/Gemfile +0 -5
- package/template/ios/fastlane/Appfile +0 -2
- package/template/ios/fastlane/Matchfile +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-R29EBnOC.js","names":["artifact: string"],"sources":["../src/command/build.ts"],"sourcesContent":["import { dirname } from 'node:path';\n\nimport chalk from 'chalk';\n\nimport { calculateElapsed } from '../util/calculateElapsed';\nimport { runFastlane } from '../util/FastlaneOption';\nimport { copy, exist, relativePath, remove, resolve } from '../util/FileUtil';\nimport { InqueryInputs } from '../util/input/InqueryInputs';\nimport { logger } from '../util/logger';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { exe } from '../util/setup/execShellScript';\nimport { inspectNativeEnvironment } from '../util/setup/NativeEnvironment';\nimport { androidSigningEnvironment, prepareAndroid } from '../util/setup/prepareAndroid';\nimport { prepareFastlane } from '../util/setup/prepareFastlane';\nimport { prepareIos } from '../util/setup/prepareIos';\nimport { inspectRubyEnvironment } from '../util/setup/RubyEnvironment';\nimport { setup } from '../util/setup/setup';\n\nexport async function build({ options }: { options: any }) {\n Object.assign(OptionHolder.input, options);\n const startTime = Date.now();\n await setup();\n await InqueryInputs.platform();\n await InqueryInputs.androidBuildOutput();\n const isIos = OptionHolder.input.platform === 'ios';\n if (!isIos && OptionHolder.input.sign === false)\n throw new Error(\n '--no-sign is only supported for iOS. Android release builds require a signing key.',\n );\n const ruby = await inspectRubyEnvironment({ needsPods: isIos });\n const signingEnv = isIos ? {} : androidSigningEnvironment();\n const prebuild = await inspectNativeEnvironment();\n await prepareFastlane(ruby);\n let artifact: string;\n if (isIos) {\n await prepareIos({ ruby, prebuild });\n await runFastlane(ruby, 'build');\n artifact = resolve(\n OptionHolder.resourcesDir,\n 'output',\n 'ios',\n OptionHolder.input.sign === false ? 'app.xcarchive' : 'app.ipa',\n );\n } else {\n await prepareAndroid(prebuild);\n const isAab = OptionHolder.input.androidOutput === 'aab';\n await exe('./gradlew', [isAab ? 'app:bundleRelease' : 'app:assembleRelease'], {\n cwd: resolve(OptionHolder.projectDir, 'android'),\n env: { ...signingEnv, PATH: `${dirname(process.execPath)}:${process.env.PATH ?? ''}` },\n });\n // aab: app/build/outputs/bundle/release/app-release.aab\n // apk: app/build/outputs/apk/release/app-release.apk\n const output = isAab ? 'aab' : 'apk';\n const outputDir = resolve(OptionHolder.resourcesDir, 'output', 'android', output);\n const buildOutput = resolve(\n OptionHolder.projectDir,\n 'android',\n 'app',\n 'build',\n 'outputs',\n isAab ? 'bundle' : 'apk',\n 'release',\n );\n const binary = resolve(buildOutput, `app-release.${output}`);\n if (!exist(binary)) throw new Error(`Release build output is missing: ${binary}`);\n remove(outputDir);\n copy(buildOutput, outputDir);\n artifact = resolve(outputDir, `app-release.${output}`);\n }\n if (!exist(artifact)) throw new Error(`Expected build artifact was not generated: ${artifact}`);\n logger.success(`artifact generated: ${relativePath(OptionHolder.projectDir, artifact)}`);\n logger.success(\n `${isIos ? 'iOS' : 'Android'} Build ${chalk.bold.inverse(calculateElapsed(startTime))}`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,eAAsB,MAAM,EAAE,SAA2B,EAAE;AACzD,QAAO,OAAO,aAAa,OAAO,QAAQ;CAC1C,MAAM,YAAY,KAAK,KAAK;AAC5B,OAAM,OAAO;AACb,OAAM,cAAc,UAAU;AAC9B,OAAM,cAAc,oBAAoB;CACxC,MAAM,QAAQ,aAAa,MAAM,aAAa;AAC9C,MAAK,SAAS,aAAa,MAAM,SAAS,MACxC,OAAM,IAAI,MACR;CAEJ,MAAM,OAAO,MAAM,uBAAuB,EAAE,WAAW,MAAO,EAAC;CAC/D,MAAM,aAAa,QAAQ,CAAE,IAAG,2BAA2B;CAC3D,MAAM,WAAW,MAAM,0BAA0B;AACjD,OAAM,gBAAgB,KAAK;CAC3B,IAAIA;AACJ,KAAI,OAAO;AACT,QAAM,WAAW;GAAE;GAAM;EAAU,EAAC;AACpC,QAAM,YAAY,MAAM,QAAQ;AAChC,aAAW,QACT,aAAa,cACb,UACA,OACA,aAAa,MAAM,SAAS,QAAQ,kBAAkB,UACvD;CACF,OAAM;AACL,QAAM,eAAe,SAAS;EAC9B,MAAM,QAAQ,aAAa,MAAM,kBAAkB;AACnD,QAAM,IAAI,aAAa,CAAC,QAAQ,sBAAsB,qBAAsB,GAAE;GAC5E,KAAK,QAAQ,aAAa,YAAY,UAAU;GAChD,KAAK;IAAE,GAAG;IAAY,OAAO,EAAE,QAAQ,QAAQ,SAAS,CAAC,GAAG,QAAQ,IAAI,QAAQ,GAAG;GAAG;EACvF,EAAC;EAGF,MAAM,SAAS,QAAQ,QAAQ;EAC/B,MAAM,YAAY,QAAQ,aAAa,cAAc,UAAU,WAAW,OAAO;EACjF,MAAM,cAAc,QAClB,aAAa,YACb,WACA,OACA,SACA,WACA,QAAQ,WAAW,OACnB,UACD;EACD,MAAM,SAAS,QAAQ,cAAc,cAAc,OAAO,EAAE;AAC5D,OAAK,MAAM,OAAO,CAAE,OAAM,IAAI,OAAO,mCAAmC,OAAO;AAC/E,SAAO,UAAU;AACjB,OAAK,aAAa,UAAU;AAC5B,aAAW,QAAQ,YAAY,cAAc,OAAO,EAAE;CACvD;AACD,MAAK,MAAM,SAAS,CAAE,OAAM,IAAI,OAAO,6CAA6C,SAAS;AAC7F,QAAO,SAAS,sBAAsB,aAAa,aAAa,YAAY,SAAS,CAAC,EAAE;AACxF,QAAO,SACJ,EAAE,QAAQ,QAAQ,UAAU,SAAS,MAAM,KAAK,QAAQ,iBAAiB,UAAU,CAAC,CAAC,EACvF;AACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { throwError } from "./throwError-
|
|
7
|
-
import { checkVersionCodeIsTiedWithVersionName, generateVersionCodeTiedWithVersionName, injectBinaryVersions } from "./VersionUtil-
|
|
8
|
-
import { setup } from "./setup-
|
|
1
|
+
import { OptionHolder } from "./OptionHolder-ooRZtG0l.js";
|
|
2
|
+
import { constructInquirerFormattedMessage } from "./InqueryInputs-CyW-i_4N.js";
|
|
3
|
+
import { logger } from "./logger-CSZA77Zt.js";
|
|
4
|
+
import { exe } from "./execShellScript-ZLVCvae2.js";
|
|
5
|
+
import { isDev } from "./EnvUtil-D5sfaKZs.js";
|
|
6
|
+
import { throwError } from "./throwError-ebp_0a_3.js";
|
|
7
|
+
import { checkVersionCodeIsTiedWithVersionName, generateVersionCodeTiedWithVersionName, injectBinaryVersions } from "./VersionUtil-CttA4ATC.js";
|
|
8
|
+
import { setup } from "./setup-Be5UwL9d.js";
|
|
9
9
|
import { is } from "@mj-studio/js-util";
|
|
10
10
|
import { select } from "@inquirer/prompts";
|
|
11
11
|
import semver from "semver";
|
|
@@ -119,4 +119,4 @@ async function promptTagAndPush({ nextVersionCode, nextVersionName }) {
|
|
|
119
119
|
|
|
120
120
|
//#endregion
|
|
121
121
|
export { bump };
|
|
122
|
-
//# sourceMappingURL=bump-
|
|
122
|
+
//# sourceMappingURL=bump-NbU_02fP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bump-
|
|
1
|
+
{"version":3,"file":"bump-NbU_02fP.js","names":[],"sources":["../src/command/bump.ts"],"sourcesContent":["import { select } from '@inquirer/prompts';\nimport { is } from '@mj-studio/js-util';\nimport semver from 'semver';\n\nimport { isDev } from '../util/EnvUtil';\nimport { constructInquirerFormattedMessage } from '../util/input/InqueryInputs';\nimport { logger } from '../util/logger';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { exe } from '../util/setup/execShellScript';\nimport { setup } from '../util/setup/setup';\nimport {\n checkVersionCodeIsTiedWithVersionName,\n generateVersionCodeTiedWithVersionName,\n injectBinaryVersions,\n} from '../util/setup/VersionUtil';\nimport { throwError } from '../util/throwError';\n\nexport async function bump({ options }: { options: any }) {\n Object.assign(OptionHolder.input, options);\n await preCheck();\n await setup();\n\n const nextVersionName = semver.inc(OptionHolder.versionName, OptionHolder.input.semverIncrement)!;\n const nextVersionCode = (() => {\n if (checkVersionCodeIsTiedWithVersionName(OptionHolder.versionName, OptionHolder.versionCode)) {\n return generateVersionCodeTiedWithVersionName(nextVersionName);\n } else {\n logger.warn(\n 'version name is not tied with version code like (1.3.5=1003005). Version code is just incremented by 1.',\n );\n return `${Number(OptionHolder.versionCode) + 1}`;\n }\n })();\n\n logger.info(`Next Version: ${nextVersionName}(${nextVersionCode})`);\n\n await injectBinaryVersions({ versionName: nextVersionName, versionCode: nextVersionCode });\n logger.success('Binary versions have been bumped in expo config file');\n\n await processCommit({ nextVersionName, nextVersionCode });\n if (OptionHolder.input.git.commit) {\n await promptTagAndPush({ nextVersionName, nextVersionCode });\n }\n}\n\nasync function preCheck() {\n if (isDev) return;\n try {\n let hasChange = false;\n try {\n await exe('git', ['diff', '--quiet', 'HEAD']);\n } catch {\n hasChange = true;\n }\n if (hasChange) {\n throwError('Workspace is not clean. Before bump version, you should commit all changes.');\n }\n } catch (e) {\n throwError('Precheck Failed', e);\n }\n}\n\nasync function processCommit({\n nextVersionCode,\n nextVersionName,\n}: {\n nextVersionName: string;\n nextVersionCode: string;\n}) {\n if (!is.boolean(OptionHolder.input.git.commit)) {\n OptionHolder.input.git.commit = await select({\n message: constructInquirerFormattedMessage({ name: 'Commit?' }),\n choices: [\n { name: 'yes', value: true },\n { name: 'no', value: false },\n ],\n });\n }\n if (!is.notEmptyString(OptionHolder.input.git.commitMessage)) {\n OptionHolder.input.git.commitMessage = 'chore: release $(version) 🚀';\n }\n\n if (OptionHolder.input.git.commit) {\n await exe('git', ['add', '--all']);\n await exe('git', [\n 'commit',\n '-m',\n OptionHolder.input.git.commitMessage!.replaceAll(\n '$(version)',\n `${nextVersionName}(${nextVersionCode})`,\n ),\n ]);\n }\n}\n\nasync function promptTagAndPush({\n nextVersionCode,\n nextVersionName,\n}: {\n nextVersionName: string;\n nextVersionCode: string;\n}) {\n if (!is.boolean(OptionHolder.input.git.tag)) {\n OptionHolder.input.git.tag = await select({\n message: constructInquirerFormattedMessage({ name: 'Tag?' }),\n choices: [\n { name: 'yes', value: true },\n { name: 'no', value: false },\n ],\n });\n }\n if (!is.notEmptyString(OptionHolder.input.git.tagName)) {\n OptionHolder.input.git.tagName = 'v$(version)';\n }\n\n const tagName = OptionHolder.input.git.tagName!.replaceAll(\n '$(version)',\n `${nextVersionName}(${nextVersionCode})`,\n );\n\n if (OptionHolder.input.git.tag) {\n await exe('git', ['tag', '-a', tagName, '-m', tagName]);\n }\n\n if (!is.boolean(OptionHolder.input.git.push)) {\n OptionHolder.input.git.push = await select({\n message: constructInquirerFormattedMessage({ name: 'Push?' }),\n choices: [\n { name: 'yes', value: true },\n { name: 'no', value: false },\n ],\n });\n }\n\n if (OptionHolder.input.git.push) {\n if (OptionHolder.input.git.tag) {\n await exe('git', ['push', 'origin', tagName]);\n }\n await exe('git', ['push']);\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAiBA,eAAsB,KAAK,EAAE,SAA2B,EAAE;AACxD,QAAO,OAAO,aAAa,OAAO,QAAQ;AAC1C,OAAM,UAAU;AAChB,OAAM,OAAO;CAEb,MAAM,kBAAkB,OAAO,IAAI,aAAa,aAAa,aAAa,MAAM,gBAAgB;CAChG,MAAM,kBAAkB,CAAC,MAAM;AAC7B,MAAI,sCAAsC,aAAa,aAAa,aAAa,YAAY,CAC3F,QAAO,uCAAuC,gBAAgB;OACzD;AACL,UAAO,KACL,0GACD;AACD,WAAQ,EAAE,OAAO,aAAa,YAAY,GAAG,EAAE;EAChD;CACF,IAAG;AAEJ,QAAO,MAAM,gBAAgB,gBAAgB,GAAG,gBAAgB,GAAG;AAEnE,OAAM,qBAAqB;EAAE,aAAa;EAAiB,aAAa;CAAiB,EAAC;AAC1F,QAAO,QAAQ,uDAAuD;AAEtE,OAAM,cAAc;EAAE;EAAiB;CAAiB,EAAC;AACzD,KAAI,aAAa,MAAM,IAAI,OACzB,OAAM,iBAAiB;EAAE;EAAiB;CAAiB,EAAC;AAE/D;AAED,eAAe,WAAW;AACxB,KAAI,MAAO;AACX,KAAI;EACF,IAAI,YAAY;AAChB,MAAI;AACF,SAAM,IAAI,OAAO;IAAC;IAAQ;IAAW;GAAO,EAAC;EAC9C,QAAO;AACN,eAAY;EACb;AACD,MAAI,UACF,YAAW,8EAA8E;CAE5F,SAAQ,GAAG;AACV,aAAW,mBAAmB,EAAE;CACjC;AACF;AAED,eAAe,cAAc,EAC3B,iBACA,iBAID,EAAE;AACD,MAAK,GAAG,QAAQ,aAAa,MAAM,IAAI,OAAO,CAC5C,cAAa,MAAM,IAAI,SAAS,MAAM,OAAO;EAC3C,SAAS,kCAAkC,EAAE,MAAM,UAAW,EAAC;EAC/D,SAAS,CACP;GAAE,MAAM;GAAO,OAAO;EAAM,GAC5B;GAAE,MAAM;GAAM,OAAO;EAAO,CAC7B;CACF,EAAC;AAEJ,MAAK,GAAG,eAAe,aAAa,MAAM,IAAI,cAAc,CAC1D,cAAa,MAAM,IAAI,gBAAgB;AAGzC,KAAI,aAAa,MAAM,IAAI,QAAQ;AACjC,QAAM,IAAI,OAAO,CAAC,OAAO,OAAQ,EAAC;AAClC,QAAM,IAAI,OAAO;GACf;GACA;GACA,aAAa,MAAM,IAAI,cAAe,WACpC,eACC,EAAE,gBAAgB,GAAG,gBAAgB,GACvC;EACF,EAAC;CACH;AACF;AAED,eAAe,iBAAiB,EAC9B,iBACA,iBAID,EAAE;AACD,MAAK,GAAG,QAAQ,aAAa,MAAM,IAAI,IAAI,CACzC,cAAa,MAAM,IAAI,MAAM,MAAM,OAAO;EACxC,SAAS,kCAAkC,EAAE,MAAM,OAAQ,EAAC;EAC5D,SAAS,CACP;GAAE,MAAM;GAAO,OAAO;EAAM,GAC5B;GAAE,MAAM;GAAM,OAAO;EAAO,CAC7B;CACF,EAAC;AAEJ,MAAK,GAAG,eAAe,aAAa,MAAM,IAAI,QAAQ,CACpD,cAAa,MAAM,IAAI,UAAU;CAGnC,MAAM,UAAU,aAAa,MAAM,IAAI,QAAS,WAC9C,eACC,EAAE,gBAAgB,GAAG,gBAAgB,GACvC;AAED,KAAI,aAAa,MAAM,IAAI,IACzB,OAAM,IAAI,OAAO;EAAC;EAAO;EAAM;EAAS;EAAM;CAAQ,EAAC;AAGzD,MAAK,GAAG,QAAQ,aAAa,MAAM,IAAI,KAAK,CAC1C,cAAa,MAAM,IAAI,OAAO,MAAM,OAAO;EACzC,SAAS,kCAAkC,EAAE,MAAM,QAAS,EAAC;EAC7D,SAAS,CACP;GAAE,MAAM;GAAO,OAAO;EAAM,GAC5B;GAAE,MAAM;GAAM,OAAO;EAAO,CAC7B;CACF,EAAC;AAGJ,KAAI,aAAa,MAAM,IAAI,MAAM;AAC/B,MAAI,aAAa,MAAM,IAAI,IACzB,OAAM,IAAI,OAAO;GAAC;GAAQ;GAAU;EAAQ,EAAC;AAE/C,QAAM,IAAI,OAAO,CAAC,MAAO,EAAC;CAC3B;AACF"}
|
package/build/command/build.js
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import "../calculateElapsed-DORWymX3.js";
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
import "../
|
|
6
|
-
import "../
|
|
7
|
-
import "../
|
|
8
|
-
import "../
|
|
9
|
-
import "../
|
|
10
|
-
import "../
|
|
11
|
-
import "../
|
|
12
|
-
import "../
|
|
13
|
-
import "../
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../
|
|
17
|
-
import "../
|
|
18
|
-
import "../
|
|
19
|
-
import "../
|
|
20
|
-
import "../
|
|
21
|
-
import { build } from "../build-I9mcpo6x.js";
|
|
2
|
+
import "../FileUtil-B9JnWobK.js";
|
|
3
|
+
import "../OptionHolder-ooRZtG0l.js";
|
|
4
|
+
import "../FastlaneOption-y0DYOkjC.js";
|
|
5
|
+
import "../InqueryInputs-CyW-i_4N.js";
|
|
6
|
+
import "../logger-CSZA77Zt.js";
|
|
7
|
+
import "../execShellScript-ZLVCvae2.js";
|
|
8
|
+
import "../NativeEnvironment-BAohR8aj.js";
|
|
9
|
+
import "../prepareAndroid-BQBbb44J.js";
|
|
10
|
+
import "../MetadataSyncUtil-BqWEE06B.js";
|
|
11
|
+
import "../RubyEnvironment-CqupQjgn.js";
|
|
12
|
+
import "../prepareFastlane-BmFwr96S.js";
|
|
13
|
+
import "../prepareIos-CGc-nhwf.js";
|
|
14
|
+
import "../EnvUtil-D5sfaKZs.js";
|
|
15
|
+
import "../parseConfigFile-DTkIYMK1.js";
|
|
16
|
+
import "../hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
17
|
+
import "../throwError-ebp_0a_3.js";
|
|
18
|
+
import "../VersionUtil-CttA4ATC.js";
|
|
19
|
+
import "../setup-Be5UwL9d.js";
|
|
20
|
+
import { build } from "../build-R29EBnOC.js";
|
|
22
21
|
|
|
23
22
|
export { build };
|
package/build/command/bump.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
import "../
|
|
6
|
-
import "../
|
|
7
|
-
import "../parseConfigFile-
|
|
8
|
-
import "../hydrateKeyholderFileValues-
|
|
9
|
-
import "../throwError-
|
|
10
|
-
import "../VersionUtil-
|
|
11
|
-
import "../setup-
|
|
12
|
-
import { bump } from "../bump-
|
|
1
|
+
import "../FileUtil-B9JnWobK.js";
|
|
2
|
+
import "../OptionHolder-ooRZtG0l.js";
|
|
3
|
+
import "../InqueryInputs-CyW-i_4N.js";
|
|
4
|
+
import "../logger-CSZA77Zt.js";
|
|
5
|
+
import "../execShellScript-ZLVCvae2.js";
|
|
6
|
+
import "../EnvUtil-D5sfaKZs.js";
|
|
7
|
+
import "../parseConfigFile-DTkIYMK1.js";
|
|
8
|
+
import "../hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
9
|
+
import "../throwError-ebp_0a_3.js";
|
|
10
|
+
import "../VersionUtil-CttA4ATC.js";
|
|
11
|
+
import "../setup-Be5UwL9d.js";
|
|
12
|
+
import { bump } from "../bump-NbU_02fP.js";
|
|
13
13
|
|
|
14
14
|
export { bump };
|
package/build/command/init.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
import "../
|
|
6
|
-
import "../parseConfigFile-
|
|
7
|
-
import "../hydrateKeyholderFileValues-
|
|
8
|
-
import "../throwError-
|
|
9
|
-
import "../VersionUtil-
|
|
10
|
-
import "../setup-
|
|
11
|
-
import { init } from "../init-
|
|
1
|
+
import "../FileUtil-B9JnWobK.js";
|
|
2
|
+
import "../OptionHolder-ooRZtG0l.js";
|
|
3
|
+
import "../InqueryInputs-CyW-i_4N.js";
|
|
4
|
+
import "../logger-CSZA77Zt.js";
|
|
5
|
+
import "../EnvUtil-D5sfaKZs.js";
|
|
6
|
+
import "../parseConfigFile-DTkIYMK1.js";
|
|
7
|
+
import "../hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
8
|
+
import "../throwError-ebp_0a_3.js";
|
|
9
|
+
import "../VersionUtil-CttA4ATC.js";
|
|
10
|
+
import "../setup-Be5UwL9d.js";
|
|
11
|
+
import { init } from "../init-DwlkVt7G.js";
|
|
12
12
|
|
|
13
13
|
export { init };
|
package/build/command/pull.js
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
import "../
|
|
6
|
-
import "../
|
|
7
|
-
import "../
|
|
8
|
-
import "../
|
|
9
|
-
import "../
|
|
10
|
-
import "../
|
|
11
|
-
import "../
|
|
12
|
-
import "../
|
|
13
|
-
import "../
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../
|
|
17
|
-
import "../VersionUtil-BPRjtPK_.js";
|
|
18
|
-
import "../setup-BhGhMcG5.js";
|
|
19
|
-
import "../generateAppStoreConnectApiKeyFile-DeuJUndI.js";
|
|
20
|
-
import { pull } from "../pull-CVuxaHAJ.js";
|
|
1
|
+
import "../FileUtil-B9JnWobK.js";
|
|
2
|
+
import "../OptionHolder-ooRZtG0l.js";
|
|
3
|
+
import "../InqueryInputs-CyW-i_4N.js";
|
|
4
|
+
import "../logger-CSZA77Zt.js";
|
|
5
|
+
import "../execShellScript-ZLVCvae2.js";
|
|
6
|
+
import "../MetadataSyncUtil-BqWEE06B.js";
|
|
7
|
+
import "../RubyEnvironment-CqupQjgn.js";
|
|
8
|
+
import "../prepareFastlane-BmFwr96S.js";
|
|
9
|
+
import "../EnvUtil-D5sfaKZs.js";
|
|
10
|
+
import "../parseConfigFile-DTkIYMK1.js";
|
|
11
|
+
import "../hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
12
|
+
import "../throwError-ebp_0a_3.js";
|
|
13
|
+
import "../VersionUtil-CttA4ATC.js";
|
|
14
|
+
import "../setup-Be5UwL9d.js";
|
|
15
|
+
import "../generateAppStoreConnectApiKeyFile-Bt2nK7lP.js";
|
|
16
|
+
import { pull } from "../pull-COg4G-1u.js";
|
|
21
17
|
|
|
22
18
|
export { pull };
|
package/build/command/submit.js
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
import "../calculateElapsed-DORWymX3.js";
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
import "../
|
|
6
|
-
import "../
|
|
7
|
-
import "../
|
|
8
|
-
import "../
|
|
9
|
-
import "../
|
|
10
|
-
import "../
|
|
11
|
-
import "../
|
|
12
|
-
import "../
|
|
13
|
-
import "../
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../
|
|
17
|
-
import "../
|
|
18
|
-
import "../throwError-bsy4sijK.js";
|
|
19
|
-
import "../VersionUtil-BPRjtPK_.js";
|
|
20
|
-
import "../setup-BhGhMcG5.js";
|
|
21
|
-
import { submit } from "../submit-BQ3IEiKv.js";
|
|
2
|
+
import "../FileUtil-B9JnWobK.js";
|
|
3
|
+
import "../OptionHolder-ooRZtG0l.js";
|
|
4
|
+
import "../FastlaneOption-y0DYOkjC.js";
|
|
5
|
+
import "../InqueryInputs-CyW-i_4N.js";
|
|
6
|
+
import "../logger-CSZA77Zt.js";
|
|
7
|
+
import "../execShellScript-ZLVCvae2.js";
|
|
8
|
+
import "../MetadataSyncUtil-BqWEE06B.js";
|
|
9
|
+
import "../RubyEnvironment-CqupQjgn.js";
|
|
10
|
+
import "../prepareFastlane-BmFwr96S.js";
|
|
11
|
+
import "../EnvUtil-D5sfaKZs.js";
|
|
12
|
+
import "../parseConfigFile-DTkIYMK1.js";
|
|
13
|
+
import "../hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
14
|
+
import "../throwError-ebp_0a_3.js";
|
|
15
|
+
import "../VersionUtil-CttA4ATC.js";
|
|
16
|
+
import "../setup-Be5UwL9d.js";
|
|
17
|
+
import { submit } from "../submit-BaL5kRHE.js";
|
|
22
18
|
|
|
23
19
|
export { submit };
|
package/build/command/upload.js
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
1
|
import "../calculateElapsed-DORWymX3.js";
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import "../
|
|
5
|
-
import "../
|
|
6
|
-
import "../
|
|
7
|
-
import "../
|
|
8
|
-
import "../
|
|
9
|
-
import "../
|
|
10
|
-
import "../
|
|
11
|
-
import "../
|
|
12
|
-
import "../
|
|
13
|
-
import "../
|
|
14
|
-
import "../
|
|
15
|
-
import "../
|
|
16
|
-
import "../
|
|
17
|
-
import "../
|
|
18
|
-
import "../throwError-bsy4sijK.js";
|
|
19
|
-
import "../VersionUtil-BPRjtPK_.js";
|
|
20
|
-
import "../setup-BhGhMcG5.js";
|
|
21
|
-
import { upload } from "../upload-DJXVLkT_.js";
|
|
2
|
+
import "../FileUtil-B9JnWobK.js";
|
|
3
|
+
import "../OptionHolder-ooRZtG0l.js";
|
|
4
|
+
import "../FastlaneOption-y0DYOkjC.js";
|
|
5
|
+
import "../InqueryInputs-CyW-i_4N.js";
|
|
6
|
+
import "../logger-CSZA77Zt.js";
|
|
7
|
+
import "../execShellScript-ZLVCvae2.js";
|
|
8
|
+
import "../MetadataSyncUtil-BqWEE06B.js";
|
|
9
|
+
import "../RubyEnvironment-CqupQjgn.js";
|
|
10
|
+
import "../prepareFastlane-BmFwr96S.js";
|
|
11
|
+
import "../EnvUtil-D5sfaKZs.js";
|
|
12
|
+
import "../parseConfigFile-DTkIYMK1.js";
|
|
13
|
+
import "../hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
14
|
+
import "../throwError-ebp_0a_3.js";
|
|
15
|
+
import "../VersionUtil-CttA4ATC.js";
|
|
16
|
+
import "../setup-Be5UwL9d.js";
|
|
17
|
+
import { upload } from "../upload-BY1mGc-G.js";
|
|
22
18
|
|
|
23
19
|
export { upload };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { redact } from "./logger-CSZA77Zt.js";
|
|
2
|
+
import { execa } from "execa";
|
|
3
|
+
import { createInterface } from "node:readline";
|
|
4
|
+
|
|
5
|
+
//#region src/util/setup/execShellScript.ts
|
|
6
|
+
async function printRedactedOutput(stream) {
|
|
7
|
+
let hasPrivateKey = false;
|
|
8
|
+
const privateKeyEnd = /-----END .*PRIVATE KEY-----/;
|
|
9
|
+
for await (const line of createInterface({ input: stream })) if (/-----BEGIN .*PRIVATE KEY-----/.test(line)) {
|
|
10
|
+
hasPrivateKey = !privateKeyEnd.test(line);
|
|
11
|
+
console.log("[REDACTED PRIVATE KEY]");
|
|
12
|
+
} else if (privateKeyEnd.test(line)) hasPrivateKey = false;
|
|
13
|
+
else if (!hasPrivateKey) console.log(redact(line));
|
|
14
|
+
}
|
|
15
|
+
async function exe(command, args = [], options = {}) {
|
|
16
|
+
const child = execa(command, args, {
|
|
17
|
+
...options,
|
|
18
|
+
stdin: "pipe",
|
|
19
|
+
stdout: "pipe",
|
|
20
|
+
stderr: "pipe",
|
|
21
|
+
all: true,
|
|
22
|
+
reject: false
|
|
23
|
+
});
|
|
24
|
+
if (child.all) await printRedactedOutput(child.all);
|
|
25
|
+
const result = await child;
|
|
26
|
+
if (result.failed) throw result;
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//#endregion
|
|
31
|
+
export { exe, printRedactedOutput };
|
|
32
|
+
//# sourceMappingURL=execShellScript-ZLVCvae2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execShellScript-ZLVCvae2.js","names":["stream: NodeJS.ReadableStream","command: string","args: string[]","options: Pick<Options, 'cwd' | 'env' | 'extendEnv'>"],"sources":["../src/util/setup/execShellScript.ts"],"sourcesContent":["import { createInterface } from 'node:readline';\n\nimport { execa, type Options } from 'execa';\n\nimport { redact } from '../logger';\n\nexport async function printRedactedOutput(stream: NodeJS.ReadableStream) {\n let hasPrivateKey = false;\n const privateKeyEnd = /-----END .*PRIVATE KEY-----/;\n for await (const line of createInterface({ input: stream })) {\n if (/-----BEGIN .*PRIVATE KEY-----/.test(line)) {\n hasPrivateKey = !privateKeyEnd.test(line);\n console.log('[REDACTED PRIVATE KEY]');\n } else if (privateKeyEnd.test(line)) {\n hasPrivateKey = false;\n } else if (!hasPrivateKey) {\n console.log(redact(line));\n }\n }\n}\n\nexport async function exe(\n command: string,\n args: string[] = [],\n options: Pick<Options, 'cwd' | 'env' | 'extendEnv'> = {},\n) {\n const child = execa(command, args, {\n ...options,\n stdin: 'pipe',\n stdout: 'pipe',\n stderr: 'pipe',\n all: true,\n reject: false,\n });\n if (child.all) await printRedactedOutput(child.all);\n const result = await child;\n if (result.failed) throw result;\n return result;\n}\n"],"mappings":";;;;;AAMA,eAAsB,oBAAoBA,QAA+B;CACvE,IAAI,gBAAgB;CACpB,MAAM,gBAAgB;AACtB,YAAW,MAAM,QAAQ,gBAAgB,EAAE,OAAO,OAAQ,EAAC,CACzD,KAAI,gCAAgC,KAAK,KAAK,EAAE;AAC9C,mBAAiB,cAAc,KAAK,KAAK;AACzC,UAAQ,IAAI,yBAAyB;CACtC,WAAU,cAAc,KAAK,KAAK,CACjC,iBAAgB;WACN,cACV,SAAQ,IAAI,OAAO,KAAK,CAAC;AAG9B;AAED,eAAsB,IACpBC,SACAC,OAAiB,CAAE,GACnBC,UAAsD,CAAE,GACxD;CACA,MAAM,QAAQ,MAAM,SAAS,MAAM;EACjC,GAAG;EACH,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,KAAK;EACL,QAAQ;CACT,EAAC;AACF,KAAI,MAAM,IAAK,OAAM,oBAAoB,MAAM,IAAI;CACnD,MAAM,SAAS,MAAM;AACrB,KAAI,OAAO,OAAQ,OAAM;AACzB,QAAO;AACR"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { join, read, resolve, writeJson } from "./FileUtil-
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
1
|
+
import { join, read, resolve, writeJson } from "./FileUtil-B9JnWobK.js";
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-ooRZtG0l.js";
|
|
3
3
|
|
|
4
4
|
//#region src/util/generateAppStoreConnectApiKeyFile.ts
|
|
5
5
|
function generateAppStoreConnectApiKeyFile() {
|
|
@@ -15,4 +15,4 @@ function generateAppStoreConnectApiKeyFile() {
|
|
|
15
15
|
|
|
16
16
|
//#endregion
|
|
17
17
|
export { generateAppStoreConnectApiKeyFile };
|
|
18
|
-
//# sourceMappingURL=generateAppStoreConnectApiKeyFile-
|
|
18
|
+
//# sourceMappingURL=generateAppStoreConnectApiKeyFile-Bt2nK7lP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateAppStoreConnectApiKeyFile-
|
|
1
|
+
{"version":3,"file":"generateAppStoreConnectApiKeyFile-Bt2nK7lP.js","names":[],"sources":["../src/util/generateAppStoreConnectApiKeyFile.ts"],"sourcesContent":["import { join, read, resolve, writeJson } from './FileUtil';\nimport { OptionHolder } from './OptionHolder';\n\nexport function generateAppStoreConnectApiKeyFile() {\n const json = {\n key: read(resolve(OptionHolder.keyDir, 'ios_app_store_connect_api_key.p8')),\n key_id: OptionHolder.keyholderMap.ios_app_store_connect_api_key_id,\n issuer_id: OptionHolder.keyholderMap.ios_app_store_connect_api_key_issuer_id,\n };\n const file = join(OptionHolder.tempDir, 'app_store_connect_api.json');\n writeJson(file, json);\n return file;\n}\n"],"mappings":";;;;AAGA,SAAgB,oCAAoC;CAClD,MAAM,OAAO;EACX,KAAK,KAAK,QAAQ,aAAa,QAAQ,mCAAmC,CAAC;EAC3E,QAAQ,aAAa,aAAa;EAClC,WAAW,aAAa,aAAa;CACtC;CACD,MAAM,OAAO,KAAK,aAAa,SAAS,6BAA6B;AACrE,WAAU,MAAM,KAAK;AACrB,QAAO;AACR"}
|
package/build/{hydrateKeyholderFileValues-BKnI9nbx.js → hydrateKeyholderFileValues-Cwmc5iwo.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { exist, readJsonSlow } from "./FileUtil-
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
1
|
+
import { exist, readJsonSlow } from "./FileUtil-B9JnWobK.js";
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-ooRZtG0l.js";
|
|
3
3
|
|
|
4
4
|
//#region src/util/setup/hydrateKeyholderFileValues.ts
|
|
5
5
|
async function hydrateKeyholderFileValues() {
|
|
@@ -8,4 +8,4 @@ async function hydrateKeyholderFileValues() {
|
|
|
8
8
|
|
|
9
9
|
//#endregion
|
|
10
10
|
export { hydrateKeyholderFileValues };
|
|
11
|
-
//# sourceMappingURL=hydrateKeyholderFileValues-
|
|
11
|
+
//# sourceMappingURL=hydrateKeyholderFileValues-Cwmc5iwo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hydrateKeyholderFileValues-
|
|
1
|
+
{"version":3,"file":"hydrateKeyholderFileValues-Cwmc5iwo.js","names":[],"sources":["../src/util/setup/hydrateKeyholderFileValues.ts"],"sourcesContent":["import { exist, readJsonSlow } from '../FileUtil';\nimport { OptionHolder } from '../OptionHolder';\n\nexport async function hydrateKeyholderFileValues() {\n if (exist(OptionHolder.keyholderFilePath)) {\n Object.assign(OptionHolder.keyholderMap, readJsonSlow(OptionHolder.keyholderFilePath));\n }\n}\n"],"mappings":";;;;AAGA,eAAsB,6BAA6B;AACjD,KAAI,MAAM,aAAa,kBAAkB,CACvC,QAAO,OAAO,aAAa,cAAc,aAAa,aAAa,kBAAkB,CAAC;AAEzF"}
|
package/build/index.js
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
import "./calculateElapsed-DORWymX3.js";
|
|
2
|
-
import "./
|
|
3
|
-
import "./
|
|
4
|
-
import
|
|
5
|
-
import "./
|
|
6
|
-
import "./
|
|
7
|
-
import
|
|
8
|
-
import "./
|
|
9
|
-
import "./
|
|
10
|
-
import "./
|
|
11
|
-
import "./
|
|
12
|
-
import "./
|
|
13
|
-
import "./
|
|
14
|
-
import "./
|
|
15
|
-
import "./
|
|
16
|
-
import "./
|
|
17
|
-
import "./
|
|
18
|
-
import
|
|
19
|
-
import "./
|
|
20
|
-
import "./
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import
|
|
24
|
-
import "./
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import { upload } from "./upload-DJXVLkT_.js";
|
|
2
|
+
import "./FileUtil-B9JnWobK.js";
|
|
3
|
+
import { OptionHolder } from "./OptionHolder-ooRZtG0l.js";
|
|
4
|
+
import "./FastlaneOption-y0DYOkjC.js";
|
|
5
|
+
import "./InqueryInputs-CyW-i_4N.js";
|
|
6
|
+
import { logger } from "./logger-CSZA77Zt.js";
|
|
7
|
+
import "./execShellScript-ZLVCvae2.js";
|
|
8
|
+
import "./NativeEnvironment-BAohR8aj.js";
|
|
9
|
+
import "./prepareAndroid-BQBbb44J.js";
|
|
10
|
+
import "./MetadataSyncUtil-BqWEE06B.js";
|
|
11
|
+
import "./RubyEnvironment-CqupQjgn.js";
|
|
12
|
+
import "./prepareFastlane-BmFwr96S.js";
|
|
13
|
+
import "./prepareIos-CGc-nhwf.js";
|
|
14
|
+
import "./EnvUtil-D5sfaKZs.js";
|
|
15
|
+
import "./parseConfigFile-DTkIYMK1.js";
|
|
16
|
+
import "./hydrateKeyholderFileValues-Cwmc5iwo.js";
|
|
17
|
+
import { throwError } from "./throwError-ebp_0a_3.js";
|
|
18
|
+
import "./VersionUtil-CttA4ATC.js";
|
|
19
|
+
import "./setup-Be5UwL9d.js";
|
|
20
|
+
import { build } from "./build-R29EBnOC.js";
|
|
21
|
+
import { bump } from "./bump-NbU_02fP.js";
|
|
22
|
+
import { init } from "./init-DwlkVt7G.js";
|
|
23
|
+
import "./generateAppStoreConnectApiKeyFile-Bt2nK7lP.js";
|
|
24
|
+
import { pull } from "./pull-COg4G-1u.js";
|
|
25
|
+
import { submit } from "./submit-BaL5kRHE.js";
|
|
26
|
+
import { upload } from "./upload-BY1mGc-G.js";
|
|
28
27
|
import { Command, Option } from "commander";
|
|
29
28
|
import { ExecaError } from "execa";
|
|
30
29
|
|
|
@@ -44,7 +43,7 @@ const run = () => {
|
|
|
44
43
|
...options,
|
|
45
44
|
semverIncrement: options.increment
|
|
46
45
|
} })));
|
|
47
|
-
program.command("build").description("Build artifacts").addOption(platformOption).addOption(androidBuildOutputOption).addOption(configFileOption).action(async (options) => handleError(build({ options })));
|
|
46
|
+
program.command("build").description("Build artifacts from a clean Expo CNG project").option("--no-sign", "Build an unsigned iOS archive without Apple credentials").option("--ios-project <project>", "Xcode project filename when multiple projects exist").option("--ios-target <target>", "App target when multiple app targets exist").option("--ios-scheme <scheme>", "Build scheme when multiple schemes exist").addOption(platformOption).addOption(androidBuildOutputOption).addOption(configFileOption).action(async (options) => handleError(build({ options })));
|
|
48
47
|
program.command("upload").description("Upload artifact to play console internal test track(android) and testflight(ios)").addOption(platformOption).addOption(androidBuildOutputOption).option("-m --uploadMetadata", "Upload store text metadatas").option("-s --uploadScreenshot", "Upload store screenshots").addOption(configFileOption).action(async (options) => handleError(upload({ options })));
|
|
49
48
|
program.command("submit").description("Submit Google Play Console & App Store Connect Review with latest testing track").addOption(platformOption).option("-m --uploadMetadata", "Upload store text metadatas").option("-s --uploadScreenshot", "Upload store screenshots").addOption(configFileOption).action(async (options) => handleError(submit({ options })));
|
|
50
49
|
program.command("pull").description("Download metadatas from stores").addOption(platformOption).option("-l --useLiveVersionIos", "Download metadatas from live version rather than draft").addOption(configFileOption).action(async (options) => handleError(pull({ options })));
|
|
@@ -55,7 +54,6 @@ async function handleError(promise) {
|
|
|
55
54
|
return await promise;
|
|
56
55
|
} catch (e) {
|
|
57
56
|
if (e instanceof ExecaError) {
|
|
58
|
-
logger.error(`ExecaError: command: ${e.escapedCommand}`);
|
|
59
57
|
logger.error(e.message);
|
|
60
58
|
process.exit(e.exitCode ?? 1);
|
|
61
59
|
} else throwError(`Command Failed: ${e}`);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["promise: Promise<any>"],"sources":["../src/index.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { ExecaError } from 'execa';\n\nimport { build } from './command/build';\nimport { bump } from './command/bump';\nimport { init } from './command/init';\nimport { pull } from './command/pull';\nimport { submit } from './command/submit';\nimport { upload } from './command/upload';\nimport { logger } from './util/logger';\nimport { OptionHolder } from './util/OptionHolder';\nimport { throwError } from './util/throwError';\n\nconst platformOption = new Option('-p --platform <platform>', 'Platform').choices([\n 'android',\n 'ios',\n]);\nconst androidBuildOutputOption = new Option(\n '--androidOutput <output>',\n 'Android Build Output',\n).choices(['aab', 'apk']);\nconst configFileOption = new Option('--config <filePath>', 'expo-release-it.config.json path');\n\nexport const run = () => {\n const program = new Command();\n program\n .name('expo-release-it')\n .description(\n 'Opinionated Expo CICD workflow CLI for building & uploading & submitting Expo projects on your machine',\n )\n .version(OptionHolder.cli.version);\n\n program\n .command('init')\n .description('Configure resources and environment')\n .addOption(configFileOption)\n .action(async (options) => handleError(init({ options })));\n\n program\n .command('bump')\n .description('Bump binary release patch version with modifying app.json')\n .addOption(\n new Option('-i --increment <increment>', 'Version increment mode')\n .default('patch')\n .choices(['major', 'minor', 'patch']),\n )\n .addOption(configFileOption)\n .action(async (options) =>\n handleError(bump({ options: { ...options, semverIncrement: options.increment } })),\n );\n\n program\n .command('build')\n .description('Build artifacts')\n .addOption(platformOption)\n .addOption(androidBuildOutputOption)\n .addOption(configFileOption)\n .action(async (options) => handleError(build({ options })));\n\n program\n .command('upload')\n .description('Upload artifact to play console internal test track(android) and testflight(ios)')\n .addOption(platformOption)\n .addOption(androidBuildOutputOption)\n .option('-m --uploadMetadata', 'Upload store text metadatas')\n .option('-s --uploadScreenshot', 'Upload store screenshots')\n .addOption(configFileOption)\n .action(async (options) => handleError(upload({ options })));\n\n program\n .command('submit')\n .description('Submit Google Play Console & App Store Connect Review with latest testing track')\n .addOption(platformOption)\n .option('-m --uploadMetadata', 'Upload store text metadatas')\n .option('-s --uploadScreenshot', 'Upload store screenshots')\n .addOption(configFileOption)\n .action(async (options) => handleError(submit({ options })));\n\n program\n .command('pull')\n .description('Download metadatas from stores')\n .addOption(platformOption)\n .option('-l --useLiveVersionIos', 'Download metadatas from live version rather than draft')\n .addOption(configFileOption)\n .action(async (options) => handleError(pull({ options })));\n\n program.parse();\n};\n\nasync function handleError(promise: Promise<any>) {\n try {\n return await promise;\n } catch (e) {\n if (e instanceof ExecaError) {\n logger.error(
|
|
1
|
+
{"version":3,"file":"index.js","names":["promise: Promise<any>"],"sources":["../src/index.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { ExecaError } from 'execa';\n\nimport { build } from './command/build';\nimport { bump } from './command/bump';\nimport { init } from './command/init';\nimport { pull } from './command/pull';\nimport { submit } from './command/submit';\nimport { upload } from './command/upload';\nimport { logger } from './util/logger';\nimport { OptionHolder } from './util/OptionHolder';\nimport { throwError } from './util/throwError';\n\nconst platformOption = new Option('-p --platform <platform>', 'Platform').choices([\n 'android',\n 'ios',\n]);\nconst androidBuildOutputOption = new Option(\n '--androidOutput <output>',\n 'Android Build Output',\n).choices(['aab', 'apk']);\nconst configFileOption = new Option('--config <filePath>', 'expo-release-it.config.json path');\n\nexport const run = () => {\n const program = new Command();\n program\n .name('expo-release-it')\n .description(\n 'Opinionated Expo CICD workflow CLI for building & uploading & submitting Expo projects on your machine',\n )\n .version(OptionHolder.cli.version);\n\n program\n .command('init')\n .description('Configure resources and environment')\n .addOption(configFileOption)\n .action(async (options) => handleError(init({ options })));\n\n program\n .command('bump')\n .description('Bump binary release patch version with modifying app.json')\n .addOption(\n new Option('-i --increment <increment>', 'Version increment mode')\n .default('patch')\n .choices(['major', 'minor', 'patch']),\n )\n .addOption(configFileOption)\n .action(async (options) =>\n handleError(bump({ options: { ...options, semverIncrement: options.increment } })),\n );\n\n program\n .command('build')\n .description('Build artifacts from a clean Expo CNG project')\n .option('--no-sign', 'Build an unsigned iOS archive without Apple credentials')\n .option('--ios-project <project>', 'Xcode project filename when multiple projects exist')\n .option('--ios-target <target>', 'App target when multiple app targets exist')\n .option('--ios-scheme <scheme>', 'Build scheme when multiple schemes exist')\n .addOption(platformOption)\n .addOption(androidBuildOutputOption)\n .addOption(configFileOption)\n .action(async (options) => handleError(build({ options })));\n\n program\n .command('upload')\n .description('Upload artifact to play console internal test track(android) and testflight(ios)')\n .addOption(platformOption)\n .addOption(androidBuildOutputOption)\n .option('-m --uploadMetadata', 'Upload store text metadatas')\n .option('-s --uploadScreenshot', 'Upload store screenshots')\n .addOption(configFileOption)\n .action(async (options) => handleError(upload({ options })));\n\n program\n .command('submit')\n .description('Submit Google Play Console & App Store Connect Review with latest testing track')\n .addOption(platformOption)\n .option('-m --uploadMetadata', 'Upload store text metadatas')\n .option('-s --uploadScreenshot', 'Upload store screenshots')\n .addOption(configFileOption)\n .action(async (options) => handleError(submit({ options })));\n\n program\n .command('pull')\n .description('Download metadatas from stores')\n .addOption(platformOption)\n .option('-l --useLiveVersionIos', 'Download metadatas from live version rather than draft')\n .addOption(configFileOption)\n .action(async (options) => handleError(pull({ options })));\n\n program.parse();\n};\n\nasync function handleError(promise: Promise<any>) {\n try {\n return await promise;\n } catch (e) {\n if (e instanceof ExecaError) {\n logger.error(e.message);\n process.exit(e.exitCode ?? 1);\n } else {\n throwError(`Command Failed: ${e}`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,iBAAiB,IAAI,OAAO,4BAA4B,YAAY,QAAQ,CAChF,WACA,KACD,EAAC;AACF,MAAM,2BAA2B,IAAI,OACnC,4BACA,wBACA,QAAQ,CAAC,OAAO,KAAM,EAAC;AACzB,MAAM,mBAAmB,IAAI,OAAO,uBAAuB;AAE3D,MAAa,MAAM,MAAM;CACvB,MAAM,UAAU,IAAI;AACpB,SACG,KAAK,kBAAkB,CACvB,YACC,yGACD,CACA,QAAQ,aAAa,IAAI,QAAQ;AAEpC,SACG,QAAQ,OAAO,CACf,YAAY,sCAAsC,CAClD,UAAU,iBAAiB,CAC3B,OAAO,OAAO,YAAY,YAAY,KAAK,EAAE,QAAS,EAAC,CAAC,CAAC;AAE5D,SACG,QAAQ,OAAO,CACf,YAAY,4DAA4D,CACxE,UACC,IAAI,OAAO,8BAA8B,0BACtC,QAAQ,QAAQ,CAChB,QAAQ;EAAC;EAAS;EAAS;CAAQ,EAAC,CACxC,CACA,UAAU,iBAAiB,CAC3B,OAAO,OAAO,YACb,YAAY,KAAK,EAAE,SAAS;EAAE,GAAG;EAAS,iBAAiB,QAAQ;CAAW,EAAE,EAAC,CAAC,CACnF;AAEH,SACG,QAAQ,QAAQ,CAChB,YAAY,gDAAgD,CAC5D,OAAO,aAAa,0DAA0D,CAC9E,OAAO,2BAA2B,sDAAsD,CACxF,OAAO,yBAAyB,6CAA6C,CAC7E,OAAO,yBAAyB,2CAA2C,CAC3E,UAAU,eAAe,CACzB,UAAU,yBAAyB,CACnC,UAAU,iBAAiB,CAC3B,OAAO,OAAO,YAAY,YAAY,MAAM,EAAE,QAAS,EAAC,CAAC,CAAC;AAE7D,SACG,QAAQ,SAAS,CACjB,YAAY,mFAAmF,CAC/F,UAAU,eAAe,CACzB,UAAU,yBAAyB,CACnC,OAAO,uBAAuB,8BAA8B,CAC5D,OAAO,yBAAyB,2BAA2B,CAC3D,UAAU,iBAAiB,CAC3B,OAAO,OAAO,YAAY,YAAY,OAAO,EAAE,QAAS,EAAC,CAAC,CAAC;AAE9D,SACG,QAAQ,SAAS,CACjB,YAAY,kFAAkF,CAC9F,UAAU,eAAe,CACzB,OAAO,uBAAuB,8BAA8B,CAC5D,OAAO,yBAAyB,2BAA2B,CAC3D,UAAU,iBAAiB,CAC3B,OAAO,OAAO,YAAY,YAAY,OAAO,EAAE,QAAS,EAAC,CAAC,CAAC;AAE9D,SACG,QAAQ,OAAO,CACf,YAAY,iCAAiC,CAC7C,UAAU,eAAe,CACzB,OAAO,0BAA0B,yDAAyD,CAC1F,UAAU,iBAAiB,CAC3B,OAAO,OAAO,YAAY,YAAY,KAAK,EAAE,QAAS,EAAC,CAAC,CAAC;AAE5D,SAAQ,OAAO;AAChB;AAED,eAAe,YAAYA,SAAuB;AAChD,KAAI;AACF,SAAO,MAAM;CACd,SAAQ,GAAG;AACV,MAAI,aAAa,YAAY;AAC3B,UAAO,MAAM,EAAE,QAAQ;AACvB,WAAQ,KAAK,EAAE,YAAY,EAAE;EAC9B,MACC,aAAY,kBAAkB,EAAE,EAAE;CAErC;AACF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { copy, join, writeJson } from "./FileUtil-
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
3
|
-
import { constructInquirerFormattedMessage } from "./InqueryInputs-
|
|
4
|
-
import { logger } from "./logger-
|
|
5
|
-
import { setup } from "./setup-
|
|
1
|
+
import { copy, join, writeJson } from "./FileUtil-B9JnWobK.js";
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-ooRZtG0l.js";
|
|
3
|
+
import { constructInquirerFormattedMessage } from "./InqueryInputs-CyW-i_4N.js";
|
|
4
|
+
import { logger } from "./logger-CSZA77Zt.js";
|
|
5
|
+
import { setup } from "./setup-Be5UwL9d.js";
|
|
6
6
|
import chalk from "chalk";
|
|
7
|
-
import { input } from "@inquirer/prompts";
|
|
7
|
+
import { input, password } from "@inquirer/prompts";
|
|
8
8
|
|
|
9
9
|
//#region src/command/init.ts
|
|
10
10
|
async function init({ options }) {
|
|
@@ -46,15 +46,14 @@ async function promptInputs() {
|
|
|
46
46
|
required: true,
|
|
47
47
|
default: OptionHolder.keyholderMap.ios_match_git_url
|
|
48
48
|
});
|
|
49
|
-
OptionHolder.keyholderMap.ios_match_password = await
|
|
49
|
+
OptionHolder.keyholderMap.ios_match_password = await inputSecret({
|
|
50
50
|
message: constructInquirerFormattedMessage({
|
|
51
51
|
name: "iOS Fastlane Match Passphrase",
|
|
52
52
|
explanation: "When running match for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using openssl. Make sure to remember the password, as you'll need it when you run match on a different machine.",
|
|
53
53
|
example: "yourpassphrase",
|
|
54
54
|
referUrl: "https://docs.fastlane.tools/actions/match/"
|
|
55
55
|
}),
|
|
56
|
-
|
|
57
|
-
default: OptionHolder.keyholderMap.ios_match_password
|
|
56
|
+
previous: OptionHolder.keyholderMap.ios_match_password
|
|
58
57
|
});
|
|
59
58
|
OptionHolder.keyholderMap.ios_app_store_connect_api_key_id = await input({
|
|
60
59
|
message: constructInquirerFormattedMessage({
|
|
@@ -78,15 +77,6 @@ App Store Connect API Key can be issued in ${chalk.underline.blue("https://appst
|
|
|
78
77
|
required: true,
|
|
79
78
|
default: OptionHolder.keyholderMap.ios_app_store_connect_api_key_issuer_id
|
|
80
79
|
});
|
|
81
|
-
OptionHolder.keyholderMap.ios_xcode_project_target = await input({
|
|
82
|
-
message: constructInquirerFormattedMessage({
|
|
83
|
-
name: "iOS App Target Name",
|
|
84
|
-
explanation: "A target in Xcode defines a product to build, including app, extension, or framework, with its own settings and build instructions.\nUsually, this is equivalent to {{name}}.xcodeproj in your ios directory",
|
|
85
|
-
example: "app"
|
|
86
|
-
}),
|
|
87
|
-
required: true,
|
|
88
|
-
default: OptionHolder.keyholderMap.ios_xcode_project_target || "app"
|
|
89
|
-
});
|
|
90
80
|
OptionHolder.keyholderMap.android_package_name = await input({
|
|
91
81
|
message: constructInquirerFormattedMessage({
|
|
92
82
|
name: "Android Package Name",
|
|
@@ -97,7 +87,7 @@ App Store Connect API Key can be issued in ${chalk.underline.blue("https://appst
|
|
|
97
87
|
required: true,
|
|
98
88
|
default: OptionHolder.keyholderMap.android_package_name
|
|
99
89
|
});
|
|
100
|
-
OptionHolder.keyholderMap.android_keystore_store_password = await
|
|
90
|
+
OptionHolder.keyholderMap.android_keystore_store_password = await inputSecret({
|
|
101
91
|
message: constructInquirerFormattedMessage({
|
|
102
92
|
name: "Android Keystore Store Password",
|
|
103
93
|
explanation: `Storage password used in android release keystore
|
|
@@ -105,8 +95,7 @@ You can issue your android release keystore following this guide: ${chalk.underl
|
|
|
105
95
|
Or, you can do same thing with CLI: ${chalk.underline.blue("https://gist.github.com/henriquemenezes/70feb8fff20a19a65346e48786bedb8f")}`,
|
|
106
96
|
referUrl: "https://developer.android.com/studio/publish/app-signing.html#generate-key"
|
|
107
97
|
}),
|
|
108
|
-
|
|
109
|
-
default: OptionHolder.keyholderMap.android_keystore_store_password
|
|
98
|
+
previous: OptionHolder.keyholderMap.android_keystore_store_password
|
|
110
99
|
});
|
|
111
100
|
OptionHolder.keyholderMap.android_keystore_key_alias = await input({
|
|
112
101
|
message: constructInquirerFormattedMessage({
|
|
@@ -119,7 +108,7 @@ Or, you can do same thing with CLI: ${chalk.underline.blue("https://gist.github.
|
|
|
119
108
|
required: true,
|
|
120
109
|
default: OptionHolder.keyholderMap.android_keystore_key_alias
|
|
121
110
|
});
|
|
122
|
-
OptionHolder.keyholderMap.android_keystore_key_password = await
|
|
111
|
+
OptionHolder.keyholderMap.android_keystore_key_password = await inputSecret({
|
|
123
112
|
message: constructInquirerFormattedMessage({
|
|
124
113
|
name: "Android Keystore Key Password",
|
|
125
114
|
explanation: `Key password used in android release keystore
|
|
@@ -127,10 +116,18 @@ You can issue your android release keystore following this guide: ${chalk.underl
|
|
|
127
116
|
Or, you can do same thing with CLI: ${chalk.underline.blue("https://gist.github.com/henriquemenezes/70feb8fff20a19a65346e48786bedb8f")}`,
|
|
128
117
|
referUrl: "https://developer.android.com/studio/publish/app-signing.html#generate-key"
|
|
129
118
|
}),
|
|
130
|
-
|
|
131
|
-
default: OptionHolder.keyholderMap.android_keystore_key_password
|
|
119
|
+
previous: OptionHolder.keyholderMap.android_keystore_key_password
|
|
132
120
|
});
|
|
133
121
|
writeJson(OptionHolder.keyholderFilePath, OptionHolder.keyholderMap);
|
|
122
|
+
async function inputSecret({ message, previous }) {
|
|
123
|
+
const stored = previous ?? "";
|
|
124
|
+
const value = await password({
|
|
125
|
+
message: stored ? `${message}\nLeave blank to keep the stored value.` : message,
|
|
126
|
+
mask: true,
|
|
127
|
+
validate: (value$1) => Boolean(value$1 || stored) || "A value is required."
|
|
128
|
+
});
|
|
129
|
+
return value || stored;
|
|
130
|
+
}
|
|
134
131
|
}
|
|
135
132
|
async function copyTemplates() {
|
|
136
133
|
for (const dir of OptionHolder.templateDirNames) await copyDirRecursively(dir);
|
|
@@ -143,4 +140,4 @@ async function copyTemplates() {
|
|
|
143
140
|
|
|
144
141
|
//#endregion
|
|
145
142
|
export { init };
|
|
146
|
-
//# sourceMappingURL=init-
|
|
143
|
+
//# sourceMappingURL=init-DwlkVt7G.js.map
|