app-builder-lib 23.6.0 → 24.0.0-alpha.10

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 (170) hide show
  1. package/out/ProtonFramework.js +4 -4
  2. package/out/ProtonFramework.js.map +1 -1
  3. package/out/appInfo.js +21 -9
  4. package/out/appInfo.js.map +1 -1
  5. package/out/asar/asar.d.ts +12 -0
  6. package/out/asar/asar.js +10 -11
  7. package/out/asar/asar.js.map +1 -1
  8. package/out/asar/asarFileChecker.js +2 -2
  9. package/out/asar/asarFileChecker.js.map +1 -1
  10. package/out/asar/asarUtil.js +13 -13
  11. package/out/asar/asarUtil.js.map +1 -1
  12. package/out/asar/integrity.js +9 -9
  13. package/out/asar/integrity.js.map +1 -1
  14. package/out/asar/unpackDetector.js +6 -6
  15. package/out/asar/unpackDetector.js.map +1 -1
  16. package/out/binDownload.js +2 -2
  17. package/out/binDownload.js.map +1 -1
  18. package/out/codeSign/codesign.js +4 -4
  19. package/out/codeSign/codesign.js.map +1 -1
  20. package/out/codeSign/macCodeSign.d.ts +2 -2
  21. package/out/codeSign/macCodeSign.js +26 -26
  22. package/out/codeSign/macCodeSign.js.map +1 -1
  23. package/out/codeSign/windowsCodeSign.js +16 -15
  24. package/out/codeSign/windowsCodeSign.js.map +1 -1
  25. package/out/core.js +1 -1
  26. package/out/core.js.map +1 -1
  27. package/out/electron/ElectronFramework.js +17 -17
  28. package/out/electron/ElectronFramework.js.map +1 -1
  29. package/out/electron/electronMac.js +16 -16
  30. package/out/electron/electronMac.js.map +1 -1
  31. package/out/electron/electronVersion.js +5 -5
  32. package/out/electron/electronVersion.js.map +1 -1
  33. package/out/fileMatcher.js +11 -11
  34. package/out/fileMatcher.js.map +1 -1
  35. package/out/fileTransformer.js +5 -5
  36. package/out/fileTransformer.js.map +1 -1
  37. package/out/forge-maker.js +1 -1
  38. package/out/forge-maker.js.map +1 -1
  39. package/out/frameworks/LibUiFramework.js +10 -10
  40. package/out/frameworks/LibUiFramework.js.map +1 -1
  41. package/out/index.js +3 -3
  42. package/out/index.js.map +1 -1
  43. package/out/linuxPackager.js +3 -3
  44. package/out/linuxPackager.js.map +1 -1
  45. package/out/macPackager.d.ts +3 -1
  46. package/out/macPackager.js +80 -31
  47. package/out/macPackager.js.map +1 -1
  48. package/out/options/CommonWindowsInstallerConfiguration.js +3 -3
  49. package/out/options/CommonWindowsInstallerConfiguration.js.map +1 -1
  50. package/out/options/SnapOptions.d.ts +4 -0
  51. package/out/options/SnapOptions.js.map +1 -1
  52. package/out/options/macOptions.d.ts +27 -5
  53. package/out/options/macOptions.js.map +1 -1
  54. package/out/packager.js +34 -34
  55. package/out/packager.js.map +1 -1
  56. package/out/platformPackager.js +39 -39
  57. package/out/platformPackager.js.map +1 -1
  58. package/out/presets/rectCra.js +1 -1
  59. package/out/presets/rectCra.js.map +1 -1
  60. package/out/publish/BitbucketPublisher.js +5 -5
  61. package/out/publish/BitbucketPublisher.js.map +1 -1
  62. package/out/publish/KeygenPublisher.js +7 -7
  63. package/out/publish/KeygenPublisher.js.map +1 -1
  64. package/out/publish/PublishManager.d.ts +0 -1
  65. package/out/publish/PublishManager.js +24 -28
  66. package/out/publish/PublishManager.js.map +1 -1
  67. package/out/publish/SnapStorePublisher.js +1 -1
  68. package/out/publish/SnapStorePublisher.js.map +1 -1
  69. package/out/publish/s3/BaseS3Publisher.js +3 -3
  70. package/out/publish/s3/BaseS3Publisher.js.map +1 -1
  71. package/out/publish/s3/s3Publisher.js +1 -1
  72. package/out/publish/s3/s3Publisher.js.map +1 -1
  73. package/out/publish/s3/spacesPublisher.js +2 -2
  74. package/out/publish/s3/spacesPublisher.js.map +1 -1
  75. package/out/publish/updateInfoBuilder.js +9 -9
  76. package/out/publish/updateInfoBuilder.js.map +1 -1
  77. package/out/remoteBuilder/ProjectInfoManager.js +1 -1
  78. package/out/remoteBuilder/ProjectInfoManager.js.map +1 -1
  79. package/out/remoteBuilder/RemoteBuilder.js +3 -3
  80. package/out/remoteBuilder/RemoteBuilder.js.map +1 -1
  81. package/out/remoteBuilder/builder-cli.js +3 -3
  82. package/out/remoteBuilder/builder-cli.js.map +1 -1
  83. package/out/targets/AppImageTarget.js +6 -6
  84. package/out/targets/AppImageTarget.js.map +1 -1
  85. package/out/targets/AppxTarget.js +19 -19
  86. package/out/targets/AppxTarget.js.map +1 -1
  87. package/out/targets/ArchiveTarget.js +7 -7
  88. package/out/targets/ArchiveTarget.js.map +1 -1
  89. package/out/targets/FlatpakTarget.js +8 -8
  90. package/out/targets/FlatpakTarget.js.map +1 -1
  91. package/out/targets/{fpm.d.ts → FpmTarget.d.ts} +1 -0
  92. package/out/targets/{fpm.js → FpmTarget.js} +54 -20
  93. package/out/targets/FpmTarget.js.map +1 -0
  94. package/out/targets/LinuxTargetHelper.js +9 -9
  95. package/out/targets/LinuxTargetHelper.js.map +1 -1
  96. package/out/targets/MsiTarget.js +11 -11
  97. package/out/targets/MsiTarget.js.map +1 -1
  98. package/out/targets/archive.js +9 -9
  99. package/out/targets/archive.js.map +1 -1
  100. package/out/targets/differentialUpdateInfoBuilder.js +2 -2
  101. package/out/targets/differentialUpdateInfoBuilder.js.map +1 -1
  102. package/out/targets/nsis/NsisTarget.js +37 -37
  103. package/out/targets/nsis/NsisTarget.js.map +1 -1
  104. package/out/targets/nsis/WebInstallerTarget.js +2 -2
  105. package/out/targets/nsis/WebInstallerTarget.js.map +1 -1
  106. package/out/targets/nsis/nsisLang.js +5 -5
  107. package/out/targets/nsis/nsisLang.js.map +1 -1
  108. package/out/targets/nsis/nsisLicense.js +2 -2
  109. package/out/targets/nsis/nsisLicense.js.map +1 -1
  110. package/out/targets/nsis/nsisUtil.js +5 -5
  111. package/out/targets/nsis/nsisUtil.js.map +1 -1
  112. package/out/targets/pkg.js +19 -25
  113. package/out/targets/pkg.js.map +1 -1
  114. package/out/targets/snap.js +22 -11
  115. package/out/targets/snap.js.map +1 -1
  116. package/out/targets/targetFactory.js +4 -4
  117. package/out/targets/targetFactory.js.map +1 -1
  118. package/out/targets/tools.js +1 -1
  119. package/out/targets/tools.js.map +1 -1
  120. package/out/util/AppFileWalker.js +2 -2
  121. package/out/util/AppFileWalker.js.map +1 -1
  122. package/out/util/NodeModuleCopyHelper.js +3 -3
  123. package/out/util/NodeModuleCopyHelper.js.map +1 -1
  124. package/out/util/appBuilder.js +2 -2
  125. package/out/util/appBuilder.js.map +1 -1
  126. package/out/util/appFileCopier.d.ts +1 -0
  127. package/out/util/appFileCopier.js +10 -9
  128. package/out/util/appFileCopier.js.map +1 -1
  129. package/out/util/cacheManager.js +5 -5
  130. package/out/util/cacheManager.js.map +1 -1
  131. package/out/util/config.js +10 -10
  132. package/out/util/config.js.map +1 -1
  133. package/out/util/flags.js +2 -2
  134. package/out/util/flags.js.map +1 -1
  135. package/out/util/hash.js +2 -2
  136. package/out/util/hash.js.map +1 -1
  137. package/out/util/license.js +2 -2
  138. package/out/util/license.js.map +1 -1
  139. package/out/util/macosVersion.js +3 -3
  140. package/out/util/macosVersion.js.map +1 -1
  141. package/out/util/normalizePackageData.js +4 -4
  142. package/out/util/normalizePackageData.js.map +1 -1
  143. package/out/util/packageDependencies.js +1 -1
  144. package/out/util/packageDependencies.js.map +1 -1
  145. package/out/util/packageMetadata.js +8 -8
  146. package/out/util/packageMetadata.js.map +1 -1
  147. package/out/util/repositoryInfo.js +2 -2
  148. package/out/util/repositoryInfo.js.map +1 -1
  149. package/out/util/yarn.d.ts +1 -1
  150. package/out/util/yarn.js +27 -38
  151. package/out/util/yarn.js.map +1 -1
  152. package/out/version.d.ts +1 -1
  153. package/out/version.js +1 -1
  154. package/out/version.js.map +1 -1
  155. package/out/vm/MonoVm.js +2 -2
  156. package/out/vm/MonoVm.js.map +1 -1
  157. package/out/vm/ParallelsVm.js +6 -6
  158. package/out/vm/ParallelsVm.js.map +1 -1
  159. package/out/vm/WineVm.js +1 -1
  160. package/out/vm/WineVm.js.map +1 -1
  161. package/out/vm/vm.js +2 -2
  162. package/out/vm/vm.js.map +1 -1
  163. package/out/winPackager.js +25 -25
  164. package/out/winPackager.js.map +1 -1
  165. package/out/wine.js +2 -2
  166. package/out/wine.js.map +1 -1
  167. package/package.json +17 -15
  168. package/scheme.json +96 -18
  169. package/templates/nsis/installSection.nsh +4 -1
  170. package/out/targets/fpm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"updateInfoBuilder.js","sourceRoot":"","sources":["../../src/publish/updateInfoBuilder.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAC1C,+CAA4E;AAE5E,uCAA2D;AAC3D,uCAA+B;AAC/B,6BAA4B;AAC5B,iCAAgC;AAChC,kCAAkC;AAKlC,uCAAuC;AACvC,qDAAqF;AAErF,KAAK,UAAU,cAAc,CAAC,QAA+B;IAC3D,MAAM,WAAW,GAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAA;IAC1H,IAAI,WAAW,CAAC,YAAY,IAAI,IAAI,EAAE;QACpC,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,WAAW,CACjD,WAAW,CAAC,gBAAgB,EAC5B,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,KAAK,EAC7D,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,EAC5C,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,QAAQ,KAAK,EAChD,kBAAkB,CACnB,CAAA;QACD,MAAM,YAAY,GAAG,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,mBAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;QAChG,iDAAiD;QACjD,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,WAAW,CAAC,YAAY,GAAG,YAAY,CAAA;SACxC;KACF;IACD,OAAO,WAAW,CAAC,gBAAgB,CAAA;IACnC,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,oCAAoC,CAAC,QAA+B;IAC3E,MAAM,KAAK,GAAG,QAAQ,CAAC,4BAA4B,CAAC,kCAAkC,CAAA;IACtF,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,KAAK,CAAA;AACnF,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,QAA+B,EAAE,aAAmC;IAC/F,MAAM,cAAc,GAAY,aAAsC,CAAC,OAAO,IAAI,QAAQ,CAAA;IAC1F,+CAA+C;IAC/C,IAAI,cAAc,KAAK,OAAO,IAAI,aAAa,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,oCAAoC,CAAC,QAAQ,CAAC,EAAE;QACxH,OAAO,CAAC,cAAc,CAAC,CAAA;KACxB;IAED,QAAQ,cAAc,EAAE;QACtB,KAAK,MAAM;YACT,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QAElC,KAAK,QAAQ;YACX,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE1C;YACE,OAAO,CAAC,cAAc,CAAC,CAAA;KAC1B;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,QAA+B,EAAE,IAAiB;IAChG,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,KAAK,eAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAA;IAC5G,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAA;AACjF,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAiB,EAAE,QAA+B;IACpF,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,mBAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,QAAQ,KAAK,eAAQ,CAAC,KAAK,EAAE;QAC7E,OAAO,EAAE,CAAA;KACV;IACD,OAAO,IAAI,KAAK,mBAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,mBAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACzD,CAAC;AAUD,SAAS,yCAAyC,CAAC,oBAAmC,EAAE,oBAA0C,EAAE,QAAkB;IACpJ,IAAI,oBAAoB,IAAI,IAAI,EAAE;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;KACvD;IAED,2EAA2E;IAC3E,IAAI,oBAAoB,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC9C,OAAO,KAAK,CAAA;KACb;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;IACzH,OAAO,cAAc,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;AACrE,CAAC;AAED,gBAAgB;AACT,KAAK,UAAU,qBAAqB,CAAC,KAAsB,EAAE,eAA4C;IAC9G,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,MAAM,cAAc,GAAG,MAAM,+CAA8B,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAClG,IAAI,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QACzD,OAAO,EAAE,CAAA;KACV;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAO,CAAC,MAAM,CAAA;IACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAA;IACxC,MAAM,IAAI,GAAG,IAAI,eAAI,CAAS,GAAG,EAAE,CAAC,eAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,KAAK,eAAQ,CAAC,GAAG,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzF,MAAM,KAAK,GAA8B,EAAE,CAAA;IAC3C,MAAM,4BAA4B,GAAG,QAAQ,CAAC,4BAA4B,CAAC,4BAA4B,IAAI,QAAQ,CAAC,MAAM,CAAC,4BAA4B,IAAI,QAAQ,CAAA;IACnK,KAAK,MAAM,oBAAoB,IAAI,cAAc,EAAE;QACjD,IAAI,GAAG,GAAG,MAAM,CAAA;QAChB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,oBAAoB,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE;YAC3E,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAA;SACvD;QAED,IAAI,gCAAgC,GAAG,yCAAyC,CAAC,4BAA4B,EAAE,oBAAoB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnJ,IAAI,IAAI,GAAG,UAAU,CAAA;QACrB,mCAAmC;QACnC,IAAI,gCAAgC,IAAI,QAAQ,CAAC,QAAQ,KAAK,eAAQ,CAAC,OAAO,EAAE;YAC9E,IAAI,GAAG;gBACL,GAAG,IAAI;aACR,CAEA;YAAC,IAA0B,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAA;SACrD;QAED,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,IAAI,oBAAoB,CAAC,QAAQ,KAAK,QAAQ,EAAE;YAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;YACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAA;YACxC,IAAI,GAAG;gBACL,GAAG,IAAI;gBACP,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,KAAK,CAAC,gBAAgB;aAC7B,CAAA;SACF;QAED,KAAK,MAAM,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE;YACzE,IAAI,KAAK,IAAI,gCAAgC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC5E,yIAAyI;gBACzI,gCAAgC,GAAG,KAAK,CAAA;gBACxC,MAAM,eAAe,CAAC,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;aACnG;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3F,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBACpC,SAAQ;aACT;YAED,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;YAEhC,kEAAkE;YAClE,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,cAAc;gBACpB,IAAI;gBACJ,oBAAoB;gBACpB,QAAQ;aACT,CAAC,CAAA;SACH;KACF;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAnED,sDAmEC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAsB,EAAE,WAAwB;IAC/F,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAA;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,eAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1G,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAe;QACzB,aAAa;QACb,OAAO;QACP,aAAa;QACb,KAAK;QACL,aAAa;QACb,IAAI,EAAE,GAAG,CAAC,4EAA4E;QACtF,aAAa;QACb,MAAM,CAAC,4EAA4E;QACnF,GAAI,WAA0B;KAC/B,CAAA;IAED,IAAI,gBAAgB,IAAI,IAAI,EAAE;QAC5B,gDAAgD;QAChD,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;KAClF;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,mBAA8C,EAAE,QAAkB;IAC3G,gGAAgG;IAChG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAEvI,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAA8B,CAAA;IACrE,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE;QACtC,kEAAkE;QAClE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,gCAAiB,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;QACpG,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,YAAY,IAAI,IAAI,EAAE;YACxB,uBAAuB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YACtC,SAAQ;SACT;QAED,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjD;IAED,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,sBAAe,CAAC,GAAG,CACvB,uBAAuB,CAAC,MAAM,EAAE,EAChC,KAAK,EAAC,IAAI,EAAC,EAAE;QACX,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAA;QAC/C,IAAI,aAAa,CAAC,iBAAiB,KAAK,KAAK,EAAE;YAC7C,kBAAG,CAAC,KAAK,CACP;gBACE,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,MAAM,EAAE,mCAAmC;aAC5C,EACD,yCAAyC,CAC1C,CAAA;YACD,OAAM;SACP;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SACpC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,8BAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;QACxE,MAAM,qBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QACxC,QAAQ,CAAC,uBAAuB,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI;YACZ,aAAa;SACd,CAAC,CAAA;IACJ,CAAC,EACD,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAA;AACH,CAAC;AAlDD,oDAkDC;AAED,2CAA2C;AAC3C,KAAK,UAAU,eAAe,CAC5B,aAAmC,EACnC,MAAc,EACd,GAAW,EACX,OAAe,EACf,YAAyB,EACzB,OAAe,EACf,QAA+B;IAE/B,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,KAAK,QAAQ,CAAA;IACpD,MAAM,cAAc,GAAG,QAAQ,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,WAAW,CAAC,CAAA;IAC3I,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QACrC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAChC,MAAM,qBAAU,CACd,cAAc,EACd;YACE,OAAO;YACP,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,GAAG,EAAE,mCAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;SACjG,EACD,EAAE,MAAM,EAAE,CAAC,EAAE,CACd,CAAA;QAED,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC;YACpC,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,IAAI;YACV,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,aAAa;SACd,CAAC,CAAA;KACH;AACH,CAAC","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from \"builder-util-runtime\"\nimport { outputFile, outputJson, readFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { Platform } from \"../core\"\nimport { ReleaseInfo } from \"../options/PlatformSpecificBuildOptions\"\nimport { Packager } from \"../packager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { hashFile } from \"../util/hash\"\nimport { computeDownloadUrl, getPublishConfigsForUpdateInfo } from \"./PublishManager\"\n\nasync function getReleaseInfo(packager: PlatformPackager<any>) {\n const releaseInfo: ReleaseInfo = { ...(packager.platformSpecificBuildOptions.releaseInfo || packager.config.releaseInfo) }\n if (releaseInfo.releaseNotes == null) {\n const releaseNotesFile = await packager.getResource(\n releaseInfo.releaseNotesFile,\n `release-notes-${packager.platform.buildConfigurationKey}.md`,\n `release-notes-${packager.platform.name}.md`,\n `release-notes-${packager.platform.nodeName}.md`,\n \"release-notes.md\"\n )\n const releaseNotes = releaseNotesFile == null ? null : await readFile(releaseNotesFile, \"utf-8\")\n // to avoid undefined in the file, check for null\n if (releaseNotes != null) {\n releaseInfo.releaseNotes = releaseNotes\n }\n }\n delete releaseInfo.releaseNotesFile\n return releaseInfo\n}\n\nfunction isGenerateUpdatesFilesForAllChannels(packager: PlatformPackager<any>) {\n const value = packager.platformSpecificBuildOptions.generateUpdatesFilesForAllChannels\n return value == null ? packager.config.generateUpdatesFilesForAllChannels : value\n}\n\n/**\n if this is an \"alpha\" version, we need to generate only the \"alpha\" .yml file\n if this is a \"beta\" version, we need to generate both the \"alpha\" and \"beta\" .yml file\n if this is a \"stable\" version, we need to generate all the \"alpha\", \"beta\" and \"stable\" .yml file\n */\nfunction computeChannelNames(packager: PlatformPackager<any>, publishConfig: PublishConfiguration): Array<string> {\n const currentChannel: string = (publishConfig as GenericServerOptions).channel || \"latest\"\n // for GitHub should be pre-release way be used\n if (currentChannel === \"alpha\" || publishConfig.provider === \"github\" || !isGenerateUpdatesFilesForAllChannels(packager)) {\n return [currentChannel]\n }\n\n switch (currentChannel) {\n case \"beta\":\n return [currentChannel, \"alpha\"]\n\n case \"latest\":\n return [currentChannel, \"alpha\", \"beta\"]\n\n default:\n return [currentChannel]\n }\n}\n\nfunction getUpdateInfoFileName(channel: string, packager: PlatformPackager<any>, arch: Arch | null): string {\n const osSuffix = packager.platform === Platform.WINDOWS ? \"\" : `-${packager.platform.buildConfigurationKey}`\n return `${channel}${osSuffix}${getArchPrefixForUpdateFile(arch, packager)}.yml`\n}\n\nfunction getArchPrefixForUpdateFile(arch: Arch | null, packager: PlatformPackager<any>) {\n if (arch == null || arch === Arch.x64 || packager.platform !== Platform.LINUX) {\n return \"\"\n }\n return arch === Arch.armv7l ? \"-arm\" : `-${Arch[arch]}`\n}\n\nexport interface UpdateInfoFileTask {\n readonly file: string\n readonly info: UpdateInfo\n readonly publishConfiguration: PublishConfiguration\n\n readonly packager: PlatformPackager<any>\n}\n\nfunction computeIsisElectronUpdater1xCompatibility(updaterCompatibility: string | null, publishConfiguration: PublishConfiguration, packager: Packager) {\n if (updaterCompatibility != null) {\n return semver.satisfies(\"1.0.0\", updaterCompatibility)\n }\n\n // spaces is a new publish provider, no need to keep backward compatibility\n if (publishConfiguration.provider === \"spaces\") {\n return false\n }\n\n const updaterVersion = packager.metadata.dependencies == null ? null : packager.metadata.dependencies[\"electron-updater\"]\n return updaterVersion == null || semver.lt(updaterVersion, \"4.0.0\")\n}\n\n/** @internal */\nexport async function createUpdateInfoTasks(event: ArtifactCreated, _publishConfigs: Array<PublishConfiguration>): Promise<Array<UpdateInfoFileTask>> {\n const packager = event.packager\n const publishConfigs = await getPublishConfigsForUpdateInfo(packager, _publishConfigs, event.arch)\n if (publishConfigs == null || publishConfigs.length === 0) {\n return []\n }\n\n const outDir = event.target!.outDir\n const version = packager.appInfo.version\n const sha2 = new Lazy<string>(() => hashFile(event.file, \"sha256\", \"hex\"))\n const isMac = packager.platform === Platform.MAC\n const createdFiles = new Set<string>()\n const sharedInfo = await createUpdateInfo(version, event, await getReleaseInfo(packager))\n const tasks: Array<UpdateInfoFileTask> = []\n const electronUpdaterCompatibility = packager.platformSpecificBuildOptions.electronUpdaterCompatibility || packager.config.electronUpdaterCompatibility || \">=2.15\"\n for (const publishConfiguration of publishConfigs) {\n let dir = outDir\n if (publishConfigs.length > 1 && publishConfiguration !== publishConfigs[0]) {\n dir = path.join(outDir, publishConfiguration.provider)\n }\n\n let isElectronUpdater1xCompatibility = computeIsisElectronUpdater1xCompatibility(electronUpdaterCompatibility, publishConfiguration, packager.info)\n\n let info = sharedInfo\n // noinspection JSDeprecatedSymbols\n if (isElectronUpdater1xCompatibility && packager.platform === Platform.WINDOWS) {\n info = {\n ...info,\n }\n // noinspection JSDeprecatedSymbols\n ;(info as WindowsUpdateInfo).sha2 = await sha2.value\n }\n\n if (event.safeArtifactName != null && publishConfiguration.provider === \"github\") {\n const newFiles = info.files.slice()\n newFiles[0].url = event.safeArtifactName\n info = {\n ...info,\n files: newFiles,\n path: event.safeArtifactName,\n }\n }\n\n for (const channel of computeChannelNames(packager, publishConfiguration)) {\n if (isMac && isElectronUpdater1xCompatibility && event.file.endsWith(\".zip\")) {\n // write only for first channel (generateUpdatesFilesForAllChannels is a new functionality, no need to generate old mac update info file)\n isElectronUpdater1xCompatibility = false\n await writeOldMacInfo(publishConfiguration, outDir, dir, channel, createdFiles, version, packager)\n }\n\n const updateInfoFile = path.join(dir, getUpdateInfoFileName(channel, packager, event.arch))\n if (createdFiles.has(updateInfoFile)) {\n continue\n }\n\n createdFiles.add(updateInfoFile)\n\n // artifact should be uploaded only to designated publish provider\n tasks.push({\n file: updateInfoFile,\n info,\n publishConfiguration,\n packager,\n })\n }\n }\n return tasks\n}\n\nasync function createUpdateInfo(version: string, event: ArtifactCreated, releaseInfo: ReleaseInfo): Promise<UpdateInfo> {\n const customUpdateInfo = event.updateInfo\n const url = path.basename(event.file)\n const sha512 = (customUpdateInfo == null ? null : customUpdateInfo.sha512) || (await hashFile(event.file))\n const files = [{ url, sha512 }]\n const result: UpdateInfo = {\n // @ts-ignore\n version,\n // @ts-ignore\n files,\n // @ts-ignore\n path: url /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n // @ts-ignore\n sha512 /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n ...(releaseInfo as UpdateInfo),\n }\n\n if (customUpdateInfo != null) {\n // file info or nsis web installer packages info\n Object.assign(\"sha512\" in customUpdateInfo ? files[0] : result, customUpdateInfo)\n }\n return result\n}\n\nexport async function writeUpdateInfoFiles(updateInfoFileTasks: Array<UpdateInfoFileTask>, packager: Packager) {\n // zip must be first and zip info must be used for old path/sha512 properties in the update info\n updateInfoFileTasks.sort((a, b) => (a.info.files[0].url.endsWith(\".zip\") ? 0 : 100) - (b.info.files[0].url.endsWith(\".zip\") ? 0 : 100))\n\n const updateChannelFileToInfo = new Map<string, UpdateInfoFileTask>()\n for (const task of updateInfoFileTasks) {\n // https://github.com/electron-userland/electron-builder/pull/2994\n const key = `${task.file}@${safeStringifyJson(task.publishConfiguration, new Set([\"releaseType\"]))}`\n const existingTask = updateChannelFileToInfo.get(key)\n if (existingTask == null) {\n updateChannelFileToInfo.set(key, task)\n continue\n }\n\n existingTask.info.files.push(...task.info.files)\n }\n\n const releaseDate = new Date().toISOString()\n await BluebirdPromise.map(\n updateChannelFileToInfo.values(),\n async task => {\n const publishConfig = task.publishConfiguration\n if (publishConfig.publishAutoUpdate === false) {\n log.debug(\n {\n provider: publishConfig.provider,\n reason: \"publishAutoUpdate is set to false\",\n },\n \"auto update metadata file not published\"\n )\n return\n }\n\n if (task.info.releaseDate == null) {\n task.info.releaseDate = releaseDate\n }\n\n const fileContent = Buffer.from(serializeToYaml(task.info, false, true))\n await outputFile(task.file, fileContent)\n packager.dispatchArtifactCreated({\n file: task.file,\n fileContent,\n arch: null,\n packager: task.packager,\n target: null,\n publishConfig,\n })\n },\n { concurrency: 4 }\n )\n}\n\n// backward compatibility - write json file\nasync function writeOldMacInfo(\n publishConfig: PublishConfiguration,\n outDir: string,\n dir: string,\n channel: string,\n createdFiles: Set<string>,\n version: string,\n packager: PlatformPackager<any>\n) {\n const isGitHub = publishConfig.provider === \"github\"\n const updateInfoFile = isGitHub && outDir === dir ? path.join(dir, \"github\", `${channel}-mac.json`) : path.join(dir, `${channel}-mac.json`)\n if (!createdFiles.has(updateInfoFile)) {\n createdFiles.add(updateInfoFile)\n await outputJson(\n updateInfoFile,\n {\n version,\n releaseDate: new Date().toISOString(),\n url: computeDownloadUrl(publishConfig, packager.generateName2(\"zip\", \"mac\", isGitHub), packager),\n },\n { spaces: 2 }\n )\n\n packager.info.dispatchArtifactCreated({\n file: updateInfoFile,\n arch: null,\n packager,\n target: null,\n publishConfig,\n })\n }\n}\n"]}
1
+ {"version":3,"file":"updateInfoBuilder.js","sourceRoot":"","sources":["../../src/publish/updateInfoBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, log, safeStringifyJson, serializeToYaml } from \"builder-util\"\nimport { GenericServerOptions, PublishConfiguration, UpdateInfo, WindowsUpdateInfo } from \"builder-util-runtime\"\nimport { outputFile, outputJson, readFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport * as semver from \"semver\"\nimport { Platform } from \"../core\"\nimport { ReleaseInfo } from \"../options/PlatformSpecificBuildOptions\"\nimport { Packager } from \"../packager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { PlatformPackager } from \"../platformPackager\"\nimport { hashFile } from \"../util/hash\"\nimport { computeDownloadUrl, getPublishConfigsForUpdateInfo } from \"./PublishManager\"\n\nasync function getReleaseInfo(packager: PlatformPackager<any>) {\n const releaseInfo: ReleaseInfo = { ...(packager.platformSpecificBuildOptions.releaseInfo || packager.config.releaseInfo) }\n if (releaseInfo.releaseNotes == null) {\n const releaseNotesFile = await packager.getResource(\n releaseInfo.releaseNotesFile,\n `release-notes-${packager.platform.buildConfigurationKey}.md`,\n `release-notes-${packager.platform.name}.md`,\n `release-notes-${packager.platform.nodeName}.md`,\n \"release-notes.md\"\n )\n const releaseNotes = releaseNotesFile == null ? null : await readFile(releaseNotesFile, \"utf-8\")\n // to avoid undefined in the file, check for null\n if (releaseNotes != null) {\n releaseInfo.releaseNotes = releaseNotes\n }\n }\n delete releaseInfo.releaseNotesFile\n return releaseInfo\n}\n\nfunction isGenerateUpdatesFilesForAllChannels(packager: PlatformPackager<any>) {\n const value = packager.platformSpecificBuildOptions.generateUpdatesFilesForAllChannels\n return value == null ? packager.config.generateUpdatesFilesForAllChannels : value\n}\n\n/**\n if this is an \"alpha\" version, we need to generate only the \"alpha\" .yml file\n if this is a \"beta\" version, we need to generate both the \"alpha\" and \"beta\" .yml file\n if this is a \"stable\" version, we need to generate all the \"alpha\", \"beta\" and \"stable\" .yml file\n */\nfunction computeChannelNames(packager: PlatformPackager<any>, publishConfig: PublishConfiguration): Array<string> {\n const currentChannel: string = (publishConfig as GenericServerOptions).channel || \"latest\"\n // for GitHub should be pre-release way be used\n if (currentChannel === \"alpha\" || publishConfig.provider === \"github\" || !isGenerateUpdatesFilesForAllChannels(packager)) {\n return [currentChannel]\n }\n\n switch (currentChannel) {\n case \"beta\":\n return [currentChannel, \"alpha\"]\n\n case \"latest\":\n return [currentChannel, \"alpha\", \"beta\"]\n\n default:\n return [currentChannel]\n }\n}\n\nfunction getUpdateInfoFileName(channel: string, packager: PlatformPackager<any>, arch: Arch | null): string {\n const osSuffix = packager.platform === Platform.WINDOWS ? \"\" : `-${packager.platform.buildConfigurationKey}`\n return `${channel}${osSuffix}${getArchPrefixForUpdateFile(arch, packager)}.yml`\n}\n\nfunction getArchPrefixForUpdateFile(arch: Arch | null, packager: PlatformPackager<any>) {\n if (arch == null || arch === Arch.x64 || packager.platform !== Platform.LINUX) {\n return \"\"\n }\n return arch === Arch.armv7l ? \"-arm\" : `-${Arch[arch]}`\n}\n\nexport interface UpdateInfoFileTask {\n readonly file: string\n readonly info: UpdateInfo\n readonly publishConfiguration: PublishConfiguration\n\n readonly packager: PlatformPackager<any>\n}\n\nfunction computeIsisElectronUpdater1xCompatibility(updaterCompatibility: string | null, publishConfiguration: PublishConfiguration, packager: Packager) {\n if (updaterCompatibility != null) {\n return semver.satisfies(\"1.0.0\", updaterCompatibility)\n }\n\n // spaces is a new publish provider, no need to keep backward compatibility\n if (publishConfiguration.provider === \"spaces\") {\n return false\n }\n\n const updaterVersion = packager.metadata.dependencies == null ? null : packager.metadata.dependencies[\"electron-updater\"]\n return updaterVersion == null || semver.lt(updaterVersion, \"4.0.0\")\n}\n\n/** @internal */\nexport async function createUpdateInfoTasks(event: ArtifactCreated, _publishConfigs: Array<PublishConfiguration>): Promise<Array<UpdateInfoFileTask>> {\n const packager = event.packager\n const publishConfigs = await getPublishConfigsForUpdateInfo(packager, _publishConfigs, event.arch)\n if (publishConfigs == null || publishConfigs.length === 0) {\n return []\n }\n\n const outDir = event.target!.outDir\n const version = packager.appInfo.version\n const sha2 = new Lazy<string>(() => hashFile(event.file, \"sha256\", \"hex\"))\n const isMac = packager.platform === Platform.MAC\n const createdFiles = new Set<string>()\n const sharedInfo = await createUpdateInfo(version, event, await getReleaseInfo(packager))\n const tasks: Array<UpdateInfoFileTask> = []\n const electronUpdaterCompatibility = packager.platformSpecificBuildOptions.electronUpdaterCompatibility || packager.config.electronUpdaterCompatibility || \">=2.15\"\n for (const publishConfiguration of publishConfigs) {\n let dir = outDir\n if (publishConfigs.length > 1 && publishConfiguration !== publishConfigs[0]) {\n dir = path.join(outDir, publishConfiguration.provider)\n }\n\n let isElectronUpdater1xCompatibility = computeIsisElectronUpdater1xCompatibility(electronUpdaterCompatibility, publishConfiguration, packager.info)\n\n let info = sharedInfo\n // noinspection JSDeprecatedSymbols\n if (isElectronUpdater1xCompatibility && packager.platform === Platform.WINDOWS) {\n info = {\n ...info,\n }\n // noinspection JSDeprecatedSymbols\n ;(info as WindowsUpdateInfo).sha2 = await sha2.value\n }\n\n if (event.safeArtifactName != null && publishConfiguration.provider === \"github\") {\n const newFiles = info.files.slice()\n newFiles[0].url = event.safeArtifactName\n info = {\n ...info,\n files: newFiles,\n path: event.safeArtifactName,\n }\n }\n\n for (const channel of computeChannelNames(packager, publishConfiguration)) {\n if (isMac && isElectronUpdater1xCompatibility && event.file.endsWith(\".zip\")) {\n // write only for first channel (generateUpdatesFilesForAllChannels is a new functionality, no need to generate old mac update info file)\n isElectronUpdater1xCompatibility = false\n await writeOldMacInfo(publishConfiguration, outDir, dir, channel, createdFiles, version, packager)\n }\n\n const updateInfoFile = path.join(dir, getUpdateInfoFileName(channel, packager, event.arch))\n if (createdFiles.has(updateInfoFile)) {\n continue\n }\n\n createdFiles.add(updateInfoFile)\n\n // artifact should be uploaded only to designated publish provider\n tasks.push({\n file: updateInfoFile,\n info,\n publishConfiguration,\n packager,\n })\n }\n }\n return tasks\n}\n\nasync function createUpdateInfo(version: string, event: ArtifactCreated, releaseInfo: ReleaseInfo): Promise<UpdateInfo> {\n const customUpdateInfo = event.updateInfo\n const url = path.basename(event.file)\n const sha512 = (customUpdateInfo == null ? null : customUpdateInfo.sha512) || (await hashFile(event.file))\n const files = [{ url, sha512 }]\n const result: UpdateInfo = {\n // @ts-ignore\n version,\n // @ts-ignore\n files,\n // @ts-ignore\n path: url /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n // @ts-ignore\n sha512 /* backward compatibility, electron-updater 1.x - electron-updater 2.15.0 */,\n ...(releaseInfo as UpdateInfo),\n }\n\n if (customUpdateInfo != null) {\n // file info or nsis web installer packages info\n Object.assign(\"sha512\" in customUpdateInfo ? files[0] : result, customUpdateInfo)\n }\n return result\n}\n\nexport async function writeUpdateInfoFiles(updateInfoFileTasks: Array<UpdateInfoFileTask>, packager: Packager) {\n // zip must be first and zip info must be used for old path/sha512 properties in the update info\n updateInfoFileTasks.sort((a, b) => (a.info.files[0].url.endsWith(\".zip\") ? 0 : 100) - (b.info.files[0].url.endsWith(\".zip\") ? 0 : 100))\n\n const updateChannelFileToInfo = new Map<string, UpdateInfoFileTask>()\n for (const task of updateInfoFileTasks) {\n // https://github.com/electron-userland/electron-builder/pull/2994\n const key = `${task.file}@${safeStringifyJson(task.publishConfiguration, new Set([\"releaseType\"]))}`\n const existingTask = updateChannelFileToInfo.get(key)\n if (existingTask == null) {\n updateChannelFileToInfo.set(key, task)\n continue\n }\n\n existingTask.info.files.push(...task.info.files)\n }\n\n const releaseDate = new Date().toISOString()\n await BluebirdPromise.map(\n updateChannelFileToInfo.values(),\n async task => {\n const publishConfig = task.publishConfiguration\n if (publishConfig.publishAutoUpdate === false) {\n log.debug(\n {\n provider: publishConfig.provider,\n reason: \"publishAutoUpdate is set to false\",\n },\n \"auto update metadata file not published\"\n )\n return\n }\n\n if (task.info.releaseDate == null) {\n task.info.releaseDate = releaseDate\n }\n\n const fileContent = Buffer.from(serializeToYaml(task.info, false, true))\n await outputFile(task.file, fileContent)\n packager.dispatchArtifactCreated({\n file: task.file,\n fileContent,\n arch: null,\n packager: task.packager,\n target: null,\n publishConfig,\n })\n },\n { concurrency: 4 }\n )\n}\n\n// backward compatibility - write json file\nasync function writeOldMacInfo(\n publishConfig: PublishConfiguration,\n outDir: string,\n dir: string,\n channel: string,\n createdFiles: Set<string>,\n version: string,\n packager: PlatformPackager<any>\n) {\n const isGitHub = publishConfig.provider === \"github\"\n const updateInfoFile = isGitHub && outDir === dir ? path.join(dir, \"github\", `${channel}-mac.json`) : path.join(dir, `${channel}-mac.json`)\n if (!createdFiles.has(updateInfoFile)) {\n createdFiles.add(updateInfoFile)\n await outputJson(\n updateInfoFile,\n {\n version,\n releaseDate: new Date().toISOString(),\n url: computeDownloadUrl(publishConfig, packager.generateName2(\"zip\", \"mac\", isGitHub), packager),\n },\n { spaces: 2 }\n )\n\n packager.info.dispatchArtifactCreated({\n file: updateInfoFile,\n arch: null,\n packager,\n target: null,\n publishConfig,\n })\n }\n}\n"]}
@@ -23,7 +23,7 @@ class ProjectInfoManager {
23
23
  info.devMetadata = packager.devMetadata;
24
24
  }
25
25
  const file = path.join(tempDir, "info.json");
26
- await fs_extra_1.outputJson(file, info);
26
+ await (0, fs_extra_1.outputJson)(file, info);
27
27
  return file;
28
28
  }
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectInfoManager.js","sourceRoot":"","sources":["../../src/remoteBuilder/ProjectInfoManager.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,uCAA+B;AAC/B,6BAA4B;AAG5B,MAAa,kBAAkB;IAG7B,YAAqB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAF9B,aAAQ,GAAG,IAAI,eAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAA;IAE7B,CAAC;IAEnC,KAAK,CAAC,4BAA4B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAA;QAChG,+DAA+D;QAC/D,MAAM,IAAI,GAAQ;YAChB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,cAAc,EAAE,MAAM,QAAQ,CAAC,cAAc;YAC7C,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAChE,CAAA;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;YAC9E,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;SACxC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC5C,MAAM,qBAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAtBD,gDAsBC","sourcesContent":["import { outputJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Packager } from \"../packager\"\n\nexport class ProjectInfoManager {\n readonly infoFile = new Lazy(() => this.saveConfigurationAndMetadata())\n\n constructor(readonly packager: Packager) {}\n\n private async saveConfigurationAndMetadata() {\n const packager = this.packager\n const tempDir = await packager.tempDirManager.createTempDir({ prefix: \"remote-build-metadata\" })\n // we cannot use getTempFile because file name must be constant\n const info: any = {\n metadata: packager.metadata,\n configuration: packager.config,\n repositoryInfo: await packager.repositoryInfo,\n buildResourceDirName: path.basename(packager.buildResourcesDir),\n }\n if (packager.metadata !== packager.devMetadata && packager.devMetadata != null) {\n info.devMetadata = packager.devMetadata\n }\n const file = path.join(tempDir, \"info.json\")\n await outputJson(file, info)\n return file\n }\n}\n"]}
1
+ {"version":3,"file":"ProjectInfoManager.js","sourceRoot":"","sources":["../../src/remoteBuilder/ProjectInfoManager.ts"],"names":[],"mappings":";;;AAAA,uCAAqC;AACrC,uCAA+B;AAC/B,6BAA4B;AAG5B,MAAa,kBAAkB;IAG7B,YAAqB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAF9B,aAAQ,GAAG,IAAI,eAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAA;IAE7B,CAAC;IAEnC,KAAK,CAAC,4BAA4B;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAA;QAChG,+DAA+D;QAC/D,MAAM,IAAI,GAAQ;YAChB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,cAAc,EAAE,MAAM,QAAQ,CAAC,cAAc;YAC7C,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAChE,CAAA;QACD,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;YAC9E,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;SACxC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC5C,MAAM,IAAA,qBAAU,EAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAtBD,gDAsBC","sourcesContent":["import { outputJson } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Packager } from \"../packager\"\n\nexport class ProjectInfoManager {\n readonly infoFile = new Lazy(() => this.saveConfigurationAndMetadata())\n\n constructor(readonly packager: Packager) {}\n\n private async saveConfigurationAndMetadata() {\n const packager = this.packager\n const tempDir = await packager.tempDirManager.createTempDir({ prefix: \"remote-build-metadata\" })\n // we cannot use getTempFile because file name must be constant\n const info: any = {\n metadata: packager.metadata,\n configuration: packager.config,\n repositoryInfo: await packager.repositoryInfo,\n buildResourceDirName: path.basename(packager.buildResourcesDir),\n }\n if (packager.metadata !== packager.devMetadata && packager.devMetadata != null) {\n info.devMetadata = packager.devMetadata\n }\n const file = path.join(tempDir, \"info.json\")\n await outputJson(file, info)\n return file\n }\n}\n"]}
@@ -15,7 +15,7 @@ class RemoteBuilder {
15
15
  this.buildStarted = false;
16
16
  }
17
17
  scheduleBuild(target, arch, unpackedDirectory) {
18
- if (!builder_util_1.isEnvTrue(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {
18
+ if (!(0, builder_util_1.isEnvTrue)(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {
19
19
  throw new builder_util_1.InvalidConfigurationError('Target is not supported on your OS and using of Electron Build Service is disabled ("remoteBuild" option)');
20
20
  }
21
21
  let list = this.toBuild.get(arch);
@@ -55,7 +55,7 @@ class RemoteBuilder {
55
55
  }),
56
56
  platform: packager.platform.buildConfigurationKey,
57
57
  };
58
- if (platformPackager_1.isSafeToUnpackElectronOnRemoteBuildServer(packager)) {
58
+ if ((0, platformPackager_1.isSafeToUnpackElectronOnRemoteBuildServer)(packager)) {
59
59
  buildRequest.electronDownload = {
60
60
  version: packager.info.framework.version,
61
61
  platform: core_1.Platform.LINUX.nodeName,
@@ -74,7 +74,7 @@ class RemoteBuilder {
74
74
  throw new builder_util_1.InvalidConfigurationError(`Build resources dir equals to project dir and so, not sent to remote build agent. It will lead to incorrect results.\nPlease set "directories.buildResources" to separate dir or leave default ("build" directory in the project root)`);
75
75
  }
76
76
  args.push("--build-resource-dir", buildResourcesDir);
77
- const result = await appBuilder_1.executeAppBuilderAsJson(args);
77
+ const result = await (0, appBuilder_1.executeAppBuilderAsJson)(args);
78
78
  if (result.error != null) {
79
79
  throw new builder_util_1.InvalidConfigurationError(`Remote builder error (if you think that it is not your application misconfiguration issue, please file issue to https://github.com/electron-userland/electron-builder/issues):\n\n${result.error}`, "REMOTE_BUILDER_ERROR");
80
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RemoteBuilder.js","sourceRoot":"","sources":["../../src/remoteBuilder/RemoteBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, isEnvTrue, log, InvalidConfigurationError } from \"builder-util\"\nimport * as path from \"path\"\nimport { UploadTask } from \"electron-publish/out/publisher\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { isSafeToUnpackElectronOnRemoteBuildServer, PlatformPackager } from \"../platformPackager\"\nimport { executeAppBuilderAsJson } from \"../util/appBuilder\"\nimport { ProjectInfoManager } from \"./ProjectInfoManager\"\n\ninterface TargetInfo {\n name: string\n arch: string\n unpackedDirectory: string\n outDir: string\n}\n\nexport class RemoteBuilder {\n private readonly toBuild = new Map<Arch, Array<TargetInfo>>()\n private buildStarted = false\n\n constructor(readonly packager: PlatformPackager<any>) {}\n\n scheduleBuild(target: Target, arch: Arch, unpackedDirectory: string) {\n if (!isEnvTrue(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {\n throw new InvalidConfigurationError('Target is not supported on your OS and using of Electron Build Service is disabled (\"remoteBuild\" option)')\n }\n\n let list = this.toBuild.get(arch)\n if (list == null) {\n list = []\n this.toBuild.set(arch, list)\n }\n\n list.push({\n name: target.name,\n arch: Arch[arch],\n unpackedDirectory,\n outDir: target.outDir,\n })\n }\n\n build(): Promise<any> {\n if (this.buildStarted) {\n return Promise.resolve()\n }\n\n this.buildStarted = true\n\n return BluebirdPromise.mapSeries(Array.from(this.toBuild.keys()), (arch: Arch) => {\n return this._build(this.toBuild.get(arch)!, this.packager)\n })\n }\n\n // noinspection JSMethodCanBeStatic\n private async _build(targets: Array<TargetInfo>, packager: PlatformPackager<any>): Promise<void> {\n if (log.isDebugEnabled) {\n log.debug({ remoteTargets: JSON.stringify(targets, null, 2) }, \"remote building\")\n }\n\n const projectInfoManager = new ProjectInfoManager(packager.info)\n\n const buildRequest: any = {\n targets: targets.map(it => {\n return {\n name: it.name,\n arch: it.arch,\n unpackedDirName: path.basename(it.unpackedDirectory),\n }\n }),\n platform: packager.platform.buildConfigurationKey,\n }\n\n if (isSafeToUnpackElectronOnRemoteBuildServer(packager)) {\n buildRequest.electronDownload = {\n version: packager.info.framework.version,\n platform: Platform.LINUX.nodeName,\n arch: targets[0].arch,\n }\n\n const linuxPackager = packager as LinuxPackager\n buildRequest.executableName = linuxPackager.executableName\n }\n\n const req = Buffer.from(JSON.stringify(buildRequest)).toString(\"base64\")\n const outDir = targets[0].outDir\n const args = [\"remote-build\", \"--request\", req, \"--output\", outDir]\n\n args.push(\"--file\", targets[0].unpackedDirectory)\n args.push(\"--file\", await projectInfoManager.infoFile.value)\n\n const buildResourcesDir = packager.buildResourcesDir\n if (buildResourcesDir === packager.projectDir) {\n throw new InvalidConfigurationError(\n `Build resources dir equals to project dir and so, not sent to remote build agent. It will lead to incorrect results.\\nPlease set \"directories.buildResources\" to separate dir or leave default (\"build\" directory in the project root)`\n )\n }\n\n args.push(\"--build-resource-dir\", buildResourcesDir)\n\n const result: any = await executeAppBuilderAsJson(args)\n if (result.error != null) {\n throw new InvalidConfigurationError(\n `Remote builder error (if you think that it is not your application misconfiguration issue, please file issue to https://github.com/electron-userland/electron-builder/issues):\\n\\n${result.error}`,\n \"REMOTE_BUILDER_ERROR\"\n )\n } else if (result.files != null) {\n for (const artifact of result.files) {\n const localFile = path.join(outDir, artifact.file)\n const artifactCreatedEvent = this.artifactInfoToArtifactCreatedEvent(artifact, localFile, outDir)\n // PublishManager uses outDir and options, real (the same as for local build) values must be used\n await this.packager.info.callArtifactBuildCompleted(artifactCreatedEvent)\n }\n }\n }\n\n private artifactInfoToArtifactCreatedEvent(artifact: ArtifactInfo, localFile: string, outDir: string): ArtifactCreated {\n const target = artifact.target\n // noinspection SpellCheckingInspection\n return {\n ...artifact,\n file: localFile,\n target: target == null ? null : new FakeTarget(target, outDir, (this.packager.config as any)[target]),\n packager: this.packager,\n }\n }\n}\n\nclass FakeTarget extends Target {\n constructor(name: string, readonly outDir: string, readonly options: TargetSpecificOptions | null | undefined) {\n super(name)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async build(appOutDir: string, arch: Arch) {\n // no build\n }\n}\n\ninterface ArtifactInfo extends UploadTask {\n target: string | null\n\n readonly isWriteUpdateInfo?: boolean\n readonly updateInfo?: any\n}\n"]}
1
+ {"version":3,"file":"RemoteBuilder.js","sourceRoot":"","sources":["../../src/remoteBuilder/RemoteBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { Arch, isEnvTrue, log, InvalidConfigurationError } from \"builder-util\"\nimport * as path from \"path\"\nimport { UploadTask } from \"electron-publish/out/publisher\"\nimport { Platform, Target, TargetSpecificOptions } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { ArtifactCreated } from \"../packagerApi\"\nimport { isSafeToUnpackElectronOnRemoteBuildServer, PlatformPackager } from \"../platformPackager\"\nimport { executeAppBuilderAsJson } from \"../util/appBuilder\"\nimport { ProjectInfoManager } from \"./ProjectInfoManager\"\n\ninterface TargetInfo {\n name: string\n arch: string\n unpackedDirectory: string\n outDir: string\n}\n\nexport class RemoteBuilder {\n private readonly toBuild = new Map<Arch, Array<TargetInfo>>()\n private buildStarted = false\n\n constructor(readonly packager: PlatformPackager<any>) {}\n\n scheduleBuild(target: Target, arch: Arch, unpackedDirectory: string) {\n if (!isEnvTrue(process.env._REMOTE_BUILD) && this.packager.config.remoteBuild === false) {\n throw new InvalidConfigurationError('Target is not supported on your OS and using of Electron Build Service is disabled (\"remoteBuild\" option)')\n }\n\n let list = this.toBuild.get(arch)\n if (list == null) {\n list = []\n this.toBuild.set(arch, list)\n }\n\n list.push({\n name: target.name,\n arch: Arch[arch],\n unpackedDirectory,\n outDir: target.outDir,\n })\n }\n\n build(): Promise<any> {\n if (this.buildStarted) {\n return Promise.resolve()\n }\n\n this.buildStarted = true\n\n return BluebirdPromise.mapSeries(Array.from(this.toBuild.keys()), (arch: Arch) => {\n return this._build(this.toBuild.get(arch)!, this.packager)\n })\n }\n\n // noinspection JSMethodCanBeStatic\n private async _build(targets: Array<TargetInfo>, packager: PlatformPackager<any>): Promise<void> {\n if (log.isDebugEnabled) {\n log.debug({ remoteTargets: JSON.stringify(targets, null, 2) }, \"remote building\")\n }\n\n const projectInfoManager = new ProjectInfoManager(packager.info)\n\n const buildRequest: any = {\n targets: targets.map(it => {\n return {\n name: it.name,\n arch: it.arch,\n unpackedDirName: path.basename(it.unpackedDirectory),\n }\n }),\n platform: packager.platform.buildConfigurationKey,\n }\n\n if (isSafeToUnpackElectronOnRemoteBuildServer(packager)) {\n buildRequest.electronDownload = {\n version: packager.info.framework.version,\n platform: Platform.LINUX.nodeName,\n arch: targets[0].arch,\n }\n\n const linuxPackager = packager as LinuxPackager\n buildRequest.executableName = linuxPackager.executableName\n }\n\n const req = Buffer.from(JSON.stringify(buildRequest)).toString(\"base64\")\n const outDir = targets[0].outDir\n const args = [\"remote-build\", \"--request\", req, \"--output\", outDir]\n\n args.push(\"--file\", targets[0].unpackedDirectory)\n args.push(\"--file\", await projectInfoManager.infoFile.value)\n\n const buildResourcesDir = packager.buildResourcesDir\n if (buildResourcesDir === packager.projectDir) {\n throw new InvalidConfigurationError(\n `Build resources dir equals to project dir and so, not sent to remote build agent. It will lead to incorrect results.\\nPlease set \"directories.buildResources\" to separate dir or leave default (\"build\" directory in the project root)`\n )\n }\n\n args.push(\"--build-resource-dir\", buildResourcesDir)\n\n const result: any = await executeAppBuilderAsJson(args)\n if (result.error != null) {\n throw new InvalidConfigurationError(\n `Remote builder error (if you think that it is not your application misconfiguration issue, please file issue to https://github.com/electron-userland/electron-builder/issues):\\n\\n${result.error}`,\n \"REMOTE_BUILDER_ERROR\"\n )\n } else if (result.files != null) {\n for (const artifact of result.files) {\n const localFile = path.join(outDir, artifact.file)\n const artifactCreatedEvent = this.artifactInfoToArtifactCreatedEvent(artifact, localFile, outDir)\n // PublishManager uses outDir and options, real (the same as for local build) values must be used\n await this.packager.info.callArtifactBuildCompleted(artifactCreatedEvent)\n }\n }\n }\n\n private artifactInfoToArtifactCreatedEvent(artifact: ArtifactInfo, localFile: string, outDir: string): ArtifactCreated {\n const target = artifact.target\n // noinspection SpellCheckingInspection\n return {\n ...artifact,\n file: localFile,\n target: target == null ? null : new FakeTarget(target, outDir, (this.packager.config as any)[target]),\n packager: this.packager,\n }\n }\n}\n\nclass FakeTarget extends Target {\n constructor(name: string, readonly outDir: string, readonly options: TargetSpecificOptions | null | undefined) {\n super(name)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async build(appOutDir: string, arch: Arch) {\n // no build\n }\n}\n\ninterface ArtifactInfo extends UploadTask {\n target: string | null\n\n readonly isWriteUpdateInfo?: boolean\n readonly updateInfo?: any\n}\n"]}
@@ -26,7 +26,7 @@ async function doBuild(data) {
26
26
  throw new builder_util_1.InvalidConfigurationError("targets must be array of target name");
27
27
  }
28
28
  const infoFile = projectDir + path.sep + "info.json";
29
- const info = await fs_extra_1.readJson(infoFile);
29
+ const info = await (0, fs_extra_1.readJson)(infoFile);
30
30
  const projectOutDir = process.env.PROJECT_OUT_DIR;
31
31
  if (projectDir == null) {
32
32
  throw new builder_util_1.InvalidConfigurationError("Env PROJECT_OUT_DIR must be set for builder process");
@@ -76,10 +76,10 @@ async function doBuild(data) {
76
76
  },
77
77
  }, info.metadata, info.devMetadata, info.repositoryInfo);
78
78
  // writeJson must be not used because it adds unwanted \n as last file symbol
79
- await fs_extra_1.writeFile(path.join(process.env.APP_BUILDER_TMP_DIR, "__build-result.json"), JSON.stringify(artifacts));
79
+ await (0, fs_extra_1.writeFile)(path.join(process.env.APP_BUILDER_TMP_DIR, "__build-result.json"), JSON.stringify(artifacts));
80
80
  }
81
81
  doBuild(JSON.parse(process.argv[2])).catch(error => {
82
82
  process.exitCode = 0;
83
- return fs_extra_1.writeFile(path.join(process.env.APP_BUILDER_TMP_DIR, "__build-result.json"), (error.stack || error).toString());
83
+ return (0, fs_extra_1.writeFile)(path.join(process.env.APP_BUILDER_TMP_DIR, "__build-result.json"), (error.stack || error).toString());
84
84
  });
85
85
  //# sourceMappingURL=builder-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builder-cli.js","sourceRoot":"","sources":["../../src/remoteBuilder/builder-cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublishOptions, UploadTask } from \"electron-publish\"\nimport { readJson, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { Arch, InvalidConfigurationError } from \"builder-util\"\nimport { Packager } from \"../packager\"\nimport { PackagerOptions } from \"../packagerApi\"\nimport SnapTarget from \"../targets/snap\"\n\nif (process.env.BUILDER_REMOVE_STAGE_EVEN_IF_DEBUG == null) {\n process.env.BUILDER_REMOVE_STAGE_EVEN_IF_DEBUG = \"true\"\n}\n\nasync function doBuild(data: BuildTask): Promise<void> {\n if (process.env.APP_BUILDER_TMP_DIR == null) {\n throw new InvalidConfigurationError(\"Env APP_BUILDER_TMP_DIR must be set for builder process\")\n }\n\n const projectDir = process.env.PROJECT_DIR\n if (projectDir == null) {\n throw new InvalidConfigurationError(\"Env PROJECT_DIR must be set for builder process\")\n }\n\n const targets = data.targets\n if (data.platform == null) {\n throw new InvalidConfigurationError(\"platform not specified\")\n }\n if (targets == null) {\n throw new InvalidConfigurationError(\"targets path not specified\")\n }\n if (!Array.isArray(targets)) {\n throw new InvalidConfigurationError(\"targets must be array of target name\")\n }\n\n const infoFile = projectDir + path.sep + \"info.json\"\n const info = await readJson(infoFile)\n\n const projectOutDir = process.env.PROJECT_OUT_DIR\n if (projectDir == null) {\n throw new InvalidConfigurationError(\"Env PROJECT_OUT_DIR must be set for builder process\")\n }\n\n // yes, for now we expect the only target\n const prepackaged = projectDir + path.sep + targets[0].unpackedDirName\n // do not use build function because we don't need to publish artifacts\n const options: PackagerOptions & PublishOptions = {\n prepackaged,\n projectDir,\n [data.platform]: targets.map(it => it.name + \":\" + it.arch),\n publish: \"never\",\n }\n const packager = new Packager(options)\n\n const artifacts: Array<ArtifactInfo> = []\n const relativePathOffset = projectOutDir!.length + 1\n packager.artifactCreated(event => {\n if (event.file == null) {\n return\n }\n\n artifacts.push({\n file: event.file.substring(relativePathOffset),\n target: event.target == null ? null : event.target.name,\n arch: event.arch,\n safeArtifactName: event.safeArtifactName,\n isWriteUpdateInfo: event.isWriteUpdateInfo === true,\n updateInfo: event.updateInfo,\n })\n })\n\n packager.stageDirPathCustomizer = (target, packager, arch) => {\n // snap creates a lot of files and so, we cannot use tmpfs to avoid out of memory error\n const parentDir = target.name === \"snap\" && !(target as SnapTarget).isUseTemplateApp ? projectOutDir : projectDir\n return `${parentDir}${path.sep}__${target.name}-${Arch[arch]}`\n }\n\n // _build method expects final effective configuration - packager.options.config is ignored\n await packager._build(\n {\n ...info.configuration,\n publish: null,\n beforeBuild: null,\n afterPack: null,\n afterSign: null,\n afterAllArtifactBuild: null,\n onNodeModuleFile: null,\n directories: {\n output: projectOutDir,\n buildResources: `${projectDir}${path.sep}${info.buildResourceDirName}`,\n },\n },\n info.metadata,\n info.devMetadata,\n info.repositoryInfo\n )\n\n // writeJson must be not used because it adds unwanted \\n as last file symbol\n await writeFile(path.join(process.env.APP_BUILDER_TMP_DIR!, \"__build-result.json\"), JSON.stringify(artifacts))\n}\n\ndoBuild(JSON.parse(process.argv[2])).catch(error => {\n process.exitCode = 0\n return writeFile(path.join(process.env.APP_BUILDER_TMP_DIR!, \"__build-result.json\"), (error.stack || error).toString())\n})\n\ninterface TargetInfo {\n name: string\n arch: string\n unpackedDirName: string\n}\n\ninterface ArtifactInfo extends UploadTask {\n target: string | null\n\n readonly isWriteUpdateInfo?: boolean\n readonly updateInfo?: any\n}\n\ninterface BuildTask {\n platform: string\n targets: Array<TargetInfo>\n}\n"]}
1
+ {"version":3,"file":"builder-cli.js","sourceRoot":"","sources":["../../src/remoteBuilder/builder-cli.ts"],"names":[],"mappings":"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","sourcesContent":["import { PublishOptions, UploadTask } from \"electron-publish\"\nimport { readJson, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { Arch, InvalidConfigurationError } from \"builder-util\"\nimport { Packager } from \"../packager\"\nimport { PackagerOptions } from \"../packagerApi\"\nimport SnapTarget from \"../targets/snap\"\n\nif (process.env.BUILDER_REMOVE_STAGE_EVEN_IF_DEBUG == null) {\n process.env.BUILDER_REMOVE_STAGE_EVEN_IF_DEBUG = \"true\"\n}\n\nasync function doBuild(data: BuildTask): Promise<void> {\n if (process.env.APP_BUILDER_TMP_DIR == null) {\n throw new InvalidConfigurationError(\"Env APP_BUILDER_TMP_DIR must be set for builder process\")\n }\n\n const projectDir = process.env.PROJECT_DIR\n if (projectDir == null) {\n throw new InvalidConfigurationError(\"Env PROJECT_DIR must be set for builder process\")\n }\n\n const targets = data.targets\n if (data.platform == null) {\n throw new InvalidConfigurationError(\"platform not specified\")\n }\n if (targets == null) {\n throw new InvalidConfigurationError(\"targets path not specified\")\n }\n if (!Array.isArray(targets)) {\n throw new InvalidConfigurationError(\"targets must be array of target name\")\n }\n\n const infoFile = projectDir + path.sep + \"info.json\"\n const info = await readJson(infoFile)\n\n const projectOutDir = process.env.PROJECT_OUT_DIR\n if (projectDir == null) {\n throw new InvalidConfigurationError(\"Env PROJECT_OUT_DIR must be set for builder process\")\n }\n\n // yes, for now we expect the only target\n const prepackaged = projectDir + path.sep + targets[0].unpackedDirName\n // do not use build function because we don't need to publish artifacts\n const options: PackagerOptions & PublishOptions = {\n prepackaged,\n projectDir,\n [data.platform]: targets.map(it => it.name + \":\" + it.arch),\n publish: \"never\",\n }\n const packager = new Packager(options)\n\n const artifacts: Array<ArtifactInfo> = []\n const relativePathOffset = projectOutDir!.length + 1\n packager.artifactCreated(event => {\n if (event.file == null) {\n return\n }\n\n artifacts.push({\n file: event.file.substring(relativePathOffset),\n target: event.target == null ? null : event.target.name,\n arch: event.arch,\n safeArtifactName: event.safeArtifactName,\n isWriteUpdateInfo: event.isWriteUpdateInfo === true,\n updateInfo: event.updateInfo,\n })\n })\n\n packager.stageDirPathCustomizer = (target, packager, arch) => {\n // snap creates a lot of files and so, we cannot use tmpfs to avoid out of memory error\n const parentDir = target.name === \"snap\" && !(target as SnapTarget).isUseTemplateApp ? projectOutDir : projectDir\n return `${parentDir}${path.sep}__${target.name}-${Arch[arch]}`\n }\n\n // _build method expects final effective configuration - packager.options.config is ignored\n await packager._build(\n {\n ...info.configuration,\n publish: null,\n beforeBuild: null,\n afterPack: null,\n afterSign: null,\n afterAllArtifactBuild: null,\n onNodeModuleFile: null,\n directories: {\n output: projectOutDir,\n buildResources: `${projectDir}${path.sep}${info.buildResourceDirName}`,\n },\n },\n info.metadata,\n info.devMetadata,\n info.repositoryInfo\n )\n\n // writeJson must be not used because it adds unwanted \\n as last file symbol\n await writeFile(path.join(process.env.APP_BUILDER_TMP_DIR!, \"__build-result.json\"), JSON.stringify(artifacts))\n}\n\ndoBuild(JSON.parse(process.argv[2])).catch(error => {\n process.exitCode = 0\n return writeFile(path.join(process.env.APP_BUILDER_TMP_DIR!, \"__build-result.json\"), (error.stack || error).toString())\n})\n\ninterface TargetInfo {\n name: string\n arch: string\n unpackedDirName: string\n}\n\ninterface ArtifactInfo extends UploadTask {\n target: string | null\n\n readonly isWriteUpdateInfo?: boolean\n readonly updateInfo?: any\n}\n\ninterface BuildTask {\n platform: string\n targets: Array<TargetInfo>\n}\n"]}
@@ -41,15 +41,15 @@ class AppImageTarget extends core_1.Target {
41
41
  const c = await Promise.all([
42
42
  this.desktopEntry.value,
43
43
  this.helper.icons,
44
- PublishManager_1.getAppUpdatePublishConfiguration(packager, arch, false /* in any case validation will be done on publish */),
45
- license_1.getNotLocalizedLicenseFile(options.license, this.packager, ["txt", "html"]),
46
- targetUtil_1.createStageDir(this, packager, arch),
44
+ (0, PublishManager_1.getAppUpdatePublishConfiguration)(packager, arch, false /* in any case validation will be done on publish */),
45
+ (0, license_1.getNotLocalizedLicenseFile)(options.license, this.packager, ["txt", "html"]),
46
+ (0, targetUtil_1.createStageDir)(this, packager, arch),
47
47
  ]);
48
48
  const license = c[3];
49
49
  const stageDir = c[4];
50
50
  const publishConfig = c[2];
51
51
  if (publishConfig != null) {
52
- await fs_extra_1.outputFile(path.join(packager.getResourcesDir(stageDir.dir), "app-update.yml"), builder_util_1.serializeToYaml(publishConfig));
52
+ await (0, fs_extra_1.outputFile)(path.join(packager.getResourcesDir(stageDir.dir), "app-update.yml"), (0, builder_util_1.serializeToYaml)(publishConfig));
53
53
  }
54
54
  if (this.packager.packagerOptions.effectiveOptionComputed != null &&
55
55
  (await this.packager.packagerOptions.effectiveOptionComputed({ desktop: await this.desktopEntry.value }))) {
@@ -76,7 +76,7 @@ class AppImageTarget extends core_1.Target {
76
76
  ...options,
77
77
  }),
78
78
  ];
79
- appBuilder_1.objectToArgs(args, {
79
+ (0, appBuilder_1.objectToArgs)(args, {
80
80
  license,
81
81
  });
82
82
  if (packager.compression === "maximum") {
@@ -89,7 +89,7 @@ class AppImageTarget extends core_1.Target {
89
89
  arch,
90
90
  packager,
91
91
  isWriteUpdateInfo: true,
92
- updateInfo: await appBuilder_1.executeAppBuilderAsJson(args),
92
+ updateInfo: await (0, appBuilder_1.executeAppBuilderAsJson)(args),
93
93
  });
94
94
  }
95
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppImageTarget.js","sourceRoot":"","sources":["../../src/targets/AppImageTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, serializeToYaml } from \"builder-util\"\nimport { outputFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Target } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { AppImageOptions } from \"../options/linuxOptions\"\nimport { getAppUpdatePublishConfiguration } from \"../publish/PublishManager\"\nimport { executeAppBuilderAsJson, objectToArgs } from \"../util/appBuilder\"\nimport { getNotLocalizedLicenseFile } from \"../util/license\"\nimport { LinuxTargetHelper } from \"./LinuxTargetHelper\"\nimport { createStageDir } from \"./targetUtil\"\n\n// https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file\nexport default class AppImageTarget extends Target {\n readonly options: AppImageOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] }\n private readonly desktopEntry: Lazy<string>\n\n constructor(ignored: string, private readonly packager: LinuxPackager, private readonly helper: LinuxTargetHelper, readonly outDir: string) {\n super(\"appImage\")\n\n this.desktopEntry = new Lazy<string>(() => {\n const args = this.options.executableArgs?.join(\" \") || \"--no-sandbox\"\n return helper.computeDesktopEntry(this.options, `AppRun ${args} %U`, {\n \"X-AppImage-Version\": `${packager.appInfo.buildVersion}`,\n })\n })\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const options = this.options\n // https://github.com/electron-userland/electron-builder/issues/775\n // https://github.com/electron-userland/electron-builder/issues/1726\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(options, \"AppImage\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"AppImage\",\n file: artifactPath,\n arch,\n })\n\n const c = await Promise.all([\n this.desktopEntry.value,\n this.helper.icons,\n getAppUpdatePublishConfiguration(packager, arch, false /* in any case validation will be done on publish */),\n getNotLocalizedLicenseFile(options.license, this.packager, [\"txt\", \"html\"]),\n createStageDir(this, packager, arch),\n ])\n const license = c[3]\n const stageDir = c[4]!\n\n const publishConfig = c[2]\n if (publishConfig != null) {\n await outputFile(path.join(packager.getResourcesDir(stageDir.dir), \"app-update.yml\"), serializeToYaml(publishConfig))\n }\n\n if (\n this.packager.packagerOptions.effectiveOptionComputed != null &&\n (await this.packager.packagerOptions.effectiveOptionComputed({ desktop: await this.desktopEntry.value }))\n ) {\n return\n }\n\n const args = [\n \"appimage\",\n \"--stage\",\n stageDir.dir,\n \"--arch\",\n Arch[arch],\n \"--output\",\n artifactPath,\n \"--app\",\n appOutDir,\n \"--configuration\",\n JSON.stringify({\n productName: this.packager.appInfo.productName,\n productFilename: this.packager.appInfo.productFilename,\n desktopEntry: c[0],\n executableName: this.packager.executableName,\n icons: c[1],\n fileAssociations: this.packager.fileAssociations,\n ...options,\n }),\n ]\n objectToArgs(args, {\n license,\n })\n if (packager.compression === \"maximum\") {\n args.push(\"--compression\", \"xz\")\n }\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"AppImage\", arch, false),\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: true,\n updateInfo: await executeAppBuilderAsJson(args),\n })\n }\n}\n"]}
1
+ {"version":3,"file":"AppImageTarget.js","sourceRoot":"","sources":["../../src/targets/AppImageTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, serializeToYaml } from \"builder-util\"\nimport { outputFile } from \"fs-extra\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { Target } from \"../core\"\nimport { LinuxPackager } from \"../linuxPackager\"\nimport { AppImageOptions } from \"../options/linuxOptions\"\nimport { getAppUpdatePublishConfiguration } from \"../publish/PublishManager\"\nimport { executeAppBuilderAsJson, objectToArgs } from \"../util/appBuilder\"\nimport { getNotLocalizedLicenseFile } from \"../util/license\"\nimport { LinuxTargetHelper } from \"./LinuxTargetHelper\"\nimport { createStageDir } from \"./targetUtil\"\n\n// https://unix.stackexchange.com/questions/375191/append-to-sub-directory-inside-squashfs-file\nexport default class AppImageTarget extends Target {\n readonly options: AppImageOptions = { ...this.packager.platformSpecificBuildOptions, ...(this.packager.config as any)[this.name] }\n private readonly desktopEntry: Lazy<string>\n\n constructor(ignored: string, private readonly packager: LinuxPackager, private readonly helper: LinuxTargetHelper, readonly outDir: string) {\n super(\"appImage\")\n\n this.desktopEntry = new Lazy<string>(() => {\n const args = this.options.executableArgs?.join(\" \") || \"--no-sandbox\"\n return helper.computeDesktopEntry(this.options, `AppRun ${args} %U`, {\n \"X-AppImage-Version\": `${packager.appInfo.buildVersion}`,\n })\n })\n }\n\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const options = this.options\n // https://github.com/electron-userland/electron-builder/issues/775\n // https://github.com/electron-userland/electron-builder/issues/1726\n // tslint:disable-next-line:no-invalid-template-strings\n const artifactName = packager.expandArtifactNamePattern(options, \"AppImage\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.callArtifactBuildStarted({\n targetPresentableName: \"AppImage\",\n file: artifactPath,\n arch,\n })\n\n const c = await Promise.all([\n this.desktopEntry.value,\n this.helper.icons,\n getAppUpdatePublishConfiguration(packager, arch, false /* in any case validation will be done on publish */),\n getNotLocalizedLicenseFile(options.license, this.packager, [\"txt\", \"html\"]),\n createStageDir(this, packager, arch),\n ])\n const license = c[3]\n const stageDir = c[4]!\n\n const publishConfig = c[2]\n if (publishConfig != null) {\n await outputFile(path.join(packager.getResourcesDir(stageDir.dir), \"app-update.yml\"), serializeToYaml(publishConfig))\n }\n\n if (\n this.packager.packagerOptions.effectiveOptionComputed != null &&\n (await this.packager.packagerOptions.effectiveOptionComputed({ desktop: await this.desktopEntry.value }))\n ) {\n return\n }\n\n const args = [\n \"appimage\",\n \"--stage\",\n stageDir.dir,\n \"--arch\",\n Arch[arch],\n \"--output\",\n artifactPath,\n \"--app\",\n appOutDir,\n \"--configuration\",\n JSON.stringify({\n productName: this.packager.appInfo.productName,\n productFilename: this.packager.appInfo.productFilename,\n desktopEntry: c[0],\n executableName: this.packager.executableName,\n icons: c[1],\n fileAssociations: this.packager.fileAssociations,\n ...options,\n }),\n ]\n objectToArgs(args, {\n license,\n })\n if (packager.compression === \"maximum\") {\n args.push(\"--compression\", \"xz\")\n }\n\n await packager.info.callArtifactBuildCompleted({\n file: artifactPath,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"AppImage\", arch, false),\n target: this,\n arch,\n packager,\n isWriteUpdateInfo: true,\n updateInfo: await executeAppBuilderAsJson(args),\n })\n }\n}\n"]}
@@ -22,8 +22,8 @@ class AppXTarget extends core_1.Target {
22
22
  super("appx");
23
23
  this.packager = packager;
24
24
  this.outDir = outDir;
25
- this.options = builder_util_1.deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx);
26
- if (process.platform !== "darwin" && (process.platform !== "win32" || windowsCodeSign_1.isOldWin6())) {
25
+ this.options = (0, builder_util_1.deepAssign)({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx);
26
+ if (process.platform !== "darwin" && (process.platform !== "win32" || (0, windowsCodeSign_1.isOldWin6)())) {
27
27
  throw new Error("AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)");
28
28
  }
29
29
  }
@@ -37,16 +37,16 @@ class AppXTarget extends core_1.Target {
37
37
  file: artifactPath,
38
38
  arch,
39
39
  });
40
- const vendorPath = await windowsCodeSign_1.getSignVendorPath();
40
+ const vendorPath = await (0, windowsCodeSign_1.getSignVendorPath)();
41
41
  const vm = await packager.vm.value;
42
- const stageDir = await targetUtil_1.createStageDir(this, packager, arch);
42
+ const stageDir = await (0, targetUtil_1.createStageDir)(this, packager, arch);
43
43
  const mappingFile = stageDir.getTempFile("mapping.txt");
44
44
  const makeAppXArgs = ["pack", "/o" /* overwrite the output file if it exists */, "/f", vm.toVmFile(mappingFile), "/p", vm.toVmFile(artifactPath)];
45
45
  if (packager.compression === "store") {
46
46
  makeAppXArgs.push("/nc");
47
47
  }
48
48
  const mappingList = [];
49
- mappingList.push(await bluebird_lst_1.default.map(fs_1.walk(appOutDir), file => {
49
+ mappingList.push(await bluebird_lst_1.default.map((0, fs_1.walk)(appOutDir), file => {
50
50
  let appxPath = file.substring(appOutDir.length + 1);
51
51
  if (path.sep !== "\\") {
52
52
  appxPath = appxPath.replace(/\//g, "\\");
@@ -66,8 +66,8 @@ class AppXTarget extends core_1.Target {
66
66
  const outFile = vm.toVmFile(stageDir.getTempFile("resources.pri"));
67
67
  const makePriPath = vm.toVmFile(path.join(vendorPath, "windows-10", signToolArch, "makepri.exe"));
68
68
  const assetRoot = stageDir.getTempFile("appx/assets");
69
- await fs_extra_1.emptyDir(assetRoot);
70
- await bluebird_lst_1.default.map(assetInfo.allAssets, it => fs_1.copyOrLinkFile(it, path.join(assetRoot, path.basename(it))));
69
+ await (0, fs_extra_1.emptyDir)(assetRoot);
70
+ await bluebird_lst_1.default.map(assetInfo.allAssets, it => (0, fs_1.copyOrLinkFile)(it, path.join(assetRoot, path.basename(it))));
71
71
  await vm.exec(makePriPath, [
72
72
  "new",
73
73
  "/Overwrite",
@@ -76,12 +76,12 @@ class AppXTarget extends core_1.Target {
76
76
  "/ProjectRoot",
77
77
  vm.toVmFile(path.dirname(assetRoot)),
78
78
  "/ConfigXml",
79
- vm.toVmFile(path.join(pathManager_1.getTemplatePath("appx"), "priconfig.xml")),
79
+ vm.toVmFile(path.join((0, pathManager_1.getTemplatePath)("appx"), "priconfig.xml")),
80
80
  "/OutputFile",
81
81
  outFile,
82
82
  ]);
83
83
  // in addition to resources.pri, resources.scale-140.pri and other such files will be generated
84
- for (const resourceFile of (await fs_extra_1.readdir(stageDir.dir)).filter(it => it.startsWith("resources.")).sort()) {
84
+ for (const resourceFile of (await (0, fs_extra_1.readdir)(stageDir.dir)).filter(it => it.startsWith("resources.")).sort()) {
85
85
  mappingList.push([`"${vm.toVmFile(stageDir.getTempFile(resourceFile))}" "${resourceFile}"`]);
86
86
  }
87
87
  makeAppXArgs.push("/l");
@@ -90,7 +90,7 @@ class AppXTarget extends core_1.Target {
90
90
  for (const list of mappingList) {
91
91
  mapping += "\r\n" + list.join("\r\n");
92
92
  }
93
- await fs_extra_1.writeFile(mappingFile, mapping);
93
+ await (0, fs_extra_1.writeFile)(mappingFile, mapping);
94
94
  packager.debugLogger.add("appx.mapping", mapping);
95
95
  if (this.options.makeappxArgs != null) {
96
96
  makeAppXArgs.push(...this.options.makeappxArgs);
@@ -115,7 +115,7 @@ class AppXTarget extends core_1.Target {
115
115
  userAssets = [];
116
116
  }
117
117
  else {
118
- userAssets = (await fs_extra_1.readdir(userAssetDir)).filter(it => !it.startsWith(".") && !it.endsWith(".db") && it.includes("."));
118
+ userAssets = (await (0, fs_extra_1.readdir)(userAssetDir)).filter(it => !it.startsWith(".") && !it.endsWith(".db") && it.includes("."));
119
119
  for (const name of userAssets) {
120
120
  mappings.push(`"${vm.toVmFile(userAssetDir)}${vm.pathSep}${name}" "assets\\${name}"`);
121
121
  allAssets.push(path.join(userAssetDir, name));
@@ -150,7 +150,7 @@ class AppXTarget extends core_1.Target {
150
150
  const executable = `app\\${appInfo.productFilename}.exe`;
151
151
  const displayName = options.displayName || appInfo.productName;
152
152
  const extensions = await this.getExtensions(executable, displayName);
153
- const manifest = (await fs_extra_1.readFile(path.join(pathManager_1.getTemplatePath("appx"), "appxmanifest.xml"), "utf8")).replace(/\${([a-zA-Z0-9]+)}/g, (match, p1) => {
153
+ const manifest = (await (0, fs_extra_1.readFile)(path.join((0, pathManager_1.getTemplatePath)("appx"), "appxmanifest.xml"), "utf8")).replace(/\${([a-zA-Z0-9]+)}/g, (match, p1) => {
154
154
  switch (p1) {
155
155
  case "publisher":
156
156
  return publisher;
@@ -199,7 +199,7 @@ class AppXTarget extends core_1.Target {
199
199
  case "arch":
200
200
  return arch === builder_util_1.Arch.ia32 ? "x86" : arch === builder_util_1.Arch.arm64 ? "arm64" : "x64";
201
201
  case "resourceLanguages":
202
- return resourceLanguageTag(builder_util_1.asArray(options.languages));
202
+ return resourceLanguageTag((0, builder_util_1.asArray)(options.languages));
203
203
  case "extensions":
204
204
  return extensions;
205
205
  case "minVersion":
@@ -210,11 +210,11 @@ class AppXTarget extends core_1.Target {
210
210
  throw new Error(`Macro ${p1} is not defined`);
211
211
  }
212
212
  });
213
- await fs_extra_1.writeFile(outFile, manifest);
213
+ await (0, fs_extra_1.writeFile)(outFile, manifest);
214
214
  }
215
215
  async getExtensions(executable, displayName) {
216
- const uriSchemes = builder_util_1.asArray(this.packager.config.protocols).concat(builder_util_1.asArray(this.packager.platformSpecificBuildOptions.protocols));
217
- const fileAssociations = builder_util_1.asArray(this.packager.config.fileAssociations).concat(builder_util_1.asArray(this.packager.platformSpecificBuildOptions.fileAssociations));
216
+ const uriSchemes = (0, builder_util_1.asArray)(this.packager.config.protocols).concat((0, builder_util_1.asArray)(this.packager.platformSpecificBuildOptions.protocols));
217
+ const fileAssociations = (0, builder_util_1.asArray)(this.packager.config.fileAssociations).concat((0, builder_util_1.asArray)(this.packager.platformSpecificBuildOptions.fileAssociations));
218
218
  let isAddAutoLaunchExtension = this.options.addAutoLaunchExtension;
219
219
  if (isAddAutoLaunchExtension === undefined) {
220
220
  const deps = this.packager.info.metadata.dependencies;
@@ -231,7 +231,7 @@ class AppXTarget extends core_1.Target {
231
231
  </desktop:Extension>`;
232
232
  }
233
233
  for (const protocol of uriSchemes) {
234
- for (const scheme of builder_util_1.asArray(protocol.schemes)) {
234
+ for (const scheme of (0, builder_util_1.asArray)(protocol.schemes)) {
235
235
  extensions += `
236
236
  <uap:Extension Category="windows.protocol">
237
237
  <uap:Protocol Name="${scheme}">
@@ -241,7 +241,7 @@ class AppXTarget extends core_1.Target {
241
241
  }
242
242
  }
243
243
  for (const fileAssociation of fileAssociations) {
244
- for (const ext of builder_util_1.asArray(fileAssociation.ext)) {
244
+ for (const ext of (0, builder_util_1.asArray)(fileAssociation.ext)) {
245
245
  extensions += `
246
246
  <uap:Extension Category="windows.fileTypeAssociation">
247
247
  <uap:FileTypeAssociation Name="${ext}">
@@ -254,7 +254,7 @@ class AppXTarget extends core_1.Target {
254
254
  }
255
255
  if (this.options.customExtensionsPath !== undefined) {
256
256
  const extensionsPath = path.resolve(this.packager.info.appDir, this.options.customExtensionsPath);
257
- extensions += await fs_extra_1.readFile(extensionsPath, "utf8");
257
+ extensions += await (0, fs_extra_1.readFile)(extensionsPath, "utf8");
258
258
  }
259
259
  extensions += "</Extensions>";
260
260
  return extensions;