expo-release-it 0.6.2 → 0.6.4

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.
Files changed (74) hide show
  1. package/build/{EnvUtil-DWWwkHaf.js → EnvUtil-C6QbCIoV.js} +1 -1
  2. package/build/{EnvUtil-DWWwkHaf.js.map → EnvUtil-C6QbCIoV.js.map} +1 -1
  3. package/build/{FastlaneOption-B9A0ECDL.js → FastlaneOption-DFukw3tx.js} +3 -3
  4. package/build/{FastlaneOption-B9A0ECDL.js.map → FastlaneOption-DFukw3tx.js.map} +1 -1
  5. package/build/{FileUtil-B9JnWobK.js → FileUtil-Dbvp87_g.js} +1 -1
  6. package/build/{FileUtil-B9JnWobK.js.map → FileUtil-Dbvp87_g.js.map} +1 -1
  7. package/build/{InqueryInputs-BGj-DlRa.js → InqueryInputs-D7SBtNYa.js} +2 -2
  8. package/build/{InqueryInputs-BGj-DlRa.js.map → InqueryInputs-D7SBtNYa.js.map} +1 -1
  9. package/build/{MetadataSyncUtil-j79hX3QT.js → MetadataSyncUtil-CEVDtDKU.js} +3 -3
  10. package/build/{MetadataSyncUtil-j79hX3QT.js.map → MetadataSyncUtil-CEVDtDKU.js.map} +1 -1
  11. package/build/{OptionHolder-H3HG0A95.js → OptionHolder-e-Xr3Bz7.js} +6 -6
  12. package/build/{OptionHolder-H3HG0A95.js.map → OptionHolder-e-Xr3Bz7.js.map} +1 -1
  13. package/build/{VersionUtil-BDB10Hpb.js → VersionUtil-D-pqgp7e.js} +5 -5
  14. package/build/VersionUtil-D-pqgp7e.js.map +1 -0
  15. package/build/{build-DLOdnj2j.js → build-mrbmjpTj.js} +10 -10
  16. package/build/{build-DLOdnj2j.js.map → build-mrbmjpTj.js.map} +1 -1
  17. package/build/{bump-0hlTovjE.js → bump-BSFUo4Lw.js} +7 -7
  18. package/build/{bump-0hlTovjE.js.map → bump-BSFUo4Lw.js.map} +1 -1
  19. package/build/{calculateElapsed-CynU9UU_.js → calculateElapsed-DORWymX3.js} +1 -1
  20. package/build/{calculateElapsed-CynU9UU_.js.map → calculateElapsed-DORWymX3.js.map} +1 -1
  21. package/build/command/build.js +17 -17
  22. package/build/command/bump.js +10 -10
  23. package/build/command/init.js +10 -10
  24. package/build/command/pull.js +16 -16
  25. package/build/command/submit.js +17 -17
  26. package/build/command/upload.js +17 -17
  27. package/build/execShellScript-Bd5xbFX5.js.map +1 -1
  28. package/build/{generateAppStoreConnectApiKeyFile-DjxlrcZn.js → generateAppStoreConnectApiKeyFile-CWW5uiwQ.js} +3 -3
  29. package/build/{generateAppStoreConnectApiKeyFile-DjxlrcZn.js.map → generateAppStoreConnectApiKeyFile-CWW5uiwQ.js.map} +1 -1
  30. package/build/{hydrateKeyholderFileValues-BoaRs3SC.js → hydrateKeyholderFileValues-DGhfFdMP.js} +3 -3
  31. package/build/{hydrateKeyholderFileValues-BoaRs3SC.js.map → hydrateKeyholderFileValues-DGhfFdMP.js.map} +1 -1
  32. package/build/index.js +23 -23
  33. package/build/index.js.map +1 -1
  34. package/build/{init-cjD4jZiy.js → init-cpcJN2Kq.js} +5 -5
  35. package/build/{init-cjD4jZiy.js.map → init-cpcJN2Kq.js.map} +1 -1
  36. package/build/{injectTemplatePlaceHolders-CpIvd0dG.js → injectTemplatePlaceHolders-zAbDtdQ3.js} +4 -4
  37. package/build/{injectTemplatePlaceHolders-CpIvd0dG.js.map → injectTemplatePlaceHolders-zAbDtdQ3.js.map} +1 -1
  38. package/build/{iterateAllFiles-CbEPek2B.js → iterateAllFiles-CcRtjpos.js} +2 -2
  39. package/build/{iterateAllFiles-CbEPek2B.js.map → iterateAllFiles-CcRtjpos.js.map} +1 -1
  40. package/build/{parseConfigFile-hMLUnLZR.js → parseConfigFile-DPW8ByX1.js} +3 -3
  41. package/build/{parseConfigFile-hMLUnLZR.js.map → parseConfigFile-DPW8ByX1.js.map} +1 -1
  42. package/build/{prepareAndroid-Cjz6r6o0.js → prepareAndroid-DvpyJp29.js} +6 -6
  43. package/build/{prepareAndroid-Cjz6r6o0.js.map → prepareAndroid-DvpyJp29.js.map} +1 -1
  44. package/build/{prepareIos-ByPLFHC8.js → prepareIos-CPEUN3NP.js} +5 -5
  45. package/build/{prepareIos-ByPLFHC8.js.map → prepareIos-CPEUN3NP.js.map} +1 -1
  46. package/build/{pull-BHSlClDy.js → pull-CozZb8WP.js} +9 -9
  47. package/build/{pull-BHSlClDy.js.map → pull-CozZb8WP.js.map} +1 -1
  48. package/build/{setup-CRNjdK5q.js → setup-B5f8yFb5.js} +7 -7
  49. package/build/{setup-CRNjdK5q.js.map → setup-B5f8yFb5.js.map} +1 -1
  50. package/build/{submit-5gTyWBU2.js → submit-B4SQw15M.js} +9 -9
  51. package/build/{submit-5gTyWBU2.js.map → submit-B4SQw15M.js.map} +1 -1
  52. package/build/{throwError-DMF6E5pu.js → throwError-bsy4sijK.js} +2 -2
  53. package/build/{throwError-DMF6E5pu.js.map → throwError-bsy4sijK.js.map} +1 -1
  54. package/build/{upload-S09j3abh.js → upload-Cqb45MFF.js} +9 -9
  55. package/build/{upload-S09j3abh.js.map → upload-Cqb45MFF.js.map} +1 -1
  56. package/build/util/EnvUtil.js +1 -1
  57. package/build/util/FastlaneOption.js +3 -3
  58. package/build/util/FileUtil.js +1 -1
  59. package/build/util/MetadataSyncUtil.js +3 -3
  60. package/build/util/OptionHolder.js +2 -2
  61. package/build/util/calculateElapsed.js +1 -1
  62. package/build/util/generateAppStoreConnectApiKeyFile.js +3 -3
  63. package/build/util/injectTemplatePlaceHolders.js +4 -4
  64. package/build/util/input/InqueryInputs.js +3 -3
  65. package/build/util/iterateAllFiles.js +2 -2
  66. package/build/util/parseConfigFile.js +3 -3
  67. package/build/util/setup/VersionUtil.js +5 -5
  68. package/build/util/setup/hydrateKeyholderFileValues.js +3 -3
  69. package/build/util/setup/prepareAndroid.js +6 -6
  70. package/build/util/setup/prepareIos.js +6 -6
  71. package/build/util/setup/setup.js +8 -8
  72. package/build/util/throwError.js +2 -2
  73. package/package.json +4 -4
  74. package/build/VersionUtil-BDB10Hpb.js.map +0 -1
@@ -1,23 +1,23 @@
1
- import "../EnvUtil-DWWwkHaf.js";
2
- import "../FileUtil-B9JnWobK.js";
3
- import "../OptionHolder-H3HG0A95.js";
4
- import "../FastlaneOption-B9A0ECDL.js";
5
- import "../calculateElapsed-CynU9UU_.js";
6
- import "../InqueryInputs-BGj-DlRa.js";
1
+ import "../calculateElapsed-DORWymX3.js";
2
+ import "../EnvUtil-C6QbCIoV.js";
3
+ import "../FileUtil-Dbvp87_g.js";
4
+ import "../OptionHolder-e-Xr3Bz7.js";
5
+ import "../FastlaneOption-DFukw3tx.js";
6
+ import "../InqueryInputs-D7SBtNYa.js";
7
7
  import "../logger-DvQ7ScMQ.js";
8
8
  import "../execShellScript-Bd5xbFX5.js";
9
- import "../MetadataSyncUtil-j79hX3QT.js";
10
- import "../iterateAllFiles-CbEPek2B.js";
11
- import "../injectTemplatePlaceHolders-CpIvd0dG.js";
9
+ import "../iterateAllFiles-CcRtjpos.js";
10
+ import "../injectTemplatePlaceHolders-zAbDtdQ3.js";
11
+ import "../MetadataSyncUtil-CEVDtDKU.js";
12
12
  import "../replaceStringIfNotContain-CgZ460_D.js";
13
13
  import "../spinner-BVmbE9I_.js";
14
- import "../prepareAndroid-Cjz6r6o0.js";
15
- import "../prepareIos-ByPLFHC8.js";
16
- import "../parseConfigFile-hMLUnLZR.js";
17
- import "../throwError-DMF6E5pu.js";
18
- import "../VersionUtil-BDB10Hpb.js";
19
- import "../hydrateKeyholderFileValues-BoaRs3SC.js";
20
- import "../setup-CRNjdK5q.js";
21
- import { upload } from "../upload-S09j3abh.js";
14
+ import "../prepareAndroid-DvpyJp29.js";
15
+ import "../prepareIos-CPEUN3NP.js";
16
+ import "../parseConfigFile-DPW8ByX1.js";
17
+ import "../hydrateKeyholderFileValues-DGhfFdMP.js";
18
+ import "../throwError-bsy4sijK.js";
19
+ import "../VersionUtil-D-pqgp7e.js";
20
+ import "../setup-B5f8yFb5.js";
21
+ import { upload } from "../upload-Cqb45MFF.js";
22
22
 
23
23
  export { upload };
@@ -1 +1 @@
1
- {"version":3,"file":"execShellScript-Bd5xbFX5.js","names":["command: string","args: string[]","options: OptionsType"],"sources":["../src/util/setup/execShellScript.ts"],"sourcesContent":["import { type Options, execa } from 'execa';\n\nexport const exe = execa({\n stdin: 'pipe',\n stdout: 'inherit',\n stderr: 'inherit',\n shell: false,\n});\n\nexport const yesShell = <OptionsType extends Options>(\n command: string,\n args: string[] = [],\n options: OptionsType,\n) => {\n const subProcess = exe(command, args, { ...options, stdin: 'pipe' });\n subProcess.stdin?.write('y\\n');\n subProcess.stdin?.end();\n return subProcess;\n};\n"],"mappings":";;;AAEA,MAAa,MAAM,MAAM;CACvB,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,OAAO;AACR,EAAC;AAEF,MAAa,WAAW,CACtBA,SACAC,OAAiB,CAAE,GACnBC,YACG;CACH,MAAM,aAAa,IAAI,SAAS,MAAM;EAAE,GAAG;EAAS,OAAO;CAAQ,EAAC;AACpE,YAAW,OAAO,MAAM,MAAM;AAC9B,YAAW,OAAO,KAAK;AACvB,QAAO;AACR"}
1
+ {"version":3,"file":"execShellScript-Bd5xbFX5.js","names":["command: string","args: string[]","options: OptionsType"],"sources":["../src/util/setup/execShellScript.ts"],"sourcesContent":["import { execa, type Options } from 'execa';\n\nexport const exe = execa({\n stdin: 'pipe',\n stdout: 'inherit',\n stderr: 'inherit',\n shell: false,\n});\n\nexport const yesShell = <OptionsType extends Options>(\n command: string,\n args: string[] = [],\n options: OptionsType,\n) => {\n const subProcess = exe(command, args, { ...options, stdin: 'pipe' });\n subProcess.stdin?.write('y\\n');\n subProcess.stdin?.end();\n return subProcess;\n};\n"],"mappings":";;;AAEA,MAAa,MAAM,MAAM;CACvB,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,OAAO;AACR,EAAC;AAEF,MAAa,WAAW,CACtBA,SACAC,OAAiB,CAAE,GACnBC,YACG;CACH,MAAM,aAAa,IAAI,SAAS,MAAM;EAAE,GAAG;EAAS,OAAO;CAAQ,EAAC;AACpE,YAAW,OAAO,MAAM,MAAM;AAC9B,YAAW,OAAO,KAAK;AACvB,QAAO;AACR"}
@@ -1,5 +1,5 @@
1
- import { join, read, resolve, writeJson } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
1
+ import { join, read, resolve, writeJson } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.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-DjxlrcZn.js.map
18
+ //# sourceMappingURL=generateAppStoreConnectApiKeyFile-CWW5uiwQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateAppStoreConnectApiKeyFile-DjxlrcZn.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"}
1
+ {"version":3,"file":"generateAppStoreConnectApiKeyFile-CWW5uiwQ.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"}
@@ -1,5 +1,5 @@
1
- import { exist, readJsonSlow } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
1
+ import { exist, readJsonSlow } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.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-BoaRs3SC.js.map
11
+ //# sourceMappingURL=hydrateKeyholderFileValues-DGhfFdMP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydrateKeyholderFileValues-BoaRs3SC.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"}
1
+ {"version":3,"file":"hydrateKeyholderFileValues-DGhfFdMP.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,30 @@
1
- import "./EnvUtil-DWWwkHaf.js";
2
- import "./FileUtil-B9JnWobK.js";
3
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
4
- import "./FastlaneOption-B9A0ECDL.js";
5
- import "./calculateElapsed-CynU9UU_.js";
6
- import "./InqueryInputs-BGj-DlRa.js";
1
+ import "./calculateElapsed-DORWymX3.js";
2
+ import "./EnvUtil-C6QbCIoV.js";
3
+ import "./FileUtil-Dbvp87_g.js";
4
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
5
+ import "./FastlaneOption-DFukw3tx.js";
6
+ import "./InqueryInputs-D7SBtNYa.js";
7
7
  import { logger } from "./logger-DvQ7ScMQ.js";
8
8
  import "./execShellScript-Bd5xbFX5.js";
9
- import "./MetadataSyncUtil-j79hX3QT.js";
10
- import "./iterateAllFiles-CbEPek2B.js";
11
- import "./injectTemplatePlaceHolders-CpIvd0dG.js";
9
+ import "./iterateAllFiles-CcRtjpos.js";
10
+ import "./injectTemplatePlaceHolders-zAbDtdQ3.js";
11
+ import "./MetadataSyncUtil-CEVDtDKU.js";
12
12
  import "./replaceStringIfNotContain-CgZ460_D.js";
13
13
  import "./spinner-BVmbE9I_.js";
14
- import "./prepareAndroid-Cjz6r6o0.js";
15
- import "./prepareIos-ByPLFHC8.js";
16
- import "./parseConfigFile-hMLUnLZR.js";
17
- import { throwError } from "./throwError-DMF6E5pu.js";
18
- import "./VersionUtil-BDB10Hpb.js";
19
- import "./hydrateKeyholderFileValues-BoaRs3SC.js";
20
- import "./setup-CRNjdK5q.js";
21
- import { build } from "./build-DLOdnj2j.js";
22
- import { bump } from "./bump-0hlTovjE.js";
23
- import { init } from "./init-cjD4jZiy.js";
24
- import "./generateAppStoreConnectApiKeyFile-DjxlrcZn.js";
25
- import { pull } from "./pull-BHSlClDy.js";
26
- import { submit } from "./submit-5gTyWBU2.js";
27
- import { upload } from "./upload-S09j3abh.js";
14
+ import "./prepareAndroid-DvpyJp29.js";
15
+ import "./prepareIos-CPEUN3NP.js";
16
+ import "./parseConfigFile-DPW8ByX1.js";
17
+ import "./hydrateKeyholderFileValues-DGhfFdMP.js";
18
+ import { throwError } from "./throwError-bsy4sijK.js";
19
+ import "./VersionUtil-D-pqgp7e.js";
20
+ import "./setup-B5f8yFb5.js";
21
+ import { build } from "./build-mrbmjpTj.js";
22
+ import { bump } from "./bump-BSFUo4Lw.js";
23
+ import { init } from "./init-cpcJN2Kq.js";
24
+ import "./generateAppStoreConnectApiKeyFile-CWW5uiwQ.js";
25
+ import { pull } from "./pull-CozZb8WP.js";
26
+ import { submit } from "./submit-B4SQw15M.js";
27
+ import { upload } from "./upload-Cqb45MFF.js";
28
28
  import { Command, Option } from "commander";
29
29
  import { ExecaError } from "execa";
30
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["promise: Promise<any>"],"sources":["../src/index.ts"],"sourcesContent":["import { Command, Option } from 'commander';\n\nimport { ExecaError } from 'execa';\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 { OptionHolder } from './util/OptionHolder';\nimport { logger } from './util/logger';\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
+ {"version":3,"file":"index.js","names":["promise: Promise<any>"],"sources":["../src/index.ts"],"sourcesContent":["import { Command, Option } from 'commander';\n\nimport { ExecaError } from 'execa';\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
- import { copy, join, writeJson } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
3
- import { constructInquirerFormattedMessage } from "./InqueryInputs-BGj-DlRa.js";
1
+ import { copy, join, writeJson } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
3
+ import { constructInquirerFormattedMessage } from "./InqueryInputs-D7SBtNYa.js";
4
4
  import { logger } from "./logger-DvQ7ScMQ.js";
5
- import { setup } from "./setup-CRNjdK5q.js";
5
+ import { setup } from "./setup-B5f8yFb5.js";
6
6
  import chalk from "chalk";
7
7
  import { input } from "@inquirer/prompts";
8
8
 
@@ -145,4 +145,4 @@ async function copyTemplates() {
145
145
 
146
146
  //#endregion
147
147
  export { init };
148
- //# sourceMappingURL=init-cjD4jZiy.js.map
148
+ //# sourceMappingURL=init-cpcJN2Kq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-cjD4jZiy.js","names":["dir: string"],"sources":["../src/command/init.ts"],"sourcesContent":["import { input } from '@inquirer/prompts';\nimport chalk from 'chalk';\nimport { copy, join, writeJson } from '../util/FileUtil';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { constructInquirerFormattedMessage } from '../util/input/InqueryInputs';\nimport { logger } from '../util/logger';\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: `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: `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: `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":"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"}
1
+ {"version":3,"file":"init-cpcJN2Kq.js","names":["dir: string"],"sources":["../src/command/init.ts"],"sourcesContent":["import { input } from '@inquirer/prompts';\nimport chalk from 'chalk';\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: `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: `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: `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":"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"}
@@ -1,6 +1,6 @@
1
- import { read, write } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
3
- import { iterateAllFiles } from "./iterateAllFiles-CbEPek2B.js";
1
+ import { read, write } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
3
+ import { iterateAllFiles } from "./iterateAllFiles-CcRtjpos.js";
4
4
 
5
5
  //#region src/util/injectTemplatePlaceHolders.ts
6
6
  async function injectTemplatePlaceHolders(root) {
@@ -13,4 +13,4 @@ async function injectTemplatePlaceHolders(root) {
13
13
 
14
14
  //#endregion
15
15
  export { injectTemplatePlaceHolders };
16
- //# sourceMappingURL=injectTemplatePlaceHolders-CpIvd0dG.js.map
16
+ //# sourceMappingURL=injectTemplatePlaceHolders-zAbDtdQ3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"injectTemplatePlaceHolders-CpIvd0dG.js","names":["root: string","filePath: string"],"sources":["../src/util/injectTemplatePlaceHolders.ts"],"sourcesContent":["import { read, write } from './FileUtil';\nimport { OptionHolder } from './OptionHolder';\nimport { iterateAllFiles } from './iterateAllFiles';\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
+ {"version":3,"file":"injectTemplatePlaceHolders-zAbDtdQ3.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,4 +1,4 @@
1
- import { isDir, isFile, join, readdir } from "./FileUtil-B9JnWobK.js";
1
+ import { isDir, isFile, join, readdir } from "./FileUtil-Dbvp87_g.js";
2
2
 
3
3
  //#region src/util/iterateAllFiles.ts
4
4
  async function iterateAllFiles(root, callback) {
@@ -12,4 +12,4 @@ async function iterateAllFiles(root, callback) {
12
12
 
13
13
  //#endregion
14
14
  export { iterateAllFiles };
15
- //# sourceMappingURL=iterateAllFiles-CbEPek2B.js.map
15
+ //# sourceMappingURL=iterateAllFiles-CcRtjpos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iterateAllFiles-CbEPek2B.js","names":["root: string","callback: (filePath: string) => Promise<void>","dirPath: string"],"sources":["../src/util/iterateAllFiles.ts"],"sourcesContent":["import { isDir, isFile, join, readdir } from './FileUtil';\n\nexport async function iterateAllFiles(root: string, callback: (filePath: string) => Promise<void>) {\n await go(root);\n\n async function go(dirPath: string) {\n const paths = readdir(dirPath).map((f) => join(dirPath, f));\n\n for (const p of paths) {\n if (isFile(p)) {\n await callback(p);\n } else if (isDir(p)) {\n await go(p);\n }\n }\n }\n}\n"],"mappings":";;;AAEA,eAAsB,gBAAgBA,MAAcC,UAA+C;AACjG,OAAM,GAAG,KAAK;CAEd,eAAe,GAAGC,SAAiB;EACjC,MAAM,QAAQ,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;AAE3D,OAAK,MAAM,KAAK,MACd,KAAI,OAAO,EAAE,CACX,OAAM,SAAS,EAAE;WACR,MAAM,EAAE,CACjB,OAAM,GAAG,EAAE;CAGhB;AACF"}
1
+ {"version":3,"file":"iterateAllFiles-CcRtjpos.js","names":["root: string","callback: (filePath: string) => Promise<void>","dirPath: string"],"sources":["../src/util/iterateAllFiles.ts"],"sourcesContent":["import { isDir, isFile, join, readdir } from './FileUtil';\n\nexport async function iterateAllFiles(root: string, callback: (filePath: string) => Promise<void>) {\n await go(root);\n\n async function go(dirPath: string) {\n const paths = readdir(dirPath).map((f) => join(dirPath, f));\n\n for (const p of paths) {\n if (isFile(p)) {\n await callback(p);\n } else if (isDir(p)) {\n await go(p);\n }\n }\n }\n}\n"],"mappings":";;;AAEA,eAAsB,gBAAgBA,MAAcC,UAA+C;AACjG,OAAM,GAAG,KAAK;CAEd,eAAe,GAAGC,SAAiB;EACjC,MAAM,QAAQ,QAAQ,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;AAE3D,OAAK,MAAM,KAAK,MACd,KAAI,OAAO,EAAE,CACX,OAAM,SAAS,EAAE;WACR,MAAM,EAAE,CACjB,OAAM,GAAG,EAAE;CAGhB;AACF"}
@@ -1,5 +1,5 @@
1
- import { exist, join, readJsonSlow } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
1
+ import { exist, join, readJsonSlow } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.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-hMLUnLZR.js.map
29
+ //# sourceMappingURL=parseConfigFile-DPW8ByX1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseConfigFile-hMLUnLZR.js","names":["object: Partial<T>","key: K","value: R"],"sources":["../src/util/parseConfigFile.ts"],"sourcesContent":["import { is } from '@mj-studio/js-util';\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":";;;;;AAKA,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
+ {"version":3,"file":"parseConfigFile-DPW8ByX1.js","names":["object: Partial<T>","key: K","value: R"],"sources":["../src/util/parseConfigFile.ts"],"sourcesContent":["import { is } from '@mj-studio/js-util';\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":";;;;;AAKA,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,9 +1,9 @@
1
- import { copy, iterateDir, read, relativePath, remove, resolve, write } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
1
+ import { copy, iterateDir, read, relativePath, remove, resolve, write } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
3
3
  import { logger } from "./logger-DvQ7ScMQ.js";
4
4
  import { exe, yesShell } from "./execShellScript-Bd5xbFX5.js";
5
- import { copyAndroidMetadata } from "./MetadataSyncUtil-j79hX3QT.js";
6
- import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-CpIvd0dG.js";
5
+ import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-zAbDtdQ3.js";
6
+ import { copyAndroidMetadata } from "./MetadataSyncUtil-CEVDtDKU.js";
7
7
  import { replaceStringIfNotContain } from "./replaceStringIfNotContain-CgZ460_D.js";
8
8
  import { spinner } from "./spinner-BVmbE9I_.js";
9
9
 
@@ -44,10 +44,10 @@ signingConfigs {
44
44
  }
45
45
  `.trim();
46
46
  let content = read(buildGradlePath);
47
- content = replaceStringIfNotContain(content, /signingConfigs.*?{.*?debug.*?{.*?}.*?}/s, injectedNewDebugSigningConfig);
47
+ content = replaceStringIfNotContain(content, /signingConfigs.*?{.*?debug.*?{.*?}.*?}/gs, injectedNewDebugSigningConfig);
48
48
  write(buildGradlePath, content);
49
49
  }
50
50
 
51
51
  //#endregion
52
52
  export { prepareAndroid };
53
- //# sourceMappingURL=prepareAndroid-Cjz6r6o0.js.map
53
+ //# sourceMappingURL=prepareAndroid-DvpyJp29.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepareAndroid-Cjz6r6o0.js","names":["destDir: string"],"sources":["../src/util/setup/prepareAndroid.ts"],"sourcesContent":["import { copy, iterateDir, read, relativePath, remove, resolve, write } from '../FileUtil';\nimport { copyAndroidMetadata } from '../MetadataSyncUtil';\nimport { OptionHolder } from '../OptionHolder';\nimport { injectTemplatePlaceHolders } from '../injectTemplatePlaceHolders';\nimport { logger } from '../logger';\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 );\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,8BACD;AAED,OAAM,iBAAiB,QAAQ;AAChC"}
1
+ {"version":3,"file":"prepareAndroid-DvpyJp29.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.*?{.*?}.*?}/gs,\n injectedNewDebugSigningConfig,\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,4CACA,8BACD;AAED,OAAM,iBAAiB,QAAQ;AAChC"}
@@ -1,9 +1,9 @@
1
- import { copy, iterateDir, remove, resolve } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
1
+ import { copy, iterateDir, remove, resolve } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
3
3
  import { logger } from "./logger-DvQ7ScMQ.js";
4
4
  import { exe, yesShell } from "./execShellScript-Bd5xbFX5.js";
5
- import { copyIosMetadata } from "./MetadataSyncUtil-j79hX3QT.js";
6
- import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-CpIvd0dG.js";
5
+ import { injectTemplatePlaceHolders } from "./injectTemplatePlaceHolders-zAbDtdQ3.js";
6
+ import { copyIosMetadata } from "./MetadataSyncUtil-CEVDtDKU.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-ByPLFHC8.js.map
33
+ //# sourceMappingURL=prepareIos-CPEUN3NP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepareIos-ByPLFHC8.js","names":[],"sources":["../src/util/setup/prepareIos.ts"],"sourcesContent":["import { copy, iterateDir, remove, resolve } from '../FileUtil';\nimport { copyIosMetadata } from '../MetadataSyncUtil';\nimport { OptionHolder } from '../OptionHolder';\nimport { injectTemplatePlaceHolders } from '../injectTemplatePlaceHolders';\nimport { logger } from '../logger';\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
+ {"version":3,"file":"prepareIos-CPEUN3NP.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
- import { join, resolve } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
3
- import { InqueryInputs } from "./InqueryInputs-BGj-DlRa.js";
1
+ import { join, resolve } from "./FileUtil-Dbvp87_g.js";
2
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
3
+ import { InqueryInputs } from "./InqueryInputs-D7SBtNYa.js";
4
4
  import { exe } from "./execShellScript-Bd5xbFX5.js";
5
- import { copyAndroidMetadata, copyIosMetadata } from "./MetadataSyncUtil-j79hX3QT.js";
6
- import { prepareAndroid } from "./prepareAndroid-Cjz6r6o0.js";
7
- import { prepareIos } from "./prepareIos-ByPLFHC8.js";
8
- import { setup } from "./setup-CRNjdK5q.js";
9
- import { generateAppStoreConnectApiKeyFile } from "./generateAppStoreConnectApiKeyFile-DjxlrcZn.js";
5
+ import { copyAndroidMetadata, copyIosMetadata } from "./MetadataSyncUtil-CEVDtDKU.js";
6
+ import { prepareAndroid } from "./prepareAndroid-DvpyJp29.js";
7
+ import { prepareIos } from "./prepareIos-CPEUN3NP.js";
8
+ import { setup } from "./setup-B5f8yFb5.js";
9
+ import { generateAppStoreConnectApiKeyFile } from "./generateAppStoreConnectApiKeyFile-CWW5uiwQ.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-BHSlClDy.js.map
70
+ //# sourceMappingURL=pull-CozZb8WP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pull-BHSlClDy.js","names":[],"sources":["../src/command/pull.ts"],"sourcesContent":["import { join, resolve } from '../util/FileUtil';\nimport { copyAndroidMetadata, copyIosMetadata } from '../util/MetadataSyncUtil';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { generateAppStoreConnectApiKeyFile } from '../util/generateAppStoreConnectApiKeyFile';\nimport { InqueryInputs } from '../util/input/InqueryInputs';\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"}
1
+ {"version":3,"file":"pull-CozZb8WP.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"}
@@ -1,9 +1,9 @@
1
- import { isDev } from "./EnvUtil-DWWwkHaf.js";
2
- import { resolve } from "./FileUtil-B9JnWobK.js";
3
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
4
- import { parseConfigFile } from "./parseConfigFile-hMLUnLZR.js";
5
- import { parseBinaryVersions } from "./VersionUtil-BDB10Hpb.js";
6
- import { hydrateKeyholderFileValues } from "./hydrateKeyholderFileValues-BoaRs3SC.js";
1
+ import { isDev } from "./EnvUtil-C6QbCIoV.js";
2
+ import { resolve } from "./FileUtil-Dbvp87_g.js";
3
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
4
+ import { parseConfigFile } from "./parseConfigFile-DPW8ByX1.js";
5
+ import { hydrateKeyholderFileValues } from "./hydrateKeyholderFileValues-DGhfFdMP.js";
6
+ import { parseBinaryVersions } from "./VersionUtil-D-pqgp7e.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-CRNjdK5q.js.map
25
+ //# sourceMappingURL=setup-B5f8yFb5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup-CRNjdK5q.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 { parseBinaryVersions } from './VersionUtil';\nimport { hydrateKeyholderFileValues } from './hydrateKeyholderFileValues';\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
+ {"version":3,"file":"setup-B5f8yFb5.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
- import { remove, resolve } from "./FileUtil-B9JnWobK.js";
2
- import { OptionHolder } from "./OptionHolder-H3HG0A95.js";
3
- import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "./FastlaneOption-B9A0ECDL.js";
4
- import { calculateElapsed } from "./calculateElapsed-CynU9UU_.js";
5
- import { InqueryInputs } from "./InqueryInputs-BGj-DlRa.js";
1
+ import { calculateElapsed } from "./calculateElapsed-DORWymX3.js";
2
+ import { remove, resolve } from "./FileUtil-Dbvp87_g.js";
3
+ import { OptionHolder } from "./OptionHolder-e-Xr3Bz7.js";
4
+ import { getAndroidFastlaneOptions, getIosFastlaneOptions } from "./FastlaneOption-DFukw3tx.js";
5
+ import { InqueryInputs } from "./InqueryInputs-D7SBtNYa.js";
6
6
  import { logger } from "./logger-DvQ7ScMQ.js";
7
7
  import { exe } from "./execShellScript-Bd5xbFX5.js";
8
- import { prepareAndroid } from "./prepareAndroid-Cjz6r6o0.js";
9
- import { prepareIos } from "./prepareIos-ByPLFHC8.js";
10
- import { setup } from "./setup-CRNjdK5q.js";
8
+ import { prepareAndroid } from "./prepareAndroid-DvpyJp29.js";
9
+ import { prepareIos } from "./prepareIos-CPEUN3NP.js";
10
+ import { setup } from "./setup-B5f8yFb5.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-5gTyWBU2.js.map
65
+ //# sourceMappingURL=submit-B4SQw15M.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit-5gTyWBU2.js","names":[],"sources":["../src/command/submit.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { getAndroidFastlaneOptions, getIosFastlaneOptions } from '../util/FastlaneOption';\nimport { remove, resolve } from '../util/FileUtil';\nimport { OptionHolder } from '../util/OptionHolder';\nimport { calculateElapsed } from '../util/calculateElapsed';\nimport { InqueryInputs } from '../util/input/InqueryInputs';\nimport { logger } from '../util/logger';\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":";;;;;;;;;;;;;AAYA,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
+ {"version":3,"file":"submit-B4SQw15M.js","names":[],"sources":["../src/command/submit.ts"],"sourcesContent":["import chalk from 'chalk';\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":";;;;;;;;;;;;;AAYA,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,4 +1,4 @@
1
- import { isTest } from "./EnvUtil-DWWwkHaf.js";
1
+ import { isTest } from "./EnvUtil-C6QbCIoV.js";
2
2
  import { logger } from "./logger-DvQ7ScMQ.js";
3
3
 
4
4
  //#region src/util/throwError.ts
@@ -11,4 +11,4 @@ function throwError(message, e) {
11
11
 
12
12
  //#endregion
13
13
  export { throwError };
14
- //# sourceMappingURL=throwError-DMF6E5pu.js.map
14
+ //# sourceMappingURL=throwError-bsy4sijK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"throwError-DMF6E5pu.js","names":["message: string","e?: any"],"sources":["../src/util/throwError.ts"],"sourcesContent":["import { isTest } from './EnvUtil';\nimport { logger } from './logger';\n\nexport function throwError(message: string, e?: any): never {\n if (e) {\n logger.error(message, e);\n } else {\n logger.error(message);\n }\n if (isTest) {\n throw new Error('throwError');\n }\n process.exit(1);\n}\n"],"mappings":";;;;AAGA,SAAgB,WAAWA,SAAiBC,GAAgB;AAC1D,KAAI,EACF,QAAO,MAAM,SAAS,EAAE;KAExB,QAAO,MAAM,QAAQ;AAEvB,KAAI,OACF,OAAM,IAAI,MAAM;AAElB,SAAQ,KAAK,EAAE;AAChB"}
1
+ {"version":3,"file":"throwError-bsy4sijK.js","names":["message: string","e?: any"],"sources":["../src/util/throwError.ts"],"sourcesContent":["import { isTest } from './EnvUtil';\nimport { logger } from './logger';\n\nexport function throwError(message: string, e?: any): never {\n if (e) {\n logger.error(message, e);\n } else {\n logger.error(message);\n }\n if (isTest) {\n throw new Error('throwError');\n }\n process.exit(1);\n}\n"],"mappings":";;;;AAGA,SAAgB,WAAWA,SAAiBC,GAAgB;AAC1D,KAAI,EACF,QAAO,MAAM,SAAS,EAAE;KAExB,QAAO,MAAM,QAAQ;AAEvB,KAAI,OACF,OAAM,IAAI,MAAM;AAElB,SAAQ,KAAK,EAAE;AAChB"}