expo-release-it 0.6.4 → 0.6.6
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/build/{FastlaneOption-DFukw3tx.js → FastlaneOption-CxjO9q-w.js} +2 -2
- package/build/{FastlaneOption-DFukw3tx.js.map → FastlaneOption-CxjO9q-w.js.map} +1 -1
- package/build/FileUtil-Dbvp87_g.js.map +1 -1
- package/build/{InqueryInputs-D7SBtNYa.js → InqueryInputs-hizV8u_U.js} +2 -2
- package/build/InqueryInputs-hizV8u_U.js.map +1 -0
- package/build/{MetadataSyncUtil-CEVDtDKU.js → MetadataSyncUtil-BbrQb4Bc.js} +2 -2
- package/build/MetadataSyncUtil-BbrQb4Bc.js.map +1 -0
- package/build/{OptionHolder-e-Xr3Bz7.js → OptionHolder-CJ5tzHpp.js} +33 -27
- package/build/OptionHolder-CJ5tzHpp.js.map +1 -0
- package/build/{VersionUtil-D-pqgp7e.js → VersionUtil-BPRjtPK_.js} +2 -2
- package/build/VersionUtil-BPRjtPK_.js.map +1 -0
- package/build/{build-mrbmjpTj.js → build-I9mcpo6x.js} +7 -7
- package/build/build-I9mcpo6x.js.map +1 -0
- package/build/{bump-BSFUo4Lw.js → bump-BBGyihtk.js} +6 -6
- package/build/bump-BBGyihtk.js.map +1 -0
- package/build/command/build.js +13 -13
- package/build/command/bump.js +7 -7
- package/build/command/init.js +7 -7
- package/build/command/pull.js +13 -13
- package/build/command/submit.js +13 -13
- package/build/command/upload.js +13 -13
- package/build/{generateAppStoreConnectApiKeyFile-CWW5uiwQ.js → generateAppStoreConnectApiKeyFile-DeuJUndI.js} +2 -2
- package/build/{generateAppStoreConnectApiKeyFile-CWW5uiwQ.js.map → generateAppStoreConnectApiKeyFile-DeuJUndI.js.map} +1 -1
- package/build/{hydrateKeyholderFileValues-DGhfFdMP.js → hydrateKeyholderFileValues-BKnI9nbx.js} +2 -2
- package/build/{hydrateKeyholderFileValues-DGhfFdMP.js.map → hydrateKeyholderFileValues-BKnI9nbx.js.map} +1 -1
- package/build/index.js +19 -19
- package/build/index.js.map +1 -1
- package/build/{init-cpcJN2Kq.js → init-Cce02h7G.js} +7 -9
- package/build/init-Cce02h7G.js.map +1 -0
- package/build/{injectTemplatePlaceHolders-zAbDtdQ3.js → injectTemplatePlaceHolders-BzxCkQrW.js} +2 -2
- package/build/{injectTemplatePlaceHolders-zAbDtdQ3.js.map → injectTemplatePlaceHolders-BzxCkQrW.js.map} +1 -1
- package/build/{parseConfigFile-DPW8ByX1.js → parseConfigFile-Bv50df4o.js} +2 -2
- package/build/parseConfigFile-Bv50df4o.js.map +1 -0
- package/build/{prepareAndroid-DvpyJp29.js → prepareAndroid-bUMPHe4p.js} +6 -6
- package/build/{prepareAndroid-DvpyJp29.js.map → prepareAndroid-bUMPHe4p.js.map} +1 -1
- package/build/{prepareIos-CPEUN3NP.js → prepareIos-D1ar2VGf.js} +4 -4
- package/build/{prepareIos-CPEUN3NP.js.map → prepareIos-D1ar2VGf.js.map} +1 -1
- package/build/{pull-CozZb8WP.js → pull-CVuxaHAJ.js} +8 -8
- package/build/{pull-CozZb8WP.js.map → pull-CVuxaHAJ.js.map} +1 -1
- package/build/replaceStringIfNotContain-BncPMRZq.js +10 -0
- package/build/replaceStringIfNotContain-BncPMRZq.js.map +1 -0
- package/build/{setup-B5f8yFb5.js → setup-BhGhMcG5.js} +5 -5
- package/build/{setup-B5f8yFb5.js.map → setup-BhGhMcG5.js.map} +1 -1
- package/build/{submit-B4SQw15M.js → submit-BQ3IEiKv.js} +7 -7
- package/build/submit-BQ3IEiKv.js.map +1 -0
- package/build/{upload-Cqb45MFF.js → upload-DJXVLkT_.js} +7 -7
- package/build/upload-DJXVLkT_.js.map +1 -0
- package/build/util/FastlaneOption.js +2 -2
- package/build/util/MetadataSyncUtil.js +2 -2
- package/build/util/OptionHolder.js +1 -1
- package/build/util/generateAppStoreConnectApiKeyFile.js +2 -2
- package/build/util/injectTemplatePlaceHolders.js +2 -2
- package/build/util/input/InqueryInputs.js +2 -2
- package/build/util/parseConfigFile.js +2 -2
- package/build/util/replaceStringIfNotContain.d.ts +1 -1
- package/build/util/replaceStringIfNotContain.js +1 -1
- package/build/util/setup/VersionUtil.js +2 -2
- package/build/util/setup/hydrateKeyholderFileValues.js +2 -2
- package/build/util/setup/prepareAndroid.js +5 -5
- package/build/util/setup/prepareIos.js +4 -4
- package/build/util/setup/setup.js +5 -5
- package/package.json +27 -21
- package/build/InqueryInputs-D7SBtNYa.js.map +0 -1
- package/build/MetadataSyncUtil-CEVDtDKU.js.map +0 -1
- package/build/OptionHolder-e-Xr3Bz7.js.map +0 -1
- package/build/VersionUtil-D-pqgp7e.js.map +0 -1
- package/build/build-mrbmjpTj.js.map +0 -1
- package/build/bump-BSFUo4Lw.js.map +0 -1
- package/build/init-cpcJN2Kq.js.map +0 -1
- package/build/parseConfigFile-DPW8ByX1.js.map +0 -1
- package/build/replaceStringIfNotContain-CgZ460_D.js +0 -9
- package/build/replaceStringIfNotContain-CgZ460_D.js.map +0 -1
- package/build/submit-B4SQw15M.js.map +0 -1
- package/build/upload-Cqb45MFF.js.map +0 -1
package/build/index.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import "./calculateElapsed-DORWymX3.js";
|
|
2
2
|
import "./EnvUtil-C6QbCIoV.js";
|
|
3
3
|
import "./FileUtil-Dbvp87_g.js";
|
|
4
|
-
import { OptionHolder } from "./OptionHolder-
|
|
5
|
-
import "./FastlaneOption-
|
|
6
|
-
import "./InqueryInputs-
|
|
4
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
5
|
+
import "./FastlaneOption-CxjO9q-w.js";
|
|
6
|
+
import "./InqueryInputs-hizV8u_U.js";
|
|
7
7
|
import { logger } from "./logger-DvQ7ScMQ.js";
|
|
8
8
|
import "./execShellScript-Bd5xbFX5.js";
|
|
9
9
|
import "./iterateAllFiles-CcRtjpos.js";
|
|
10
|
-
import "./injectTemplatePlaceHolders-
|
|
11
|
-
import "./MetadataSyncUtil-
|
|
12
|
-
import "./replaceStringIfNotContain-
|
|
10
|
+
import "./injectTemplatePlaceHolders-BzxCkQrW.js";
|
|
11
|
+
import "./MetadataSyncUtil-BbrQb4Bc.js";
|
|
12
|
+
import "./replaceStringIfNotContain-BncPMRZq.js";
|
|
13
13
|
import "./spinner-BVmbE9I_.js";
|
|
14
|
-
import "./prepareAndroid-
|
|
15
|
-
import "./prepareIos-
|
|
16
|
-
import "./parseConfigFile-
|
|
17
|
-
import "./hydrateKeyholderFileValues-
|
|
14
|
+
import "./prepareAndroid-bUMPHe4p.js";
|
|
15
|
+
import "./prepareIos-D1ar2VGf.js";
|
|
16
|
+
import "./parseConfigFile-Bv50df4o.js";
|
|
17
|
+
import "./hydrateKeyholderFileValues-BKnI9nbx.js";
|
|
18
18
|
import { throwError } from "./throwError-bsy4sijK.js";
|
|
19
|
-
import "./VersionUtil-
|
|
20
|
-
import "./setup-
|
|
21
|
-
import { build } from "./build-
|
|
22
|
-
import { bump } from "./bump-
|
|
23
|
-
import { init } from "./init-
|
|
24
|
-
import "./generateAppStoreConnectApiKeyFile-
|
|
25
|
-
import { pull } from "./pull-
|
|
26
|
-
import { submit } from "./submit-
|
|
27
|
-
import { upload } from "./upload-
|
|
19
|
+
import "./VersionUtil-BPRjtPK_.js";
|
|
20
|
+
import "./setup-BhGhMcG5.js";
|
|
21
|
+
import { build } from "./build-I9mcpo6x.js";
|
|
22
|
+
import { bump } from "./bump-BBGyihtk.js";
|
|
23
|
+
import { init } from "./init-Cce02h7G.js";
|
|
24
|
+
import "./generateAppStoreConnectApiKeyFile-DeuJUndI.js";
|
|
25
|
+
import { pull } from "./pull-CVuxaHAJ.js";
|
|
26
|
+
import { submit } from "./submit-BQ3IEiKv.js";
|
|
27
|
+
import { upload } from "./upload-DJXVLkT_.js";
|
|
28
28
|
import { Command, Option } from "commander";
|
|
29
29
|
import { ExecaError } from "execa";
|
|
30
30
|
|
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';\
|
|
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(`ExecaError: command: ${e.escapedCommand}`);\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,kBAAkB,CAC9B,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,OAAO,uBAAuB,EAAE,eAAe,EAAE;AACxD,UAAO,MAAM,EAAE,QAAQ;AACvB,WAAQ,KAAK,EAAE,YAAY,EAAE;EAC9B,MACC,aAAY,kBAAkB,EAAE,EAAE;CAErC;AACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { copy, join, writeJson } from "./FileUtil-Dbvp87_g.js";
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
3
|
-
import { constructInquirerFormattedMessage } from "./InqueryInputs-
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { constructInquirerFormattedMessage } from "./InqueryInputs-hizV8u_U.js";
|
|
4
4
|
import { logger } from "./logger-DvQ7ScMQ.js";
|
|
5
|
-
import { setup } from "./setup-
|
|
5
|
+
import { setup } from "./setup-BhGhMcG5.js";
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
import { input } from "@inquirer/prompts";
|
|
8
8
|
|
|
@@ -19,8 +19,7 @@ async function promptInputs() {
|
|
|
19
19
|
OptionHolder.keyholderMap.ios_app_identifier = await input({
|
|
20
20
|
message: constructInquirerFormattedMessage({
|
|
21
21
|
name: "iOS Bundle Identifier",
|
|
22
|
-
explanation:
|
|
23
|
-
This means 'CFBundleIdentifier' in info.plist and 'ios.bundleIdentifier' in expo app config`,
|
|
22
|
+
explanation: "The bundle identifier for your iOS standalone app. You make it up, but it needs to be unique on the App Store.\nThis means 'CFBundleIdentifier' in info.plist and 'ios.bundleIdentifier' in expo app config",
|
|
24
23
|
example: "com.companyname.appname",
|
|
25
24
|
referUrl: "https://docs.expo.dev/versions/latest/config/app/#bundleidentifier"
|
|
26
25
|
}),
|
|
@@ -50,7 +49,7 @@ This means 'CFBundleIdentifier' in info.plist and 'ios.bundleIdentifier' in expo
|
|
|
50
49
|
OptionHolder.keyholderMap.ios_match_password = await input({
|
|
51
50
|
message: constructInquirerFormattedMessage({
|
|
52
51
|
name: "iOS Fastlane Match Passphrase",
|
|
53
|
-
explanation:
|
|
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.",
|
|
54
53
|
example: "yourpassphrase",
|
|
55
54
|
referUrl: "https://docs.fastlane.tools/actions/match/"
|
|
56
55
|
}),
|
|
@@ -82,8 +81,7 @@ App Store Connect API Key can be issued in ${chalk.underline.blue("https://appst
|
|
|
82
81
|
OptionHolder.keyholderMap.ios_xcode_project_target = await input({
|
|
83
82
|
message: constructInquirerFormattedMessage({
|
|
84
83
|
name: "iOS App Target Name",
|
|
85
|
-
explanation:
|
|
86
|
-
Usually, this is equivalent to {{name}}.xcodeproj in your ios directory`,
|
|
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",
|
|
87
85
|
example: "app"
|
|
88
86
|
}),
|
|
89
87
|
required: true,
|
|
@@ -145,4 +143,4 @@ async function copyTemplates() {
|
|
|
145
143
|
|
|
146
144
|
//#endregion
|
|
147
145
|
export { init };
|
|
148
|
-
//# sourceMappingURL=init-
|
|
146
|
+
//# sourceMappingURL=init-Cce02h7G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-Cce02h7G.js","names":["dir: string"],"sources":["../src/command/init.ts"],"sourcesContent":["import { input } from '@inquirer/prompts';\nimport chalk from 'chalk';\n\nimport { copy, join, writeJson } from '../util/FileUtil';\nimport { constructInquirerFormattedMessage } from '../util/input/InqueryInputs';\nimport { logger } from '../util/logger';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { setup } from '../util/setup/setup';\n\nexport async function init({ options }: { options: any }) {\n Object.assign(OptionHolder.input, options);\n\n logger.info(`${chalk.inverse('expo-release-it')} Initialization Get Started`);\n\n await setup();\n await promptInputs();\n await copyTemplates();\n\n logger.success(\n `${chalk.inverse('expo-release-it')} Initialization Done. Check out generated 'expo-release-it' directory.`,\n );\n}\n\nasync function promptInputs() {\n /* ios */\n OptionHolder.keyholderMap.ios_app_identifier = await input({\n message: constructInquirerFormattedMessage({\n name: 'iOS Bundle Identifier',\n explanation:\n \"The bundle identifier for your iOS standalone app. You make it up, but it needs to be unique on the App Store.\\nThis means 'CFBundleIdentifier' in info.plist and 'ios.bundleIdentifier' in expo app config\",\n example: 'com.companyname.appname',\n referUrl: 'https://docs.expo.dev/versions/latest/config/app/#bundleidentifier',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_app_identifier,\n });\n\n OptionHolder.keyholderMap.ios_developer_team_id = await input({\n message: constructInquirerFormattedMessage({\n name: 'IOS Developer Team Id',\n explanation: 'A unique alphanumeric string that identifies your Apple Developer Team',\n example: '8A51ABC4H7',\n referUrl: 'https://developer.apple.com/account',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_developer_team_id,\n });\n\n OptionHolder.keyholderMap.ios_match_git_url = await input({\n message: constructInquirerFormattedMessage({\n name: 'iOS Fastlane Match Github URL',\n explanation:\n 'The URL of the private Git repository where code signing certificates and profiles are stored for Fastlane Match.',\n example: 'https://github.com/yourname/your-certificates-repo.git',\n referUrl: 'https://docs.fastlane.tools/actions/match/',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_match_git_url,\n });\n\n OptionHolder.keyholderMap.ios_match_password = await input({\n message: constructInquirerFormattedMessage({\n name: 'iOS Fastlane Match Passphrase',\n explanation:\n \"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.\",\n example: 'yourpassphrase',\n referUrl: 'https://docs.fastlane.tools/actions/match/',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_match_password,\n });\n\n OptionHolder.keyholderMap.ios_app_store_connect_api_key_id = await input({\n message: constructInquirerFormattedMessage({\n name: 'iOS App Store Connect API Key ID',\n explanation: `ID of App Store Connect API key, used for authentication with Apple’s API.\nApp Store Connect API Key can be issued in ${chalk.underline.blue('https://appstoreconnect.apple.com/access/integrations/api')}`,\n example: '1A2BC3DE4F',\n referUrl: 'https://appstoreconnect.apple.com/access/integrations/api',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_app_store_connect_api_key_id,\n });\n\n OptionHolder.keyholderMap.ios_app_store_connect_api_key_issuer_id = await input({\n message: constructInquirerFormattedMessage({\n name: 'iOS App Store Connect API Key Issuer ID',\n explanation: `Identifies the issuer who created the authentication token.\nApp Store Connect API Key can be issued in ${chalk.underline.blue('https://appstoreconnect.apple.com/access/integrations/api')}`,\n example: 'abcd1234-5678-90ef-ghij-1234567890kl',\n referUrl: 'https://appstoreconnect.apple.com/access/integrations/api',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_app_store_connect_api_key_issuer_id,\n });\n\n OptionHolder.keyholderMap.ios_xcode_project_target = await input({\n message: constructInquirerFormattedMessage({\n name: 'iOS App Target Name',\n explanation:\n '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',\n example: 'app',\n }),\n required: true,\n default: OptionHolder.keyholderMap.ios_xcode_project_target || 'app',\n });\n\n /* android */\n OptionHolder.keyholderMap.android_package_name = await input({\n message: constructInquirerFormattedMessage({\n name: 'Android Package Name',\n explanation:\n 'The package name for your Android standalone app. You make it up, but it needs to be unique on the Play Store.',\n example: 'com.companyname.appname',\n referUrl: 'https://docs.expo.dev/versions/latest/config/app/#package',\n }),\n required: true,\n default: OptionHolder.keyholderMap.android_package_name,\n });\n OptionHolder.keyholderMap.android_keystore_store_password = await input({\n message: constructInquirerFormattedMessage({\n name: 'Android Keystore Store Password',\n explanation: `Storage password used in android release keystore\nYou can issue your android release keystore following this guide: ${chalk.underline.blue('https://developer.android.com/studio/publish/app-signing.html#generate-key')}\nOr, you can do same thing with CLI: ${chalk.underline.blue('https://gist.github.com/henriquemenezes/70feb8fff20a19a65346e48786bedb8f')}`,\n referUrl: 'https://developer.android.com/studio/publish/app-signing.html#generate-key',\n }),\n required: true,\n default: OptionHolder.keyholderMap.android_keystore_store_password,\n });\n OptionHolder.keyholderMap.android_keystore_key_alias = await input({\n message: constructInquirerFormattedMessage({\n name: 'Android Keystore Key Alias',\n explanation: `Key alias used in android release keystore\nYou can issue your android release keystore following this guide: ${chalk.underline.blue('https://developer.android.com/studio/publish/app-signing.html#generate-key')}\nOr, you can do same thing with CLI: ${chalk.underline.blue('https://gist.github.com/henriquemenezes/70feb8fff20a19a65346e48786bedb8f')}`,\n referUrl: 'https://developer.android.com/studio/publish/app-signing.html#generate-key',\n }),\n required: true,\n default: OptionHolder.keyholderMap.android_keystore_key_alias,\n });\n OptionHolder.keyholderMap.android_keystore_key_password = await input({\n message: constructInquirerFormattedMessage({\n name: 'Android Keystore Key Password',\n explanation: `Key password used in android release keystore\nYou can issue your android release keystore following this guide: ${chalk.underline.blue('https://developer.android.com/studio/publish/app-signing.html#generate-key')}\nOr, you can do same thing with CLI: ${chalk.underline.blue('https://gist.github.com/henriquemenezes/70feb8fff20a19a65346e48786bedb8f')}`,\n referUrl: 'https://developer.android.com/studio/publish/app-signing.html#generate-key',\n }),\n required: true,\n default: OptionHolder.keyholderMap.android_keystore_key_password,\n });\n\n writeJson(OptionHolder.keyholderFilePath, OptionHolder.keyholderMap);\n}\n\nasync function copyTemplates() {\n for (const dir of OptionHolder.templateDirNames) {\n await copyDirRecursively(dir);\n }\n\n async function copyDirRecursively(dir: string) {\n const sourceDirPath = join(OptionHolder.cli.templateDir, dir);\n const destDirPath = join(OptionHolder.resourcesDir, dir);\n // don't overwirte key\n copy(sourceDirPath, destDirPath, { overwrite: dir !== 'key' });\n }\n}\n"],"mappings":";;;;;;;;;AASA,eAAsB,KAAK,EAAE,SAA2B,EAAE;AACxD,QAAO,OAAO,aAAa,OAAO,QAAQ;AAE1C,QAAO,MAAM,EAAE,MAAM,QAAQ,kBAAkB,CAAC,6BAA6B;AAE7E,OAAM,OAAO;AACb,OAAM,cAAc;AACpB,OAAM,eAAe;AAErB,QAAO,SACJ,EAAE,MAAM,QAAQ,kBAAkB,CAAC,wEACrC;AACF;AAED,eAAe,eAAe;AAE5B,cAAa,aAAa,qBAAqB,MAAM,MAAM;EACzD,SAAS,kCAAkC;GACzC,MAAM;GACN,aACE;GACF,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,cAAa,aAAa,wBAAwB,MAAM,MAAM;EAC5D,SAAS,kCAAkC;GACzC,MAAM;GACN,aAAa;GACb,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,cAAa,aAAa,oBAAoB,MAAM,MAAM;EACxD,SAAS,kCAAkC;GACzC,MAAM;GACN,aACE;GACF,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,cAAa,aAAa,qBAAqB,MAAM,MAAM;EACzD,SAAS,kCAAkC;GACzC,MAAM;GACN,aACE;GACF,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,cAAa,aAAa,mCAAmC,MAAM,MAAM;EACvE,SAAS,kCAAkC;GACzC,MAAM;GACN,cAAc;6CACyB,MAAM,UAAU,KAAK,4DAA4D,CAAC;GACzH,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,cAAa,aAAa,0CAA0C,MAAM,MAAM;EAC9E,SAAS,kCAAkC;GACzC,MAAM;GACN,cAAc;6CACyB,MAAM,UAAU,KAAK,4DAA4D,CAAC;GACzH,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,cAAa,aAAa,2BAA2B,MAAM,MAAM;EAC/D,SAAS,kCAAkC;GACzC,MAAM;GACN,aACE;GACF,SAAS;EACV,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa,4BAA4B;CAChE,EAAC;AAGF,cAAa,aAAa,uBAAuB,MAAM,MAAM;EAC3D,SAAS,kCAAkC;GACzC,MAAM;GACN,aACE;GACF,SAAS;GACT,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AACF,cAAa,aAAa,kCAAkC,MAAM,MAAM;EACtE,SAAS,kCAAkC;GACzC,MAAM;GACN,cAAc;oEACgD,MAAM,UAAU,KAAK,6EAA6E,CAAC;sCACjI,MAAM,UAAU,KAAK,2EAA2E,CAAC;GACjI,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AACF,cAAa,aAAa,6BAA6B,MAAM,MAAM;EACjE,SAAS,kCAAkC;GACzC,MAAM;GACN,cAAc;oEACgD,MAAM,UAAU,KAAK,6EAA6E,CAAC;sCACjI,MAAM,UAAU,KAAK,2EAA2E,CAAC;GACjI,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AACF,cAAa,aAAa,gCAAgC,MAAM,MAAM;EACpE,SAAS,kCAAkC;GACzC,MAAM;GACN,cAAc;oEACgD,MAAM,UAAU,KAAK,6EAA6E,CAAC;sCACjI,MAAM,UAAU,KAAK,2EAA2E,CAAC;GACjI,UAAU;EACX,EAAC;EACF,UAAU;EACV,SAAS,aAAa,aAAa;CACpC,EAAC;AAEF,WAAU,aAAa,mBAAmB,aAAa,aAAa;AACrE;AAED,eAAe,gBAAgB;AAC7B,MAAK,MAAM,OAAO,aAAa,iBAC7B,OAAM,mBAAmB,IAAI;CAG/B,eAAe,mBAAmBA,KAAa;EAC7C,MAAM,gBAAgB,KAAK,aAAa,IAAI,aAAa,IAAI;EAC7D,MAAM,cAAc,KAAK,aAAa,cAAc,IAAI;AAExD,OAAK,eAAe,aAAa,EAAE,WAAW,QAAQ,MAAO,EAAC;CAC/D;AACF"}
|
package/build/{injectTemplatePlaceHolders-zAbDtdQ3.js → injectTemplatePlaceHolders-BzxCkQrW.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { read, write } from "./FileUtil-Dbvp87_g.js";
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import { iterateAllFiles } from "./iterateAllFiles-CcRtjpos.js";
|
|
4
4
|
|
|
5
5
|
//#region src/util/injectTemplatePlaceHolders.ts
|
|
@@ -13,4 +13,4 @@ async function injectTemplatePlaceHolders(root) {
|
|
|
13
13
|
|
|
14
14
|
//#endregion
|
|
15
15
|
export { injectTemplatePlaceHolders };
|
|
16
|
-
//# sourceMappingURL=injectTemplatePlaceHolders-
|
|
16
|
+
//# sourceMappingURL=injectTemplatePlaceHolders-BzxCkQrW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectTemplatePlaceHolders-
|
|
1
|
+
{"version":3,"file":"injectTemplatePlaceHolders-BzxCkQrW.js","names":["root: string","filePath: string"],"sources":["../src/util/injectTemplatePlaceHolders.ts"],"sourcesContent":["import { read, write } from './FileUtil';\nimport { iterateAllFiles } from './iterateAllFiles';\nimport { OptionHolder } from './OptionHolder';\n\nexport async function injectTemplatePlaceHolders(root: string) {\n await iterateAllFiles(root, async (filePath: string) => {\n let content = read(filePath);\n for (const [key, value] of Object.entries(OptionHolder.keyholderMap)) {\n content = content.replaceAll(`{{${key}}}`, value);\n }\n write(filePath, content);\n });\n}\n"],"mappings":";;;;;AAIA,eAAsB,2BAA2BA,MAAc;AAC7D,OAAM,gBAAgB,MAAM,OAAOC,aAAqB;EACtD,IAAI,UAAU,KAAK,SAAS;AAC5B,OAAK,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,QAAQ,aAAa,aAAa,CAClE,WAAU,QAAQ,YAAY,IAAI,IAAI,KAAK,MAAM;AAEnD,QAAM,UAAU,QAAQ;CACzB,EAAC;AACH"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { exist, join, readJsonSlow } from "./FileUtil-Dbvp87_g.js";
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import { is } from "@mj-studio/js-util";
|
|
4
4
|
|
|
5
5
|
//#region src/util/parseConfigFile.ts
|
|
@@ -26,4 +26,4 @@ function assignIfValueIsValidAndNotSetAlready(object, key, value) {
|
|
|
26
26
|
|
|
27
27
|
//#endregion
|
|
28
28
|
export { parseConfigFile };
|
|
29
|
-
//# sourceMappingURL=parseConfigFile-
|
|
29
|
+
//# sourceMappingURL=parseConfigFile-Bv50df4o.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseConfigFile-Bv50df4o.js","names":["object: Partial<T>","key: K","value: R"],"sources":["../src/util/parseConfigFile.ts"],"sourcesContent":["import { is } from '@mj-studio/js-util';\n\nimport type { ExpoReleaseItConfiguration } from '../type/ExpoReleaseItConfiguration';\nimport { exist, join, readJsonSlow } from './FileUtil';\nimport { OptionHolder } from './OptionHolder';\n\nexport async function parseConfigFile() {\n const candidates = [\n join(OptionHolder.resourcesDir, 'expo-release-it.config.json'),\n join(OptionHolder.projectDir, 'expo-release-it.config.json'),\n ];\n if (OptionHolder.input.config) {\n candidates.unshift(OptionHolder.input.config);\n }\n\n const validConfigFilePath = candidates.find(\n (candidate) => exist(candidate) && is.object(readJsonSlow(candidate)),\n );\n\n if (!validConfigFilePath) return;\n\n const config = readJsonSlow(validConfigFilePath) as ExpoReleaseItConfiguration;\n\n assignIfValueIsValidAndNotSetAlready(\n OptionHolder.input,\n 'semverIncrement',\n config.bump?.increment,\n );\n assignIfValueIsValidAndNotSetAlready(\n OptionHolder.input,\n 'androidOutput',\n config.build?.androidBuildOutput ?? config.upload?.androidBuildOutput,\n );\n assignIfValueIsValidAndNotSetAlready(OptionHolder.input, 'pod', config.build?.iosPodInstall);\n assignIfValueIsValidAndNotSetAlready(\n OptionHolder.input,\n 'uploadMetadata',\n config.upload?.uploadMetadata ?? config.submit?.uploadMetadata,\n );\n assignIfValueIsValidAndNotSetAlready(\n OptionHolder.input,\n 'uploadScreenshot',\n config.upload?.uploadScreenshot ?? config.submit?.uploadScreenshot,\n );\n assignIfValueIsValidAndNotSetAlready(OptionHolder.input.git, 'commit', config.bump?.git?.commit);\n assignIfValueIsValidAndNotSetAlready(\n OptionHolder.input.git,\n 'commitMessage',\n config.bump?.git?.commitMessage,\n );\n assignIfValueIsValidAndNotSetAlready(OptionHolder.input.git, 'tag', config.bump?.git?.tag);\n assignIfValueIsValidAndNotSetAlready(\n OptionHolder.input.git,\n 'tagName',\n config.bump?.git?.tagName,\n );\n assignIfValueIsValidAndNotSetAlready(OptionHolder.input.git, 'push', config.bump?.git?.push);\n}\n\n// make sure config file options doesn't overwrite passed options from cli directly.\nfunction assignIfValueIsValidAndNotSetAlready<R, T extends Record<K, R>, K extends keyof T>(\n object: Partial<T>,\n key: K,\n value: R,\n) {\n if (!object[key] && !(value === null || value === undefined)) {\n object[key] = value as any;\n }\n}\n"],"mappings":";;;;;AAMA,eAAsB,kBAAkB;CACtC,MAAM,aAAa,CACjB,KAAK,aAAa,cAAc,8BAA8B,EAC9D,KAAK,aAAa,YAAY,8BAA8B,AAC7D;AACD,KAAI,aAAa,MAAM,OACrB,YAAW,QAAQ,aAAa,MAAM,OAAO;CAG/C,MAAM,sBAAsB,WAAW,KACrC,CAAC,cAAc,MAAM,UAAU,IAAI,GAAG,OAAO,aAAa,UAAU,CAAC,CACtE;AAED,MAAK,oBAAqB;CAE1B,MAAM,SAAS,aAAa,oBAAoB;AAEhD,sCACE,aAAa,OACb,mBACA,OAAO,MAAM,UACd;AACD,sCACE,aAAa,OACb,iBACA,OAAO,OAAO,sBAAsB,OAAO,QAAQ,mBACpD;AACD,sCAAqC,aAAa,OAAO,OAAO,OAAO,OAAO,cAAc;AAC5F,sCACE,aAAa,OACb,kBACA,OAAO,QAAQ,kBAAkB,OAAO,QAAQ,eACjD;AACD,sCACE,aAAa,OACb,oBACA,OAAO,QAAQ,oBAAoB,OAAO,QAAQ,iBACnD;AACD,sCAAqC,aAAa,MAAM,KAAK,UAAU,OAAO,MAAM,KAAK,OAAO;AAChG,sCACE,aAAa,MAAM,KACnB,iBACA,OAAO,MAAM,KAAK,cACnB;AACD,sCAAqC,aAAa,MAAM,KAAK,OAAO,OAAO,MAAM,KAAK,IAAI;AAC1F,sCACE,aAAa,MAAM,KACnB,WACA,OAAO,MAAM,KAAK,QACnB;AACD,sCAAqC,aAAa,MAAM,KAAK,QAAQ,OAAO,MAAM,KAAK,KAAK;AAC7F;AAGD,SAAS,qCACPA,QACAC,KACAC,OACA;AACA,MAAK,OAAO,UAAU,UAAU,QAAQ,kBACtC,QAAO,OAAO;AAEjB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { copy, iterateDir, read, relativePath, remove, resolve, write } from "./FileUtil-Dbvp87_g.js";
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import { logger } from "./logger-DvQ7ScMQ.js";
|
|
4
4
|
import { exe, yesShell } from "./execShellScript-Bd5xbFX5.js";
|
|
5
|
-
import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-
|
|
6
|
-
import { copyAndroidMetadata } from "./MetadataSyncUtil-
|
|
7
|
-
import { replaceStringIfNotContain } from "./replaceStringIfNotContain-
|
|
5
|
+
import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-BzxCkQrW.js";
|
|
6
|
+
import { copyAndroidMetadata } from "./MetadataSyncUtil-BbrQb4Bc.js";
|
|
7
|
+
import { replaceStringIfNotContain } from "./replaceStringIfNotContain-BncPMRZq.js";
|
|
8
8
|
import { spinner } from "./spinner-BVmbE9I_.js";
|
|
9
9
|
|
|
10
10
|
//#region src/util/setup/prepareAndroid.ts
|
|
@@ -44,10 +44,10 @@ signingConfigs {
|
|
|
44
44
|
}
|
|
45
45
|
`.trim();
|
|
46
46
|
let content = read(buildGradlePath);
|
|
47
|
-
content = replaceStringIfNotContain(content, /signingConfigs.*?{.*?debug.*?{.*?}.*?}/
|
|
47
|
+
content = replaceStringIfNotContain(content, /signingConfigs.*?{.*?debug.*?{.*?}.*?}/s, injectedNewDebugSigningConfig, false);
|
|
48
48
|
write(buildGradlePath, content);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
//#endregion
|
|
52
52
|
export { prepareAndroid };
|
|
53
|
-
//# sourceMappingURL=prepareAndroid-
|
|
53
|
+
//# sourceMappingURL=prepareAndroid-bUMPHe4p.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareAndroid-
|
|
1
|
+
{"version":3,"file":"prepareAndroid-bUMPHe4p.js","names":["destDir: string"],"sources":["../src/util/setup/prepareAndroid.ts"],"sourcesContent":["import { copy, iterateDir, read, relativePath, remove, resolve, write } from '../FileUtil';\nimport { injectTemplatePlaceHolders } from '../injectTemplatePlaceHolders';\nimport { logger } from '../logger';\nimport { copyAndroidMetadata } from '../MetadataSyncUtil';\nimport { OptionHolder } from '../OptionHolder';\nimport { replaceStringIfNotContain } from '../replaceStringIfNotContain';\nimport { spinner } from '../spinner';\nimport { exe, yesShell } from './execShellScript';\n\nexport async function prepareAndroid() {\n const srcDir = resolve(OptionHolder.cli.templateDir, 'android');\n const destDir = resolve(OptionHolder.projectDir, 'android');\n\n await yesShell('expo', ['prebuild', '-p', 'android', '--no-install'], {\n cwd: OptionHolder.projectDir,\n });\n logger.success('Expo Prebuild - Done');\n\n await spinner(\n 'Inject Templates',\n iterateDir(srcDir, async (file) => {\n const filePath = resolve(srcDir, file);\n remove(resolve(destDir, file));\n copy(filePath, resolve(destDir, file));\n }),\n );\n\n await spinner('Overwrite Android Release Signing Config', replaceAndroidSigningConfig(destDir));\n\n await spinner(\n 'Hydrate template placeholders',\n injectTemplatePlaceHolders(resolve(destDir, 'fastlane')),\n );\n\n await exe('bundle', ['install'], { cwd: destDir });\n logger.success('Bunder Install - Done');\n\n copyAndroidMetadata('native');\n}\n\nasync function replaceAndroidSigningConfig(destDir: string) {\n const buildGradleDirPath = resolve(destDir, 'app');\n const buildGradlePath = resolve(destDir, 'app', 'build.gradle');\n const {\n android_keystore_store_password,\n android_keystore_key_alias,\n android_keystore_key_password,\n } = OptionHolder.keyholderMap;\n\n const injectedNewDebugSigningConfig = `\nsigningConfigs {\n debug {\n storeFile file('${relativePath(buildGradleDirPath, resolve(OptionHolder.resourcesDir, 'key', 'android_release.keystore'))}')\n storePassword '${android_keystore_store_password}'\n keyAlias '${android_keystore_key_alias}'\n keyPassword '${android_keystore_key_password}'\n }\n }\n`.trim();\n\n let content = read(buildGradlePath);\n\n content = replaceStringIfNotContain(\n content,\n /signingConfigs.*?{.*?debug.*?{.*?}.*?}/s,\n injectedNewDebugSigningConfig,\n false,\n );\n\n write(buildGradlePath, content);\n}\n"],"mappings":";;;;;;;;;;AASA,eAAsB,iBAAiB;CACrC,MAAM,SAAS,QAAQ,aAAa,IAAI,aAAa,UAAU;CAC/D,MAAM,UAAU,QAAQ,aAAa,YAAY,UAAU;AAE3D,OAAM,SAAS,QAAQ;EAAC;EAAY;EAAM;EAAW;CAAe,GAAE,EACpE,KAAK,aAAa,WACnB,EAAC;AACF,QAAO,QAAQ,uBAAuB;AAEtC,OAAM,QACJ,oBACA,WAAW,QAAQ,OAAO,SAAS;EACjC,MAAM,WAAW,QAAQ,QAAQ,KAAK;AACtC,SAAO,QAAQ,SAAS,KAAK,CAAC;AAC9B,OAAK,UAAU,QAAQ,SAAS,KAAK,CAAC;CACvC,EAAC,CACH;AAED,OAAM,QAAQ,4CAA4C,4BAA4B,QAAQ,CAAC;AAE/F,OAAM,QACJ,iCACA,2BAA2B,QAAQ,SAAS,WAAW,CAAC,CACzD;AAED,OAAM,IAAI,UAAU,CAAC,SAAU,GAAE,EAAE,KAAK,QAAS,EAAC;AAClD,QAAO,QAAQ,wBAAwB;AAEvC,qBAAoB,SAAS;AAC9B;AAED,eAAe,4BAA4BA,SAAiB;CAC1D,MAAM,qBAAqB,QAAQ,SAAS,MAAM;CAClD,MAAM,kBAAkB,QAAQ,SAAS,OAAO,eAAe;CAC/D,MAAM,EACJ,iCACA,4BACA,+BACD,GAAG,aAAa;CAEjB,MAAM,gCAAgC,CAAC;;;0BAGf,aAAa,oBAAoB,QAAQ,aAAa,cAAc,OAAO,2BAA2B,CAAC,CAAC;yBACzG,gCAAgC;oBACrC,2BAA2B;uBACxB,8BAA8B;;;EAGnD,MAAM;CAEN,IAAI,UAAU,KAAK,gBAAgB;AAEnC,WAAU,0BACR,SACA,2CACA,+BACA,MACD;AAED,OAAM,iBAAiB,QAAQ;AAChC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { copy, iterateDir, remove, resolve } from "./FileUtil-Dbvp87_g.js";
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import { logger } from "./logger-DvQ7ScMQ.js";
|
|
4
4
|
import { exe, yesShell } from "./execShellScript-Bd5xbFX5.js";
|
|
5
|
-
import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-
|
|
6
|
-
import { copyIosMetadata } from "./MetadataSyncUtil-
|
|
5
|
+
import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-BzxCkQrW.js";
|
|
6
|
+
import { copyIosMetadata } from "./MetadataSyncUtil-BbrQb4Bc.js";
|
|
7
7
|
import { spinner } from "./spinner-BVmbE9I_.js";
|
|
8
8
|
|
|
9
9
|
//#region src/util/setup/prepareIos.ts
|
|
@@ -30,4 +30,4 @@ async function prepareIos() {
|
|
|
30
30
|
|
|
31
31
|
//#endregion
|
|
32
32
|
export { prepareIos };
|
|
33
|
-
//# sourceMappingURL=prepareIos-
|
|
33
|
+
//# sourceMappingURL=prepareIos-D1ar2VGf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareIos-
|
|
1
|
+
{"version":3,"file":"prepareIos-D1ar2VGf.js","names":[],"sources":["../src/util/setup/prepareIos.ts"],"sourcesContent":["import { copy, iterateDir, remove, resolve } from '../FileUtil';\nimport { injectTemplatePlaceHolders } from '../injectTemplatePlaceHolders';\nimport { logger } from '../logger';\nimport { copyIosMetadata } from '../MetadataSyncUtil';\nimport { OptionHolder } from '../OptionHolder';\nimport { spinner } from '../spinner';\nimport { exe, yesShell } from './execShellScript';\n\nexport async function prepareIos() {\n const srcDir = resolve(OptionHolder.cli.templateDir, 'ios');\n const destDir = resolve(OptionHolder.projectDir, 'ios');\n\n await yesShell('expo', ['prebuild', '-p', 'ios', '--no-install'], {\n cwd: OptionHolder.projectDir,\n });\n logger.success('Expo Prebuild - Done');\n\n await spinner(\n 'Inject templates',\n iterateDir(srcDir, async (file) => {\n const filePath = resolve(srcDir, file);\n remove(resolve(destDir, file));\n copy(filePath, resolve(destDir, file));\n }),\n );\n\n await spinner(\n 'Hydrate template placeholders',\n injectTemplatePlaceHolders(resolve(destDir, 'fastlane')),\n );\n\n await exe('bundle', ['install'], { cwd: destDir });\n logger.success('Bunder Install - Done');\n\n copyIosMetadata('native');\n}\n"],"mappings":";;;;;;;;;AAQA,eAAsB,aAAa;CACjC,MAAM,SAAS,QAAQ,aAAa,IAAI,aAAa,MAAM;CAC3D,MAAM,UAAU,QAAQ,aAAa,YAAY,MAAM;AAEvD,OAAM,SAAS,QAAQ;EAAC;EAAY;EAAM;EAAO;CAAe,GAAE,EAChE,KAAK,aAAa,WACnB,EAAC;AACF,QAAO,QAAQ,uBAAuB;AAEtC,OAAM,QACJ,oBACA,WAAW,QAAQ,OAAO,SAAS;EACjC,MAAM,WAAW,QAAQ,QAAQ,KAAK;AACtC,SAAO,QAAQ,SAAS,KAAK,CAAC;AAC9B,OAAK,UAAU,QAAQ,SAAS,KAAK,CAAC;CACvC,EAAC,CACH;AAED,OAAM,QACJ,iCACA,2BAA2B,QAAQ,SAAS,WAAW,CAAC,CACzD;AAED,OAAM,IAAI,UAAU,CAAC,SAAU,GAAE,EAAE,KAAK,QAAS,EAAC;AAClD,QAAO,QAAQ,wBAAwB;AAEvC,iBAAgB,SAAS;AAC1B"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { join, resolve } from "./FileUtil-Dbvp87_g.js";
|
|
2
|
-
import { OptionHolder } from "./OptionHolder-
|
|
3
|
-
import { InqueryInputs } from "./InqueryInputs-
|
|
2
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { InqueryInputs } from "./InqueryInputs-hizV8u_U.js";
|
|
4
4
|
import { exe } from "./execShellScript-Bd5xbFX5.js";
|
|
5
|
-
import { copyAndroidMetadata, copyIosMetadata } from "./MetadataSyncUtil-
|
|
6
|
-
import { prepareAndroid } from "./prepareAndroid-
|
|
7
|
-
import { prepareIos } from "./prepareIos-
|
|
8
|
-
import { setup } from "./setup-
|
|
9
|
-
import { generateAppStoreConnectApiKeyFile } from "./generateAppStoreConnectApiKeyFile-
|
|
5
|
+
import { copyAndroidMetadata, copyIosMetadata } from "./MetadataSyncUtil-BbrQb4Bc.js";
|
|
6
|
+
import { prepareAndroid } from "./prepareAndroid-bUMPHe4p.js";
|
|
7
|
+
import { prepareIos } from "./prepareIos-D1ar2VGf.js";
|
|
8
|
+
import { setup } from "./setup-BhGhMcG5.js";
|
|
9
|
+
import { generateAppStoreConnectApiKeyFile } from "./generateAppStoreConnectApiKeyFile-DeuJUndI.js";
|
|
10
10
|
|
|
11
11
|
//#region src/command/pull.ts
|
|
12
12
|
async function pull({ options }) {
|
|
@@ -67,4 +67,4 @@ async function pullAndroidMetadata() {
|
|
|
67
67
|
|
|
68
68
|
//#endregion
|
|
69
69
|
export { pull };
|
|
70
|
-
//# sourceMappingURL=pull-
|
|
70
|
+
//# sourceMappingURL=pull-CVuxaHAJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull-
|
|
1
|
+
{"version":3,"file":"pull-CVuxaHAJ.js","names":[],"sources":["../src/command/pull.ts"],"sourcesContent":["import { join, resolve } from '../util/FileUtil';\nimport { generateAppStoreConnectApiKeyFile } from '../util/generateAppStoreConnectApiKeyFile';\nimport { InqueryInputs } from '../util/input/InqueryInputs';\nimport { copyAndroidMetadata, copyIosMetadata } from '../util/MetadataSyncUtil';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { exe } from '../util/setup/execShellScript';\nimport { prepareAndroid } from '../util/setup/prepareAndroid';\nimport { prepareIos } from '../util/setup/prepareIos';\nimport { setup } from '../util/setup/setup';\n\nexport async function pull({ options }: { options: any }) {\n Object.assign(OptionHolder.input, options);\n await setup();\n await promptInputs();\n\n if (OptionHolder.input.platform === 'ios') {\n await pullIosMetadata();\n } else {\n await pullAndroidMetadata();\n }\n}\n\nasync function promptInputs() {\n await InqueryInputs.platform();\n await InqueryInputs.useLiveVersionIos();\n}\n\nasync function pullIosMetadata() {\n await prepareIos();\n const iosDir = join(OptionHolder.projectDir, 'ios');\n const exeEnv = exe({\n cwd: iosDir,\n env: {\n MATCH_PASSWORD: OptionHolder.keyholderMap.ios_match_password,\n },\n });\n\n await exeEnv('bundle', [\n 'exec',\n 'fastlane',\n 'deliver',\n 'download_metadata',\n '-f',\n '--api_key_path',\n generateAppStoreConnectApiKeyFile(),\n ]);\n\n await exeEnv('bundle', [\n 'exec',\n 'fastlane',\n 'deliver',\n 'download_screenshots',\n '-f',\n '--api_key_path',\n generateAppStoreConnectApiKeyFile(),\n '--use_live_version',\n `${OptionHolder.input.useLiveVersionIos}`,\n ]);\n\n copyIosMetadata('resources');\n}\n\nasync function pullAndroidMetadata() {\n await prepareAndroid();\n const androidDir = join(OptionHolder.projectDir, 'android');\n\n await exe(\n 'bundle',\n [\n 'exec',\n 'fastlane',\n 'supply',\n 'init',\n '--json_key',\n resolve(OptionHolder.keyDir, 'android_play_console_service_account.json'),\n '--package_name',\n OptionHolder.keyholderMap.android_package_name,\n ],\n { cwd: androidDir },\n );\n\n copyAndroidMetadata('resouces');\n}\n"],"mappings":";;;;;;;;;;;AAUA,eAAsB,KAAK,EAAE,SAA2B,EAAE;AACxD,QAAO,OAAO,aAAa,OAAO,QAAQ;AAC1C,OAAM,OAAO;AACb,OAAM,cAAc;AAEpB,KAAI,aAAa,MAAM,aAAa,MAClC,OAAM,iBAAiB;KAEvB,OAAM,qBAAqB;AAE9B;AAED,eAAe,eAAe;AAC5B,OAAM,cAAc,UAAU;AAC9B,OAAM,cAAc,mBAAmB;AACxC;AAED,eAAe,kBAAkB;AAC/B,OAAM,YAAY;CAClB,MAAM,SAAS,KAAK,aAAa,YAAY,MAAM;CACnD,MAAM,SAAS,IAAI;EACjB,KAAK;EACL,KAAK,EACH,gBAAgB,aAAa,aAAa,mBAC3C;CACF,EAAC;AAEF,OAAM,OAAO,UAAU;EACrB;EACA;EACA;EACA;EACA;EACA;EACA,mCAAmC;CACpC,EAAC;AAEF,OAAM,OAAO,UAAU;EACrB;EACA;EACA;EACA;EACA;EACA;EACA,mCAAmC;EACnC;GACC,EAAE,aAAa,MAAM,kBAAkB;CACzC,EAAC;AAEF,iBAAgB,YAAY;AAC7B;AAED,eAAe,sBAAsB;AACnC,OAAM,gBAAgB;CACtB,MAAM,aAAa,KAAK,aAAa,YAAY,UAAU;AAE3D,OAAM,IACJ,UACA;EACE;EACA;EACA;EACA;EACA;EACA,QAAQ,aAAa,QAAQ,4CAA4C;EACzE;EACA,aAAa,aAAa;CAC3B,GACD,EAAE,KAAK,WAAY,EACpB;AAED,qBAAoB,WAAW;AAChC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/util/replaceStringIfNotContain.ts
|
|
2
|
+
function replaceStringIfNotContain(content, pattern, modified, isGlobal) {
|
|
3
|
+
if (pattern.test(content) && !content.includes(modified)) if (isGlobal) return content.replaceAll(pattern, modified);
|
|
4
|
+
else return content.replace(pattern, modified);
|
|
5
|
+
return content;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { replaceStringIfNotContain };
|
|
10
|
+
//# sourceMappingURL=replaceStringIfNotContain-BncPMRZq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replaceStringIfNotContain-BncPMRZq.js","names":["content: string","pattern: RegExp","modified: string","isGlobal: boolean"],"sources":["../src/util/replaceStringIfNotContain.ts"],"sourcesContent":["export function replaceStringIfNotContain(\n content: string,\n pattern: RegExp,\n modified: string,\n isGlobal: boolean,\n): string {\n if (pattern.test(content) && !content.includes(modified)) {\n if (isGlobal) {\n return content.replaceAll(pattern, modified);\n } else {\n return content.replace(pattern, modified);\n }\n }\n return content;\n}\n"],"mappings":";AAAA,SAAgB,0BACdA,SACAC,SACAC,UACAC,UACQ;AACR,KAAI,QAAQ,KAAK,QAAQ,KAAK,QAAQ,SAAS,SAAS,CACtD,KAAI,SACF,QAAO,QAAQ,WAAW,SAAS,SAAS;KAE5C,QAAO,QAAQ,QAAQ,SAAS,SAAS;AAG7C,QAAO;AACR"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { isDev } from "./EnvUtil-C6QbCIoV.js";
|
|
2
2
|
import { resolve } from "./FileUtil-Dbvp87_g.js";
|
|
3
|
-
import { OptionHolder } from "./OptionHolder-
|
|
4
|
-
import { parseConfigFile } from "./parseConfigFile-
|
|
5
|
-
import { hydrateKeyholderFileValues } from "./hydrateKeyholderFileValues-
|
|
6
|
-
import { parseBinaryVersions } from "./VersionUtil-
|
|
3
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
4
|
+
import { parseConfigFile } from "./parseConfigFile-Bv50df4o.js";
|
|
5
|
+
import { hydrateKeyholderFileValues } from "./hydrateKeyholderFileValues-BKnI9nbx.js";
|
|
6
|
+
import { parseBinaryVersions } from "./VersionUtil-BPRjtPK_.js";
|
|
7
7
|
|
|
8
8
|
//#region src/util/setup/setup.ts
|
|
9
9
|
async function setup() {
|
|
@@ -22,4 +22,4 @@ async function setupBasicOptions() {
|
|
|
22
22
|
|
|
23
23
|
//#endregion
|
|
24
24
|
export { setup, setupBasicOptions };
|
|
25
|
-
//# sourceMappingURL=setup-
|
|
25
|
+
//# sourceMappingURL=setup-BhGhMcG5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-
|
|
1
|
+
{"version":3,"file":"setup-BhGhMcG5.js","names":[],"sources":["../src/util/setup/setup.ts"],"sourcesContent":["import { isDev } from '../EnvUtil';\nimport { resolve } from '../FileUtil';\nimport { OptionHolder } from '../OptionHolder';\nimport { parseConfigFile } from '../parseConfigFile';\nimport { hydrateKeyholderFileValues } from './hydrateKeyholderFileValues';\nimport { parseBinaryVersions } from './VersionUtil';\n\nexport async function setup() {\n await setupBasicOptions();\n await parseConfigFile();\n await hydrateKeyholderFileValues();\n await parseBinaryVersions();\n}\n\nexport async function setupBasicOptions() {\n OptionHolder.projectDir = isDev ? resolve('example') : resolve('.');\n OptionHolder.resourcesDir = resolve(OptionHolder.projectDir, 'expo-release-it');\n OptionHolder.keyDir = resolve(OptionHolder.resourcesDir, 'key');\n OptionHolder.keyholderFilePath = resolve(OptionHolder.resourcesDir, 'keyholder.json');\n OptionHolder.tempDir = resolve(OptionHolder.resourcesDir, '.temp');\n}\n"],"mappings":";;;;;;;;AAOA,eAAsB,QAAQ;AAC5B,OAAM,mBAAmB;AACzB,OAAM,iBAAiB;AACvB,OAAM,4BAA4B;AAClC,OAAM,qBAAqB;AAC5B;AAED,eAAsB,oBAAoB;AACxC,cAAa,aAAa,QAAQ,QAAQ,UAAU,GAAG,QAAQ,IAAI;AACnE,cAAa,eAAe,QAAQ,aAAa,YAAY,kBAAkB;AAC/E,cAAa,SAAS,QAAQ,aAAa,cAAc,MAAM;AAC/D,cAAa,oBAAoB,QAAQ,aAAa,cAAc,iBAAiB;AACrF,cAAa,UAAU,QAAQ,aAAa,cAAc,QAAQ;AACnE"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { calculateElapsed } from "./calculateElapsed-DORWymX3.js";
|
|
2
2
|
import { remove, resolve } from "./FileUtil-Dbvp87_g.js";
|
|
3
|
-
import { OptionHolder } from "./OptionHolder-
|
|
4
|
-
import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "./FastlaneOption-
|
|
5
|
-
import { InqueryInputs } from "./InqueryInputs-
|
|
3
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
4
|
+
import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "./FastlaneOption-CxjO9q-w.js";
|
|
5
|
+
import { InqueryInputs } from "./InqueryInputs-hizV8u_U.js";
|
|
6
6
|
import { logger } from "./logger-DvQ7ScMQ.js";
|
|
7
7
|
import { exe } from "./execShellScript-Bd5xbFX5.js";
|
|
8
|
-
import { prepareAndroid } from "./prepareAndroid-
|
|
9
|
-
import { prepareIos } from "./prepareIos-
|
|
10
|
-
import { setup } from "./setup-
|
|
8
|
+
import { prepareAndroid } from "./prepareAndroid-bUMPHe4p.js";
|
|
9
|
+
import { prepareIos } from "./prepareIos-D1ar2VGf.js";
|
|
10
|
+
import { setup } from "./setup-BhGhMcG5.js";
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
|
|
13
13
|
//#region src/command/submit.ts
|
|
@@ -62,4 +62,4 @@ async function submitAndroid() {
|
|
|
62
62
|
|
|
63
63
|
//#endregion
|
|
64
64
|
export { submit };
|
|
65
|
-
//# sourceMappingURL=submit-
|
|
65
|
+
//# sourceMappingURL=submit-BQ3IEiKv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submit-BQ3IEiKv.js","names":[],"sources":["../src/command/submit.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { calculateElapsed } from '../util/calculateElapsed';\nimport { getAndroidFastlaneOptions, getIosFastlaneOptions } from '../util/FastlaneOption';\nimport { 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 { prepareAndroid } from '../util/setup/prepareAndroid';\nimport { prepareIos } from '../util/setup/prepareIos';\nimport { setup } from '../util/setup/setup';\n\nexport async function submit({ options }: { options: any }) {\n Object.assign(OptionHolder.input, options);\n const startTime = Date.now();\n await setup();\n await promptInputs();\n\n logger.info('Submit Started');\n\n if (OptionHolder.input.platform === 'ios') {\n await submitIos();\n logger.success(`Appstore Review Submitted ${chalk.bold.inverse(calculateElapsed(startTime))}`);\n } else {\n await submitAndroid();\n logger.success(`Playstore Review Submitted ${chalk.bold.inverse(calculateElapsed(startTime))}`);\n }\n}\n\nasync function promptInputs() {\n await InqueryInputs.platform();\n await InqueryInputs.uploadMetadata();\n await InqueryInputs.uploadScreenshot();\n}\n\nasync function submitIos() {\n const iosDir = resolve(OptionHolder.projectDir, 'ios');\n await prepareIos();\n await fastlane();\n\n async function fastlane() {\n remove(resolve(iosDir, '.xcode.env.local'));\n\n await exe('bundle', ['exec', 'fastlane', 'submit', ...getIosFastlaneOptions()], {\n cwd: iosDir,\n env: {\n MATCH_PASSWORD: OptionHolder.keyholderMap.ios_match_password,\n },\n });\n }\n}\n\nasync function submitAndroid() {\n await prepareAndroid();\n await fastlane();\n\n async function fastlane() {\n await exe('bundle', ['exec', 'fastlane', 'submit', ...getAndroidFastlaneOptions()], {\n cwd: resolve(OptionHolder.projectDir, 'android'),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,eAAsB,OAAO,EAAE,SAA2B,EAAE;AAC1D,QAAO,OAAO,aAAa,OAAO,QAAQ;CAC1C,MAAM,YAAY,KAAK,KAAK;AAC5B,OAAM,OAAO;AACb,OAAM,cAAc;AAEpB,QAAO,KAAK,iBAAiB;AAE7B,KAAI,aAAa,MAAM,aAAa,OAAO;AACzC,QAAM,WAAW;AACjB,SAAO,SAAS,4BAA4B,MAAM,KAAK,QAAQ,iBAAiB,UAAU,CAAC,CAAC,EAAE;CAC/F,OAAM;AACL,QAAM,eAAe;AACrB,SAAO,SAAS,6BAA6B,MAAM,KAAK,QAAQ,iBAAiB,UAAU,CAAC,CAAC,EAAE;CAChG;AACF;AAED,eAAe,eAAe;AAC5B,OAAM,cAAc,UAAU;AAC9B,OAAM,cAAc,gBAAgB;AACpC,OAAM,cAAc,kBAAkB;AACvC;AAED,eAAe,YAAY;CACzB,MAAM,SAAS,QAAQ,aAAa,YAAY,MAAM;AACtD,OAAM,YAAY;AAClB,OAAM,UAAU;CAEhB,eAAe,WAAW;AACxB,SAAO,QAAQ,QAAQ,mBAAmB,CAAC;AAE3C,QAAM,IAAI,UAAU;GAAC;GAAQ;GAAY;GAAU,GAAG,uBAAuB;EAAC,GAAE;GAC9E,KAAK;GACL,KAAK,EACH,gBAAgB,aAAa,aAAa,mBAC3C;EACF,EAAC;CACH;AACF;AAED,eAAe,gBAAgB;AAC7B,OAAM,gBAAgB;AACtB,OAAM,UAAU;CAEhB,eAAe,WAAW;AACxB,QAAM,IAAI,UAAU;GAAC;GAAQ;GAAY;GAAU,GAAG,2BAA2B;EAAC,GAAE,EAClF,KAAK,QAAQ,aAAa,YAAY,UAAU,CACjD,EAAC;CACH;AACF"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { calculateElapsed } from "./calculateElapsed-DORWymX3.js";
|
|
2
2
|
import { resolve } from "./FileUtil-Dbvp87_g.js";
|
|
3
|
-
import { OptionHolder } from "./OptionHolder-
|
|
4
|
-
import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "./FastlaneOption-
|
|
5
|
-
import { InqueryInputs } from "./InqueryInputs-
|
|
3
|
+
import { OptionHolder } from "./OptionHolder-CJ5tzHpp.js";
|
|
4
|
+
import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "./FastlaneOption-CxjO9q-w.js";
|
|
5
|
+
import { InqueryInputs } from "./InqueryInputs-hizV8u_U.js";
|
|
6
6
|
import { logger } from "./logger-DvQ7ScMQ.js";
|
|
7
7
|
import { exe } from "./execShellScript-Bd5xbFX5.js";
|
|
8
|
-
import { prepareAndroid } from "./prepareAndroid-
|
|
9
|
-
import { prepareIos } from "./prepareIos-
|
|
10
|
-
import { setup } from "./setup-
|
|
8
|
+
import { prepareAndroid } from "./prepareAndroid-bUMPHe4p.js";
|
|
9
|
+
import { prepareIos } from "./prepareIos-D1ar2VGf.js";
|
|
10
|
+
import { setup } from "./setup-BhGhMcG5.js";
|
|
11
11
|
import chalk from "chalk";
|
|
12
12
|
|
|
13
13
|
//#region src/command/upload.ts
|
|
@@ -65,4 +65,4 @@ async function uploadAndroid() {
|
|
|
65
65
|
|
|
66
66
|
//#endregion
|
|
67
67
|
export { upload };
|
|
68
|
-
//# sourceMappingURL=upload-
|
|
68
|
+
//# sourceMappingURL=upload-DJXVLkT_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-DJXVLkT_.js","names":[],"sources":["../src/command/upload.ts"],"sourcesContent":["import chalk from 'chalk';\n\nimport { calculateElapsed } from '../util/calculateElapsed';\nimport { getAndroidFastlaneOptions, getIosFastlaneOptions } from '../util/FastlaneOption';\nimport { 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 { prepareAndroid } from '../util/setup/prepareAndroid';\nimport { prepareIos } from '../util/setup/prepareIos';\nimport { setup } from '../util/setup/setup';\n\nexport async function upload({ options }: { options: any }) {\n Object.assign(OptionHolder.input, options);\n const startTime = Date.now();\n await setup();\n await promptInputs();\n\n logger.info('Upload Testing Track Started');\n\n if (OptionHolder.input.platform === 'ios') {\n await uploadIos();\n logger.success(`iOS Upload ${chalk.bold.inverse(calculateElapsed(startTime))}`);\n } else {\n await uploadAndroid();\n logger.success(`Android Upload ${chalk.bold.inverse(calculateElapsed(startTime))}`);\n }\n}\n\nasync function promptInputs() {\n await InqueryInputs.platform();\n await InqueryInputs.androidBuildOutput();\n if (OptionHolder.input.platform !== 'ios') {\n await InqueryInputs.uploadMetadata();\n await InqueryInputs.uploadScreenshot();\n }\n if (\n OptionHolder.input.platform === 'ios' &&\n (OptionHolder.input.uploadMetadata || OptionHolder.input.uploadScreenshot)\n ) {\n logger.warn(\"ios upload command doesn't support uploading metadatas and screenshots\");\n }\n}\n\nasync function uploadIos() {\n const iosDir = resolve(OptionHolder.projectDir, 'ios');\n await prepareIos();\n await fastlane();\n\n async function fastlane() {\n await exe('bundle', ['exec', 'fastlane', 'upload', ...getIosFastlaneOptions()], {\n cwd: iosDir,\n env: {\n MATCH_PASSWORD: OptionHolder.keyholderMap.ios_match_password,\n },\n });\n }\n}\nasync function uploadAndroid() {\n await prepareAndroid();\n await fastlane();\n\n async function fastlane() {\n await exe('bundle', ['exec', 'fastlane', 'upload', ...getAndroidFastlaneOptions()], {\n cwd: resolve(OptionHolder.projectDir, 'android'),\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAaA,eAAsB,OAAO,EAAE,SAA2B,EAAE;AAC1D,QAAO,OAAO,aAAa,OAAO,QAAQ;CAC1C,MAAM,YAAY,KAAK,KAAK;AAC5B,OAAM,OAAO;AACb,OAAM,cAAc;AAEpB,QAAO,KAAK,+BAA+B;AAE3C,KAAI,aAAa,MAAM,aAAa,OAAO;AACzC,QAAM,WAAW;AACjB,SAAO,SAAS,aAAa,MAAM,KAAK,QAAQ,iBAAiB,UAAU,CAAC,CAAC,EAAE;CAChF,OAAM;AACL,QAAM,eAAe;AACrB,SAAO,SAAS,iBAAiB,MAAM,KAAK,QAAQ,iBAAiB,UAAU,CAAC,CAAC,EAAE;CACpF;AACF;AAED,eAAe,eAAe;AAC5B,OAAM,cAAc,UAAU;AAC9B,OAAM,cAAc,oBAAoB;AACxC,KAAI,aAAa,MAAM,aAAa,OAAO;AACzC,QAAM,cAAc,gBAAgB;AACpC,QAAM,cAAc,kBAAkB;CACvC;AACD,KACE,aAAa,MAAM,aAAa,UAC/B,aAAa,MAAM,kBAAkB,aAAa,MAAM,kBAEzD,QAAO,KAAK,yEAAyE;AAExF;AAED,eAAe,YAAY;CACzB,MAAM,SAAS,QAAQ,aAAa,YAAY,MAAM;AACtD,OAAM,YAAY;AAClB,OAAM,UAAU;CAEhB,eAAe,WAAW;AACxB,QAAM,IAAI,UAAU;GAAC;GAAQ;GAAY;GAAU,GAAG,uBAAuB;EAAC,GAAE;GAC9E,KAAK;GACL,KAAK,EACH,gBAAgB,aAAa,aAAa,mBAC3C;EACF,EAAC;CACH;AACF;AACD,eAAe,gBAAgB;AAC7B,OAAM,gBAAgB;AACtB,OAAM,UAAU;CAEhB,eAAe,WAAW;AACxB,QAAM,IAAI,UAAU;GAAC;GAAQ;GAAY;GAAU,GAAG,2BAA2B;EAAC,GAAE,EAClF,KAAK,QAAQ,aAAa,YAAY,UAAU,CACjD,EAAC;CACH;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../OptionHolder-
|
|
3
|
-
import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "../FastlaneOption-
|
|
2
|
+
import "../OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "../FastlaneOption-CxjO9q-w.js";
|
|
4
4
|
|
|
5
5
|
export { getAndroidFastlaneOptions, getIosFastlaneOptions };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../OptionHolder-
|
|
2
|
+
import "../OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import "../logger-DvQ7ScMQ.js";
|
|
4
|
-
import { copyAndroidMetadata, copyIosMetadata } from "../MetadataSyncUtil-
|
|
4
|
+
import { copyAndroidMetadata, copyIosMetadata } from "../MetadataSyncUtil-BbrQb4Bc.js";
|
|
5
5
|
|
|
6
6
|
export { copyAndroidMetadata, copyIosMetadata };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../OptionHolder-
|
|
3
|
-
import { generateAppStoreConnectApiKeyFile } from "../generateAppStoreConnectApiKeyFile-
|
|
2
|
+
import "../OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { generateAppStoreConnectApiKeyFile } from "../generateAppStoreConnectApiKeyFile-DeuJUndI.js";
|
|
4
4
|
|
|
5
5
|
export { generateAppStoreConnectApiKeyFile };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../OptionHolder-
|
|
2
|
+
import "../OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import "../iterateAllFiles-CcRtjpos.js";
|
|
4
|
-
import { injectTemplatePlaceHolders } from "../injectTemplatePlaceHolders-
|
|
4
|
+
import { injectTemplatePlaceHolders } from "../injectTemplatePlaceHolders-BzxCkQrW.js";
|
|
5
5
|
|
|
6
6
|
export { injectTemplatePlaceHolders };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../../OptionHolder-
|
|
3
|
-
import { InqueryInputs, constructInquirerFormattedMessage } from "../../InqueryInputs-
|
|
2
|
+
import "../../OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { InqueryInputs, constructInquirerFormattedMessage } from "../../InqueryInputs-hizV8u_U.js";
|
|
4
4
|
|
|
5
5
|
export { InqueryInputs, constructInquirerFormattedMessage };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../OptionHolder-
|
|
3
|
-
import { parseConfigFile } from "../parseConfigFile-
|
|
2
|
+
import "../OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { parseConfigFile } from "../parseConfigFile-Bv50df4o.js";
|
|
4
4
|
|
|
5
5
|
export { parseConfigFile };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/util/replaceStringIfNotContain.d.ts
|
|
2
|
-
declare function replaceStringIfNotContain(content: string, pattern: RegExp, modified: string): string;
|
|
2
|
+
declare function replaceStringIfNotContain(content: string, pattern: RegExp, modified: string, isGlobal: boolean): string;
|
|
3
3
|
//#endregion
|
|
4
4
|
export { replaceStringIfNotContain };
|
|
5
5
|
//# sourceMappingURL=replaceStringIfNotContain.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "../../EnvUtil-C6QbCIoV.js";
|
|
2
2
|
import "../../FileUtil-Dbvp87_g.js";
|
|
3
|
-
import "../../OptionHolder-
|
|
3
|
+
import "../../OptionHolder-CJ5tzHpp.js";
|
|
4
4
|
import "../../logger-DvQ7ScMQ.js";
|
|
5
5
|
import "../../throwError-bsy4sijK.js";
|
|
6
|
-
import { checkVersionCodeIsTiedWithVersionName, generateVersionCodeTiedWithVersionName, injectBinaryVersions, parseBinaryVersions } from "../../VersionUtil-
|
|
6
|
+
import { checkVersionCodeIsTiedWithVersionName, generateVersionCodeTiedWithVersionName, injectBinaryVersions, parseBinaryVersions } from "../../VersionUtil-BPRjtPK_.js";
|
|
7
7
|
|
|
8
8
|
export { checkVersionCodeIsTiedWithVersionName, generateVersionCodeTiedWithVersionName, injectBinaryVersions, parseBinaryVersions };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../../OptionHolder-
|
|
3
|
-
import { hydrateKeyholderFileValues } from "../../hydrateKeyholderFileValues-
|
|
2
|
+
import "../../OptionHolder-CJ5tzHpp.js";
|
|
3
|
+
import { hydrateKeyholderFileValues } from "../../hydrateKeyholderFileValues-BKnI9nbx.js";
|
|
4
4
|
|
|
5
5
|
export { hydrateKeyholderFileValues };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import "../../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../../OptionHolder-
|
|
2
|
+
import "../../OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import "../../logger-DvQ7ScMQ.js";
|
|
4
4
|
import "../../execShellScript-Bd5xbFX5.js";
|
|
5
5
|
import "../../iterateAllFiles-CcRtjpos.js";
|
|
6
|
-
import "../../injectTemplatePlaceHolders-
|
|
7
|
-
import "../../MetadataSyncUtil-
|
|
8
|
-
import "../../replaceStringIfNotContain-
|
|
6
|
+
import "../../injectTemplatePlaceHolders-BzxCkQrW.js";
|
|
7
|
+
import "../../MetadataSyncUtil-BbrQb4Bc.js";
|
|
8
|
+
import "../../replaceStringIfNotContain-BncPMRZq.js";
|
|
9
9
|
import "../../spinner-BVmbE9I_.js";
|
|
10
|
-
import { prepareAndroid } from "../../prepareAndroid-
|
|
10
|
+
import { prepareAndroid } from "../../prepareAndroid-bUMPHe4p.js";
|
|
11
11
|
|
|
12
12
|
export { prepareAndroid };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "../../FileUtil-Dbvp87_g.js";
|
|
2
|
-
import "../../OptionHolder-
|
|
2
|
+
import "../../OptionHolder-CJ5tzHpp.js";
|
|
3
3
|
import "../../logger-DvQ7ScMQ.js";
|
|
4
4
|
import "../../execShellScript-Bd5xbFX5.js";
|
|
5
5
|
import "../../iterateAllFiles-CcRtjpos.js";
|
|
6
|
-
import "../../injectTemplatePlaceHolders-
|
|
7
|
-
import "../../MetadataSyncUtil-
|
|
6
|
+
import "../../injectTemplatePlaceHolders-BzxCkQrW.js";
|
|
7
|
+
import "../../MetadataSyncUtil-BbrQb4Bc.js";
|
|
8
8
|
import "../../spinner-BVmbE9I_.js";
|
|
9
|
-
import { prepareIos } from "../../prepareIos-
|
|
9
|
+
import { prepareIos } from "../../prepareIos-D1ar2VGf.js";
|
|
10
10
|
|
|
11
11
|
export { prepareIos };
|