app-builder-lib 26.16.0 → 26.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/codeSign/macCodeSign.js +5 -3
- package/out/codeSign/macCodeSign.js.map +1 -1
- package/out/codeSign/windowsCodeSign.js +0 -3
- package/out/codeSign/windowsCodeSign.js.map +1 -1
- package/out/codeSign/windowsSignToolManager.js +4 -1
- package/out/codeSign/windowsSignToolManager.js.map +1 -1
- package/out/electron/ElectronFramework.d.ts +2 -1
- package/out/electron/ElectronFramework.js +13 -5
- package/out/electron/ElectronFramework.js.map +1 -1
- package/out/electron/electronMac.js +1 -5
- package/out/electron/electronMac.js.map +1 -1
- package/out/node-module-collector/index.js +48 -15
- package/out/node-module-collector/index.js.map +1 -1
- package/out/node-module-collector/moduleManager.d.ts +7 -1
- package/out/node-module-collector/moduleManager.js +2 -2
- package/out/node-module-collector/moduleManager.js.map +1 -1
- package/out/node-module-collector/nodeModulesCollector.d.ts +7 -3
- package/out/node-module-collector/nodeModulesCollector.js +26 -8
- package/out/node-module-collector/nodeModulesCollector.js.map +1 -1
- package/out/node-module-collector/pnpmNodeModulesCollector.d.ts +42 -0
- package/out/node-module-collector/pnpmNodeModulesCollector.js +146 -0
- package/out/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
- package/out/packager.d.ts +2 -0
- package/out/packager.js +15 -0
- package/out/packager.js.map +1 -1
- package/out/platformPackager.d.ts +1 -0
- package/out/platformPackager.js +3 -0
- package/out/platformPackager.js.map +1 -1
- package/out/targets/FlatpakTarget.js +6 -1
- package/out/targets/FlatpakTarget.js.map +1 -1
- package/out/targets/archive.d.ts +12 -0
- package/out/targets/archive.js +45 -1
- package/out/targets/archive.js.map +1 -1
- package/out/targets/nsis/NsisTarget.d.ts +2 -2
- package/out/targets/nsis/NsisTarget.js +13 -1
- package/out/targets/nsis/NsisTarget.js.map +1 -1
- package/out/targets/nsis/nsisOptions.d.ts +15 -2
- package/out/targets/nsis/nsisOptions.js.map +1 -1
- package/out/targets/nsis/nsisUtil.d.ts +5 -2
- package/out/targets/nsis/nsisUtil.js +48 -24
- package/out/targets/nsis/nsisUtil.js.map +1 -1
- package/out/targets/pkg.d.ts +16 -0
- package/out/targets/pkg.js +27 -0
- package/out/targets/pkg.js.map +1 -1
- package/out/util/appFileCopier.d.ts +5 -0
- package/out/util/appFileCopier.js +19 -1
- package/out/util/appFileCopier.js.map +1 -1
- package/out/version.d.ts +1 -1
- package/out/version.js +1 -1
- package/out/version.js.map +1 -1
- package/package.json +7 -7
- package/scheme.json +16 -4
package/out/packager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packager.js","sourceRoot":"","sources":["../src/packager.ts"],"names":[],"mappings":";;;AAAA,+CAgBqB;AACrB,+DAA2E;AAC3E,uCAAoD;AACpD,qCAA8B;AAC9B,uCAA+B;AAC/B,2BAA4C;AAC5C,6BAA4B;AAC5B,uCAAmC;AACnC,sCAA0C;AAE1C,iCAA+D;AAC/D,oEAA6E;AAE7E,gEAA4D;AAI5D,uDAAmD;AACnD,2DAAgG;AAChG,iDAAmG;AACnG,wDAAkD;AAClD,4DAAuE;AACvE,0DAAyD;AACzD,4CAAgD;AAChD,sCAA8D;AAC9D,uCAA2C;AAC3C,gEAAyE;AACzE,qDAAuC;AACvC,mEAAwE;AAExE,KAAK,UAAU,mBAAmB,CAAC,aAA4B,EAAE,QAAkB;IACjF,IAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;IACvC,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC;IAED,IAAI,WAAW,GAAG,aAAa,CAAC,WAAW,CAAA;IAC3C,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAClD,OAAO,MAAM,IAAA,kDAA8B,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IACtE,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACrD,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAA;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,aAAa,CAAC,eAAe,KAAK,KAAK,CAAA;IAC7D,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAC5D,OAAO,IAAI,iCAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;IAC1F,CAAC;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,+BAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;IACzF,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,wCAAyB,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAmBD,MAAa,QAAQ;IAInB,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAGD,KAAK,CAAC,iBAAiB;QACrB,OAAO,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA;IAC9C,CAAC;IACD,KAAK,CAAC,gBAAgB;QACpB,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAA;IACpF,CAAC;IAID,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAU,CAAA;IACxB,CAAC;IAID,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAkB,CAAA;IAChC,CAAC;IAED,0CAA0C;IAC1C,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAK,CAAA;IACpC,CAAC;IAID,IAAI,+BAA+B;QACjC,OAAO,IAAI,CAAC,6BAA6B,CAAA;IAC3C,CAAC;IAID,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAGD,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAID,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,cAAe,CAAA;IAC7B,CAAC;IAOD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAS,CAAA;IACvB,CAAC;IAUD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAA;IACnC,CAAC;IAUD,IAAI,iBAAiB;QACnB,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAA;QACpC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAA;YAC1E,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAA;QAClC,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,6BAA6B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,WAAY,CAAC,cAAe,CAAA;IACjD,CAAC;IAGD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAW,CAAA;IACzB,CAAC;IAID,oBAAoB,CAAC,QAA6B;QAChD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,CAAC;IAED,oCAAoC;IACpC,YACE,OAAwB,EACf,oBAAoB,IAAI,wCAAiB,EAAE;QAA3C,sBAAiB,GAAjB,iBAAiB,CAA0B;QAhGtD,6EAA6E;QACrE,cAAS,GAAoB,IAAI,CAAA;QAKzC,oFAAoF;QAC5E,sBAAiB,GAAoB,IAAI,CAAA;QAUzC,kCAA6B,GAAG,KAAK,CAAA;QAMrC,wBAAmB,GAAG,KAAK,CAAA;QAM3B,iBAAY,GAAoB,IAAI,CAAA;QAKpC,mBAAc,GAAyB,IAAI,CAAA;QAMnD,sCAAiC,GAAG,KAAK,CAAA;QAExB,iBAAY,GAAG,IAAI,qCAAiB,EAAkB,CAAA;QAEvE,aAAQ,GAAmB,IAAI,CAAA;QAKtB,mBAAc,GAAG,IAAI,qBAAM,CAAC,UAAU,CAAC,CAAA;QAExC,oBAAe,GAAG,IAAI,eAAI,CAA8B,GAAG,EAAE,CAAC,IAAA,kCAAiB,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;QAIjI,gBAAW,GAAG,IAAI,0BAAW,CAAC,kBAAG,CAAC,cAAc,CAAC,CAAA;QAMlD,gCAA2B,GAAsB,EAAE,CAAA;QAE3D,2BAAsB,GAA4E,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC3H,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC,IAAI,IAAI,IAAA,kCAAmB,EAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/F,CAAC,CAAA;QAEO,uBAAkB,GAAkB,IAAI,CAAA;QAexC,eAAU,GAAqB,IAAI,CAAA;QAK1B,cAAS,GAA+B,EAAE,CAAA;QAWzD,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,wCAAyB,CAAC,qEAAqE,CAAC,CAAA;QAC5G,CAAC;QACD,IAAI,eAAe,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,wCAAyB,CAAC,qFAAqF,CAAC,CAAA;QAC5H,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,GAAG,EAAsC,CAAA;QAChF,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;QAC3B,CAAC;QAED,SAAS,cAAc,CAAC,QAAkB,EAAE,KAAoB;YAC9D,SAAS,UAAU,CAAC,qBAA8B;gBAChD,MAAM,MAAM,GAAG,KAAK,EAAQ,CAAA;gBAC5B,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAc,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAC/F,CAAC;YAED,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACtC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACvB,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAA;gBAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;YACnC,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;gBAC1B,CAAC;gBACD,OAAM;YACR,CAAC;YAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;gBACvC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAA,uBAAQ,EAAC,UAAU,EAAE,IAAA,6BAAc,EAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;gBACnG,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpC,IAAA,uBAAQ,EAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,cAAc,CAAC,eAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3C,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,cAAc,CAAC,eAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/C,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,cAAc,CAAC,eAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/C,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAA,8BAAe,EAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAClG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,IAAA,kDAA0B,EAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAA;QAEjI,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;YACV,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,8BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;SACtH,CAAA;QAED,kBAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,yBAAe,EAAE,EAAE,EAAE,IAAA,YAAY,GAAE,EAAE,EAAE,kBAAkB,CAAC,CAAA;IAChF,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC1C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,sBAAsB,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QACjJ,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,wBAAwB,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAEvJ,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9I,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,mBAAmB,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAExI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QACnH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QACzH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;QAChH,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,IAAA,yBAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;IAClH,CAAC;IAED,WAAW,CAAC,OAAoC;QAC9C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iBAAiB,CAAC,OAA0C;QAC1D,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;QAChD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4BAA4B,CAAC,KAA2B,EAAE,IAA6B;QACrF,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACvD,CAAC;IAED,2BAA2B;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAA2B,EAAE,SAAe;QACzE,kBAAG,CAAC,IAAI,CACN,SAAS,IAAI;YACX,MAAM,EAAE,KAAK,CAAC,qBAAqB;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClD,IAAI,EAAE,kBAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;SAC/B,EACD,UAAU,CACX,CAAA;QACD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,KAAsB;QAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,KAAsB;QACrD,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAA;QAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAY;QACtC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAA0B;QAC7C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAyB;QAC3C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAyB;QAC3C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAyB;QAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,UAAU,GAAkB,IAAI,CAAA;QACpC,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QAC3C,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC1C,8BAA8B;YAC9B,UAAU,GAAG,iBAAiB,CAAA;YAC9B,iBAAiB,GAAG,IAAI,CAAA;QAC1B,CAAC;aAAM,IAAI,iBAAiB,IAAI,IAAI,IAAI,OAAO,iBAAiB,CAAC,OAAO,KAAK,QAAQ,IAAI,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjI,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAA;YACtC,OAAO,iBAAiB,CAAC,OAAO,CAAA;QAClC,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QAElC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;QAC5D,IAAI,CAAC,YAAY,GAAG,MAAM,IAAA,mCAAoB,EAAC,IAAA,iCAAe,EAAC,cAAc,CAAC,CAAC,CAAA;QAE/E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACpC,MAAM,aAAa,GAAG,MAAM,IAAA,kBAAS,EAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,eAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QAE9H,kBAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,aAAa,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAA;QAEhF,IAAI,CAAC,OAAO,GAAG,MAAM,IAAA,mCAA0B,EAAC,UAAU,EAAE,aAAa,CAAC,WAAY,CAAC,GAAG,CAAC,CAAA;QAC3F,IAAI,CAAC,iCAAiC,GAAG,IAAI,CAAC,OAAO,KAAK,UAAU,CAAA;QAEpE,MAAM,cAAc,GAAG,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;QAEvH,+CAA+C;QAC/C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC;YACxE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAA;QACnC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,mDAAmD,CAAC,cAAc,CAAC,CAAA;QACjG,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAA,iCAAU,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACvD,IAAA,iCAAU,EAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;QAEvD,IAAI,IAAI,CAAC,iCAAiC,EAAE,CAAC;YAC3C,kBAAG,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,oCAAoC,CAAC,CAAA;QACrF,CAAC;QACD,IAAA,+BAAa,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;QAE9E,MAAM,IAAA,8BAAqB,EAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;QAE5D,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;QACnC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,oJAAoJ;IACpJ,KAAK,CAAC,KAAK,CAAC,cAAqC;QAC/C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;QAE3B,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAErC,IAAI,CAAC,UAAU,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAE9D,MAAM,kCAAkC,GAAG,IAAI,CAAC,OAAO,CACrD,IAAI,CAAC,UAAU,EACf,IAAA,2BAAW,EAAC,IAAI,CAAC,MAAM,CAAC,WAAY,CAAC,MAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;YACjE,EAAE,EAAE,EAAE;SACP,CAAC,CACH,CAAA;QAED,IAAI,CAAC,cAAI,IAAK,OAAO,CAAC,MAAc,CAAC,KAAK,EAAE,CAAC;YAC3C,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,+BAA+B,CAAC,CAAA;YAC1G,kBAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,EAAE,0BAA0B,CAAC,CAAA;YACjF,MAAM,IAAA,qBAAU,EAAC,mBAAmB,EAAE,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5E,CAAC;QAED,wFAAwF;QACxF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAA;QACvC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;gBACvB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAC7B,IAAA,4BAAK,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;YACzC,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,CAAC,CAAC,EAAE;gBACf,MAAM,OAAO,GAAW,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,KAAI,EAAE,CAAA;gBACxC,MAAM,IAAI,GAAG,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,CAAA;gBACpB,qBAAqB;gBACrB,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,OAAO,CAAA;gBACpE,IAAI,cAAc,EAAE,CAAC;oBACnB,kBAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,IAAI,IAAI,EAAE,EAAE,sCAAsC,CAAC,CAAA;oBAC7E,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;SACF,CAAC,CACH,CAAA;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAc,EAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI,EAAE;YACxE,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,CAAC,CAAA;YACjG,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;YACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;oBAChC,kBAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAA;gBAC1C,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACL,MAAM,EAAE,kCAAkC;YAC1C,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;YACxC,iBAAiB;YACjB,aAAa,EAAE,IAAI,CAAC,MAAM;SAC3B,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,mDAAmD,CAAC,cAAsB;QACtF,IAAI,IAAI,GAAG,MAAM,IAAA,mCAAoB,EAAC,IAAA,iCAAe,EAAC,cAAc,CAAC,CAAC,CAAA;QACtE,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,GAAG,MAAM,IAAA,mCAAoB,EAAC,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,CAAA;QACvG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IACpF,CAAC;IAEO,KAAK,CAAC,OAAO;;QACnB,MAAM,WAAW,GAAG,IAAI,+BAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAChE,MAAM,gBAAgB,GAAG,EAAc,CAAA;QAEvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAA;QACjE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;QAExC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAQ,EAAE,CAAC;YAC3D,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAK;YACP,CAAC;YAED,IAAI,QAAQ,KAAK,eAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,QAAQ,KAAK,eAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAChF,MAAM,IAAI,wCAAyB,CAAC,oGAAoG,CAAC,CAAA;YAC3I,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YAClD,MAAM,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAA;YACnD,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAE5C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA,MAAA,QAAQ,CAAC,MAAM,CAAC,WAAW,0CAAE,IAAI,KAAI,CAAC,CAAC,CAAA;YAClE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,kBAAG,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,sDAAsD,CAAC,CAAA;gBAC5F,SAAS,GAAG,CAAC,CAAA;YACf,CAAC;iBAAM,IAAI,SAAS,GAAG,gCAAiB,EAAE,CAAC;gBACzC,kBAAG,CAAC,IAAI,CACN,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAjB,gCAAiB,EAAE,EAC7C,2LAA2L,CAC5L,CAAA;YACH,CAAC;YACD,MAAM,YAAY,GAAmB,EAAE,CAAA;YAEvC,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAA,2CAA2B,EAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC9F,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;oBACrC,MAAK;gBACP,CAAC;gBAED,4CAA4C;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,WAAY,CAAC,MAAO,EAAE,mBAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBAChH,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,YAAY,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACjI,MAAM,kBAAkB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;gBACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;gBACpE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,MAAM,OAAO,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC5B,CAAC;YACH,CAAC;YAED,MAAM,IAAA,yBAAS,EAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;gBAClD,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;oBACrC,OAAM;gBACR,CAAC;gBACD,MAAM,EAAE,CAAA;YACV,CAAC,CAAC,CAAA;YAEF,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAK;YACP,CAAC;YAED,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC3C,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;gBAC3C,CAAC;qBAAM,CAAC;oBACN,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,WAAW,CAAC,UAAU,EAAE,CAAA;QAE9B,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;gBACrC,MAAK;YACP,CAAC;YACD,MAAM,MAAM,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;QACD,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,QAAkB;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,IAAI,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7D,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,eAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClB,MAAM,WAAW,GAAG,CAAC,2CAAa,eAAe,EAAC,CAAC,CAAC,WAAW,CAAA;gBAC/D,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YAED,KAAK,eAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtB,MAAM,WAAW,GAAG,CAAC,2CAAa,eAAe,EAAC,CAAC,CAAC,WAAW,CAAA;gBAC/D,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;YAED,KAAK,eAAQ,CAAC,KAAK;gBACjB,OAAO,IAAI,CAAC,2CAAa,iBAAiB,EAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAElE;gBACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,sBAAsB,CAAC,QAAkB,EAAE,IAAU;QAChE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;YAC7E,OAAM;QACR,CAAC;QAED,MAAM,aAAa,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAA;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1B,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,IAAA,qBAAc,EAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAI,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAA;QACpE,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,kBAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,EAAE,8BAA8B,CAAC,CAAA;YAClF,OAAM;QACR,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC9H,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,mCAAmC,GAAG,MAAM,WAAW,CAAC;gBAC5D,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAgB;gBAC7C,QAAQ;gBACR,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC;aACjB,CAAC,CAAA;YAEF,6GAA6G;YAC7G,IAAI,CAAC,6BAA6B,GAAG,CAAC,mCAAmC,CAAA;YACzE,IAAI,CAAC,mCAAmC,EAAE,CAAC;gBACzC,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,2BAA2B,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC1F,kBAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,sEAAsE,EAAE,EAAE,8BAA8B,CAAC,CAAA;QAC9H,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,uBAAgB,EACpB,MAAM,EACN,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAClG;gBACE,aAAa;gBACb,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC;aACjB,EACD,KAAK,EACL,IAAI,CAAC,2BAA2B,CACjC,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAtiBD,4BAsiBC;AAED,SAAS,kBAAkB,CAAC,UAAyB,EAAE,cAA2B;IAChF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,yCAAyC;QACzC,IAAI,MAAM,YAAY,0BAAU,EAAE,CAAC;YACjC,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SAChB,IAAI,EAAE;SACN,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,IAAA,iBAAM,EAAC,GAAG,CAAC;aACf,IAAI,CAAC,GAAG,EAAE,CAAC,IAAA,gBAAK,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC,oBAAoB,CAAC;aAClD,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACxC,CAAC,CAAC,CACL,CAAA;AACH,CAAC;AASD,SAAS,sBAAsB,CAAC,aAA4B;IAC1D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,gCAAiB,EAAC,aAAa,CAAC,CAAC,CAAA;IACtD,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC,OAAO,GAAG,qBAAqB,CAAA;IACnC,CAAC;IACD,OAAO,IAAA,8BAAe,EAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AACjC,CAAC","sourcesContent":["import {\n addValue,\n Arch,\n archFromString,\n AsyncTaskManager,\n DebugLogger,\n executeFinally,\n getArtifactArchName,\n InvalidConfigurationError,\n log,\n MAX_FILE_REQUESTS,\n orNullIfFileNotExist,\n sanitizeDirPath,\n safeStringifyJson,\n serializeToYaml,\n TmpDir,\n} from \"builder-util\"\nimport { CancellationToken, deepAssign, retry } from \"builder-util-runtime\"\nimport { chmod, mkdirs, outputFile } from \"fs-extra\"\nimport { isCI } from \"ci-info\"\nimport { Lazy } from \"lazy-val\"\nimport { release as getOsRelease } from \"os\"\nimport * as path from \"path\"\nimport { AppInfo } from \"./appInfo\"\nimport { readAsarJson } from \"./asar/asar\"\nimport { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from \"./configuration\"\nimport { Platform, SourceRepositoryInfo, Target } from \"./core\"\nimport { createElectronFrameworkSupport } from \"./electron/ElectronFramework\"\nimport { Framework } from \"./Framework\"\nimport { LibUiFramework } from \"./frameworks/LibUiFramework\"\nimport { Metadata } from \"./options/metadata\"\nimport { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from \"./packagerApi\"\nimport { PlatformPackager } from \"./platformPackager\"\nimport { ProtonFramework } from \"./ProtonFramework\"\nimport { computeArchToTargetNamesMap, createTargets, NoOpTarget } from \"./targets/targetFactory\"\nimport { computeDefaultAppDirectory, getConfig, validateConfiguration } from \"./util/config/config\"\nimport { expandMacro } from \"./util/macroExpander\"\nimport { checkMetadata, readPackageJson } from \"./util/packageMetadata\"\nimport { getRepositoryInfo } from \"./util/repositoryInfo\"\nimport { resolveFunction } from \"./util/resolve\"\nimport { installOrRebuild, nodeGypRebuild } from \"./util/yarn\"\nimport { PACKAGE_VERSION } from \"./version\"\nimport { AsyncEventEmitter, HandlerType } from \"./util/asyncEventEmitter\"\nimport asyncPool from \"tiny-async-pool\"\nimport { determinePackageManagerEnv, PM } from \"./node-module-collector\"\n\nasync function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise<Framework> {\n let framework = configuration.framework\n if (framework != null) {\n framework = framework.toLowerCase()\n }\n\n let nodeVersion = configuration.nodeVersion\n if (framework === \"electron\" || framework == null) {\n return await createElectronFrameworkSupport(configuration, packager)\n }\n\n if (nodeVersion == null || nodeVersion === \"current\") {\n nodeVersion = process.versions.node\n }\n\n const isUseLaunchUi = configuration.launchUiVersion !== false\n if (framework === \"proton\" || framework === \"proton-native\") {\n return new ProtonFramework(nodeVersion, packager.appInfo.productFilename, isUseLaunchUi)\n } else if (framework === \"libui\") {\n return new LibUiFramework(nodeVersion, packager.appInfo.productFilename, isUseLaunchUi)\n } else {\n throw new InvalidConfigurationError(`Unknown framework: ${framework}`)\n }\n}\n\ntype PackagerEvents = {\n artifactBuildStarted: Hook<ArtifactBuildStarted, void>\n\n beforePack: Hook<BeforePackContext, void>\n afterExtract: Hook<AfterExtractContext, void>\n afterPack: Hook<AfterPackContext, void>\n afterSign: Hook<AfterPackContext, void>\n\n artifactBuildCompleted: Hook<ArtifactCreated, void>\n\n msiProjectCreated: Hook<string, void>\n appxManifestCreated: Hook<string, void>\n\n // internal-use only, prefer usage of `artifactBuildCompleted`\n artifactCreated: Hook<ArtifactCreated, void>\n}\n\nexport class Packager {\n readonly projectDir: string\n\n private _appDir: string\n get appDir(): string {\n return this._appDir\n }\n\n private readonly _packageManager: Lazy<{ pm: PM; workspaceRoot: Promise<string | undefined> }>\n async getPackageManager(): Promise<PM> {\n return (await this._packageManager.value).pm\n }\n async getWorkspaceRoot(): Promise<string> {\n return (await (await this._packageManager.value).workspaceRoot) || this.projectDir\n }\n\n /** Stores original metadata merged with extraMetadata from configuration. */\n private _metadata: Metadata | null = null\n get metadata(): Metadata {\n return this._metadata!\n }\n\n /** Stores original metadata from package.json before merging with extraMetadata. */\n private _originalMetadata: Metadata | null = null\n get originalMetadata(): Metadata {\n return this._originalMetadata!\n }\n\n /** The \"name\" field from package.json. */\n get nodePackageName() {\n return this.originalMetadata.name!\n }\n\n private _nodeModulesHandledExternally = false\n\n get areNodeModulesHandledExternally(): boolean {\n return this._nodeModulesHandledExternally\n }\n\n private _isPrepackedAppAsar = false\n\n get isPrepackedAppAsar(): boolean {\n return this._isPrepackedAppAsar\n }\n\n private _devMetadata: Metadata | null = null\n get devMetadata(): Metadata | null {\n return this._devMetadata\n }\n\n private _configuration: Configuration | null = null\n\n get config(): Configuration {\n return this._configuration!\n }\n\n isTwoPackageJsonProjectLayoutUsed = false\n\n private readonly eventEmitter = new AsyncEventEmitter<PackagerEvents>()\n\n _appInfo: AppInfo | null = null\n get appInfo(): AppInfo {\n return this._appInfo!\n }\n\n readonly tempDirManager = new TmpDir(\"packager\")\n\n private _repositoryInfo = new Lazy<SourceRepositoryInfo | null>(() => getRepositoryInfo(this.projectDir, this.metadata, this.devMetadata))\n\n readonly options: PackagerOptions\n\n readonly debugLogger = new DebugLogger(log.isDebugEnabled)\n\n get repositoryInfo(): Promise<SourceRepositoryInfo | null> {\n return this._repositoryInfo.value\n }\n\n private runtimeEnvironmentVariables: NodeJS.ProcessEnv = {}\n\n stageDirPathCustomizer: (target: Target, packager: PlatformPackager<any>, arch: Arch) => string = (target, packager, arch) => {\n return path.join(target.outDir, `__${target.name}-${getArtifactArchName(arch, target.name)}`)\n }\n\n private _buildResourcesDir: string | null = null\n\n get buildResourcesDir(): string {\n let result = this._buildResourcesDir\n if (result == null) {\n result = path.resolve(this.projectDir, this.relativeBuildResourcesDirname)\n this._buildResourcesDir = result\n }\n return result\n }\n\n get relativeBuildResourcesDirname(): string {\n return this.config.directories!.buildResources!\n }\n\n private _framework: Framework | null = null\n get framework(): Framework {\n return this._framework!\n }\n\n private readonly toDispose: Array<() => Promise<void>> = []\n\n disposeOnBuildFinish(disposer: () => Promise<void>) {\n this.toDispose.push(disposer)\n }\n\n //noinspection JSUnusedGlobalSymbols\n constructor(\n options: PackagerOptions,\n readonly cancellationToken = new CancellationToken()\n ) {\n if (\"devMetadata\" in options) {\n throw new InvalidConfigurationError(\"devMetadata in the options is deprecated, please use config instead\")\n }\n if (\"extraMetadata\" in options) {\n throw new InvalidConfigurationError(\"extraMetadata in the options is deprecated, please use config.extraMetadata instead\")\n }\n\n const targets = options.targets || new Map<Platform, Map<Arch, Array<string>>>()\n if (options.targets == null) {\n options.targets = targets\n }\n\n function processTargets(platform: Platform, types: Array<string>) {\n function commonArch(currentIfNotSpecified: boolean): Array<Arch> {\n const result = Array<Arch>()\n return result.length === 0 && currentIfNotSpecified ? [archFromString(process.arch)] : result\n }\n\n let archToType = targets.get(platform)\n if (archToType == null) {\n archToType = new Map<Arch, Array<string>>()\n targets.set(platform, archToType)\n }\n\n if (types.length === 0) {\n for (const arch of commonArch(false)) {\n archToType.set(arch, [])\n }\n return\n }\n\n for (const type of types) {\n const suffixPos = type.lastIndexOf(\":\")\n if (suffixPos > 0) {\n addValue(archToType, archFromString(type.substring(suffixPos + 1)), type.substring(0, suffixPos))\n } else {\n for (const arch of commonArch(true)) {\n addValue(archToType, arch, type)\n }\n }\n }\n }\n\n if (options.mac != null) {\n processTargets(Platform.MAC, options.mac)\n }\n if (options.linux != null) {\n processTargets(Platform.LINUX, options.linux)\n }\n if (options.win != null) {\n processTargets(Platform.WINDOWS, options.win)\n }\n\n this.projectDir = sanitizeDirPath(options.projectDir == null ? process.cwd() : options.projectDir)\n this._appDir = this.projectDir\n this._packageManager = determinePackageManagerEnv({ projectDir: this.projectDir, appDir: this.appDir, workspaceRoot: undefined })\n\n this.options = {\n ...options,\n prepackaged: options.prepackaged == null ? null : sanitizeDirPath(path.resolve(this.projectDir, options.prepackaged)),\n }\n\n log.info({ version: PACKAGE_VERSION, os: getOsRelease() }, \"electron-builder\")\n }\n\n private async addPackagerEventHandlers() {\n const { type } = this.appInfo\n const root = await this.getWorkspaceRoot()\n this.eventEmitter.on(\"artifactBuildStarted\", await resolveFunction(type, this.config.artifactBuildStarted, \"artifactBuildStarted\", root), \"user\")\n this.eventEmitter.on(\"artifactBuildCompleted\", await resolveFunction(type, this.config.artifactBuildCompleted, \"artifactBuildCompleted\", root), \"user\")\n\n this.eventEmitter.on(\"appxManifestCreated\", await resolveFunction(type, this.config.appxManifestCreated, \"appxManifestCreated\", root), \"user\")\n this.eventEmitter.on(\"msiProjectCreated\", await resolveFunction(type, this.config.msiProjectCreated, \"msiProjectCreated\", root), \"user\")\n\n this.eventEmitter.on(\"beforePack\", await resolveFunction(type, this.config.beforePack, \"beforePack\", root), \"user\")\n this.eventEmitter.on(\"afterExtract\", await resolveFunction(type, this.config.afterExtract, \"afterExtract\", root), \"user\")\n this.eventEmitter.on(\"afterPack\", await resolveFunction(type, this.config.afterPack, \"afterPack\", root), \"user\")\n this.eventEmitter.on(\"afterSign\", await resolveFunction(type, this.config.afterSign, \"afterSign\", root), \"user\")\n }\n\n onAfterPack(handler: PackagerEvents[\"afterPack\"]): Packager {\n this.eventEmitter.on(\"afterPack\", handler)\n return this\n }\n\n onArtifactCreated(handler: PackagerEvents[\"artifactCreated\"]): Packager {\n this.eventEmitter.on(\"artifactCreated\", handler)\n return this\n }\n\n filterPackagerEventListeners(event: keyof PackagerEvents, type: HandlerType | undefined) {\n return this.eventEmitter.filterListeners(event, type)\n }\n\n clearPackagerEventListeners() {\n this.eventEmitter.clear()\n }\n\n async emitArtifactBuildStarted(event: ArtifactBuildStarted, logFields?: any) {\n log.info(\n logFields || {\n target: event.targetPresentableName,\n arch: event.arch == null ? null : Arch[event.arch],\n file: log.filePath(event.file),\n },\n \"building\"\n )\n await this.eventEmitter.emit(\"artifactBuildStarted\", event)\n }\n\n /**\n * Only for sub artifacts (update info), for main artifacts use `callArtifactBuildCompleted`.\n */\n async emitArtifactCreated(event: ArtifactCreated) {\n await this.eventEmitter.emit(\"artifactCreated\", event)\n }\n\n async emitArtifactBuildCompleted(event: ArtifactCreated) {\n await this.eventEmitter.emit(\"artifactBuildCompleted\", event)\n await this.emitArtifactCreated(event)\n }\n\n async emitAppxManifestCreated(path: string) {\n await this.eventEmitter.emit(\"appxManifestCreated\", path)\n }\n\n async emitMsiProjectCreated(path: string) {\n await this.eventEmitter.emit(\"msiProjectCreated\", path)\n }\n\n async emitBeforePack(context: BeforePackContext) {\n await this.eventEmitter.emit(\"beforePack\", context)\n }\n\n async emitAfterPack(context: AfterPackContext) {\n await this.eventEmitter.emit(\"afterPack\", context)\n }\n\n async emitAfterSign(context: AfterPackContext) {\n await this.eventEmitter.emit(\"afterSign\", context)\n }\n\n async emitAfterExtract(context: AfterPackContext) {\n await this.eventEmitter.emit(\"afterExtract\", context)\n }\n\n async validateConfig(): Promise<void> {\n let configPath: string | null = null\n let configFromOptions = this.options.config\n if (typeof configFromOptions === \"string\") {\n // it is a path to config file\n configPath = configFromOptions\n configFromOptions = null\n } else if (configFromOptions != null && typeof configFromOptions.extends === \"string\" && configFromOptions.extends.includes(\".\")) {\n configPath = configFromOptions.extends\n delete configFromOptions.extends\n }\n\n const projectDir = this.projectDir\n\n const devPackageFile = path.join(projectDir, \"package.json\")\n this._devMetadata = await orNullIfFileNotExist(readPackageJson(devPackageFile))\n\n const devMetadata = this.devMetadata\n const configuration = await getConfig(projectDir, configPath, configFromOptions, new Lazy(() => Promise.resolve(devMetadata)))\n\n log.debug({ config: getSafeEffectiveConfig(configuration) }, \"effective config\")\n\n this._appDir = await computeDefaultAppDirectory(projectDir, configuration.directories!.app)\n this.isTwoPackageJsonProjectLayoutUsed = this._appDir !== projectDir\n\n const appPackageFile = this.isTwoPackageJsonProjectLayoutUsed ? path.join(this.appDir, \"package.json\") : devPackageFile\n\n // tslint:disable:prefer-conditional-expression\n if (this.devMetadata != null && !this.isTwoPackageJsonProjectLayoutUsed) {\n this._metadata = this.devMetadata\n } else {\n this._metadata = await this.readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile)\n }\n this._originalMetadata = deepAssign({}, this._metadata)\n deepAssign(this._metadata, configuration.extraMetadata)\n\n if (this.isTwoPackageJsonProjectLayoutUsed) {\n log.debug({ devPackageFile, appPackageFile }, \"two package.json structure is used\")\n }\n checkMetadata(this.metadata, this.devMetadata, appPackageFile, devPackageFile)\n\n await validateConfiguration(configuration, this.debugLogger)\n\n this._configuration = configuration\n this._devMetadata = devMetadata\n }\n\n // external caller of this method always uses isTwoPackageJsonProjectLayoutUsed=false and appDir=projectDir, no way (and need) to use another values\n async build(repositoryInfo?: SourceRepositoryInfo): Promise<BuildResult> {\n await this.validateConfig()\n\n if (repositoryInfo != null) {\n this._repositoryInfo.value = Promise.resolve(repositoryInfo)\n }\n\n this._appInfo = new AppInfo(this, null)\n await this.addPackagerEventHandlers()\n\n this._framework = await createFrameworkInfo(this.config, this)\n\n const commonOutDirWithoutPossibleOsMacro = path.resolve(\n this.projectDir,\n expandMacro(this.config.directories!.output!, null, this._appInfo, {\n os: \"\",\n })\n )\n\n if (!isCI && (process.stdout as any).isTTY) {\n const effectiveConfigFile = path.join(commonOutDirWithoutPossibleOsMacro, \"builder-effective-config.yaml\")\n log.info({ file: log.filePath(effectiveConfigFile) }, \"writing effective config\")\n await outputFile(effectiveConfigFile, getSafeEffectiveConfig(this.config))\n }\n\n // because artifact event maybe dispatched several times for different publish providers\n const artifactPaths = new Set<string>()\n this.onArtifactCreated(event => {\n if (event.file != null) {\n artifactPaths.add(event.file)\n }\n })\n\n this.disposeOnBuildFinish(() =>\n retry(() => this.tempDirManager.cleanup(), {\n retries: 2,\n interval: 2000,\n backoff: 2000,\n cancellationToken: this.cancellationToken,\n shouldRetry: e => {\n const message: string = e?.message || \"\"\n const code = e?.code\n // windows file locks\n const resourceIsBusy = message.includes(\"EBUSY\") || code === \"EBUSY\"\n if (resourceIsBusy) {\n log.debug({ error: message || code }, \"retrying temporary directory cleanup\")\n return true\n }\n return false\n },\n })\n )\n\n const platformToTargets = await executeFinally(this.doBuild(), async () => {\n if (this.debugLogger.isEnabled) {\n await this.debugLogger.save(path.join(commonOutDirWithoutPossibleOsMacro, \"builder-debug.yml\"))\n }\n\n const toDispose = this.toDispose.slice()\n this.toDispose.length = 0\n for (const disposer of toDispose) {\n await disposer().catch((e: any) => {\n log.warn({ error: e }, \"cannot dispose\")\n })\n }\n })\n\n return {\n outDir: commonOutDirWithoutPossibleOsMacro,\n artifactPaths: Array.from(artifactPaths),\n platformToTargets,\n configuration: this.config,\n }\n }\n\n private async readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile: string): Promise<Metadata> {\n let data = await orNullIfFileNotExist(readPackageJson(appPackageFile))\n if (data != null) {\n return data\n }\n\n data = await orNullIfFileNotExist(readAsarJson(path.join(this.projectDir, \"app.asar\"), \"package.json\"))\n if (data != null) {\n this._isPrepackedAppAsar = true\n return data\n }\n\n throw new Error(`Cannot find package.json in the ${path.dirname(appPackageFile)}`)\n }\n\n private async doBuild(): Promise<Map<Platform, Map<string, Target>>> {\n const taskManager = new AsyncTaskManager(this.cancellationToken)\n const syncTargetsIfAny = [] as Target[]\n\n const platformToTarget = new Map<Platform, Map<string, Target>>()\n const createdOutDirs = new Set<string>()\n\n for (const [platform, archToType] of this.options.targets!) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n if (platform === Platform.MAC && process.platform === Platform.WINDOWS.nodeName) {\n throw new InvalidConfigurationError(\"Build for macOS is supported only on macOS, please see https://electron.build/multi-platform-build\")\n }\n\n const packager = await this.createHelper(platform)\n const nameToTarget: Map<string, Target> = new Map()\n platformToTarget.set(platform, nameToTarget)\n\n let poolCount = Math.floor(packager.config.concurrency?.jobs || 1)\n if (poolCount < 1) {\n log.warn({ concurrency: poolCount }, \"concurrency is invalid, overriding with job count: 1\")\n poolCount = 1\n } else if (poolCount > MAX_FILE_REQUESTS) {\n log.warn(\n { concurrency: poolCount, MAX_FILE_REQUESTS },\n `job concurrency is greater than recommended MAX_FILE_REQUESTS, this may lead to File Descriptor errors (too many files open). Proceed with caution (e.g. this is an experimental feature)`\n )\n }\n const packPromises: Promise<any>[] = []\n\n for (const [arch, targetNames] of computeArchToTargetNamesMap(archToType, packager, platform)) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n // support os and arch macro in output value\n const outDir = path.resolve(this.projectDir, packager.expandMacro(this.config.directories!.output!, Arch[arch]))\n const targetList = createTargets(nameToTarget, targetNames.length === 0 ? packager.defaultTarget : targetNames, outDir, packager)\n await createOutDirIfNeed(targetList, createdOutDirs)\n const promise = packager.pack(outDir, arch, targetList, taskManager)\n if (poolCount < 2) {\n await promise\n } else {\n packPromises.push(promise)\n }\n }\n\n await asyncPool(poolCount, packPromises, async it => {\n if (this.cancellationToken.cancelled) {\n return\n }\n await it\n })\n\n if (this.cancellationToken.cancelled) {\n break\n }\n\n for (const target of nameToTarget.values()) {\n if (target.isAsyncSupported) {\n taskManager.addTask(target.finishBuild())\n } else {\n syncTargetsIfAny.push(target)\n }\n }\n }\n\n await taskManager.awaitTasks()\n\n for (const target of syncTargetsIfAny) {\n if (this.cancellationToken.cancelled) {\n break\n }\n await target.finishBuild()\n }\n return platformToTarget\n }\n\n private async createHelper(platform: Platform): Promise<PlatformPackager<any>> {\n if (this.options.platformPackagerFactory != null) {\n return this.options.platformPackagerFactory(this, platform)\n }\n\n switch (platform) {\n case Platform.MAC: {\n const helperClass = (await import(\"./macPackager\")).MacPackager\n return new helperClass(this)\n }\n\n case Platform.WINDOWS: {\n const helperClass = (await import(\"./winPackager\")).WinPackager\n return new helperClass(this)\n }\n\n case Platform.LINUX:\n return new (await import(\"./linuxPackager\")).LinuxPackager(this)\n\n default:\n throw new Error(`Unknown platform: ${platform}`)\n }\n }\n\n public async installAppDependencies(platform: Platform, arch: Arch): Promise<any> {\n if (this.options.prepackaged != null || !this.framework.isNpmRebuildRequired) {\n return\n }\n\n const frameworkInfo = { version: this.framework.version, useCustomDist: true }\n const config = this.config\n if (config.nodeGypRebuild === true) {\n await nodeGypRebuild(platform.nodeName, Arch[arch], frameworkInfo)\n }\n\n if (config.npmRebuild === false) {\n log.info({ reason: \"npmRebuild is set to false\" }, \"skipped dependencies rebuild\")\n return\n }\n\n const beforeBuild = await resolveFunction(this.appInfo.type, config.beforeBuild, \"beforeBuild\", await this.getWorkspaceRoot())\n if (beforeBuild != null) {\n const performDependenciesInstallOrRebuild = await beforeBuild({\n appDir: this.appDir,\n electronVersion: this.config.electronVersion!,\n platform,\n arch: Arch[arch],\n })\n\n // If beforeBuild resolves to false, it means that handling node_modules is done outside of electron-builder.\n this._nodeModulesHandledExternally = !performDependenciesInstallOrRebuild\n if (!performDependenciesInstallOrRebuild) {\n return\n }\n }\n\n if (config.buildDependenciesFromSource === true && platform.nodeName !== process.platform) {\n log.info({ reason: \"platform is different and buildDependenciesFromSource is set to true\" }, \"skipped dependencies rebuild\")\n } else {\n await installOrRebuild(\n config,\n { appDir: this.appDir, projectDir: this.projectDir, workspaceRoot: await this.getWorkspaceRoot() },\n {\n frameworkInfo,\n platform: platform.nodeName,\n arch: Arch[arch],\n },\n false,\n this.runtimeEnvironmentVariables\n )\n }\n }\n}\n\nfunction createOutDirIfNeed(targetList: Array<Target>, createdOutDirs: Set<string>): Promise<any> {\n const ourDirs = new Set<string>()\n for (const target of targetList) {\n // noinspection SuspiciousInstanceOfGuard\n if (target instanceof NoOpTarget) {\n continue\n }\n\n const outDir = target.outDir\n if (!createdOutDirs.has(outDir)) {\n ourDirs.add(outDir)\n }\n }\n\n if (ourDirs.size === 0) {\n return Promise.resolve()\n }\n\n return Promise.all(\n Array.from(ourDirs)\n .sort()\n .map(dir => {\n return mkdirs(dir)\n .then(() => chmod(dir, 0o755) /* set explicitly */)\n .then(() => createdOutDirs.add(dir))\n })\n )\n}\n\nexport interface BuildResult {\n readonly outDir: string\n readonly artifactPaths: Array<string>\n readonly platformToTargets: Map<Platform, Map<string, Target>>\n readonly configuration: Configuration\n}\n\nfunction getSafeEffectiveConfig(configuration: Configuration): string {\n const o = JSON.parse(safeStringifyJson(configuration))\n if (o.cscLink != null) {\n o.cscLink = \"<hidden by builder>\"\n }\n return serializeToYaml(o, true)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"packager.js","sourceRoot":"","sources":["../src/packager.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n addValue,\n Arch,\n archFromString,\n AsyncTaskManager,\n DebugLogger,\n executeFinally,\n getArtifactArchName,\n InvalidConfigurationError,\n log,\n MAX_FILE_REQUESTS,\n orNullIfFileNotExist,\n sanitizeDirPath,\n safeStringifyJson,\n serializeToYaml,\n TmpDir,\n} from \"builder-util\"\nimport { CancellationToken, deepAssign, retry } from \"builder-util-runtime\"\nimport { chmod, mkdirs, outputFile } from \"fs-extra\"\nimport { isCI } from \"ci-info\"\nimport { Lazy } from \"lazy-val\"\nimport { release as getOsRelease } from \"os\"\nimport * as path from \"path\"\nimport { AppInfo } from \"./appInfo\"\nimport { readAsarJson } from \"./asar/asar\"\nimport { AfterExtractContext, AfterPackContext, BeforePackContext, Configuration, Hook } from \"./configuration\"\nimport { Platform, SourceRepositoryInfo, Target } from \"./core\"\nimport { createElectronFrameworkSupport } from \"./electron/ElectronFramework\"\nimport { Framework } from \"./Framework\"\nimport { LibUiFramework } from \"./frameworks/LibUiFramework\"\nimport { Metadata } from \"./options/metadata\"\nimport { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from \"./packagerApi\"\nimport { PlatformPackager } from \"./platformPackager\"\nimport { ProtonFramework } from \"./ProtonFramework\"\nimport { computeArchToTargetNamesMap, createTargets, NoOpTarget } from \"./targets/targetFactory\"\nimport { computeDefaultAppDirectory, getConfig, validateConfiguration } from \"./util/config/config\"\nimport { expandMacro } from \"./util/macroExpander\"\nimport { checkMetadata, readPackageJson } from \"./util/packageMetadata\"\nimport { getRepositoryInfo } from \"./util/repositoryInfo\"\nimport { resolveFunction } from \"./util/resolve\"\nimport { installOrRebuild, nodeGypRebuild } from \"./util/yarn\"\nimport { PACKAGE_VERSION } from \"./version\"\nimport { AsyncEventEmitter, HandlerType } from \"./util/asyncEventEmitter\"\nimport asyncPool from \"tiny-async-pool\"\nimport { determinePackageManagerEnv, PM } from \"./node-module-collector\"\n\nasync function createFrameworkInfo(configuration: Configuration, packager: Packager): Promise<Framework> {\n let framework = configuration.framework\n if (framework != null) {\n framework = framework.toLowerCase()\n }\n\n let nodeVersion = configuration.nodeVersion\n if (framework === \"electron\" || framework == null) {\n return await createElectronFrameworkSupport(configuration, packager)\n }\n\n if (nodeVersion == null || nodeVersion === \"current\") {\n nodeVersion = process.versions.node\n }\n\n const isUseLaunchUi = configuration.launchUiVersion !== false\n if (framework === \"proton\" || framework === \"proton-native\") {\n return new ProtonFramework(nodeVersion, packager.appInfo.productFilename, isUseLaunchUi)\n } else if (framework === \"libui\") {\n return new LibUiFramework(nodeVersion, packager.appInfo.productFilename, isUseLaunchUi)\n } else {\n throw new InvalidConfigurationError(`Unknown framework: ${framework}`)\n }\n}\n\ntype PackagerEvents = {\n artifactBuildStarted: Hook<ArtifactBuildStarted, void>\n\n beforePack: Hook<BeforePackContext, void>\n afterExtract: Hook<AfterExtractContext, void>\n afterPack: Hook<AfterPackContext, void>\n afterSign: Hook<AfterPackContext, void>\n\n artifactBuildCompleted: Hook<ArtifactCreated, void>\n\n msiProjectCreated: Hook<string, void>\n appxManifestCreated: Hook<string, void>\n\n // internal-use only, prefer usage of `artifactBuildCompleted`\n artifactCreated: Hook<ArtifactCreated, void>\n}\n\nexport class Packager {\n readonly projectDir: string\n\n private _appDir: string\n get appDir(): string {\n return this._appDir\n }\n\n private readonly _packageManager: Lazy<{ pm: PM; workspaceRoot: Promise<string | undefined> }>\n async getPackageManager(): Promise<PM> {\n return (await this._packageManager.value).pm\n }\n async getWorkspaceRoot(): Promise<string> {\n return (await (await this._packageManager.value).workspaceRoot) || this.projectDir\n }\n\n /** Stores original metadata merged with extraMetadata from configuration. */\n private _metadata: Metadata | null = null\n get metadata(): Metadata {\n return this._metadata!\n }\n\n /** Stores original metadata from package.json before merging with extraMetadata. */\n private _originalMetadata: Metadata | null = null\n get originalMetadata(): Metadata {\n return this._originalMetadata!\n }\n\n /** The \"name\" field from package.json. */\n get nodePackageName() {\n return this.originalMetadata.name!\n }\n\n private _nodeModulesHandledExternally = false\n\n get areNodeModulesHandledExternally(): boolean {\n return this._nodeModulesHandledExternally\n }\n\n private _isPrepackedAppAsar = false\n\n get isPrepackedAppAsar(): boolean {\n return this._isPrepackedAppAsar\n }\n\n private _devMetadata: Metadata | null = null\n get devMetadata(): Metadata | null {\n return this._devMetadata\n }\n\n private _configuration: Configuration | null = null\n\n get config(): Configuration {\n return this._configuration!\n }\n\n isTwoPackageJsonProjectLayoutUsed = false\n\n private readonly eventEmitter = new AsyncEventEmitter<PackagerEvents>()\n\n _appInfo: AppInfo | null = null\n get appInfo(): AppInfo {\n return this._appInfo!\n }\n\n readonly tempDirManager = new TmpDir(\"packager\")\n\n // Tasks that must run after EVERY target has finished building — the only point at which the\n // shared appOutDir can be mutated without racing a concurrent target that reads it. Used by NSIS\n // to write elevate.exe into win-unpacked without it leaking into Squirrel/zip/etc. (see #9852).\n private readonly buildFinalizeTasks: Array<() => Promise<void>> = []\n\n addBuildFinalizeTask(task: () => Promise<void>): void {\n this.buildFinalizeTasks.push(task)\n }\n\n private _repositoryInfo = new Lazy<SourceRepositoryInfo | null>(() => getRepositoryInfo(this.projectDir, this.metadata, this.devMetadata))\n\n readonly options: PackagerOptions\n\n readonly debugLogger = new DebugLogger(log.isDebugEnabled)\n\n get repositoryInfo(): Promise<SourceRepositoryInfo | null> {\n return this._repositoryInfo.value\n }\n\n private runtimeEnvironmentVariables: NodeJS.ProcessEnv = {}\n\n stageDirPathCustomizer: (target: Target, packager: PlatformPackager<any>, arch: Arch) => string = (target, packager, arch) => {\n return path.join(target.outDir, `__${target.name}-${getArtifactArchName(arch, target.name)}`)\n }\n\n private _buildResourcesDir: string | null = null\n\n get buildResourcesDir(): string {\n let result = this._buildResourcesDir\n if (result == null) {\n result = path.resolve(this.projectDir, this.relativeBuildResourcesDirname)\n this._buildResourcesDir = result\n }\n return result\n }\n\n get relativeBuildResourcesDirname(): string {\n return this.config.directories!.buildResources!\n }\n\n private _framework: Framework | null = null\n get framework(): Framework {\n return this._framework!\n }\n\n private readonly toDispose: Array<() => Promise<void>> = []\n\n disposeOnBuildFinish(disposer: () => Promise<void>) {\n this.toDispose.push(disposer)\n }\n\n //noinspection JSUnusedGlobalSymbols\n constructor(\n options: PackagerOptions,\n readonly cancellationToken = new CancellationToken()\n ) {\n if (\"devMetadata\" in options) {\n throw new InvalidConfigurationError(\"devMetadata in the options is deprecated, please use config instead\")\n }\n if (\"extraMetadata\" in options) {\n throw new InvalidConfigurationError(\"extraMetadata in the options is deprecated, please use config.extraMetadata instead\")\n }\n\n const targets = options.targets || new Map<Platform, Map<Arch, Array<string>>>()\n if (options.targets == null) {\n options.targets = targets\n }\n\n function processTargets(platform: Platform, types: Array<string>) {\n function commonArch(currentIfNotSpecified: boolean): Array<Arch> {\n const result = Array<Arch>()\n return result.length === 0 && currentIfNotSpecified ? [archFromString(process.arch)] : result\n }\n\n let archToType = targets.get(platform)\n if (archToType == null) {\n archToType = new Map<Arch, Array<string>>()\n targets.set(platform, archToType)\n }\n\n if (types.length === 0) {\n for (const arch of commonArch(false)) {\n archToType.set(arch, [])\n }\n return\n }\n\n for (const type of types) {\n const suffixPos = type.lastIndexOf(\":\")\n if (suffixPos > 0) {\n addValue(archToType, archFromString(type.substring(suffixPos + 1)), type.substring(0, suffixPos))\n } else {\n for (const arch of commonArch(true)) {\n addValue(archToType, arch, type)\n }\n }\n }\n }\n\n if (options.mac != null) {\n processTargets(Platform.MAC, options.mac)\n }\n if (options.linux != null) {\n processTargets(Platform.LINUX, options.linux)\n }\n if (options.win != null) {\n processTargets(Platform.WINDOWS, options.win)\n }\n\n this.projectDir = sanitizeDirPath(options.projectDir == null ? process.cwd() : options.projectDir)\n this._appDir = this.projectDir\n this._packageManager = determinePackageManagerEnv({ projectDir: this.projectDir, appDir: this.appDir, workspaceRoot: undefined })\n\n this.options = {\n ...options,\n prepackaged: options.prepackaged == null ? null : sanitizeDirPath(path.resolve(this.projectDir, options.prepackaged)),\n }\n\n log.info({ version: PACKAGE_VERSION, os: getOsRelease() }, \"electron-builder\")\n }\n\n private async addPackagerEventHandlers() {\n const { type } = this.appInfo\n const root = await this.getWorkspaceRoot()\n this.eventEmitter.on(\"artifactBuildStarted\", await resolveFunction(type, this.config.artifactBuildStarted, \"artifactBuildStarted\", root), \"user\")\n this.eventEmitter.on(\"artifactBuildCompleted\", await resolveFunction(type, this.config.artifactBuildCompleted, \"artifactBuildCompleted\", root), \"user\")\n\n this.eventEmitter.on(\"appxManifestCreated\", await resolveFunction(type, this.config.appxManifestCreated, \"appxManifestCreated\", root), \"user\")\n this.eventEmitter.on(\"msiProjectCreated\", await resolveFunction(type, this.config.msiProjectCreated, \"msiProjectCreated\", root), \"user\")\n\n this.eventEmitter.on(\"beforePack\", await resolveFunction(type, this.config.beforePack, \"beforePack\", root), \"user\")\n this.eventEmitter.on(\"afterExtract\", await resolveFunction(type, this.config.afterExtract, \"afterExtract\", root), \"user\")\n this.eventEmitter.on(\"afterPack\", await resolveFunction(type, this.config.afterPack, \"afterPack\", root), \"user\")\n this.eventEmitter.on(\"afterSign\", await resolveFunction(type, this.config.afterSign, \"afterSign\", root), \"user\")\n }\n\n onAfterPack(handler: PackagerEvents[\"afterPack\"]): Packager {\n this.eventEmitter.on(\"afterPack\", handler)\n return this\n }\n\n onArtifactCreated(handler: PackagerEvents[\"artifactCreated\"]): Packager {\n this.eventEmitter.on(\"artifactCreated\", handler)\n return this\n }\n\n filterPackagerEventListeners(event: keyof PackagerEvents, type: HandlerType | undefined) {\n return this.eventEmitter.filterListeners(event, type)\n }\n\n clearPackagerEventListeners() {\n this.eventEmitter.clear()\n }\n\n async emitArtifactBuildStarted(event: ArtifactBuildStarted, logFields?: any) {\n log.info(\n logFields || {\n target: event.targetPresentableName,\n arch: event.arch == null ? null : Arch[event.arch],\n file: log.filePath(event.file),\n },\n \"building\"\n )\n await this.eventEmitter.emit(\"artifactBuildStarted\", event)\n }\n\n /**\n * Only for sub artifacts (update info), for main artifacts use `callArtifactBuildCompleted`.\n */\n async emitArtifactCreated(event: ArtifactCreated) {\n await this.eventEmitter.emit(\"artifactCreated\", event)\n }\n\n async emitArtifactBuildCompleted(event: ArtifactCreated) {\n await this.eventEmitter.emit(\"artifactBuildCompleted\", event)\n await this.emitArtifactCreated(event)\n }\n\n async emitAppxManifestCreated(path: string) {\n await this.eventEmitter.emit(\"appxManifestCreated\", path)\n }\n\n async emitMsiProjectCreated(path: string) {\n await this.eventEmitter.emit(\"msiProjectCreated\", path)\n }\n\n async emitBeforePack(context: BeforePackContext) {\n await this.eventEmitter.emit(\"beforePack\", context)\n }\n\n async emitAfterPack(context: AfterPackContext) {\n await this.eventEmitter.emit(\"afterPack\", context)\n }\n\n async emitAfterSign(context: AfterPackContext) {\n await this.eventEmitter.emit(\"afterSign\", context)\n }\n\n async emitAfterExtract(context: AfterPackContext) {\n await this.eventEmitter.emit(\"afterExtract\", context)\n }\n\n async validateConfig(): Promise<void> {\n let configPath: string | null = null\n let configFromOptions = this.options.config\n if (typeof configFromOptions === \"string\") {\n // it is a path to config file\n configPath = configFromOptions\n configFromOptions = null\n } else if (configFromOptions != null && typeof configFromOptions.extends === \"string\" && configFromOptions.extends.includes(\".\")) {\n configPath = configFromOptions.extends\n delete configFromOptions.extends\n }\n\n const projectDir = this.projectDir\n\n const devPackageFile = path.join(projectDir, \"package.json\")\n this._devMetadata = await orNullIfFileNotExist(readPackageJson(devPackageFile))\n\n const devMetadata = this.devMetadata\n const configuration = await getConfig(projectDir, configPath, configFromOptions, new Lazy(() => Promise.resolve(devMetadata)))\n\n log.debug({ config: getSafeEffectiveConfig(configuration) }, \"effective config\")\n\n this._appDir = await computeDefaultAppDirectory(projectDir, configuration.directories!.app)\n this.isTwoPackageJsonProjectLayoutUsed = this._appDir !== projectDir\n\n const appPackageFile = this.isTwoPackageJsonProjectLayoutUsed ? path.join(this.appDir, \"package.json\") : devPackageFile\n\n // tslint:disable:prefer-conditional-expression\n if (this.devMetadata != null && !this.isTwoPackageJsonProjectLayoutUsed) {\n this._metadata = this.devMetadata\n } else {\n this._metadata = await this.readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile)\n }\n this._originalMetadata = deepAssign({}, this._metadata)\n deepAssign(this._metadata, configuration.extraMetadata)\n\n if (this.isTwoPackageJsonProjectLayoutUsed) {\n log.debug({ devPackageFile, appPackageFile }, \"two package.json structure is used\")\n }\n checkMetadata(this.metadata, this.devMetadata, appPackageFile, devPackageFile)\n\n await validateConfiguration(configuration, this.debugLogger)\n\n this._configuration = configuration\n this._devMetadata = devMetadata\n }\n\n // external caller of this method always uses isTwoPackageJsonProjectLayoutUsed=false and appDir=projectDir, no way (and need) to use another values\n async build(repositoryInfo?: SourceRepositoryInfo): Promise<BuildResult> {\n await this.validateConfig()\n\n if (repositoryInfo != null) {\n this._repositoryInfo.value = Promise.resolve(repositoryInfo)\n }\n\n this._appInfo = new AppInfo(this, null)\n await this.addPackagerEventHandlers()\n\n this._framework = await createFrameworkInfo(this.config, this)\n\n const commonOutDirWithoutPossibleOsMacro = path.resolve(\n this.projectDir,\n expandMacro(this.config.directories!.output!, null, this._appInfo, {\n os: \"\",\n })\n )\n\n if (!isCI && (process.stdout as any).isTTY) {\n const effectiveConfigFile = path.join(commonOutDirWithoutPossibleOsMacro, \"builder-effective-config.yaml\")\n log.info({ file: log.filePath(effectiveConfigFile) }, \"writing effective config\")\n await outputFile(effectiveConfigFile, getSafeEffectiveConfig(this.config))\n }\n\n // because artifact event maybe dispatched several times for different publish providers\n const artifactPaths = new Set<string>()\n this.onArtifactCreated(event => {\n if (event.file != null) {\n artifactPaths.add(event.file)\n }\n })\n\n this.disposeOnBuildFinish(() =>\n retry(() => this.tempDirManager.cleanup(), {\n retries: 2,\n interval: 2000,\n backoff: 2000,\n cancellationToken: this.cancellationToken,\n shouldRetry: e => {\n const message: string = e?.message || \"\"\n const code = e?.code\n // windows file locks\n const resourceIsBusy = message.includes(\"EBUSY\") || code === \"EBUSY\"\n if (resourceIsBusy) {\n log.debug({ error: message || code }, \"retrying temporary directory cleanup\")\n return true\n }\n return false\n },\n })\n )\n\n const platformToTargets = await executeFinally(this.doBuild(), async () => {\n if (this.debugLogger.isEnabled) {\n await this.debugLogger.save(path.join(commonOutDirWithoutPossibleOsMacro, \"builder-debug.yml\"))\n }\n\n const toDispose = this.toDispose.slice()\n this.toDispose.length = 0\n for (const disposer of toDispose) {\n await disposer().catch((e: any) => {\n log.warn({ error: e }, \"cannot dispose\")\n })\n }\n })\n\n return {\n outDir: commonOutDirWithoutPossibleOsMacro,\n artifactPaths: Array.from(artifactPaths),\n platformToTargets,\n configuration: this.config,\n }\n }\n\n private async readProjectMetadataIfTwoPackageStructureOrPrepacked(appPackageFile: string): Promise<Metadata> {\n let data = await orNullIfFileNotExist(readPackageJson(appPackageFile))\n if (data != null) {\n return data\n }\n\n data = await orNullIfFileNotExist(readAsarJson(path.join(this.projectDir, \"app.asar\"), \"package.json\"))\n if (data != null) {\n this._isPrepackedAppAsar = true\n return data\n }\n\n throw new Error(`Cannot find package.json in the ${path.dirname(appPackageFile)}`)\n }\n\n private async doBuild(): Promise<Map<Platform, Map<string, Target>>> {\n const taskManager = new AsyncTaskManager(this.cancellationToken)\n const syncTargetsIfAny = [] as Target[]\n\n const platformToTarget = new Map<Platform, Map<string, Target>>()\n const createdOutDirs = new Set<string>()\n\n for (const [platform, archToType] of this.options.targets!) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n if (platform === Platform.MAC && process.platform === Platform.WINDOWS.nodeName) {\n throw new InvalidConfigurationError(\"Build for macOS is supported only on macOS, please see https://electron.build/multi-platform-build\")\n }\n\n const packager = await this.createHelper(platform)\n const nameToTarget: Map<string, Target> = new Map()\n platformToTarget.set(platform, nameToTarget)\n\n let poolCount = Math.floor(packager.config.concurrency?.jobs || 1)\n if (poolCount < 1) {\n log.warn({ concurrency: poolCount }, \"concurrency is invalid, overriding with job count: 1\")\n poolCount = 1\n } else if (poolCount > MAX_FILE_REQUESTS) {\n log.warn(\n { concurrency: poolCount, MAX_FILE_REQUESTS },\n `job concurrency is greater than recommended MAX_FILE_REQUESTS, this may lead to File Descriptor errors (too many files open). Proceed with caution (e.g. this is an experimental feature)`\n )\n }\n const packPromises: Promise<any>[] = []\n\n for (const [arch, targetNames] of computeArchToTargetNamesMap(archToType, packager, platform)) {\n if (this.cancellationToken.cancelled) {\n break\n }\n\n // support os and arch macro in output value\n const outDir = path.resolve(this.projectDir, packager.expandMacro(this.config.directories!.output!, Arch[arch]))\n const targetList = createTargets(nameToTarget, targetNames.length === 0 ? packager.defaultTarget : targetNames, outDir, packager)\n await createOutDirIfNeed(targetList, createdOutDirs)\n const promise = packager.pack(outDir, arch, targetList, taskManager)\n if (poolCount < 2) {\n await promise\n } else {\n packPromises.push(promise)\n }\n }\n\n await asyncPool(poolCount, packPromises, async it => {\n if (this.cancellationToken.cancelled) {\n return\n }\n await it\n })\n\n if (this.cancellationToken.cancelled) {\n break\n }\n\n for (const target of nameToTarget.values()) {\n if (target.isAsyncSupported) {\n taskManager.addTask(target.finishBuild())\n } else {\n syncTargetsIfAny.push(target)\n }\n }\n }\n\n await taskManager.awaitTasks()\n\n for (const target of syncTargetsIfAny) {\n if (this.cancellationToken.cancelled) {\n break\n }\n await target.finishBuild()\n }\n\n // Every target has now finished reading the shared appOutDir(s), so finalize tasks may safely\n // mutate them (e.g. NSIS copying elevate.exe into win-unpacked — see #9852).\n for (const task of this.buildFinalizeTasks) {\n if (this.cancellationToken.cancelled) {\n break\n }\n await task()\n }\n return platformToTarget\n }\n\n private async createHelper(platform: Platform): Promise<PlatformPackager<any>> {\n if (this.options.platformPackagerFactory != null) {\n return this.options.platformPackagerFactory(this, platform)\n }\n\n switch (platform) {\n case Platform.MAC: {\n const helperClass = (await import(\"./macPackager\")).MacPackager\n return new helperClass(this)\n }\n\n case Platform.WINDOWS: {\n const helperClass = (await import(\"./winPackager\")).WinPackager\n return new helperClass(this)\n }\n\n case Platform.LINUX:\n return new (await import(\"./linuxPackager\")).LinuxPackager(this)\n\n default:\n throw new Error(`Unknown platform: ${platform}`)\n }\n }\n\n public async installAppDependencies(platform: Platform, arch: Arch): Promise<any> {\n if (this.options.prepackaged != null || !this.framework.isNpmRebuildRequired) {\n return\n }\n\n const frameworkInfo = { version: this.framework.version, useCustomDist: true }\n const config = this.config\n if (config.nodeGypRebuild === true) {\n await nodeGypRebuild(platform.nodeName, Arch[arch], frameworkInfo)\n }\n\n if (config.npmRebuild === false) {\n log.info({ reason: \"npmRebuild is set to false\" }, \"skipped dependencies rebuild\")\n return\n }\n\n const beforeBuild = await resolveFunction(this.appInfo.type, config.beforeBuild, \"beforeBuild\", await this.getWorkspaceRoot())\n if (beforeBuild != null) {\n const performDependenciesInstallOrRebuild = await beforeBuild({\n appDir: this.appDir,\n electronVersion: this.config.electronVersion!,\n platform,\n arch: Arch[arch],\n })\n\n // If beforeBuild resolves to false, it means that handling node_modules is done outside of electron-builder.\n this._nodeModulesHandledExternally = !performDependenciesInstallOrRebuild\n if (!performDependenciesInstallOrRebuild) {\n return\n }\n }\n\n if (config.buildDependenciesFromSource === true && platform.nodeName !== process.platform) {\n log.info({ reason: \"platform is different and buildDependenciesFromSource is set to true\" }, \"skipped dependencies rebuild\")\n } else {\n await installOrRebuild(\n config,\n { appDir: this.appDir, projectDir: this.projectDir, workspaceRoot: await this.getWorkspaceRoot() },\n {\n frameworkInfo,\n platform: platform.nodeName,\n arch: Arch[arch],\n },\n false,\n this.runtimeEnvironmentVariables\n )\n }\n }\n}\n\nfunction createOutDirIfNeed(targetList: Array<Target>, createdOutDirs: Set<string>): Promise<any> {\n const ourDirs = new Set<string>()\n for (const target of targetList) {\n // noinspection SuspiciousInstanceOfGuard\n if (target instanceof NoOpTarget) {\n continue\n }\n\n const outDir = target.outDir\n if (!createdOutDirs.has(outDir)) {\n ourDirs.add(outDir)\n }\n }\n\n if (ourDirs.size === 0) {\n return Promise.resolve()\n }\n\n return Promise.all(\n Array.from(ourDirs)\n .sort()\n .map(dir => {\n return mkdirs(dir)\n .then(() => chmod(dir, 0o755) /* set explicitly */)\n .then(() => createdOutDirs.add(dir))\n })\n )\n}\n\nexport interface BuildResult {\n readonly outDir: string\n readonly artifactPaths: Array<string>\n readonly platformToTargets: Map<Platform, Map<string, Target>>\n readonly configuration: Configuration\n}\n\nfunction getSafeEffectiveConfig(configuration: Configuration): string {\n const o = JSON.parse(safeStringifyJson(configuration))\n if (o.cscLink != null) {\n o.cscLink = \"<hidden by builder>\"\n }\n return serializeToYaml(o, true)\n}\n"]}
|
|
@@ -33,6 +33,7 @@ export declare abstract class PlatformPackager<DC extends PlatformSpecificBuildO
|
|
|
33
33
|
protected constructor(info: Packager, platform: Platform);
|
|
34
34
|
get compression(): CompressionLevel;
|
|
35
35
|
get debugLogger(): DebugLogger;
|
|
36
|
+
addBuildFinalizeTask(task: () => Promise<void>): void;
|
|
36
37
|
abstract get defaultTarget(): Array<string>;
|
|
37
38
|
protected prepareAppInfo(appInfo: AppInfo): AppInfo;
|
|
38
39
|
private static normalizePlatformSpecificBuildOptions;
|
package/out/platformPackager.js
CHANGED
|
@@ -61,6 +61,9 @@ class PlatformPackager {
|
|
|
61
61
|
get debugLogger() {
|
|
62
62
|
return this.info.debugLogger;
|
|
63
63
|
}
|
|
64
|
+
addBuildFinalizeTask(task) {
|
|
65
|
+
this.info.addBuildFinalizeTask(task);
|
|
66
|
+
}
|
|
64
67
|
// eslint-disable-next-line
|
|
65
68
|
prepareAppInfo(appInfo) {
|
|
66
69
|
return new appInfo_1.AppInfo(this.info, null, this.platformSpecificBuildOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformPackager.js","sourceRoot":"","sources":["../src/platformPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FuseConfig, FuseV1Config } from \"@electron/fuses\"\nimport { dynamicImport } from \"./util/dynamicImport\"\nimport {\n Arch,\n asArray,\n AsyncTaskManager,\n DebugLogger,\n defaultArchFromString,\n FileTransformer,\n getArchSuffix,\n getArtifactArchName,\n InvalidConfigurationError,\n isEmptyOrSpaces,\n log,\n orIfFileNotExist,\n sanitizeDirPath,\n statOrNull,\n} from \"builder-util\"\nimport { deepAssign, Nullish } from \"builder-util-runtime\"\nimport { readdir } from \"fs/promises\"\nimport { Lazy } from \"lazy-val\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport * as fs from \"fs/promises\"\nimport * as os from \"os\"\nimport { AppInfo } from \"./appInfo\"\nimport { checkFileInArchive } from \"./asar/asarFileChecker\"\nimport { AsarPackager } from \"./asar/asarUtil\"\nimport { AsarIntegrity, computeData } from \"./asar/integrity\"\nimport { FuseOptionsV1 } from \"./configuration\"\nimport { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from \"./fileMatcher\"\nimport { createTransformer, isElectronCompileUsed } from \"./fileTransformer\"\nimport { Framework, isElectronBased } from \"./Framework\"\nimport {\n AfterPackContext,\n AsarOptions,\n CompressionLevel,\n Configuration,\n ElectronPlatformName,\n FileAssociation,\n LinuxPackager,\n Packager,\n PackagerOptions,\n Platform,\n PlatformSpecificBuildOptions,\n Target,\n TargetSpecificOptions,\n} from \"./index\"\nimport { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from \"./util/appFileCopier\"\nimport { convertIcon, IconFormat, IconInfo } from \"./util/iconConverter\"\nimport { expandMacro as doExpandMacro } from \"./util/macroExpander\"\nimport { AssetCatalogResult, generateAssetCatalogForIcon } from \"./util/macosIconComposer\"\n\nexport type DoPackOptions<DC extends PlatformSpecificBuildOptions> = {\n outDir: string\n appOutDir: string\n platformName: ElectronPlatformName\n arch: Arch\n platformSpecificBuildOptions: DC\n targets: Array<Target>\n options?: {\n sign?: boolean\n disableAsarIntegrity?: boolean\n disableFuses?: boolean\n }\n}\n\nexport abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions> {\n get packagerOptions(): PackagerOptions {\n return this.info.options\n }\n\n get buildResourcesDir(): string {\n return this.info.buildResourcesDir\n }\n\n get projectDir(): string {\n return this.info.projectDir\n }\n\n get config(): Configuration {\n return this.info.config\n }\n\n readonly platformSpecificBuildOptions: DC\n\n get resourceList(): Promise<Array<string>> {\n return this._resourceList.value\n }\n\n private readonly _resourceList = new Lazy<Array<string>>(() => orIfFileNotExist(readdir(this.info.buildResourcesDir), []))\n\n readonly appInfo: AppInfo\n\n protected constructor(\n readonly info: Packager,\n readonly platform: Platform\n ) {\n this.platformSpecificBuildOptions = PlatformPackager.normalizePlatformSpecificBuildOptions((this.config as any)[platform.buildConfigurationKey])\n this.appInfo = this.prepareAppInfo(info.appInfo)\n }\n\n get compression(): CompressionLevel {\n const compression = this.platformSpecificBuildOptions.compression\n // explicitly set to null - request to use default value instead of parent (in the config)\n if (compression === null) {\n return \"normal\"\n }\n return compression || this.config.compression || \"normal\"\n }\n\n get debugLogger(): DebugLogger {\n return this.info.debugLogger\n }\n\n abstract get defaultTarget(): Array<string>\n\n // eslint-disable-next-line\n protected prepareAppInfo(appInfo: AppInfo) {\n return new AppInfo(this.info, null, this.platformSpecificBuildOptions)\n }\n\n private static normalizePlatformSpecificBuildOptions(options: any | Nullish): any {\n return options == null ? Object.create(null) : options\n }\n\n abstract createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void\n\n getCscPassword(): string {\n const password = this.doGetCscPassword()\n if (isEmptyOrSpaces(password)) {\n log.info({ reason: \"CSC_KEY_PASSWORD is not defined\" }, \"empty password will be used for code signing\")\n return \"\"\n } else {\n return password.trim()\n }\n }\n\n getCscLink(extraEnvName?: string | null): string | Nullish {\n // allow to specify as empty string\n const envValue = chooseNotNull(extraEnvName == null ? null : process.env[extraEnvName], process.env.CSC_LINK)\n return chooseNotNull(chooseNotNull(this.info.config.cscLink, this.platformSpecificBuildOptions.cscLink), envValue)\n }\n\n doGetCscPassword(): string | Nullish {\n // allow to specify as empty string\n return chooseNotNull(chooseNotNull(this.info.config.cscKeyPassword, this.platformSpecificBuildOptions.cscKeyPassword), process.env.CSC_KEY_PASSWORD)\n }\n\n protected computeAppOutDir(outDir: string, arch: Arch): string {\n // codeql[js/shell-command-constructed-from-input] - prepackaged and outDir are validated via sanitizeDirPath in the Packager constructor\n return path.resolve(\n this.packagerOptions.prepackaged ||\n path.join(\n outDir,\n `${this.platform.buildConfigurationKey}${getArchSuffix(arch, this.platformSpecificBuildOptions.defaultArch)}${this.platform === Platform.MAC ? \"\" : \"-unpacked\"}`\n )\n )\n }\n\n async pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<any> {\n const appOutDir = this.computeAppOutDir(outDir, arch)\n await this.doPack({\n outDir,\n appOutDir,\n platformName: this.platform.nodeName as ElectronPlatformName,\n arch,\n platformSpecificBuildOptions: this.platformSpecificBuildOptions,\n targets,\n })\n this.packageInDistributableFormat(appOutDir, arch, targets, taskManager)\n }\n\n protected packageInDistributableFormat(appOutDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): void {\n if (targets.find(it => !it.isAsyncSupported) == null) {\n PlatformPackager.buildAsyncTargets(targets, taskManager, appOutDir, arch)\n return\n }\n\n taskManager.add(async () => {\n // BluebirdPromise.map doesn't invoke target.build immediately, but for RemoteTarget it is very critical to call build() before finishBuild()\n const subTaskManager = new AsyncTaskManager(this.info.cancellationToken)\n PlatformPackager.buildAsyncTargets(targets, subTaskManager, appOutDir, arch)\n await subTaskManager.awaitTasks()\n\n for (const target of targets) {\n if (!target.isAsyncSupported && !this.info.cancellationToken.cancelled) {\n await target.build(appOutDir, arch)\n }\n }\n })\n }\n\n private static buildAsyncTargets(targets: Array<Target>, taskManager: AsyncTaskManager, appOutDir: string, arch: Arch) {\n for (const target of targets) {\n if (target.isAsyncSupported) {\n taskManager.addTask(target.build(appOutDir, arch))\n }\n }\n }\n\n private getExtraFileMatchers(isResources: boolean, appOutDir: string, options: GetFileMatchersOptions): Array<FileMatcher> | null {\n const outDir = this.platform === Platform.MAC ? path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\") : appOutDir\n const base = isResources ? this.getResourcesDir(appOutDir) : outDir\n return getFileMatchers(this.config, isResources ? \"extraResources\" : \"extraFiles\", base, options)\n }\n\n createGetFileMatchersOptions(outDir: string, arch: Arch, customBuildOptions: PlatformSpecificBuildOptions): GetFileMatchersOptions {\n return {\n macroExpander: it => this.expandMacro(it, arch == null ? null : Arch[arch], { \"/*\": \"{,/**/*}\" }),\n customBuildOptions,\n globalOutDir: outDir,\n defaultSrc: this.projectDir,\n }\n }\n\n protected async doPack(packOptions: DoPackOptions<DC>) {\n if (this.packagerOptions.prepackaged != null) {\n return\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n // Due to node-gyp rewriting GYP_MSVS_VERSION when reused across the same session, we must reset the env var: https://github.com/electron-userland/electron-builder/issues/7256\n delete process.env.GYP_MSVS_VERSION\n\n const { outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets, options } = packOptions\n\n await this.info.emitBeforePack({\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n })\n\n await this.info.installAppDependencies(this.platform, arch)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const framework = this.info.framework\n log.info(\n {\n platform: platformName,\n arch: Arch[arch],\n [`${framework.name}`]: framework.version,\n appOutDir: log.filePath(appOutDir),\n },\n `packaging`\n )\n\n await framework.prepareApplicationStageDirectory({\n packager: this,\n appOutDir,\n platformName,\n arch: Arch[arch],\n version: framework.version,\n })\n\n await this.info.emitAfterExtract({\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n })\n\n const excludePatterns: Array<Minimatch> = []\n\n const computeParsedPatterns = (patterns: Array<FileMatcher> | null) => {\n if (patterns != null) {\n for (const pattern of patterns) {\n pattern.computeParsedPatterns(excludePatterns, this.info.projectDir)\n }\n }\n }\n\n const getFileMatchersOptions = this.createGetFileMatchersOptions(outDir, arch, platformSpecificBuildOptions)\n const macroExpander = getFileMatchersOptions.macroExpander\n const extraResourceMatchers = this.getExtraFileMatchers(true, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraResourceMatchers)\n const extraFileMatchers = this.getExtraFileMatchers(false, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraFileMatchers)\n\n const packContext: AfterPackContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n }\n\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions)\n const resourcesPath =\n this.platform === Platform.MAC\n ? path.join(appOutDir, framework.distMacOsAppName, \"Contents\", \"Resources\")\n : isElectronBased(framework)\n ? path.join(appOutDir, \"resources\")\n : appOutDir\n const taskManager = new AsyncTaskManager(this.info.cancellationToken)\n this.copyAppFiles(taskManager, asarOptions, resourcesPath, path.join(resourcesPath, \"app\"), packContext, platformSpecificBuildOptions, excludePatterns, macroExpander)\n await taskManager.awaitTasks()\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n if (framework.beforeCopyExtraFiles != null) {\n const resourcesRelativePath = this.platform === Platform.MAC ? \"Resources\" : isElectronBased(framework) ? \"resources\" : \"\"\n\n let asarIntegrity: AsarIntegrity | null = null\n if (!(asarOptions == null || options?.disableAsarIntegrity || this.config.disableAsarIntegrity)) {\n asarIntegrity = await computeData({ resourcesPath, resourcesRelativePath, resourcesDestinationPath: this.getResourcesDir(appOutDir), extraResourceMatchers })\n }\n\n await framework.beforeCopyExtraFiles({\n packager: this,\n appOutDir,\n asarIntegrity,\n platformName,\n })\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n await copyFiles(extraResourceMatchers, transformerForExtraFiles)\n await copyFiles(extraFileMatchers, transformerForExtraFiles)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.info.emitAfterPack(packContext)\n\n if (framework.afterPack != null) {\n await framework.afterPack(packContext)\n }\n\n const isAsar = asarOptions != null\n await this.sanityCheckPackage(appOutDir, isAsar, framework, !!this.config.disableSanityCheckAsar)\n\n if (!options?.disableFuses) {\n await this.doAddElectronFuses(packContext)\n }\n if (options?.sign ?? true) {\n await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets)\n }\n }\n\n // the fuses MUST be flipped right before signing\n protected async doAddElectronFuses(packContext: AfterPackContext) {\n if (this.config.electronFuses == null) {\n return\n }\n const fuseConfig = await this.generateFuseConfig(this.config.electronFuses)\n await this.addElectronFuses(packContext, fuseConfig)\n }\n\n private async generateFuseConfig(fuses: FuseOptionsV1): Promise<FuseV1Config> {\n const { FuseVersion, FuseV1Options } = await dynamicImport<typeof import(\"@electron/fuses\")>(\"@electron/fuses\")\n const config: FuseV1Config = {\n version: FuseVersion.V1,\n resetAdHocDarwinSignature: fuses.resetAdHocDarwinSignature,\n }\n // this is annoying, but we must filter out undefined entries because some older electron versions will receive `the fuse wire in this version of Electron is not long enough` even if entry is set undefined\n if (fuses.runAsNode != null) {\n config[FuseV1Options.RunAsNode] = fuses.runAsNode\n }\n if (fuses.enableCookieEncryption != null) {\n config[FuseV1Options.EnableCookieEncryption] = fuses.enableCookieEncryption\n }\n if (fuses.enableNodeOptionsEnvironmentVariable != null) {\n config[FuseV1Options.EnableNodeOptionsEnvironmentVariable] = fuses.enableNodeOptionsEnvironmentVariable\n }\n if (fuses.enableNodeCliInspectArguments != null) {\n config[FuseV1Options.EnableNodeCliInspectArguments] = fuses.enableNodeCliInspectArguments\n }\n if (fuses.enableEmbeddedAsarIntegrityValidation != null) {\n config[FuseV1Options.EnableEmbeddedAsarIntegrityValidation] = fuses.enableEmbeddedAsarIntegrityValidation\n }\n if (fuses.onlyLoadAppFromAsar != null) {\n config[FuseV1Options.OnlyLoadAppFromAsar] = fuses.onlyLoadAppFromAsar\n }\n if (fuses.loadBrowserProcessSpecificV8Snapshot != null) {\n config[FuseV1Options.LoadBrowserProcessSpecificV8Snapshot] = fuses.loadBrowserProcessSpecificV8Snapshot\n }\n if (fuses.grantFileProtocolExtraPrivileges != null) {\n config[FuseV1Options.GrantFileProtocolExtraPrivileges] = fuses.grantFileProtocolExtraPrivileges\n }\n return config\n }\n\n /**\n * Use `AfterPackContext` here to keep available for public API\n * @param {AfterPackContext} context\n * @param {FuseConfig} fuses\n *\n * Can be used in `afterPack` hook for custom fuse logic like below. It's an alternative approach if one wants to override electron-builder's @electron/fuses version\n * ```\n * await context.packager.addElectronFuses(context, { ... })\n * ```\n */\n public async addElectronFuses(context: AfterPackContext, fuses: FuseConfig) {\n const { appOutDir, electronPlatformName } = context\n\n const ext = {\n darwin: \".app\",\n mas: \".app\",\n win32: \".exe\",\n linux: \"\",\n }[electronPlatformName]\n\n const executableName = this instanceof LinuxPackager ? this.executableName : this.appInfo.productFilename\n const electronBinaryPath = path.join(appOutDir, `${executableName}${ext}`)\n\n log.info({ electronPath: log.filePath(electronBinaryPath) }, \"executing @electron/fuses\")\n const { flipFuses } = await dynamicImport<typeof import(\"@electron/fuses\")>(\"@electron/fuses\")\n return flipFuses(electronBinaryPath, fuses)\n }\n\n protected async doSignAfterPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>) {\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions)\n const isAsar = asarOptions != null\n const packContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n }\n const didSign = await this.signApp(packContext, isAsar)\n if (didSign) {\n await this.info.emitAfterSign(packContext)\n } else if (this.info.filterPackagerEventListeners(\"afterSign\", \"user\").length) {\n log.warn(null, `skipping \"afterSign\" hook as no signing occurred, perhaps you intended \"afterPack\"?`)\n }\n }\n\n // eslint-disable-next-line\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n return null\n }\n\n private copyAppFiles(\n taskManager: AsyncTaskManager,\n asarOptions: AsarOptions | null,\n resourcePath: string,\n defaultDestination: string,\n packContext: AfterPackContext,\n platformSpecificBuildOptions: DC,\n excludePatterns: Array<Minimatch>,\n macroExpander: (it: string) => string\n ) {\n const appDir = this.info.appDir\n const config = this.config\n const isElectronCompile = asarOptions != null && isElectronCompileUsed(this.info)\n\n const mainMatchers = getMainFileMatchers(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this, packContext.outDir, isElectronCompile)\n if (excludePatterns.length > 0) {\n for (const matcher of mainMatchers) {\n matcher.excludePatterns = excludePatterns\n }\n }\n\n const framework = this.info.framework\n const transformer = createTransformer(\n appDir,\n config,\n isElectronCompile\n ? {\n originalMain: this.info.metadata.main,\n main: ELECTRON_COMPILE_SHIM_FILENAME,\n ...config.extraMetadata,\n }\n : config.extraMetadata,\n framework.createTransformer == null ? null : framework.createTransformer()\n )\n\n const _computeFileSets = (matchers: Array<FileMatcher>) => {\n return computeFileSets(matchers, this.info.isPrepackedAppAsar ? null : transformer, this, isElectronCompile).then(async result => {\n if (!this.info.isPrepackedAppAsar && !this.info.areNodeModulesHandledExternally) {\n const moduleFileMatcher = getNodeModuleFileMatcher(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this.info)\n result = result.concat(await computeNodeModuleFileSets(this, moduleFileMatcher))\n }\n return result.filter(it => it.files.length > 0)\n })\n }\n\n if (this.info.isPrepackedAppAsar) {\n taskManager.add(async () => {\n const fileSets = await _computeFileSets([new FileMatcher(appDir, resourcePath, macroExpander)])\n fileSets.forEach(it => taskManager.addTask(copyAppFiles(it, this.info, transformer)))\n await taskManager.awaitTasks()\n })\n } else if (asarOptions == null) {\n // for ASAR all asar unpacked files will be extra transformed (e.g. sign of EXE and DLL) later,\n // for prepackaged asar extra transformation not supported yet,\n // so, extra transform if asar is disabled\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n const combinedTransformer: FileTransformer = file => {\n if (transformerForExtraFiles != null) {\n const result = transformerForExtraFiles(file)\n if (result != null) {\n return result\n }\n }\n return transformer(file)\n }\n taskManager.add(async () => {\n const fileSets = await _computeFileSets(mainMatchers)\n fileSets.forEach(it => taskManager.addTask(copyAppFiles(it, this.info, combinedTransformer)))\n await taskManager.awaitTasks()\n })\n } else {\n const unpackPattern = getFileMatchers(config, \"asarUnpack\", defaultDestination, {\n macroExpander,\n customBuildOptions: platformSpecificBuildOptions,\n globalOutDir: packContext.outDir,\n defaultSrc: appDir,\n })\n const fileMatcher = unpackPattern == null ? null : unpackPattern[0]\n taskManager.addTask(\n _computeFileSets(mainMatchers).then(async fileSets => {\n for (const fileSet of fileSets) {\n await transformFiles(transformer, fileSet)\n }\n\n await new AsarPackager(this, {\n defaultDestination,\n resourcePath,\n options: asarOptions,\n unpackPattern: fileMatcher?.createFilter(),\n }).pack(fileSets)\n })\n )\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n return Promise.resolve(false)\n }\n\n getIconPath(): Promise<string | null> {\n return Promise.resolve(null)\n }\n\n private async computeAsarOptions(customBuildOptions: DC): Promise<AsarOptions | null> {\n if (!isElectronBased(this.info.framework)) {\n return null\n }\n\n function errorMessage(name: string) {\n return `${name} is deprecated is deprecated and not supported — please use asarUnpack`\n }\n\n const buildMetadata = this.config as any\n if (buildMetadata[\"asar-unpack\"] != null) {\n throw new Error(errorMessage(\"asar-unpack\"))\n }\n if (buildMetadata[\"asar-unpack-dir\"] != null) {\n throw new Error(errorMessage(\"asar-unpack-dir\"))\n }\n\n const platformSpecific = customBuildOptions.asar\n const result = platformSpecific == null ? this.config.asar : platformSpecific\n if (result === false) {\n const appAsarStat = await statOrNull(path.join(this.info.appDir, \"app.asar\"))\n //noinspection ES6MissingAwait\n if (appAsarStat == null || !appAsarStat.isFile()) {\n log.warn(\n {\n solution: \"enable asar and use asarUnpack to unpack files that must be externally available\",\n },\n \"asar usage is disabled — this is strongly not recommended\"\n )\n }\n return null\n }\n\n if (result == null || result === true) {\n return {}\n }\n\n for (const name of [\"unpackDir\", \"unpack\"]) {\n if ((result as any)[name] != null) {\n throw new Error(errorMessage(`asar.${name}`))\n }\n }\n return deepAssign({}, result)\n }\n\n public getElectronSrcDir(dist: string): string {\n return path.resolve(this.projectDir, dist)\n }\n\n public getElectronDestinationDir(appOutDir: string): string {\n return appOutDir\n }\n\n getResourcesDir(appOutDir: string): string {\n if (this.platform === Platform.MAC) {\n return this.getMacOsResourcesDir(appOutDir)\n }\n if (isElectronBased(this.info.framework)) {\n return path.join(appOutDir, \"resources\")\n }\n return appOutDir\n }\n\n public getMacOsElectronFrameworkResourcesDir(appOutDir: string): string {\n const electronFrameworkName = path.basename(this.info.framework.distMacOsAppName, \".app\") + \" \" + \"Framework.framework\"\n return path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\", \"Frameworks\", electronFrameworkName, \"Versions\", \"A\", \"Resources\")\n }\n public getMacOsResourcesDir(appOutDir: string): string {\n return path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\", \"Resources\")\n }\n\n private async checkFileInPackage(resourcesDir: string, file: string, messagePrefix: string, isAsar: boolean, disableSanityCheckAsar: boolean) {\n if (isAsar && disableSanityCheckAsar) {\n return\n }\n const relativeFile = path.relative(this.info.appDir, path.resolve(this.info.appDir, file))\n if (isAsar) {\n await checkFileInArchive(path.join(resourcesDir, \"app.asar\"), relativeFile, messagePrefix)\n return\n }\n\n const pathParsed = path.parse(file)\n // Even when packaging to asar is disabled, it does not imply that the main file can not be inside an .asar archive.\n // This may occur when the packaging is done manually before processing with electron-builder.\n if (pathParsed.dir.includes(\".asar\")) {\n // The path needs to be split to the part with an asar archive which acts like a directory and the part with\n // the path to main file itself. (e.g. path/arch.asar/dir/index.js -> path/arch.asar, dir/index.js)\n // noinspection TypeScriptValidateJSTypes\n const pathSplit: Array<string> = pathParsed.dir.split(path.sep)\n let partWithAsarIndex = 0\n pathSplit.some((pathPart: string, index: number) => {\n partWithAsarIndex = index\n return pathPart.endsWith(\".asar\")\n })\n const asarPath = path.join(...pathSplit.slice(0, partWithAsarIndex + 1))\n let mainPath = pathSplit.length > partWithAsarIndex + 1 ? path.join.apply(pathSplit.slice(partWithAsarIndex + 1)) : \"\"\n mainPath += path.join(mainPath, pathParsed.base)\n await checkFileInArchive(path.join(resourcesDir, \"app\", asarPath), mainPath, messagePrefix)\n } else {\n const fullPath = path.join(resourcesDir, \"app\", relativeFile)\n const outStat = await statOrNull(fullPath)\n if (outStat == null) {\n throw new Error(`${messagePrefix} \"${fullPath}\" does not exist. Seems like a wrong configuration.`)\n } else {\n //noinspection ES6MissingAwait\n if (!outStat.isFile()) {\n throw new Error(`${messagePrefix} \"${fullPath}\" is not a file. Seems like a wrong configuration.`)\n }\n }\n }\n }\n\n private async sanityCheckPackage(appOutDir: string, isAsar: boolean, framework: Framework, disableSanityCheckAsar: boolean): Promise<any> {\n const outStat = await statOrNull(appOutDir)\n if (outStat == null) {\n throw new Error(`Output directory \"${appOutDir}\" does not exist. Seems like a wrong configuration.`)\n } else {\n //noinspection ES6MissingAwait\n if (!outStat.isDirectory()) {\n throw new Error(`Output directory \"${appOutDir}\" is not a directory. Seems like a wrong configuration.`)\n }\n }\n\n const resourcesDir = this.getResourcesDir(appOutDir)\n const mainFile = (framework.getMainFile == null ? null : framework.getMainFile(this.platform)) || this.info.metadata.main || \"index.js\"\n await this.checkFileInPackage(resourcesDir, mainFile, \"Application entry file\", isAsar, disableSanityCheckAsar)\n await this.checkFileInPackage(resourcesDir, \"package.json\", \"Application\", isAsar, disableSanityCheckAsar)\n }\n\n // tslint:disable-next-line:no-invalid-template-strings\n computeSafeArtifactName(\n suggestedName: string | null,\n ext: string,\n arch?: Arch | null,\n skipDefaultArch = true,\n defaultArch?: string,\n safePattern = \"${name}-${version}-${arch}.${ext}\"\n ): string | null {\n return computeSafeArtifactNameIfNeeded(suggestedName, () =>\n this.computeArtifactName(safePattern, ext, skipDefaultArch && arch === defaultArchFromString(defaultArch) ? null : arch)\n )\n }\n\n expandArtifactNamePattern(\n targetSpecificOptions: TargetSpecificOptions | Nullish,\n ext: string,\n arch?: Arch | null,\n defaultPattern?: string,\n skipDefaultArch = true,\n defaultArch?: string\n ): string {\n const { pattern, isUserForced } = this.artifactPatternConfig(targetSpecificOptions, defaultPattern)\n return this.computeArtifactName(pattern, ext, !isUserForced && skipDefaultArch && arch === defaultArchFromString(defaultArch) ? null : arch)\n }\n\n artifactPatternConfig(targetSpecificOptions: TargetSpecificOptions | Nullish, defaultPattern: string | undefined) {\n const userSpecifiedPattern = targetSpecificOptions?.artifactName || this.platformSpecificBuildOptions.artifactName || this.config.artifactName\n return {\n isUserForced: !!userSpecifiedPattern,\n pattern: userSpecifiedPattern || defaultPattern || \"${productName}-${version}-${arch}.${ext}\",\n }\n }\n\n expandArtifactBeautyNamePattern(targetSpecificOptions: TargetSpecificOptions | Nullish, ext: string, arch?: Arch | null): string {\n // tslint:disable-next-line:no-invalid-template-strings\n return this.expandArtifactNamePattern(targetSpecificOptions, ext, arch, \"${productName} ${version} ${arch}.${ext}\", true)\n }\n\n private computeArtifactName(pattern: any, ext: string, arch: Arch | Nullish): string {\n const archName = arch == null ? null : getArtifactArchName(arch, ext)\n return this.expandMacro(pattern, archName, {\n ext,\n })\n }\n\n expandMacro(pattern: string, arch?: string | null, extra: any = {}, isProductNameSanitized = true): string {\n return doExpandMacro(pattern, arch, this.appInfo, { os: this.platform.buildConfigurationKey, ...extra }, isProductNameSanitized)\n }\n\n generateName2(ext: string | null, classifier: string | Nullish, deployment: boolean): string {\n const dotExt = ext == null ? \"\" : `.${ext}`\n const separator = ext === \"deb\" ? \"_\" : \"-\"\n return `${deployment ? this.appInfo.name : this.appInfo.productFilename}${separator}${this.appInfo.version}${classifier == null ? \"\" : `${separator}${classifier}`}${dotExt}`\n }\n\n getTempFile(suffix: string): Promise<string> {\n return this.info.tempDirManager.getTempFile({ suffix })\n }\n\n get fileAssociations(): Array<FileAssociation> {\n return asArray(this.config.fileAssociations).concat(asArray(this.platformSpecificBuildOptions.fileAssociations))\n }\n\n async getResource(custom: string | Nullish, ...names: Array<string>): Promise<string | null> {\n const resourcesDir = this.info.buildResourcesDir\n if (custom === undefined) {\n const resourceList = await this.resourceList\n for (const name of names) {\n if (resourceList.includes(name)) {\n // sanitizeDirPath with resourcesDir base enforces containment — CodeQL recognises the startsWith check inside as a path-traversal sanitizer\n return sanitizeDirPath(path.join(resourcesDir, path.basename(name)), resourcesDir)\n }\n }\n } else if (custom != null && !isEmptyOrSpaces(custom)) {\n const resourceList = await this.resourceList\n if (resourceList.includes(custom)) {\n return sanitizeDirPath(path.join(resourcesDir, path.basename(custom)), resourcesDir)\n }\n\n // codeql[js/shell-command-constructed-from-input] - intentional: custom may be an absolute path outside the build resources dir; existence is verified below via statOrNull\n let p = path.resolve(resourcesDir, custom)\n if ((await statOrNull(p)) == null) {\n p = path.resolve(this.projectDir, custom)\n if ((await statOrNull(p)) == null) {\n throw new InvalidConfigurationError(\n `cannot find specified resource \"${custom}\", nor relative to \"${resourcesDir}\", neither relative to project dir (\"${this.projectDir}\")`\n )\n }\n }\n return p\n }\n return null\n }\n\n get forceCodeSigning(): boolean {\n const forceCodeSigningPlatform = this.platformSpecificBuildOptions.forceCodeSigning\n return (forceCodeSigningPlatform == null ? this.config.forceCodeSigning : forceCodeSigningPlatform) || false\n }\n\n private assetCatalogResults = new Map<string, Promise<AssetCatalogResult>>()\n protected generateAssetCatalogData(iconPath: string): Promise<AssetCatalogResult> {\n // Cache results\n const cachedPromise = this.assetCatalogResults.get(iconPath)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = generateAssetCatalogForIcon(iconPath)\n this.assetCatalogResults.set(iconPath, promise)\n return promise\n }\n\n private cachedIcnsFromIconFile = new Map<string, Promise<string>>()\n async generateIcnsFromIcon(iconPath: string): Promise<string> {\n const cachedPromise = this.cachedIcnsFromIconFile.get(iconPath)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const runner = async () => {\n const { icnsFile } = await this.generateAssetCatalogData(iconPath)\n\n // Generate icns file\n const tempDir = await fs.mkdtemp(path.resolve(os.tmpdir(), \"icon-compile-\"))\n const tempIcnsPath = path.resolve(tempDir, \"Icon.icns\")\n await fs.writeFile(tempIcnsPath, icnsFile)\n\n return tempIcnsPath\n }\n const promise = runner()\n this.cachedIcnsFromIconFile.set(iconPath, promise)\n return promise\n }\n\n protected async getOrConvertIcon(format: IconFormat): Promise<string | null> {\n if (format === \"icns\") {\n const configuredIcon = this.platformSpecificBuildOptions.icon\n // If it is a .icon file, generate the icns file and return the path to the icns file\n if (configuredIcon?.endsWith(\".icon\")) {\n const iconPath = await this.getResource(configuredIcon)\n if (iconPath) {\n return this.generateIcnsFromIcon(iconPath)\n }\n }\n }\n\n const result = await this.resolveIcon(asArray(this.platformSpecificBuildOptions.icon || this.config.icon), [], format)\n if (result.length === 0) {\n const framework = this.info.framework\n if (framework.getDefaultIcon != null) {\n return framework.getDefaultIcon(this.platform)\n }\n\n log.warn({ reason: \"application icon is not set\" }, `default ${capitalizeFirstLetter(framework.name)} icon is used`)\n return this.getDefaultFrameworkIcon()\n } else {\n return result[0].file\n }\n }\n\n getDefaultFrameworkIcon(): string | null {\n const framework = this.info.framework\n return framework.getDefaultIcon == null ? null : framework.getDefaultIcon(this.platform)\n }\n\n // convert if need, validate size (it is a reason why tool is called even if file has target extension (already specified as foo.icns for example))\n async resolveIcon(sources: Array<string>, fallbackSources: Array<string>, outputFormat: IconFormat): Promise<Array<IconInfo>> {\n const output = this.expandMacro(this.config.directories!.output!)\n const outDir = sanitizeDirPath(path.resolve(this.projectDir, output, `.icon-${outputFormat}`))\n const roots = [this.buildResourcesDir, this.projectDir]\n\n const filteredSources = sources.filter(s => !s.endsWith(\".icon\"))\n const filteredFallbacks = fallbackSources.filter(s => !s.endsWith(\".icon\"))\n\n const result = await convertIcon({ sources: filteredSources, fallbackSources: filteredFallbacks, roots, format: outputFormat, outDir })\n\n if (result.error != null) {\n throw new InvalidConfigurationError(result.error, result.errorCode)\n }\n\n if (result.isFallback) {\n log.warn({ reason: \"application icon is not set\" }, `default ${capitalizeFirstLetter(this.info.framework.name)} icon is used`)\n }\n\n return result.icons\n }\n}\n\nexport function isSafeGithubName(name: string) {\n return /^[0-9A-Za-z._-]+$/.test(name)\n}\n\nexport function computeSafeArtifactNameIfNeeded(suggestedName: string | null, safeNameProducer: () => string): string | null {\n // GitHub only allows the listed characters in file names.\n if (suggestedName != null) {\n if (isSafeGithubName(suggestedName)) {\n return null\n }\n\n // prefer to use suggested name - so, if space is the only problem, just replace only space to dash\n suggestedName = suggestedName.replace(/ /g, \"-\")\n if (isSafeGithubName(suggestedName)) {\n return suggestedName\n }\n }\n\n return safeNameProducer()\n}\n\n// remove leading dot\nexport function normalizeExt(ext: string) {\n return ext.startsWith(\".\") ? ext.substring(1) : ext\n}\n\nexport function chooseNotNull<T>(v1: T | Nullish, v2: T | Nullish): T | Nullish {\n return v1 == null ? v2 : v1\n}\n\nfunction capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"platformPackager.js","sourceRoot":"","sources":["../src/platformPackager.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FuseConfig, FuseV1Config } from \"@electron/fuses\"\nimport { dynamicImport } from \"./util/dynamicImport\"\nimport {\n Arch,\n asArray,\n AsyncTaskManager,\n DebugLogger,\n defaultArchFromString,\n FileTransformer,\n getArchSuffix,\n getArtifactArchName,\n InvalidConfigurationError,\n isEmptyOrSpaces,\n log,\n orIfFileNotExist,\n sanitizeDirPath,\n statOrNull,\n} from \"builder-util\"\nimport { deepAssign, Nullish } from \"builder-util-runtime\"\nimport { readdir } from \"fs/promises\"\nimport { Lazy } from \"lazy-val\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport * as fs from \"fs/promises\"\nimport * as os from \"os\"\nimport { AppInfo } from \"./appInfo\"\nimport { checkFileInArchive } from \"./asar/asarFileChecker\"\nimport { AsarPackager } from \"./asar/asarUtil\"\nimport { AsarIntegrity, computeData } from \"./asar/integrity\"\nimport { FuseOptionsV1 } from \"./configuration\"\nimport { copyFiles, FileMatcher, getFileMatchers, GetFileMatchersOptions, getMainFileMatchers, getNodeModuleFileMatcher } from \"./fileMatcher\"\nimport { createTransformer, isElectronCompileUsed } from \"./fileTransformer\"\nimport { Framework, isElectronBased } from \"./Framework\"\nimport {\n AfterPackContext,\n AsarOptions,\n CompressionLevel,\n Configuration,\n ElectronPlatformName,\n FileAssociation,\n LinuxPackager,\n Packager,\n PackagerOptions,\n Platform,\n PlatformSpecificBuildOptions,\n Target,\n TargetSpecificOptions,\n} from \"./index\"\nimport { computeFileSets, computeNodeModuleFileSets, copyAppFiles, ELECTRON_COMPILE_SHIM_FILENAME, transformFiles } from \"./util/appFileCopier\"\nimport { convertIcon, IconFormat, IconInfo } from \"./util/iconConverter\"\nimport { expandMacro as doExpandMacro } from \"./util/macroExpander\"\nimport { AssetCatalogResult, generateAssetCatalogForIcon } from \"./util/macosIconComposer\"\n\nexport type DoPackOptions<DC extends PlatformSpecificBuildOptions> = {\n outDir: string\n appOutDir: string\n platformName: ElectronPlatformName\n arch: Arch\n platformSpecificBuildOptions: DC\n targets: Array<Target>\n options?: {\n sign?: boolean\n disableAsarIntegrity?: boolean\n disableFuses?: boolean\n }\n}\n\nexport abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions> {\n get packagerOptions(): PackagerOptions {\n return this.info.options\n }\n\n get buildResourcesDir(): string {\n return this.info.buildResourcesDir\n }\n\n get projectDir(): string {\n return this.info.projectDir\n }\n\n get config(): Configuration {\n return this.info.config\n }\n\n readonly platformSpecificBuildOptions: DC\n\n get resourceList(): Promise<Array<string>> {\n return this._resourceList.value\n }\n\n private readonly _resourceList = new Lazy<Array<string>>(() => orIfFileNotExist(readdir(this.info.buildResourcesDir), []))\n\n readonly appInfo: AppInfo\n\n protected constructor(\n readonly info: Packager,\n readonly platform: Platform\n ) {\n this.platformSpecificBuildOptions = PlatformPackager.normalizePlatformSpecificBuildOptions((this.config as any)[platform.buildConfigurationKey])\n this.appInfo = this.prepareAppInfo(info.appInfo)\n }\n\n get compression(): CompressionLevel {\n const compression = this.platformSpecificBuildOptions.compression\n // explicitly set to null - request to use default value instead of parent (in the config)\n if (compression === null) {\n return \"normal\"\n }\n return compression || this.config.compression || \"normal\"\n }\n\n get debugLogger(): DebugLogger {\n return this.info.debugLogger\n }\n\n addBuildFinalizeTask(task: () => Promise<void>): void {\n this.info.addBuildFinalizeTask(task)\n }\n\n abstract get defaultTarget(): Array<string>\n\n // eslint-disable-next-line\n protected prepareAppInfo(appInfo: AppInfo) {\n return new AppInfo(this.info, null, this.platformSpecificBuildOptions)\n }\n\n private static normalizePlatformSpecificBuildOptions(options: any | Nullish): any {\n return options == null ? Object.create(null) : options\n }\n\n abstract createTargets(targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void): void\n\n getCscPassword(): string {\n const password = this.doGetCscPassword()\n if (isEmptyOrSpaces(password)) {\n log.info({ reason: \"CSC_KEY_PASSWORD is not defined\" }, \"empty password will be used for code signing\")\n return \"\"\n } else {\n return password.trim()\n }\n }\n\n getCscLink(extraEnvName?: string | null): string | Nullish {\n // allow to specify as empty string\n const envValue = chooseNotNull(extraEnvName == null ? null : process.env[extraEnvName], process.env.CSC_LINK)\n return chooseNotNull(chooseNotNull(this.info.config.cscLink, this.platformSpecificBuildOptions.cscLink), envValue)\n }\n\n doGetCscPassword(): string | Nullish {\n // allow to specify as empty string\n return chooseNotNull(chooseNotNull(this.info.config.cscKeyPassword, this.platformSpecificBuildOptions.cscKeyPassword), process.env.CSC_KEY_PASSWORD)\n }\n\n protected computeAppOutDir(outDir: string, arch: Arch): string {\n // codeql[js/shell-command-constructed-from-input] - prepackaged and outDir are validated via sanitizeDirPath in the Packager constructor\n return path.resolve(\n this.packagerOptions.prepackaged ||\n path.join(\n outDir,\n `${this.platform.buildConfigurationKey}${getArchSuffix(arch, this.platformSpecificBuildOptions.defaultArch)}${this.platform === Platform.MAC ? \"\" : \"-unpacked\"}`\n )\n )\n }\n\n async pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<any> {\n const appOutDir = this.computeAppOutDir(outDir, arch)\n await this.doPack({\n outDir,\n appOutDir,\n platformName: this.platform.nodeName as ElectronPlatformName,\n arch,\n platformSpecificBuildOptions: this.platformSpecificBuildOptions,\n targets,\n })\n this.packageInDistributableFormat(appOutDir, arch, targets, taskManager)\n }\n\n protected packageInDistributableFormat(appOutDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): void {\n if (targets.find(it => !it.isAsyncSupported) == null) {\n PlatformPackager.buildAsyncTargets(targets, taskManager, appOutDir, arch)\n return\n }\n\n taskManager.add(async () => {\n // BluebirdPromise.map doesn't invoke target.build immediately, but for RemoteTarget it is very critical to call build() before finishBuild()\n const subTaskManager = new AsyncTaskManager(this.info.cancellationToken)\n PlatformPackager.buildAsyncTargets(targets, subTaskManager, appOutDir, arch)\n await subTaskManager.awaitTasks()\n\n for (const target of targets) {\n if (!target.isAsyncSupported && !this.info.cancellationToken.cancelled) {\n await target.build(appOutDir, arch)\n }\n }\n })\n }\n\n private static buildAsyncTargets(targets: Array<Target>, taskManager: AsyncTaskManager, appOutDir: string, arch: Arch) {\n for (const target of targets) {\n if (target.isAsyncSupported) {\n taskManager.addTask(target.build(appOutDir, arch))\n }\n }\n }\n\n private getExtraFileMatchers(isResources: boolean, appOutDir: string, options: GetFileMatchersOptions): Array<FileMatcher> | null {\n const outDir = this.platform === Platform.MAC ? path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\") : appOutDir\n const base = isResources ? this.getResourcesDir(appOutDir) : outDir\n return getFileMatchers(this.config, isResources ? \"extraResources\" : \"extraFiles\", base, options)\n }\n\n createGetFileMatchersOptions(outDir: string, arch: Arch, customBuildOptions: PlatformSpecificBuildOptions): GetFileMatchersOptions {\n return {\n macroExpander: it => this.expandMacro(it, arch == null ? null : Arch[arch], { \"/*\": \"{,/**/*}\" }),\n customBuildOptions,\n globalOutDir: outDir,\n defaultSrc: this.projectDir,\n }\n }\n\n protected async doPack(packOptions: DoPackOptions<DC>) {\n if (this.packagerOptions.prepackaged != null) {\n return\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n // Due to node-gyp rewriting GYP_MSVS_VERSION when reused across the same session, we must reset the env var: https://github.com/electron-userland/electron-builder/issues/7256\n delete process.env.GYP_MSVS_VERSION\n\n const { outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets, options } = packOptions\n\n await this.info.emitBeforePack({\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n })\n\n await this.info.installAppDependencies(this.platform, arch)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const framework = this.info.framework\n log.info(\n {\n platform: platformName,\n arch: Arch[arch],\n [`${framework.name}`]: framework.version,\n appOutDir: log.filePath(appOutDir),\n },\n `packaging`\n )\n\n await framework.prepareApplicationStageDirectory({\n packager: this,\n appOutDir,\n platformName,\n arch: Arch[arch],\n version: framework.version,\n })\n\n await this.info.emitAfterExtract({\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n })\n\n const excludePatterns: Array<Minimatch> = []\n\n const computeParsedPatterns = (patterns: Array<FileMatcher> | null) => {\n if (patterns != null) {\n for (const pattern of patterns) {\n pattern.computeParsedPatterns(excludePatterns, this.info.projectDir)\n }\n }\n }\n\n const getFileMatchersOptions = this.createGetFileMatchersOptions(outDir, arch, platformSpecificBuildOptions)\n const macroExpander = getFileMatchersOptions.macroExpander\n const extraResourceMatchers = this.getExtraFileMatchers(true, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraResourceMatchers)\n const extraFileMatchers = this.getExtraFileMatchers(false, appOutDir, getFileMatchersOptions)\n computeParsedPatterns(extraFileMatchers)\n\n const packContext: AfterPackContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n }\n\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions)\n const resourcesPath =\n this.platform === Platform.MAC\n ? path.join(appOutDir, framework.distMacOsAppName, \"Contents\", \"Resources\")\n : isElectronBased(framework)\n ? path.join(appOutDir, \"resources\")\n : appOutDir\n const taskManager = new AsyncTaskManager(this.info.cancellationToken)\n this.copyAppFiles(taskManager, asarOptions, resourcesPath, path.join(resourcesPath, \"app\"), packContext, platformSpecificBuildOptions, excludePatterns, macroExpander)\n await taskManager.awaitTasks()\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n if (framework.beforeCopyExtraFiles != null) {\n const resourcesRelativePath = this.platform === Platform.MAC ? \"Resources\" : isElectronBased(framework) ? \"resources\" : \"\"\n\n let asarIntegrity: AsarIntegrity | null = null\n if (!(asarOptions == null || options?.disableAsarIntegrity || this.config.disableAsarIntegrity)) {\n asarIntegrity = await computeData({ resourcesPath, resourcesRelativePath, resourcesDestinationPath: this.getResourcesDir(appOutDir), extraResourceMatchers })\n }\n\n await framework.beforeCopyExtraFiles({\n packager: this,\n appOutDir,\n asarIntegrity,\n platformName,\n })\n }\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n await copyFiles(extraResourceMatchers, transformerForExtraFiles)\n await copyFiles(extraFileMatchers, transformerForExtraFiles)\n\n if (this.info.cancellationToken.cancelled) {\n return\n }\n\n await this.info.emitAfterPack(packContext)\n\n if (framework.afterPack != null) {\n await framework.afterPack(packContext)\n }\n\n const isAsar = asarOptions != null\n await this.sanityCheckPackage(appOutDir, isAsar, framework, !!this.config.disableSanityCheckAsar)\n\n if (!options?.disableFuses) {\n await this.doAddElectronFuses(packContext)\n }\n if (options?.sign ?? true) {\n await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets)\n }\n }\n\n // the fuses MUST be flipped right before signing\n protected async doAddElectronFuses(packContext: AfterPackContext) {\n if (this.config.electronFuses == null) {\n return\n }\n const fuseConfig = await this.generateFuseConfig(this.config.electronFuses)\n await this.addElectronFuses(packContext, fuseConfig)\n }\n\n private async generateFuseConfig(fuses: FuseOptionsV1): Promise<FuseV1Config> {\n const { FuseVersion, FuseV1Options } = await dynamicImport<typeof import(\"@electron/fuses\")>(\"@electron/fuses\")\n const config: FuseV1Config = {\n version: FuseVersion.V1,\n resetAdHocDarwinSignature: fuses.resetAdHocDarwinSignature,\n }\n // this is annoying, but we must filter out undefined entries because some older electron versions will receive `the fuse wire in this version of Electron is not long enough` even if entry is set undefined\n if (fuses.runAsNode != null) {\n config[FuseV1Options.RunAsNode] = fuses.runAsNode\n }\n if (fuses.enableCookieEncryption != null) {\n config[FuseV1Options.EnableCookieEncryption] = fuses.enableCookieEncryption\n }\n if (fuses.enableNodeOptionsEnvironmentVariable != null) {\n config[FuseV1Options.EnableNodeOptionsEnvironmentVariable] = fuses.enableNodeOptionsEnvironmentVariable\n }\n if (fuses.enableNodeCliInspectArguments != null) {\n config[FuseV1Options.EnableNodeCliInspectArguments] = fuses.enableNodeCliInspectArguments\n }\n if (fuses.enableEmbeddedAsarIntegrityValidation != null) {\n config[FuseV1Options.EnableEmbeddedAsarIntegrityValidation] = fuses.enableEmbeddedAsarIntegrityValidation\n }\n if (fuses.onlyLoadAppFromAsar != null) {\n config[FuseV1Options.OnlyLoadAppFromAsar] = fuses.onlyLoadAppFromAsar\n }\n if (fuses.loadBrowserProcessSpecificV8Snapshot != null) {\n config[FuseV1Options.LoadBrowserProcessSpecificV8Snapshot] = fuses.loadBrowserProcessSpecificV8Snapshot\n }\n if (fuses.grantFileProtocolExtraPrivileges != null) {\n config[FuseV1Options.GrantFileProtocolExtraPrivileges] = fuses.grantFileProtocolExtraPrivileges\n }\n return config\n }\n\n /**\n * Use `AfterPackContext` here to keep available for public API\n * @param {AfterPackContext} context\n * @param {FuseConfig} fuses\n *\n * Can be used in `afterPack` hook for custom fuse logic like below. It's an alternative approach if one wants to override electron-builder's @electron/fuses version\n * ```\n * await context.packager.addElectronFuses(context, { ... })\n * ```\n */\n public async addElectronFuses(context: AfterPackContext, fuses: FuseConfig) {\n const { appOutDir, electronPlatformName } = context\n\n const ext = {\n darwin: \".app\",\n mas: \".app\",\n win32: \".exe\",\n linux: \"\",\n }[electronPlatformName]\n\n const executableName = this instanceof LinuxPackager ? this.executableName : this.appInfo.productFilename\n const electronBinaryPath = path.join(appOutDir, `${executableName}${ext}`)\n\n log.info({ electronPath: log.filePath(electronBinaryPath) }, \"executing @electron/fuses\")\n const { flipFuses } = await dynamicImport<typeof import(\"@electron/fuses\")>(\"@electron/fuses\")\n return flipFuses(electronBinaryPath, fuses)\n }\n\n protected async doSignAfterPack(outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>) {\n const asarOptions = await this.computeAsarOptions(platformSpecificBuildOptions)\n const isAsar = asarOptions != null\n const packContext = {\n appOutDir,\n outDir,\n arch,\n targets,\n packager: this,\n electronPlatformName: platformName,\n }\n const didSign = await this.signApp(packContext, isAsar)\n if (didSign) {\n await this.info.emitAfterSign(packContext)\n } else if (this.info.filterPackagerEventListeners(\"afterSign\", \"user\").length) {\n log.warn(null, `skipping \"afterSign\" hook as no signing occurred, perhaps you intended \"afterPack\"?`)\n }\n }\n\n // eslint-disable-next-line\n protected createTransformerForExtraFiles(packContext: AfterPackContext): FileTransformer | null {\n return null\n }\n\n private copyAppFiles(\n taskManager: AsyncTaskManager,\n asarOptions: AsarOptions | null,\n resourcePath: string,\n defaultDestination: string,\n packContext: AfterPackContext,\n platformSpecificBuildOptions: DC,\n excludePatterns: Array<Minimatch>,\n macroExpander: (it: string) => string\n ) {\n const appDir = this.info.appDir\n const config = this.config\n const isElectronCompile = asarOptions != null && isElectronCompileUsed(this.info)\n\n const mainMatchers = getMainFileMatchers(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this, packContext.outDir, isElectronCompile)\n if (excludePatterns.length > 0) {\n for (const matcher of mainMatchers) {\n matcher.excludePatterns = excludePatterns\n }\n }\n\n const framework = this.info.framework\n const transformer = createTransformer(\n appDir,\n config,\n isElectronCompile\n ? {\n originalMain: this.info.metadata.main,\n main: ELECTRON_COMPILE_SHIM_FILENAME,\n ...config.extraMetadata,\n }\n : config.extraMetadata,\n framework.createTransformer == null ? null : framework.createTransformer()\n )\n\n const _computeFileSets = (matchers: Array<FileMatcher>) => {\n return computeFileSets(matchers, this.info.isPrepackedAppAsar ? null : transformer, this, isElectronCompile).then(async result => {\n if (!this.info.isPrepackedAppAsar && !this.info.areNodeModulesHandledExternally) {\n const moduleFileMatcher = getNodeModuleFileMatcher(appDir, defaultDestination, macroExpander, platformSpecificBuildOptions, this.info)\n result = result.concat(await computeNodeModuleFileSets(this, moduleFileMatcher))\n }\n return result.filter(it => it.files.length > 0)\n })\n }\n\n if (this.info.isPrepackedAppAsar) {\n taskManager.add(async () => {\n const fileSets = await _computeFileSets([new FileMatcher(appDir, resourcePath, macroExpander)])\n fileSets.forEach(it => taskManager.addTask(copyAppFiles(it, this.info, transformer)))\n await taskManager.awaitTasks()\n })\n } else if (asarOptions == null) {\n // for ASAR all asar unpacked files will be extra transformed (e.g. sign of EXE and DLL) later,\n // for prepackaged asar extra transformation not supported yet,\n // so, extra transform if asar is disabled\n const transformerForExtraFiles = this.createTransformerForExtraFiles(packContext)\n const combinedTransformer: FileTransformer = file => {\n if (transformerForExtraFiles != null) {\n const result = transformerForExtraFiles(file)\n if (result != null) {\n return result\n }\n }\n return transformer(file)\n }\n taskManager.add(async () => {\n const fileSets = await _computeFileSets(mainMatchers)\n fileSets.forEach(it => taskManager.addTask(copyAppFiles(it, this.info, combinedTransformer)))\n await taskManager.awaitTasks()\n })\n } else {\n const unpackPattern = getFileMatchers(config, \"asarUnpack\", defaultDestination, {\n macroExpander,\n customBuildOptions: platformSpecificBuildOptions,\n globalOutDir: packContext.outDir,\n defaultSrc: appDir,\n })\n const fileMatcher = unpackPattern == null ? null : unpackPattern[0]\n taskManager.addTask(\n _computeFileSets(mainMatchers).then(async fileSets => {\n for (const fileSet of fileSets) {\n await transformFiles(transformer, fileSet)\n }\n\n await new AsarPackager(this, {\n defaultDestination,\n resourcePath,\n options: asarOptions,\n unpackPattern: fileMatcher?.createFilter(),\n }).pack(fileSets)\n })\n )\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected signApp(packContext: AfterPackContext, isAsar: boolean): Promise<boolean> {\n return Promise.resolve(false)\n }\n\n getIconPath(): Promise<string | null> {\n return Promise.resolve(null)\n }\n\n private async computeAsarOptions(customBuildOptions: DC): Promise<AsarOptions | null> {\n if (!isElectronBased(this.info.framework)) {\n return null\n }\n\n function errorMessage(name: string) {\n return `${name} is deprecated is deprecated and not supported — please use asarUnpack`\n }\n\n const buildMetadata = this.config as any\n if (buildMetadata[\"asar-unpack\"] != null) {\n throw new Error(errorMessage(\"asar-unpack\"))\n }\n if (buildMetadata[\"asar-unpack-dir\"] != null) {\n throw new Error(errorMessage(\"asar-unpack-dir\"))\n }\n\n const platformSpecific = customBuildOptions.asar\n const result = platformSpecific == null ? this.config.asar : platformSpecific\n if (result === false) {\n const appAsarStat = await statOrNull(path.join(this.info.appDir, \"app.asar\"))\n //noinspection ES6MissingAwait\n if (appAsarStat == null || !appAsarStat.isFile()) {\n log.warn(\n {\n solution: \"enable asar and use asarUnpack to unpack files that must be externally available\",\n },\n \"asar usage is disabled — this is strongly not recommended\"\n )\n }\n return null\n }\n\n if (result == null || result === true) {\n return {}\n }\n\n for (const name of [\"unpackDir\", \"unpack\"]) {\n if ((result as any)[name] != null) {\n throw new Error(errorMessage(`asar.${name}`))\n }\n }\n return deepAssign({}, result)\n }\n\n public getElectronSrcDir(dist: string): string {\n return path.resolve(this.projectDir, dist)\n }\n\n public getElectronDestinationDir(appOutDir: string): string {\n return appOutDir\n }\n\n getResourcesDir(appOutDir: string): string {\n if (this.platform === Platform.MAC) {\n return this.getMacOsResourcesDir(appOutDir)\n }\n if (isElectronBased(this.info.framework)) {\n return path.join(appOutDir, \"resources\")\n }\n return appOutDir\n }\n\n public getMacOsElectronFrameworkResourcesDir(appOutDir: string): string {\n const electronFrameworkName = path.basename(this.info.framework.distMacOsAppName, \".app\") + \" \" + \"Framework.framework\"\n return path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\", \"Frameworks\", electronFrameworkName, \"Versions\", \"A\", \"Resources\")\n }\n public getMacOsResourcesDir(appOutDir: string): string {\n return path.join(appOutDir, `${this.appInfo.productFilename}.app`, \"Contents\", \"Resources\")\n }\n\n private async checkFileInPackage(resourcesDir: string, file: string, messagePrefix: string, isAsar: boolean, disableSanityCheckAsar: boolean) {\n if (isAsar && disableSanityCheckAsar) {\n return\n }\n const relativeFile = path.relative(this.info.appDir, path.resolve(this.info.appDir, file))\n if (isAsar) {\n await checkFileInArchive(path.join(resourcesDir, \"app.asar\"), relativeFile, messagePrefix)\n return\n }\n\n const pathParsed = path.parse(file)\n // Even when packaging to asar is disabled, it does not imply that the main file can not be inside an .asar archive.\n // This may occur when the packaging is done manually before processing with electron-builder.\n if (pathParsed.dir.includes(\".asar\")) {\n // The path needs to be split to the part with an asar archive which acts like a directory and the part with\n // the path to main file itself. (e.g. path/arch.asar/dir/index.js -> path/arch.asar, dir/index.js)\n // noinspection TypeScriptValidateJSTypes\n const pathSplit: Array<string> = pathParsed.dir.split(path.sep)\n let partWithAsarIndex = 0\n pathSplit.some((pathPart: string, index: number) => {\n partWithAsarIndex = index\n return pathPart.endsWith(\".asar\")\n })\n const asarPath = path.join(...pathSplit.slice(0, partWithAsarIndex + 1))\n let mainPath = pathSplit.length > partWithAsarIndex + 1 ? path.join.apply(pathSplit.slice(partWithAsarIndex + 1)) : \"\"\n mainPath += path.join(mainPath, pathParsed.base)\n await checkFileInArchive(path.join(resourcesDir, \"app\", asarPath), mainPath, messagePrefix)\n } else {\n const fullPath = path.join(resourcesDir, \"app\", relativeFile)\n const outStat = await statOrNull(fullPath)\n if (outStat == null) {\n throw new Error(`${messagePrefix} \"${fullPath}\" does not exist. Seems like a wrong configuration.`)\n } else {\n //noinspection ES6MissingAwait\n if (!outStat.isFile()) {\n throw new Error(`${messagePrefix} \"${fullPath}\" is not a file. Seems like a wrong configuration.`)\n }\n }\n }\n }\n\n private async sanityCheckPackage(appOutDir: string, isAsar: boolean, framework: Framework, disableSanityCheckAsar: boolean): Promise<any> {\n const outStat = await statOrNull(appOutDir)\n if (outStat == null) {\n throw new Error(`Output directory \"${appOutDir}\" does not exist. Seems like a wrong configuration.`)\n } else {\n //noinspection ES6MissingAwait\n if (!outStat.isDirectory()) {\n throw new Error(`Output directory \"${appOutDir}\" is not a directory. Seems like a wrong configuration.`)\n }\n }\n\n const resourcesDir = this.getResourcesDir(appOutDir)\n const mainFile = (framework.getMainFile == null ? null : framework.getMainFile(this.platform)) || this.info.metadata.main || \"index.js\"\n await this.checkFileInPackage(resourcesDir, mainFile, \"Application entry file\", isAsar, disableSanityCheckAsar)\n await this.checkFileInPackage(resourcesDir, \"package.json\", \"Application\", isAsar, disableSanityCheckAsar)\n }\n\n // tslint:disable-next-line:no-invalid-template-strings\n computeSafeArtifactName(\n suggestedName: string | null,\n ext: string,\n arch?: Arch | null,\n skipDefaultArch = true,\n defaultArch?: string,\n safePattern = \"${name}-${version}-${arch}.${ext}\"\n ): string | null {\n return computeSafeArtifactNameIfNeeded(suggestedName, () =>\n this.computeArtifactName(safePattern, ext, skipDefaultArch && arch === defaultArchFromString(defaultArch) ? null : arch)\n )\n }\n\n expandArtifactNamePattern(\n targetSpecificOptions: TargetSpecificOptions | Nullish,\n ext: string,\n arch?: Arch | null,\n defaultPattern?: string,\n skipDefaultArch = true,\n defaultArch?: string\n ): string {\n const { pattern, isUserForced } = this.artifactPatternConfig(targetSpecificOptions, defaultPattern)\n return this.computeArtifactName(pattern, ext, !isUserForced && skipDefaultArch && arch === defaultArchFromString(defaultArch) ? null : arch)\n }\n\n artifactPatternConfig(targetSpecificOptions: TargetSpecificOptions | Nullish, defaultPattern: string | undefined) {\n const userSpecifiedPattern = targetSpecificOptions?.artifactName || this.platformSpecificBuildOptions.artifactName || this.config.artifactName\n return {\n isUserForced: !!userSpecifiedPattern,\n pattern: userSpecifiedPattern || defaultPattern || \"${productName}-${version}-${arch}.${ext}\",\n }\n }\n\n expandArtifactBeautyNamePattern(targetSpecificOptions: TargetSpecificOptions | Nullish, ext: string, arch?: Arch | null): string {\n // tslint:disable-next-line:no-invalid-template-strings\n return this.expandArtifactNamePattern(targetSpecificOptions, ext, arch, \"${productName} ${version} ${arch}.${ext}\", true)\n }\n\n private computeArtifactName(pattern: any, ext: string, arch: Arch | Nullish): string {\n const archName = arch == null ? null : getArtifactArchName(arch, ext)\n return this.expandMacro(pattern, archName, {\n ext,\n })\n }\n\n expandMacro(pattern: string, arch?: string | null, extra: any = {}, isProductNameSanitized = true): string {\n return doExpandMacro(pattern, arch, this.appInfo, { os: this.platform.buildConfigurationKey, ...extra }, isProductNameSanitized)\n }\n\n generateName2(ext: string | null, classifier: string | Nullish, deployment: boolean): string {\n const dotExt = ext == null ? \"\" : `.${ext}`\n const separator = ext === \"deb\" ? \"_\" : \"-\"\n return `${deployment ? this.appInfo.name : this.appInfo.productFilename}${separator}${this.appInfo.version}${classifier == null ? \"\" : `${separator}${classifier}`}${dotExt}`\n }\n\n getTempFile(suffix: string): Promise<string> {\n return this.info.tempDirManager.getTempFile({ suffix })\n }\n\n get fileAssociations(): Array<FileAssociation> {\n return asArray(this.config.fileAssociations).concat(asArray(this.platformSpecificBuildOptions.fileAssociations))\n }\n\n async getResource(custom: string | Nullish, ...names: Array<string>): Promise<string | null> {\n const resourcesDir = this.info.buildResourcesDir\n if (custom === undefined) {\n const resourceList = await this.resourceList\n for (const name of names) {\n if (resourceList.includes(name)) {\n // sanitizeDirPath with resourcesDir base enforces containment — CodeQL recognises the startsWith check inside as a path-traversal sanitizer\n return sanitizeDirPath(path.join(resourcesDir, path.basename(name)), resourcesDir)\n }\n }\n } else if (custom != null && !isEmptyOrSpaces(custom)) {\n const resourceList = await this.resourceList\n if (resourceList.includes(custom)) {\n return sanitizeDirPath(path.join(resourcesDir, path.basename(custom)), resourcesDir)\n }\n\n // codeql[js/shell-command-constructed-from-input] - intentional: custom may be an absolute path outside the build resources dir; existence is verified below via statOrNull\n let p = path.resolve(resourcesDir, custom)\n if ((await statOrNull(p)) == null) {\n p = path.resolve(this.projectDir, custom)\n if ((await statOrNull(p)) == null) {\n throw new InvalidConfigurationError(\n `cannot find specified resource \"${custom}\", nor relative to \"${resourcesDir}\", neither relative to project dir (\"${this.projectDir}\")`\n )\n }\n }\n return p\n }\n return null\n }\n\n get forceCodeSigning(): boolean {\n const forceCodeSigningPlatform = this.platformSpecificBuildOptions.forceCodeSigning\n return (forceCodeSigningPlatform == null ? this.config.forceCodeSigning : forceCodeSigningPlatform) || false\n }\n\n private assetCatalogResults = new Map<string, Promise<AssetCatalogResult>>()\n protected generateAssetCatalogData(iconPath: string): Promise<AssetCatalogResult> {\n // Cache results\n const cachedPromise = this.assetCatalogResults.get(iconPath)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const promise = generateAssetCatalogForIcon(iconPath)\n this.assetCatalogResults.set(iconPath, promise)\n return promise\n }\n\n private cachedIcnsFromIconFile = new Map<string, Promise<string>>()\n async generateIcnsFromIcon(iconPath: string): Promise<string> {\n const cachedPromise = this.cachedIcnsFromIconFile.get(iconPath)\n if (cachedPromise) {\n return cachedPromise\n }\n\n const runner = async () => {\n const { icnsFile } = await this.generateAssetCatalogData(iconPath)\n\n // Generate icns file\n const tempDir = await fs.mkdtemp(path.resolve(os.tmpdir(), \"icon-compile-\"))\n const tempIcnsPath = path.resolve(tempDir, \"Icon.icns\")\n await fs.writeFile(tempIcnsPath, icnsFile)\n\n return tempIcnsPath\n }\n const promise = runner()\n this.cachedIcnsFromIconFile.set(iconPath, promise)\n return promise\n }\n\n protected async getOrConvertIcon(format: IconFormat): Promise<string | null> {\n if (format === \"icns\") {\n const configuredIcon = this.platformSpecificBuildOptions.icon\n // If it is a .icon file, generate the icns file and return the path to the icns file\n if (configuredIcon?.endsWith(\".icon\")) {\n const iconPath = await this.getResource(configuredIcon)\n if (iconPath) {\n return this.generateIcnsFromIcon(iconPath)\n }\n }\n }\n\n const result = await this.resolveIcon(asArray(this.platformSpecificBuildOptions.icon || this.config.icon), [], format)\n if (result.length === 0) {\n const framework = this.info.framework\n if (framework.getDefaultIcon != null) {\n return framework.getDefaultIcon(this.platform)\n }\n\n log.warn({ reason: \"application icon is not set\" }, `default ${capitalizeFirstLetter(framework.name)} icon is used`)\n return this.getDefaultFrameworkIcon()\n } else {\n return result[0].file\n }\n }\n\n getDefaultFrameworkIcon(): string | null {\n const framework = this.info.framework\n return framework.getDefaultIcon == null ? null : framework.getDefaultIcon(this.platform)\n }\n\n // convert if need, validate size (it is a reason why tool is called even if file has target extension (already specified as foo.icns for example))\n async resolveIcon(sources: Array<string>, fallbackSources: Array<string>, outputFormat: IconFormat): Promise<Array<IconInfo>> {\n const output = this.expandMacro(this.config.directories!.output!)\n const outDir = sanitizeDirPath(path.resolve(this.projectDir, output, `.icon-${outputFormat}`))\n const roots = [this.buildResourcesDir, this.projectDir]\n\n const filteredSources = sources.filter(s => !s.endsWith(\".icon\"))\n const filteredFallbacks = fallbackSources.filter(s => !s.endsWith(\".icon\"))\n\n const result = await convertIcon({ sources: filteredSources, fallbackSources: filteredFallbacks, roots, format: outputFormat, outDir })\n\n if (result.error != null) {\n throw new InvalidConfigurationError(result.error, result.errorCode)\n }\n\n if (result.isFallback) {\n log.warn({ reason: \"application icon is not set\" }, `default ${capitalizeFirstLetter(this.info.framework.name)} icon is used`)\n }\n\n return result.icons\n }\n}\n\nexport function isSafeGithubName(name: string) {\n return /^[0-9A-Za-z._-]+$/.test(name)\n}\n\nexport function computeSafeArtifactNameIfNeeded(suggestedName: string | null, safeNameProducer: () => string): string | null {\n // GitHub only allows the listed characters in file names.\n if (suggestedName != null) {\n if (isSafeGithubName(suggestedName)) {\n return null\n }\n\n // prefer to use suggested name - so, if space is the only problem, just replace only space to dash\n suggestedName = suggestedName.replace(/ /g, \"-\")\n if (isSafeGithubName(suggestedName)) {\n return suggestedName\n }\n }\n\n return safeNameProducer()\n}\n\n// remove leading dot\nexport function normalizeExt(ext: string) {\n return ext.startsWith(\".\") ? ext.substring(1) : ext\n}\n\nexport function chooseNotNull<T>(v1: T | Nullish, v2: T | Nullish): T | Nullish {\n return v1 == null ? v2 : v1\n}\n\nfunction capitalizeFirstLetter(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1)\n}\n"]}
|
|
@@ -79,6 +79,7 @@ class FlatpakTarget extends core_1.Target {
|
|
|
79
79
|
await Promise.all(copyIcons);
|
|
80
80
|
}
|
|
81
81
|
getFlatpakBuilderOptions(appOutDir, stageDir, artifactName, arch) {
|
|
82
|
+
var _a, _b;
|
|
82
83
|
const appIdentifier = this.appId;
|
|
83
84
|
const { executableName } = this.packager;
|
|
84
85
|
const flatpakArch = (0, builder_util_1.toLinuxArchString)(arch, "flatpak");
|
|
@@ -94,13 +95,17 @@ class FlatpakTarget extends core_1.Target {
|
|
|
94
95
|
branch: this.options.branch,
|
|
95
96
|
modules: this.options.modules,
|
|
96
97
|
};
|
|
98
|
+
// `this.options` is `linux` deep-merged with `flatpak`, and deepAssign concatenates arrays, so the
|
|
99
|
+
// shared `linux.files` globs (string | FileSet | array of either) would leak into this [src, dest] tuple
|
|
100
|
+
// list. Read the flatpak-specific list from the raw config instead of the merged options.
|
|
101
|
+
const extraFiles = (_b = (_a = this.packager.config.flatpak) === null || _a === void 0 ? void 0 : _a.files) !== null && _b !== void 0 ? _b : [];
|
|
97
102
|
const buildOptions = {
|
|
98
103
|
baseFlatpakref: `app/${manifest.base}/${flatpakArch}/${manifest.baseVersion}`,
|
|
99
104
|
runtimeFlatpakref: `runtime/${manifest.runtime}/${flatpakArch}/${manifest.runtimeVersion}`,
|
|
100
105
|
sdkFlatpakref: `runtime/${manifest.sdk}/${flatpakArch}/${manifest.runtimeVersion}`,
|
|
101
106
|
arch: flatpakArch,
|
|
102
107
|
bundlePath: path.join(this.outDir, artifactName),
|
|
103
|
-
files: [[stageDir, "/"], [appOutDir, path.join("/lib", appIdentifier)], ...
|
|
108
|
+
files: [[stageDir, "/"], [appOutDir, path.join("/lib", appIdentifier)], ...extraFiles],
|
|
104
109
|
symlinks: [[path.join("/lib", appIdentifier, executableName), path.join("/bin", executableName)], ...(this.options.symlinks || [])],
|
|
105
110
|
};
|
|
106
111
|
return { manifest, buildOptions };
|