app-builder-lib 27.0.0-alpha.7 → 27.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/codeSign/mac/macCodeSign.d.ts.map +1 -1
  2. package/dist/codeSign/mac/macCodeSign.js +6 -4
  3. package/dist/codeSign/mac/macCodeSign.js.map +1 -1
  4. package/dist/codeSign/signResult.d.ts +26 -0
  5. package/dist/codeSign/signResult.d.ts.map +1 -0
  6. package/dist/codeSign/signResult.js +12 -0
  7. package/dist/codeSign/signResult.js.map +1 -0
  8. package/dist/codeSign/win/signManager.d.ts +2 -1
  9. package/dist/codeSign/win/signManager.d.ts.map +1 -1
  10. package/dist/codeSign/win/signManager.js.map +1 -1
  11. package/dist/codeSign/win/signtoolBaseSignManager.d.ts +2 -1
  12. package/dist/codeSign/win/signtoolBaseSignManager.d.ts.map +1 -1
  13. package/dist/codeSign/win/signtoolBaseSignManager.js +3 -3
  14. package/dist/codeSign/win/signtoolBaseSignManager.js.map +1 -1
  15. package/dist/codeSign/win/windowsCodeSign.d.ts +2 -1
  16. package/dist/codeSign/win/windowsCodeSign.d.ts.map +1 -1
  17. package/dist/codeSign/win/windowsCodeSign.js +16 -7
  18. package/dist/codeSign/win/windowsCodeSign.js.map +1 -1
  19. package/dist/codeSign/win/windowsSignAzureManager.d.ts +2 -1
  20. package/dist/codeSign/win/windowsSignAzureManager.d.ts.map +1 -1
  21. package/dist/codeSign/win/windowsSignAzureManager.js +2 -2
  22. package/dist/codeSign/win/windowsSignAzureManager.js.map +1 -1
  23. package/dist/configuration.d.ts +14 -3
  24. package/dist/configuration.d.ts.map +1 -1
  25. package/dist/configuration.js.map +1 -1
  26. package/dist/core.d.ts +5 -0
  27. package/dist/core.d.ts.map +1 -1
  28. package/dist/core.js.map +1 -1
  29. package/dist/fileMatcher.d.ts.map +1 -1
  30. package/dist/fileMatcher.js +1 -0
  31. package/dist/fileMatcher.js.map +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/macPackager.d.ts +16 -8
  37. package/dist/macPackager.d.ts.map +1 -1
  38. package/dist/macPackager.js +59 -31
  39. package/dist/macPackager.js.map +1 -1
  40. package/dist/options/PlatformSpecificBuildOptions.d.ts +2 -2
  41. package/dist/options/PlatformSpecificBuildOptions.js.map +1 -1
  42. package/dist/options/linuxOptions.d.ts +8 -2
  43. package/dist/options/linuxOptions.d.ts.map +1 -1
  44. package/dist/options/linuxOptions.js.map +1 -1
  45. package/dist/options/macOptions.d.ts +1 -1
  46. package/dist/options/macOptions.js.map +1 -1
  47. package/dist/options/pkgOptions.d.ts +1 -1
  48. package/dist/options/pkgOptions.js.map +1 -1
  49. package/dist/options/winOptions.d.ts +3 -3
  50. package/dist/options/winOptions.js.map +1 -1
  51. package/dist/packager.d.ts.map +1 -1
  52. package/dist/packager.js +5 -2
  53. package/dist/packager.js.map +1 -1
  54. package/dist/platformPackager.d.ts +2 -1
  55. package/dist/platformPackager.d.ts.map +1 -1
  56. package/dist/platformPackager.js +5 -3
  57. package/dist/platformPackager.js.map +1 -1
  58. package/dist/publish/PublishManager.js +37 -0
  59. package/dist/publish/PublishManager.js.map +1 -1
  60. package/dist/publish/updateInfoBuilder.d.ts.map +1 -1
  61. package/dist/publish/updateInfoBuilder.js +6 -4
  62. package/dist/publish/updateInfoBuilder.js.map +1 -1
  63. package/dist/targets/linux/FpmTarget.d.ts +7 -0
  64. package/dist/targets/linux/FpmTarget.d.ts.map +1 -1
  65. package/dist/targets/linux/FpmTarget.js +20 -2
  66. package/dist/targets/linux/FpmTarget.js.map +1 -1
  67. package/dist/targets/mac/MacTargetHelper.d.ts +5 -3
  68. package/dist/targets/mac/MacTargetHelper.d.ts.map +1 -1
  69. package/dist/targets/mac/MacTargetHelper.js +3 -3
  70. package/dist/targets/mac/MacTargetHelper.js.map +1 -1
  71. package/dist/targets/mac/pkg.js +1 -1
  72. package/dist/targets/mac/pkg.js.map +1 -1
  73. package/dist/toolsets/7zip.d.ts +32 -0
  74. package/dist/toolsets/7zip.d.ts.map +1 -1
  75. package/dist/toolsets/7zip.js +39 -13
  76. package/dist/toolsets/7zip.js.map +1 -1
  77. package/dist/toolsets/linuxToolsMac.d.ts.map +1 -1
  78. package/dist/toolsets/linuxToolsMac.js +15 -5
  79. package/dist/toolsets/linuxToolsMac.js.map +1 -1
  80. package/dist/util/electronGet.d.ts +11 -0
  81. package/dist/util/electronGet.d.ts.map +1 -1
  82. package/dist/util/electronGet.js +46 -3
  83. package/dist/util/electronGet.js.map +1 -1
  84. package/dist/util/installOrRebuild.d.ts +6 -0
  85. package/dist/util/installOrRebuild.d.ts.map +1 -1
  86. package/dist/util/installOrRebuild.js +47 -0
  87. package/dist/util/installOrRebuild.js.map +1 -1
  88. package/dist/util/repositoryInfo.js +6 -3
  89. package/dist/util/repositoryInfo.js.map +1 -1
  90. package/dist/version.d.ts +1 -1
  91. package/dist/version.js +1 -1
  92. package/dist/version.js.map +1 -1
  93. package/dist/winPackager.d.ts +4 -3
  94. package/dist/winPackager.d.ts.map +1 -1
  95. package/dist/winPackager.js +22 -16
  96. package/dist/winPackager.js.map +1 -1
  97. package/package.json +10 -10
  98. package/scheme.json +28 -26
  99. package/templates/nsis/common.nsh +2 -2
  100. package/templates/nsis/include/allowOnlyOneInstallerInstance.nsh +68 -4
  101. package/templates/nsis/include/extractAppPackage.nsh +1 -1
  102. package/templates/nsis/include/installUtil.nsh +2 -2
  103. package/templates/nsis/include/installer.nsh +1 -1
  104. package/templates/nsis/installer.nsi +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fileMatcher.js","sourceRoot":"","sources":["../src/fileMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAA2B,yBAAyB,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAEpJ,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAK5B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEzD,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;AAEtC,uCAAuC;AACvC,iGAAiG;AACjG,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC3D,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,aAAa;IACb,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,gBAAgB;IAChB,YAAY;IACZ,OAAO;IACP,KAAK;IACL,aAAa;IACb,WAAW;IACX,WAAW;IACX,WAAW;IACX,iBAAiB;IACjB,qBAAqB;IACrB,gBAAgB;IAChB,WAAW;IACX,mBAAmB;IACnB,eAAe;IACf,gBAAgB;IAChB,UAAU;IACV,WAAW;IACX,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,QAAQ;IACR,SAAS;IACT,sBAAsB;CACvB,CAAA;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAA0B;IAChE,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,OAAO;IACP,IAAI;IACJ,MAAM;IACN,oEAAoE;IACpE,IAAI;IACJ,GAAG;IACH,GAAG;IACH,KAAK;IACL,YAAY;CACb,CAAA;AAED,qGAAqG;AACrG,uGAAuG;AACvG,mGAAmG;AACnG,oGAAoG;AACpG,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAE/B,mGAAmG;AACnG,+FAA+F;AAC/F,kEAAkE;AAClE,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IACD,wEAAwE;IACxE,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,KAAK,EAAE,CAAA;QACT,CAAC;aAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;YAC7C,KAAK,GAAG,CAAC,CAAA;YACT,MAAK;QACP,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACrC,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,KAAK,MAAM,WAAW,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;YACxE,IAAI,MAAM,CAAC,MAAM,IAAI,oBAAoB,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,iGAAiG;AACjG,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAkB,EAAE,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,EAAE,CAAA;QACT,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,KAAK,EAAE,CAAA;QACT,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;YACjC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAA+B;IACvE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IAClC,MAAM,SAAS,GAAkB,EAAE,CAAA;IACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpB,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,2BAA2B,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACvH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAmC,EAAE,UAAmB;IAChG,MAAM,UAAU,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAA;IAE1D,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IAC7F,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAEhF,MAAM,QAAQ,GAAkB,EAAE,CAAA;IAClC,+FAA+F;IAC/F,mEAAmE;IACnE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC;SAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAClD,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAA;IACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC/B,oEAAoE;IACpE,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IAC/B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC7B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAA+B;IAC5E,MAAM,UAAU,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACtD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,OAAO,WAAW;IAUtB,YACE,IAAY,EACZ,EAAU,EACD,aAA0C,EACnD,QAAwC;QAD/B,kBAAa,GAAb,aAAa,CAA6B;QAPrD,oBAAe,GAA4B,IAAI,CAAA;QAU7C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;QACjD,IAAI,CAAC,EAAE,GAAG,gBAAgB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAA;QACtE,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;IACjF,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA;IACnC,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAA;IACjF,CAAC;IAED,qBAAqB,CAAC,MAAwB,EAAE,OAAgB;QAC9D,MAAM,YAAY,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAE/E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACvD,qCAAqC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC,CAAA;YAC1D,OAAM;QACR,CAAC;QAED,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAC5C,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;YAC9D,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAE1B,8DAA8D;YAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACvD,mEAAmE;gBACnE,WAAW;gBACX,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,OAAO,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY;QACV,MAAM,cAAc,GAAqB,EAAE,CAAA;QAC3C,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAA;QAC1C,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;IACtE,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;IACpF,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,WAAmB,EACnB,aAA0C,EAC1C,4BAA0D,EAC1D,gBAAuC,EACvC,MAAc;IAEd,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;IAEtG,IAAI,QAAQ,GAAG,gBAAgB,CAAC,kBAAkB;QAChD,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;YAC7D,aAAa;YACb,kBAAkB,EAAE,4BAA4B;YAChD,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,MAAM;SACnB,CAAC,CAAA;IACN,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,QAAQ,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC3B,2DAA2D;IAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,6HAA6H;IAC7H,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IAEjC,kGAAkG;IAClG,8FAA8F;IAC9F,MAAM,qBAAqB,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAE9C,MAAM,mBAAmB,GAAkB,EAAE,CAAA;IAC7C,oKAAoK;IACpK,IAAI,CAAC,OAAO,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAC5F,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;SAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,6BAA6B,GAAG,CAAC,CAAC,CAAA;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YACrH,6BAA6B,GAAG,CAAC,CAAA;YACjC,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,6BAA6B,KAAK,CAAC,CAAC,EAAE,CAAC;QACzC,QAAQ,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAA;IAC/E,CAAC;SAAM,CAAC;QACN,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACjD,CAAC;IAED,oEAAoE;IACpE,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IAC9E,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvF,mBAAmB,CAAC,IAAI,CAAC,IAAI,wBAAwB,UAAU,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;IACnG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,mBAAmB,CAAC,IAAI,CAAC,IAAI,cAAc,UAAU,CAAC,CAAA;IACxD,CAAC;IAED,uFAAuF;IACvF,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAA;YACnB,MAAK;QACP,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAA;IAEvD,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,qBAAqB,CAAC,CAAA;IAChF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,qGAAqG;QACrG,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,mGAAmG,CAAC,CAAA;IACzJ,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAA;IAE/G,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAA;IAChD,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1B,sDAAsD;QACtD,WAAW,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,WAAmB,EACnB,aAA0C,EAC1C,4BAA0D,EAC1D,QAAkB;IAElB,yFAAyF;IACzF,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAA;IAEnE,SAAS,WAAW,CAAC,QAA8D;QACjF,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;gBAC5B,OAAM;YACR,CAAC;YACD,qBAAqB;YACrB,OAAM;QACR,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,OAAO,CAAA;gBACvB,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACjD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClC,WAAW,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAA;IAE/C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;IACxC,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1B,sDAAsD;QACtD,WAAW,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,yBAAyB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzF,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAUD,kGAAkG;AAClG,mIAAmI;AACnI,kFAAkF;AAClF,MAAM,2BAA2B,GAA0B,CAAC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;AAE7G,MAAM,gBAAgB,GACpB,kLAAkL,CAAA;AAEpL;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,EAAoB,EAAE,kBAA0B,EAAE,YAAoB;IAC5H,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,4FAA4F;IAC5F,8EAA8E;IAC9E,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,yBAAyB,CACjC,kBAAkB,EAAE,SAAS,IAAI,6KAA6K,gBAAgB,EAAE,CACjO,CAAA;IACH,CAAC;IAED,+FAA+F;IAC/F,mFAAmF;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC5E,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACnH,MAAM,IAAI,yBAAyB,CACjC,kBAAkB,EAAE,SAAS,IAAI,kBAAkB,QAAQ,mDAAmD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,4IAA4I,gBAAgB,EAAE,CACvS,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,MAAqB,EACrB,IAAkE,EAClE,kBAA0B,EAC1B,OAA+B;IAE/B,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACrG,MAAM,YAAY,GAAuB,EAAE,CAAA;IAE3C,SAAS,WAAW,CAAC,QAA8D;QACjF,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,OAAM;QACR,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;gBACnC,OAAM;YACR,CAAC;YACD,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvB,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,0CAA0C;gBAC1C,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;gBACvG,MAAM,EAAE,GAAG,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;gBAChG,YAAY,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC9B,WAAW,CAAE,MAAc,CAAC,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,WAAW,CAAE,OAAO,CAAC,kBAA0B,CAAC,IAAI,CAAC,CAAC,CAAA;IAEtD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QAC9B,+CAA+C;QAC/C,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACtC,CAAC;IAED,oHAAoH;IACpH,MAAM,cAAc,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;IAC/G,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,cAAc,CAAC,UAAU,CAAC,IAAI,cAAc,qBAAqB,CAAC,CAAA;IACpE,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;AACxD,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,SAAS,CAAC,QAAmC,EAAE,WAAmC,EAAE,aAAuB;IACzH,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAChB,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QAC1C,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,2BAA2B,CAAC,CAAA;YAC7D,OAAM;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC3C,oEAAoE;YACpE,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC3C,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;YACxH,CAAC;YAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC1D,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACtD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,6BAA6B,CAAC,CAAA;QACrD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;IACvJ,CAAC,CAAC,CACH,CAAA;AACH,CAAC","sourcesContent":["import { asArray, copyDir, copyOrLinkFile, FileTransformer, Filter, InvalidConfigurationError, log, statOrNull, USE_HARD_LINKS } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { mkdir } from \"fs/promises\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport type { Configuration } from \"./configuration.js\"\nimport type { Packager } from \"./packager.js\"\nimport { FileSet, PlatformSpecificBuildOptions } from \"./options/PlatformSpecificBuildOptions.js\"\nimport { PlatformPackager } from \"./platformPackager.js\"\nimport { createFilter, hasMagic } from \"./util/filter.js\"\n\n// https://github.com/electron-userland/electron-builder/issues/733\nconst minimatchOptions = { dot: true }\n\n// noinspection SpellCheckingInspection\n// File/dir names excluded by default from the packaged app. A `files` entry may opt any of these\n// back in (see collectExplicitReincludes / getDefaultIgnoredPatterns).\nexport const DEFAULT_EXCLUDED_NAMES: ReadonlyArray<string> = [\n \".git\",\n \".hg\",\n \".svn\",\n \"CVS\",\n \"RCS\",\n \"SCCS\",\n \"__pycache__\",\n \".DS_Store\",\n \"thumbs.db\",\n \".gitignore\",\n \".gitkeep\",\n \".gitattributes\",\n \".npmignore\",\n \".idea\",\n \".vs\",\n \".flowconfig\",\n \".jshintrc\",\n \".eslintrc\",\n \".circleci\",\n \".yarn-integrity\",\n \".yarn-metadata.json\",\n \"yarn-error.log\",\n \"yarn.lock\",\n \"package-lock.json\",\n \"npm-debug.log\",\n \"pnpm-lock.yaml\",\n \"bun.lock\",\n \"bun.lockb\",\n \"appveyor.yml\",\n \".travis.yml\",\n \"circle.yml\",\n \".nyc_output\",\n \".husky\",\n \".github\",\n \"electron-builder.env\",\n]\n\n// File extensions (without leading dot) excluded by default from the packaged app.\nexport const DEFAULT_EXCLUDED_EXTENSIONS: ReadonlyArray<string> = [\n \"iml\",\n \"hprof\",\n \"orig\",\n \"pyc\",\n \"pyo\",\n \"rbc\",\n \"swp\",\n \"csproj\",\n \"sln\",\n \"suo\",\n \"xproj\",\n \"cc\",\n \"d.ts\",\n // https://github.com/electron-userland/electron-builder/issues/7512\n \"mk\",\n \"a\",\n \"o\",\n \"obj\",\n \"forge-meta\",\n]\n\n// Hard cap on the number of strings a single pattern may expand to. Real opt-in patterns expand to a\n// handful (`{obj,gltf,glb}`); this bound makes the expansion provably finite so a pathological pattern\n// (e.g. nested or many large `{...}` groups whose product is huge) degrades to \"treated literally\"\n// rather than hanging/OOM-ing the build. minimatch performs the authoritative expansion downstream.\nconst MAX_BRACE_EXPANSIONS = 64\n\n// Expands `{a,b,c}` brace alternations in a pattern, honoring nesting. Returns the value unchanged\n// when it has no braces or would expand beyond MAX_BRACE_EXPANSIONS. Used only to detect which\n// extensions/names a `files` entry references — not for matching.\nfunction expandBraces(value: string): Array<string> {\n const open = value.indexOf(\"{\")\n if (open === -1) {\n return [value]\n }\n // Find the `}` that closes the first `{`, accounting for nested braces.\n let depth = 0\n let close = -1\n for (let i = open; i < value.length; i++) {\n if (value[i] === \"{\") {\n depth++\n } else if (value[i] === \"}\" && --depth === 0) {\n close = i\n break\n }\n }\n if (close === -1) {\n return [value]\n }\n\n const prefix = value.slice(0, open)\n const suffix = value.slice(close + 1)\n const result: Array<string> = []\n for (const alternative of splitTopLevel(value.slice(open + 1, close))) {\n for (const expanded of expandBraces(`${prefix}${alternative}${suffix}`)) {\n if (result.length >= MAX_BRACE_EXPANSIONS) {\n return [value]\n }\n result.push(expanded)\n }\n }\n return result\n}\n\n// Splits on commas that are not inside a nested brace group, so `a,{b,c}` yields [\"a\", \"{b,c}\"].\nfunction splitTopLevel(value: string): Array<string> {\n const parts: Array<string> = []\n let depth = 0\n let start = 0\n for (let i = 0; i < value.length; i++) {\n const ch = value[i]\n if (ch === \"{\") {\n depth++\n } else if (ch === \"}\") {\n depth--\n } else if (ch === \",\" && depth === 0) {\n parts.push(value.slice(start, i))\n start = i + 1\n }\n }\n parts.push(value.slice(start))\n return parts\n}\n\n/**\n * Determines which default-excluded extensions and names a user has explicitly opted back in to via\n * their `files` patterns, so the corresponding defaults are not re-applied.\n *\n * A default is treated as opted back in only when a non-negated pattern references it concretely:\n * an extension when a pattern's basename ends with `.<ext>` (e.g. `**\\/*.obj`, `assets/*.{obj,gltf}`,\n * `**\\/*.d.ts`); a name when any path segment equals it (e.g. `**\\/.github/**`, `**\\/yarn.lock`).\n * Broad patterns such as `**\\/*` reference nothing concrete and therefore opt nothing in.\n */\nexport function collectExplicitReincludes(patterns: ReadonlyArray<string>): { extensions: Set<string>; names: Set<string> } {\n const segments = new Set<string>()\n const basenames: Array<string> = []\n for (const pattern of patterns) {\n if (pattern.startsWith(\"!\")) {\n continue\n }\n for (const expanded of expandBraces(pattern)) {\n const parts = expanded.split(\"/\")\n for (const part of parts) {\n segments.add(part)\n }\n basenames.push(parts[parts.length - 1])\n }\n }\n\n const extensions = new Set(DEFAULT_EXCLUDED_EXTENSIONS.filter(ext => basenames.some(name => name.endsWith(`.${ext}`))))\n const names = new Set(DEFAULT_EXCLUDED_NAMES.filter(name => segments.has(name)))\n return { extensions, names }\n}\n\n/**\n * Builds the trailing list of default ignore globs appended to the main app file matcher. Extensions\n * and names the user has explicitly re-included (see {@link collectExplicitReincludes}) are omitted,\n * so a `files` entry like `**\\/*.obj` overrides the matching built-in exclusion.\n */\nexport function getDefaultIgnoredPatterns(userPatterns: ReadonlyArray<string>, includePdb: boolean): Array<string> {\n const reincluded = collectExplicitReincludes(userPatterns)\n\n const extensions = DEFAULT_EXCLUDED_EXTENSIONS.filter(ext => !reincluded.extensions.has(ext))\n if (!includePdb) {\n extensions.push(\"pdb\")\n }\n const names = DEFAULT_EXCLUDED_NAMES.filter(name => !reincluded.names.has(name))\n\n const patterns: Array<string> = []\n // minimatch does not expand a single-member brace (`{x}` is matched literally), so emit a bare\n // glob when only one extension/name survives the opt-in filtering.\n if (extensions.length === 1) {\n patterns.push(`!**/*.${extensions[0]}`)\n } else if (extensions.length > 1) {\n patterns.push(`!**/*.{${extensions.join(\",\")}}`)\n }\n patterns.push(\"!**/._*\")\n patterns.push(\"!**/electron-builder.{yaml,yml,json,json5,toml,ts}\")\n if (names.length === 1) {\n patterns.push(`!**/${names[0]}`)\n } else if (names.length > 1) {\n patterns.push(`!**/{${names.join(\",\")}}`)\n }\n patterns.push(\"!.yarn{,/**/*}\")\n // https://github.com/electron-userland/electron-builder/issues/1969\n // exclude only for app root, use .yarnclean to clean node_modules\n patterns.push(\"!.editorconfig\")\n patterns.push(\"!.yarnrc.yml\")\n return patterns\n}\n\n/**\n * Returns the default-excluded names/extensions that the given `files` patterns opt back in, formatted\n * for display (extensions as `*.<ext>`, names verbatim). Empty when nothing default-excluded is\n * re-included. Used to warn that files normally kept out of the package will now be included.\n */\nexport function getReincludedDefaultExclusions(patterns: ReadonlyArray<string>): Array<string> {\n const reincluded = collectExplicitReincludes(patterns)\n return [...[...reincluded.extensions].map(ext => `*.${ext}`), ...reincluded.names]\n}\n\nfunction ensureNoEndSlash(file: string): string {\n if (path.sep !== \"/\") {\n file = file.replace(/\\//g, path.sep)\n }\n if (path.sep !== \"\\\\\") {\n file = file.replace(/\\\\/g, path.sep)\n }\n\n if (file.endsWith(path.sep)) {\n return file.substring(0, file.length - 1)\n } else {\n return file\n }\n}\n\nexport class FileMatcher {\n readonly from: string\n readonly to: string\n\n readonly patterns: Array<string>\n\n excludePatterns: Array<Minimatch> | null = null\n\n readonly isSpecifiedAsEmptyArray: boolean\n\n constructor(\n from: string,\n to: string,\n readonly macroExpander: (pattern: string) => string,\n patterns?: Array<string> | string | null\n ) {\n this.from = ensureNoEndSlash(macroExpander(from))\n this.to = ensureNoEndSlash(macroExpander(to))\n this.patterns = asArray(patterns).map(it => this.normalizePattern(it))\n this.isSpecifiedAsEmptyArray = Array.isArray(patterns) && patterns.length === 0\n }\n\n normalizePattern(pattern: string) {\n if (pattern.startsWith(\"./\")) {\n pattern = pattern.substring(\"./\".length)\n }\n return path.posix.normalize(this.macroExpander(pattern.replace(/\\\\/g, \"/\")))\n }\n\n addPattern(pattern: string) {\n this.patterns.push(this.normalizePattern(pattern))\n }\n\n prependPattern(pattern: string) {\n this.patterns.unshift(this.normalizePattern(pattern))\n }\n\n isEmpty() {\n return this.patterns.length === 0\n }\n\n containsOnlyIgnore(): boolean {\n return !this.isEmpty() && this.patterns.find(it => !it.startsWith(\"!\")) == null\n }\n\n computeParsedPatterns(result: Array<Minimatch>, fromDir?: string): void {\n const relativeFrom = fromDir == null ? null : path.relative(fromDir, this.from)\n\n if (this.patterns.length === 0 && relativeFrom != null) {\n // file mappings, from here is a file\n result.push(new Minimatch(relativeFrom, minimatchOptions))\n return\n }\n\n for (let pattern of this.patterns) {\n if (relativeFrom != null) {\n pattern = path.join(relativeFrom, pattern)\n }\n\n const parsedPattern = new Minimatch(pattern, minimatchOptions)\n result.push(parsedPattern)\n\n // do not add if contains dot (possibly file if has extension)\n if (!pattern.includes(\".\") && !hasMagic(parsedPattern)) {\n // https://github.com/electron-userland/electron-builder/issues/545\n // add **/*\n result.push(new Minimatch(`${pattern}/**/*`, minimatchOptions))\n }\n }\n }\n\n createFilter(): Filter {\n const parsedPatterns: Array<Minimatch> = []\n this.computeParsedPatterns(parsedPatterns)\n return createFilter(this.from, parsedPatterns, this.excludePatterns)\n }\n\n toString() {\n return `from: ${this.from}, to: ${this.to}, patterns: ${this.patterns.join(\", \")}`\n }\n}\n\n/** @internal */\nexport function getMainFileMatchers(\n appDir: string,\n destination: string,\n macroExpander: (pattern: string) => string,\n platformSpecificBuildOptions: PlatformSpecificBuildOptions,\n platformPackager: PlatformPackager<any>,\n outDir: string\n): Array<FileMatcher> {\n const buildResourceDir = path.resolve(platformPackager.projectDir, platformPackager.buildResourcesDir)\n\n let matchers = platformPackager.isPrepackedAppAsar\n ? null\n : getFileMatchers(platformPackager.config, \"files\", destination, {\n macroExpander,\n customBuildOptions: platformSpecificBuildOptions,\n globalOutDir: outDir,\n defaultSrc: appDir,\n })\n if (matchers == null) {\n matchers = [new FileMatcher(appDir, destination, macroExpander)]\n }\n\n const matcher = matchers[0]\n // add default patterns, but only if from equals to app dir\n if (matcher.from !== appDir) {\n return matchers\n }\n\n // https://github.com/electron-userland/electron-builder/issues/1741#issuecomment-311111418 so, do not use inclusive patterns\n const patterns = matcher.patterns\n\n // Snapshot the user-specified patterns before the default/auto patterns are injected so a `files`\n // entry can opt back in to a default-excluded extension/name (see getDefaultIgnoredPatterns).\n const userSpecifiedPatterns = patterns.slice()\n\n const customFirstPatterns: Array<string> = []\n // electron-webpack - we need to copy only package.json and node_modules from root dir (and these files are added by default), so, explicit empty array is specified\n if (!matcher.isSpecifiedAsEmptyArray && (matcher.isEmpty() || matcher.containsOnlyIgnore())) {\n customFirstPatterns.push(\"**/*\")\n } else if (!patterns.includes(\"package.json\")) {\n patterns.push(\"package.json\")\n }\n\n let insertExculdeNodeModulesIndex = -1\n for (let i = 0; i < patterns.length; i++) {\n if (!patterns[i].startsWith(\"!\") && (patterns[i].includes(\"/node_modules\") || patterns[i].includes(\"node_modules/\"))) {\n insertExculdeNodeModulesIndex = i\n break\n }\n }\n\n if (insertExculdeNodeModulesIndex !== -1) {\n patterns.splice(insertExculdeNodeModulesIndex, 0, ...[\"!**/node_modules/**\"])\n } else {\n customFirstPatterns.push(\"!**/node_modules/**\")\n }\n\n // https://github.com/electron-userland/electron-builder/issues/1482\n const relativeBuildResourceDir = path.relative(matcher.from, buildResourceDir)\n if (relativeBuildResourceDir.length !== 0 && !relativeBuildResourceDir.startsWith(\".\")) {\n customFirstPatterns.push(`!${relativeBuildResourceDir}{,/**/*}`)\n }\n\n const relativeOutDir = matcher.normalizePattern(path.relative(platformPackager.projectDir, outDir))\n if (!relativeOutDir.startsWith(\".\")) {\n customFirstPatterns.push(`!${relativeOutDir}{,/**/*}`)\n }\n\n // add our default exclusions after last user possibly defined \"all\"/permissive pattern\n let insertIndex = 0\n for (let i = patterns.length - 1; i >= 0; i--) {\n if (patterns[i].startsWith(\"**/\")) {\n insertIndex = i + 1\n break\n }\n }\n patterns.splice(insertIndex, 0, ...customFirstPatterns)\n\n const reincludedDefaults = getReincludedDefaultExclusions(userSpecifiedPatterns)\n if (reincludedDefaults.length > 0) {\n // These files are kept out of the package by default; a user `files` pattern is opting them back in.\n log.warn({ files: reincludedDefaults.join(\", \") }, \"`files` configuration re-includes files that are excluded by default — verify this is intentional\")\n }\n\n patterns.push(...getDefaultIgnoredPatterns(userSpecifiedPatterns, platformPackager.config.includePdb === true))\n\n const debugLogger = platformPackager.debugLogger\n if (debugLogger.isEnabled) {\n //tslint:disable-next-line:no-invalid-template-strings\n debugLogger.add(`${macroExpander(\"${arch}\")}.firstOrDefaultFilePatterns`, patterns)\n }\n return matchers\n}\n\n/** @internal */\nexport function getNodeModuleFileMatcher(\n appDir: string,\n destination: string,\n macroExpander: (pattern: string) => string,\n platformSpecificBuildOptions: PlatformSpecificBuildOptions,\n packager: Packager\n): FileMatcher {\n // https://github.com/electron-userland/electron-builder/pull/2948#issuecomment-392241632\n // grab only excludes\n const matcher = new FileMatcher(appDir, destination, macroExpander)\n\n function addPatterns(patterns: Array<string | FileSet> | string | Nullish | FileSet) {\n if (patterns == null) {\n return\n } else if (!Array.isArray(patterns)) {\n if (typeof patterns === \"string\" && patterns.startsWith(\"!\")) {\n matcher.addPattern(patterns)\n return\n }\n // ignore object form\n return\n }\n\n for (const pattern of patterns) {\n if (typeof pattern === \"string\") {\n if (pattern.startsWith(\"!\")) {\n matcher.addPattern(pattern)\n }\n } else {\n const fileSet = pattern\n if (fileSet.from == null || fileSet.from === \".\") {\n for (const p of asArray(fileSet.filter)) {\n matcher.addPattern(p)\n }\n }\n }\n }\n }\n\n addPatterns(packager.config.files)\n addPatterns(platformSpecificBuildOptions.files)\n\n if (!matcher.isEmpty()) {\n matcher.prependPattern(\"**/*\")\n }\n\n const debugLogger = packager.debugLogger\n if (debugLogger.isEnabled) {\n //tslint:disable-next-line:no-invalid-template-strings\n debugLogger.add(`${macroExpander(\"${arch}\")}.nodeModuleFilePatterns`, matcher.patterns)\n }\n\n return matcher\n}\n\nexport interface GetFileMatchersOptions {\n readonly macroExpander: (pattern: string) => string\n readonly customBuildOptions: PlatformSpecificBuildOptions\n readonly globalOutDir: string\n\n readonly defaultSrc: string\n}\n\n// The names whose file sets are physically copied into the build output directory, so a `to` that\n// resolves outside of it writes onto the build machine itself (https://github.com/electron-userland/electron-builder/issues/1993).\n// `files` is excluded: its `to` is only used for in-package (asar) relative math.\nconst VALIDATED_DESTINATION_NAMES: ReadonlyArray<string> = [\"extraFiles\", \"extraResources\", \"extraDistFiles\"]\n\nconst FPM_MAPPING_HINT =\n 'To install a file at an absolute path inside a deb/rpm package, use the fpm file-mapping syntax instead, e.g. \"deb\": { \"fpm\": [\"build/file.xml=/usr/share/metainfo/file.xml\"] }.'\n\n/**\n * Resolves a file set `to` to the destination a FileMatcher should copy into.\n *\n * - A missing `to` falls back to `defaultDestination`.\n * - For file sets that are physically copied into the build output directory\n * (see {@link VALIDATED_DESTINATION_NAMES}), the result is validated to stay inside it:\n * absolute `to` values (POSIX, Windows drive-letter, or UNC — files would be copied to that\n * literal path on the build machine) and relative values that escape `globalOutDir`\n * (e.g. `../../usr/share`) throw. Relative hops that stay inside the build output directory\n * (e.g. `to: \"../Frameworks\"` from `Contents/Resources` on macOS) remain valid.\n * - `files` sets are exempt from validation: their `to` only participates in in-package (asar)\n * relative math, so it is plainly resolved against `defaultDestination`.\n */\nexport function resolveFileSetDestination(name: string, to: string | Nullish, defaultDestination: string, globalOutDir: string): string {\n if (to == null) {\n return defaultDestination\n }\n\n if (!VALIDATED_DESTINATION_NAMES.includes(name)) {\n return path.resolve(defaultDestination, to)\n }\n\n // path.win32.isAbsolute also covers POSIX absolute paths, and treats drive-letter (C:\\) and\n // UNC (\\\\server\\share) paths as absolute no matter which OS the build runs on\n if (path.win32.isAbsolute(to) || path.posix.isAbsolute(to)) {\n throw new InvalidConfigurationError(\n `The \"to\" path \"${to}\" in \"${name}\" is absolute. Absolute destinations are not copied into the packaged app — they would be written to that literal path on the build machine. Use a relative path instead. ${FPM_MAPPING_HINT}`\n )\n }\n\n // FileMatcher later converts all separators to path.sep, so normalize before resolving to make\n // sure `..\\\\..` segments written with backslashes are seen as parent hops here too\n const resolved = path.resolve(defaultDestination, to.replace(/[/\\\\]/g, path.sep))\n const relativeToOutDir = path.relative(path.resolve(globalOutDir), resolved)\n if (relativeToOutDir.startsWith(`..${path.sep}`) || relativeToOutDir === \"..\" || path.isAbsolute(relativeToOutDir)) {\n throw new InvalidConfigurationError(\n `The \"to\" path \"${to}\" in \"${name}\" resolves to \"${resolved}\", which is outside the build output directory \"${path.resolve(globalOutDir)}\". The files would be copied onto the build machine instead of into the packaged app. Use a relative path that stays within the package. ${FPM_MAPPING_HINT}`\n )\n }\n return resolved\n}\n\nexport function getFileMatchers(\n config: Configuration,\n name: \"files\" | \"extraFiles\" | \"extraResources\" | \"extraDistFiles\",\n defaultDestination: string,\n options: GetFileMatchersOptions\n): Array<FileMatcher> | null {\n const defaultMatcher = new FileMatcher(options.defaultSrc, defaultDestination, options.macroExpander)\n const fileMatchers: Array<FileMatcher> = []\n\n function addPatterns(patterns: Array<string | FileSet> | string | Nullish | FileSet) {\n if (patterns == null) {\n return\n } else if (!Array.isArray(patterns)) {\n if (typeof patterns === \"string\") {\n defaultMatcher.addPattern(patterns)\n return\n }\n patterns = [patterns]\n }\n\n for (const pattern of patterns) {\n if (typeof pattern === \"string\") {\n // use normalize to transform ./foo to foo\n defaultMatcher.addPattern(pattern)\n } else {\n const from = pattern.from == null ? options.defaultSrc : path.resolve(options.defaultSrc, pattern.from)\n const to = resolveFileSetDestination(name, pattern.to, defaultDestination, options.globalOutDir)\n fileMatchers.push(new FileMatcher(from, to, options.macroExpander, pattern.filter))\n }\n }\n }\n\n if (name !== \"extraDistFiles\") {\n addPatterns((config as any)[name])\n }\n addPatterns((options.customBuildOptions as any)[name])\n\n if (!defaultMatcher.isEmpty()) {\n // default matcher should be first in the array\n fileMatchers.unshift(defaultMatcher)\n }\n\n // we cannot exclude the whole out dir, because sometimes users want to use some file in the out dir in the patterns\n const relativeOutDir = defaultMatcher.normalizePattern(path.relative(options.defaultSrc, options.globalOutDir))\n if (!relativeOutDir.startsWith(\".\")) {\n defaultMatcher.addPattern(`!${relativeOutDir}/*-unpacked{,/**/*}`)\n }\n\n return fileMatchers.length === 0 ? null : fileMatchers\n}\n\n/** @internal */\nexport function copyFiles(matchers: Array<FileMatcher> | null, transformer: FileTransformer | null, isUseHardLink?: boolean): Promise<any> {\n if (matchers == null || matchers.length === 0) {\n return Promise.resolve()\n }\n\n return Promise.all(\n matchers.map(async (matcher: FileMatcher) => {\n const fromStat = await statOrNull(matcher.from)\n if (fromStat == null) {\n log.warn({ from: matcher.from }, `file source doesn't exist`)\n return\n }\n\n if (fromStat.isFile()) {\n const toStat = await statOrNull(matcher.to)\n // https://github.com/electron-userland/electron-builder/issues/1245\n if (toStat != null && toStat.isDirectory()) {\n return await copyOrLinkFile(matcher.from, path.join(matcher.to, path.basename(matcher.from)), fromStat, isUseHardLink)\n }\n\n await mkdir(path.dirname(matcher.to), { recursive: true })\n return await copyOrLinkFile(matcher.from, matcher.to, fromStat)\n }\n\n if (matcher.isEmpty() || matcher.containsOnlyIgnore()) {\n matcher.prependPattern(\"**/*\")\n }\n log.debug({ matcher }, \"copying files using pattern\")\n return await copyDir(matcher.from, matcher.to, { filter: matcher.createFilter(), transformer, isUseHardLink: isUseHardLink ? USE_HARD_LINKS : null })\n })\n )\n}\n"]}
1
+ {"version":3,"file":"fileMatcher.js","sourceRoot":"","sources":["../src/fileMatcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { asArray, copyDir, copyOrLinkFile, FileTransformer, Filter, InvalidConfigurationError, log, statOrNull, USE_HARD_LINKS } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { mkdir } from \"fs/promises\"\nimport { Minimatch } from \"minimatch\"\nimport * as path from \"path\"\nimport type { Configuration } from \"./configuration.js\"\nimport type { Packager } from \"./packager.js\"\nimport { FileSet, PlatformSpecificBuildOptions } from \"./options/PlatformSpecificBuildOptions.js\"\nimport { PlatformPackager } from \"./platformPackager.js\"\nimport { createFilter, hasMagic } from \"./util/filter.js\"\n\n// https://github.com/electron-userland/electron-builder/issues/733\nconst minimatchOptions = { dot: true }\n\n// noinspection SpellCheckingInspection\n// File/dir names excluded by default from the packaged app. A `files` entry may opt any of these\n// back in (see collectExplicitReincludes / getDefaultIgnoredPatterns).\nexport const DEFAULT_EXCLUDED_NAMES: ReadonlyArray<string> = [\n \".git\",\n \".hg\",\n \".svn\",\n \"CVS\",\n \"RCS\",\n \"SCCS\",\n \"__pycache__\",\n \".DS_Store\",\n \"thumbs.db\",\n \".gitignore\",\n \".gitkeep\",\n \".gitattributes\",\n \".npmignore\",\n \".idea\",\n \".vs\",\n \".flowconfig\",\n \".jshintrc\",\n \".eslintrc\",\n \".circleci\",\n \".yarn-integrity\",\n \".yarn-metadata.json\",\n \"yarn-error.log\",\n \"yarn.lock\",\n \"package-lock.json\",\n \"npm-debug.log\",\n \"pnpm-lock.yaml\",\n \"bun.lock\",\n \"bun.lockb\",\n \"appveyor.yml\",\n \".travis.yml\",\n \"circle.yml\",\n \".nyc_output\",\n \".husky\",\n \".github\",\n \"electron-builder.env\",\n]\n\n// File extensions (without leading dot) excluded by default from the packaged app.\nexport const DEFAULT_EXCLUDED_EXTENSIONS: ReadonlyArray<string> = [\n \"iml\",\n \"hprof\",\n \"orig\",\n \"pyc\",\n \"pyo\",\n \"rbc\",\n \"swp\",\n \"csproj\",\n \"sln\",\n \"slnx\",\n \"suo\",\n \"xproj\",\n \"cc\",\n \"d.ts\",\n // https://github.com/electron-userland/electron-builder/issues/7512\n \"mk\",\n \"a\",\n \"o\",\n \"obj\",\n \"forge-meta\",\n]\n\n// Hard cap on the number of strings a single pattern may expand to. Real opt-in patterns expand to a\n// handful (`{obj,gltf,glb}`); this bound makes the expansion provably finite so a pathological pattern\n// (e.g. nested or many large `{...}` groups whose product is huge) degrades to \"treated literally\"\n// rather than hanging/OOM-ing the build. minimatch performs the authoritative expansion downstream.\nconst MAX_BRACE_EXPANSIONS = 64\n\n// Expands `{a,b,c}` brace alternations in a pattern, honoring nesting. Returns the value unchanged\n// when it has no braces or would expand beyond MAX_BRACE_EXPANSIONS. Used only to detect which\n// extensions/names a `files` entry references — not for matching.\nfunction expandBraces(value: string): Array<string> {\n const open = value.indexOf(\"{\")\n if (open === -1) {\n return [value]\n }\n // Find the `}` that closes the first `{`, accounting for nested braces.\n let depth = 0\n let close = -1\n for (let i = open; i < value.length; i++) {\n if (value[i] === \"{\") {\n depth++\n } else if (value[i] === \"}\" && --depth === 0) {\n close = i\n break\n }\n }\n if (close === -1) {\n return [value]\n }\n\n const prefix = value.slice(0, open)\n const suffix = value.slice(close + 1)\n const result: Array<string> = []\n for (const alternative of splitTopLevel(value.slice(open + 1, close))) {\n for (const expanded of expandBraces(`${prefix}${alternative}${suffix}`)) {\n if (result.length >= MAX_BRACE_EXPANSIONS) {\n return [value]\n }\n result.push(expanded)\n }\n }\n return result\n}\n\n// Splits on commas that are not inside a nested brace group, so `a,{b,c}` yields [\"a\", \"{b,c}\"].\nfunction splitTopLevel(value: string): Array<string> {\n const parts: Array<string> = []\n let depth = 0\n let start = 0\n for (let i = 0; i < value.length; i++) {\n const ch = value[i]\n if (ch === \"{\") {\n depth++\n } else if (ch === \"}\") {\n depth--\n } else if (ch === \",\" && depth === 0) {\n parts.push(value.slice(start, i))\n start = i + 1\n }\n }\n parts.push(value.slice(start))\n return parts\n}\n\n/**\n * Determines which default-excluded extensions and names a user has explicitly opted back in to via\n * their `files` patterns, so the corresponding defaults are not re-applied.\n *\n * A default is treated as opted back in only when a non-negated pattern references it concretely:\n * an extension when a pattern's basename ends with `.<ext>` (e.g. `**\\/*.obj`, `assets/*.{obj,gltf}`,\n * `**\\/*.d.ts`); a name when any path segment equals it (e.g. `**\\/.github/**`, `**\\/yarn.lock`).\n * Broad patterns such as `**\\/*` reference nothing concrete and therefore opt nothing in.\n */\nexport function collectExplicitReincludes(patterns: ReadonlyArray<string>): { extensions: Set<string>; names: Set<string> } {\n const segments = new Set<string>()\n const basenames: Array<string> = []\n for (const pattern of patterns) {\n if (pattern.startsWith(\"!\")) {\n continue\n }\n for (const expanded of expandBraces(pattern)) {\n const parts = expanded.split(\"/\")\n for (const part of parts) {\n segments.add(part)\n }\n basenames.push(parts[parts.length - 1])\n }\n }\n\n const extensions = new Set(DEFAULT_EXCLUDED_EXTENSIONS.filter(ext => basenames.some(name => name.endsWith(`.${ext}`))))\n const names = new Set(DEFAULT_EXCLUDED_NAMES.filter(name => segments.has(name)))\n return { extensions, names }\n}\n\n/**\n * Builds the trailing list of default ignore globs appended to the main app file matcher. Extensions\n * and names the user has explicitly re-included (see {@link collectExplicitReincludes}) are omitted,\n * so a `files` entry like `**\\/*.obj` overrides the matching built-in exclusion.\n */\nexport function getDefaultIgnoredPatterns(userPatterns: ReadonlyArray<string>, includePdb: boolean): Array<string> {\n const reincluded = collectExplicitReincludes(userPatterns)\n\n const extensions = DEFAULT_EXCLUDED_EXTENSIONS.filter(ext => !reincluded.extensions.has(ext))\n if (!includePdb) {\n extensions.push(\"pdb\")\n }\n const names = DEFAULT_EXCLUDED_NAMES.filter(name => !reincluded.names.has(name))\n\n const patterns: Array<string> = []\n // minimatch does not expand a single-member brace (`{x}` is matched literally), so emit a bare\n // glob when only one extension/name survives the opt-in filtering.\n if (extensions.length === 1) {\n patterns.push(`!**/*.${extensions[0]}`)\n } else if (extensions.length > 1) {\n patterns.push(`!**/*.{${extensions.join(\",\")}}`)\n }\n patterns.push(\"!**/._*\")\n patterns.push(\"!**/electron-builder.{yaml,yml,json,json5,toml,ts}\")\n if (names.length === 1) {\n patterns.push(`!**/${names[0]}`)\n } else if (names.length > 1) {\n patterns.push(`!**/{${names.join(\",\")}}`)\n }\n patterns.push(\"!.yarn{,/**/*}\")\n // https://github.com/electron-userland/electron-builder/issues/1969\n // exclude only for app root, use .yarnclean to clean node_modules\n patterns.push(\"!.editorconfig\")\n patterns.push(\"!.yarnrc.yml\")\n return patterns\n}\n\n/**\n * Returns the default-excluded names/extensions that the given `files` patterns opt back in, formatted\n * for display (extensions as `*.<ext>`, names verbatim). Empty when nothing default-excluded is\n * re-included. Used to warn that files normally kept out of the package will now be included.\n */\nexport function getReincludedDefaultExclusions(patterns: ReadonlyArray<string>): Array<string> {\n const reincluded = collectExplicitReincludes(patterns)\n return [...[...reincluded.extensions].map(ext => `*.${ext}`), ...reincluded.names]\n}\n\nfunction ensureNoEndSlash(file: string): string {\n if (path.sep !== \"/\") {\n file = file.replace(/\\//g, path.sep)\n }\n if (path.sep !== \"\\\\\") {\n file = file.replace(/\\\\/g, path.sep)\n }\n\n if (file.endsWith(path.sep)) {\n return file.substring(0, file.length - 1)\n } else {\n return file\n }\n}\n\nexport class FileMatcher {\n readonly from: string\n readonly to: string\n\n readonly patterns: Array<string>\n\n excludePatterns: Array<Minimatch> | null = null\n\n readonly isSpecifiedAsEmptyArray: boolean\n\n constructor(\n from: string,\n to: string,\n readonly macroExpander: (pattern: string) => string,\n patterns?: Array<string> | string | null\n ) {\n this.from = ensureNoEndSlash(macroExpander(from))\n this.to = ensureNoEndSlash(macroExpander(to))\n this.patterns = asArray(patterns).map(it => this.normalizePattern(it))\n this.isSpecifiedAsEmptyArray = Array.isArray(patterns) && patterns.length === 0\n }\n\n normalizePattern(pattern: string) {\n if (pattern.startsWith(\"./\")) {\n pattern = pattern.substring(\"./\".length)\n }\n return path.posix.normalize(this.macroExpander(pattern.replace(/\\\\/g, \"/\")))\n }\n\n addPattern(pattern: string) {\n this.patterns.push(this.normalizePattern(pattern))\n }\n\n prependPattern(pattern: string) {\n this.patterns.unshift(this.normalizePattern(pattern))\n }\n\n isEmpty() {\n return this.patterns.length === 0\n }\n\n containsOnlyIgnore(): boolean {\n return !this.isEmpty() && this.patterns.find(it => !it.startsWith(\"!\")) == null\n }\n\n computeParsedPatterns(result: Array<Minimatch>, fromDir?: string): void {\n const relativeFrom = fromDir == null ? null : path.relative(fromDir, this.from)\n\n if (this.patterns.length === 0 && relativeFrom != null) {\n // file mappings, from here is a file\n result.push(new Minimatch(relativeFrom, minimatchOptions))\n return\n }\n\n for (let pattern of this.patterns) {\n if (relativeFrom != null) {\n pattern = path.join(relativeFrom, pattern)\n }\n\n const parsedPattern = new Minimatch(pattern, minimatchOptions)\n result.push(parsedPattern)\n\n // do not add if contains dot (possibly file if has extension)\n if (!pattern.includes(\".\") && !hasMagic(parsedPattern)) {\n // https://github.com/electron-userland/electron-builder/issues/545\n // add **/*\n result.push(new Minimatch(`${pattern}/**/*`, minimatchOptions))\n }\n }\n }\n\n createFilter(): Filter {\n const parsedPatterns: Array<Minimatch> = []\n this.computeParsedPatterns(parsedPatterns)\n return createFilter(this.from, parsedPatterns, this.excludePatterns)\n }\n\n toString() {\n return `from: ${this.from}, to: ${this.to}, patterns: ${this.patterns.join(\", \")}`\n }\n}\n\n/** @internal */\nexport function getMainFileMatchers(\n appDir: string,\n destination: string,\n macroExpander: (pattern: string) => string,\n platformSpecificBuildOptions: PlatformSpecificBuildOptions,\n platformPackager: PlatformPackager<any>,\n outDir: string\n): Array<FileMatcher> {\n const buildResourceDir = path.resolve(platformPackager.projectDir, platformPackager.buildResourcesDir)\n\n let matchers = platformPackager.isPrepackedAppAsar\n ? null\n : getFileMatchers(platformPackager.config, \"files\", destination, {\n macroExpander,\n customBuildOptions: platformSpecificBuildOptions,\n globalOutDir: outDir,\n defaultSrc: appDir,\n })\n if (matchers == null) {\n matchers = [new FileMatcher(appDir, destination, macroExpander)]\n }\n\n const matcher = matchers[0]\n // add default patterns, but only if from equals to app dir\n if (matcher.from !== appDir) {\n return matchers\n }\n\n // https://github.com/electron-userland/electron-builder/issues/1741#issuecomment-311111418 so, do not use inclusive patterns\n const patterns = matcher.patterns\n\n // Snapshot the user-specified patterns before the default/auto patterns are injected so a `files`\n // entry can opt back in to a default-excluded extension/name (see getDefaultIgnoredPatterns).\n const userSpecifiedPatterns = patterns.slice()\n\n const customFirstPatterns: Array<string> = []\n // electron-webpack - we need to copy only package.json and node_modules from root dir (and these files are added by default), so, explicit empty array is specified\n if (!matcher.isSpecifiedAsEmptyArray && (matcher.isEmpty() || matcher.containsOnlyIgnore())) {\n customFirstPatterns.push(\"**/*\")\n } else if (!patterns.includes(\"package.json\")) {\n patterns.push(\"package.json\")\n }\n\n let insertExculdeNodeModulesIndex = -1\n for (let i = 0; i < patterns.length; i++) {\n if (!patterns[i].startsWith(\"!\") && (patterns[i].includes(\"/node_modules\") || patterns[i].includes(\"node_modules/\"))) {\n insertExculdeNodeModulesIndex = i\n break\n }\n }\n\n if (insertExculdeNodeModulesIndex !== -1) {\n patterns.splice(insertExculdeNodeModulesIndex, 0, ...[\"!**/node_modules/**\"])\n } else {\n customFirstPatterns.push(\"!**/node_modules/**\")\n }\n\n // https://github.com/electron-userland/electron-builder/issues/1482\n const relativeBuildResourceDir = path.relative(matcher.from, buildResourceDir)\n if (relativeBuildResourceDir.length !== 0 && !relativeBuildResourceDir.startsWith(\".\")) {\n customFirstPatterns.push(`!${relativeBuildResourceDir}{,/**/*}`)\n }\n\n const relativeOutDir = matcher.normalizePattern(path.relative(platformPackager.projectDir, outDir))\n if (!relativeOutDir.startsWith(\".\")) {\n customFirstPatterns.push(`!${relativeOutDir}{,/**/*}`)\n }\n\n // add our default exclusions after last user possibly defined \"all\"/permissive pattern\n let insertIndex = 0\n for (let i = patterns.length - 1; i >= 0; i--) {\n if (patterns[i].startsWith(\"**/\")) {\n insertIndex = i + 1\n break\n }\n }\n patterns.splice(insertIndex, 0, ...customFirstPatterns)\n\n const reincludedDefaults = getReincludedDefaultExclusions(userSpecifiedPatterns)\n if (reincludedDefaults.length > 0) {\n // These files are kept out of the package by default; a user `files` pattern is opting them back in.\n log.warn({ files: reincludedDefaults.join(\", \") }, \"`files` configuration re-includes files that are excluded by default — verify this is intentional\")\n }\n\n patterns.push(...getDefaultIgnoredPatterns(userSpecifiedPatterns, platformPackager.config.includePdb === true))\n\n const debugLogger = platformPackager.debugLogger\n if (debugLogger.isEnabled) {\n //tslint:disable-next-line:no-invalid-template-strings\n debugLogger.add(`${macroExpander(\"${arch}\")}.firstOrDefaultFilePatterns`, patterns)\n }\n return matchers\n}\n\n/** @internal */\nexport function getNodeModuleFileMatcher(\n appDir: string,\n destination: string,\n macroExpander: (pattern: string) => string,\n platformSpecificBuildOptions: PlatformSpecificBuildOptions,\n packager: Packager\n): FileMatcher {\n // https://github.com/electron-userland/electron-builder/pull/2948#issuecomment-392241632\n // grab only excludes\n const matcher = new FileMatcher(appDir, destination, macroExpander)\n\n function addPatterns(patterns: Array<string | FileSet> | string | Nullish | FileSet) {\n if (patterns == null) {\n return\n } else if (!Array.isArray(patterns)) {\n if (typeof patterns === \"string\" && patterns.startsWith(\"!\")) {\n matcher.addPattern(patterns)\n return\n }\n // ignore object form\n return\n }\n\n for (const pattern of patterns) {\n if (typeof pattern === \"string\") {\n if (pattern.startsWith(\"!\")) {\n matcher.addPattern(pattern)\n }\n } else {\n const fileSet = pattern\n if (fileSet.from == null || fileSet.from === \".\") {\n for (const p of asArray(fileSet.filter)) {\n matcher.addPattern(p)\n }\n }\n }\n }\n }\n\n addPatterns(packager.config.files)\n addPatterns(platformSpecificBuildOptions.files)\n\n if (!matcher.isEmpty()) {\n matcher.prependPattern(\"**/*\")\n }\n\n const debugLogger = packager.debugLogger\n if (debugLogger.isEnabled) {\n //tslint:disable-next-line:no-invalid-template-strings\n debugLogger.add(`${macroExpander(\"${arch}\")}.nodeModuleFilePatterns`, matcher.patterns)\n }\n\n return matcher\n}\n\nexport interface GetFileMatchersOptions {\n readonly macroExpander: (pattern: string) => string\n readonly customBuildOptions: PlatformSpecificBuildOptions\n readonly globalOutDir: string\n\n readonly defaultSrc: string\n}\n\n// The names whose file sets are physically copied into the build output directory, so a `to` that\n// resolves outside of it writes onto the build machine itself (https://github.com/electron-userland/electron-builder/issues/1993).\n// `files` is excluded: its `to` is only used for in-package (asar) relative math.\nconst VALIDATED_DESTINATION_NAMES: ReadonlyArray<string> = [\"extraFiles\", \"extraResources\", \"extraDistFiles\"]\n\nconst FPM_MAPPING_HINT =\n 'To install a file at an absolute path inside a deb/rpm package, use the fpm file-mapping syntax instead, e.g. \"deb\": { \"fpm\": [\"build/file.xml=/usr/share/metainfo/file.xml\"] }.'\n\n/**\n * Resolves a file set `to` to the destination a FileMatcher should copy into.\n *\n * - A missing `to` falls back to `defaultDestination`.\n * - For file sets that are physically copied into the build output directory\n * (see {@link VALIDATED_DESTINATION_NAMES}), the result is validated to stay inside it:\n * absolute `to` values (POSIX, Windows drive-letter, or UNC — files would be copied to that\n * literal path on the build machine) and relative values that escape `globalOutDir`\n * (e.g. `../../usr/share`) throw. Relative hops that stay inside the build output directory\n * (e.g. `to: \"../Frameworks\"` from `Contents/Resources` on macOS) remain valid.\n * - `files` sets are exempt from validation: their `to` only participates in in-package (asar)\n * relative math, so it is plainly resolved against `defaultDestination`.\n */\nexport function resolveFileSetDestination(name: string, to: string | Nullish, defaultDestination: string, globalOutDir: string): string {\n if (to == null) {\n return defaultDestination\n }\n\n if (!VALIDATED_DESTINATION_NAMES.includes(name)) {\n return path.resolve(defaultDestination, to)\n }\n\n // path.win32.isAbsolute also covers POSIX absolute paths, and treats drive-letter (C:\\) and\n // UNC (\\\\server\\share) paths as absolute no matter which OS the build runs on\n if (path.win32.isAbsolute(to) || path.posix.isAbsolute(to)) {\n throw new InvalidConfigurationError(\n `The \"to\" path \"${to}\" in \"${name}\" is absolute. Absolute destinations are not copied into the packaged app — they would be written to that literal path on the build machine. Use a relative path instead. ${FPM_MAPPING_HINT}`\n )\n }\n\n // FileMatcher later converts all separators to path.sep, so normalize before resolving to make\n // sure `..\\\\..` segments written with backslashes are seen as parent hops here too\n const resolved = path.resolve(defaultDestination, to.replace(/[/\\\\]/g, path.sep))\n const relativeToOutDir = path.relative(path.resolve(globalOutDir), resolved)\n if (relativeToOutDir.startsWith(`..${path.sep}`) || relativeToOutDir === \"..\" || path.isAbsolute(relativeToOutDir)) {\n throw new InvalidConfigurationError(\n `The \"to\" path \"${to}\" in \"${name}\" resolves to \"${resolved}\", which is outside the build output directory \"${path.resolve(globalOutDir)}\". The files would be copied onto the build machine instead of into the packaged app. Use a relative path that stays within the package. ${FPM_MAPPING_HINT}`\n )\n }\n return resolved\n}\n\nexport function getFileMatchers(\n config: Configuration,\n name: \"files\" | \"extraFiles\" | \"extraResources\" | \"extraDistFiles\",\n defaultDestination: string,\n options: GetFileMatchersOptions\n): Array<FileMatcher> | null {\n const defaultMatcher = new FileMatcher(options.defaultSrc, defaultDestination, options.macroExpander)\n const fileMatchers: Array<FileMatcher> = []\n\n function addPatterns(patterns: Array<string | FileSet> | string | Nullish | FileSet) {\n if (patterns == null) {\n return\n } else if (!Array.isArray(patterns)) {\n if (typeof patterns === \"string\") {\n defaultMatcher.addPattern(patterns)\n return\n }\n patterns = [patterns]\n }\n\n for (const pattern of patterns) {\n if (typeof pattern === \"string\") {\n // use normalize to transform ./foo to foo\n defaultMatcher.addPattern(pattern)\n } else {\n const from = pattern.from == null ? options.defaultSrc : path.resolve(options.defaultSrc, pattern.from)\n const to = resolveFileSetDestination(name, pattern.to, defaultDestination, options.globalOutDir)\n fileMatchers.push(new FileMatcher(from, to, options.macroExpander, pattern.filter))\n }\n }\n }\n\n if (name !== \"extraDistFiles\") {\n addPatterns((config as any)[name])\n }\n addPatterns((options.customBuildOptions as any)[name])\n\n if (!defaultMatcher.isEmpty()) {\n // default matcher should be first in the array\n fileMatchers.unshift(defaultMatcher)\n }\n\n // we cannot exclude the whole out dir, because sometimes users want to use some file in the out dir in the patterns\n const relativeOutDir = defaultMatcher.normalizePattern(path.relative(options.defaultSrc, options.globalOutDir))\n if (!relativeOutDir.startsWith(\".\")) {\n defaultMatcher.addPattern(`!${relativeOutDir}/*-unpacked{,/**/*}`)\n }\n\n return fileMatchers.length === 0 ? null : fileMatchers\n}\n\n/** @internal */\nexport function copyFiles(matchers: Array<FileMatcher> | null, transformer: FileTransformer | null, isUseHardLink?: boolean): Promise<any> {\n if (matchers == null || matchers.length === 0) {\n return Promise.resolve()\n }\n\n return Promise.all(\n matchers.map(async (matcher: FileMatcher) => {\n const fromStat = await statOrNull(matcher.from)\n if (fromStat == null) {\n log.warn({ from: matcher.from }, `file source doesn't exist`)\n return\n }\n\n if (fromStat.isFile()) {\n const toStat = await statOrNull(matcher.to)\n // https://github.com/electron-userland/electron-builder/issues/1245\n if (toStat != null && toStat.isDirectory()) {\n return await copyOrLinkFile(matcher.from, path.join(matcher.to, path.basename(matcher.from)), fromStat, isUseHardLink)\n }\n\n await mkdir(path.dirname(matcher.to), { recursive: true })\n return await copyOrLinkFile(matcher.from, matcher.to, fromStat)\n }\n\n if (matcher.isEmpty() || matcher.containsOnlyIgnore()) {\n matcher.prependPattern(\"**/*\")\n }\n log.debug({ matcher }, \"copying files using pattern\")\n return await copyDir(matcher.from, matcher.to, { filter: matcher.createFilter(), transformer, isUseHardLink: isUseHardLink ? USE_HARD_LINKS : null })\n })\n )\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, Porta
27
27
  export { FuseOptionsV1 } from "./options/FuseOptionsV1.js";
28
28
  export { CancellationToken, ProgressInfo } from "builder-util-runtime";
29
29
  export { PublishOptions, UploadTask } from "electron-publish";
30
+ export { combineSignResults, isSignResultSigned, SignFileResult, SigningResult } from "./codeSign/signResult.js";
30
31
  export { WindowsSignOptions } from "./codeSign/win/windowsCodeSign.js";
31
32
  export { CertificateFromStoreInfo, CustomWindowsSign, CustomWindowsSignTaskConfiguration, FileCodeSigningInfo, WindowsSignTaskConfiguration, WindowsSignToolManager, } from "./codeSign/win/windowsSignToolManager.js";
32
33
  export { HsmSignManager } from "./codeSign/win/hsmSignManager.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { AppInfo } from "./appInfo.js";
8
8
  export { DEFAULT_TARGET, DIR_TARGET, Platform, Target, } from "./core.js";
9
9
  export { Packager } from "./packager.js";
10
10
  export { CancellationToken } from "builder-util-runtime";
11
+ export { combineSignResults, isSignResultSigned } from "./codeSign/signResult.js";
11
12
  export { WindowsSignToolManager, } from "./codeSign/win/windowsSignToolManager.js";
12
13
  export { HsmSignManager } from "./codeSign/win/hsmSignManager.js";
13
14
  export { Pkcs11SignManager } from "./codeSign/win/pkcs11SignManager.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, executeFinally, log } from \"builder-util\"\nimport { asArray } from \"builder-util-runtime\"\nimport { PublishOptions } from \"electron-publish\"\nimport { Packager } from \"./packager.js\"\nimport { PackagerOptions } from \"./packagerApi.js\"\nimport { PublishManager } from \"./publish/PublishManager.js\"\nimport { resolveFunction } from \"./util/resolve.js\"\n\nexport { Arch, archFromString, getArchSuffix } from \"builder-util\"\nexport { AppInfo } from \"./appInfo.js\"\nexport {\n AfterExtractContext,\n AfterPackContext,\n BeforePackContext,\n CommonConfiguration,\n Configuration,\n Hook,\n Hooks,\n MetadataDirectories,\n PackContext,\n ToolsetConfig,\n} from \"./configuration.js\"\nexport {\n BeforeBuildContext,\n CompressionLevel,\n DEFAULT_TARGET,\n DIR_TARGET,\n Platform,\n SourceRepositoryInfo,\n Target,\n TargetConfigType,\n TargetConfiguration,\n TargetSpecificOptions,\n} from \"./core.js\"\nexport { ElectronBrandingOptions, ElectronPlatformName } from \"./electron/ElectronFramework.js\"\nexport { AppXOptions } from \"./options/AppXOptions.js\"\nexport { CommonWindowsInstallerConfiguration } from \"./options/CommonWindowsInstallerConfiguration.js\"\nexport { FileAssociation } from \"./options/FileAssociation.js\"\nexport {\n AppImageOptions,\n CommonLinuxOptions,\n DebOptions,\n FlatpakOptions,\n LinuxConfiguration,\n LinuxDesktopFile,\n LinuxTargetSpecificOptions,\n PacmanOptions,\n RpmOptions,\n} from \"./options/linuxOptions.js\"\nexport type { DmgContent, DmgOptions, DmgWindow, ElectronSignOptions, ElectronUniversalOptions, MacConfiguration, MacOsTargetName, MasConfiguration } from \"./options/macOptions.js\"\nexport { AuthorMetadata, Metadata, RepositoryInfo } from \"./options/metadata.js\"\nexport { MsiOptions } from \"./options/MsiOptions.js\"\nexport { MsiWrappedOptions } from \"./options/MsiWrappedOptions.js\"\nexport { MsixOptions, MsixWindowsService } from \"./options/MsixOptions.js\"\nexport { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from \"./options/pkgOptions.js\"\nexport { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from \"./options/PlatformSpecificBuildOptions.js\"\nexport { PlugDescriptor, SlotDescriptor, SnapcraftOptions } from \"./options/SnapOptions.js\"\nexport { SquirrelWindowsOptions } from \"./options/SquirrelWindowsOptions.js\"\nexport {\n WindowsAzureSigningConfig,\n WindowsConfiguration,\n WindowsHsmSigningConfig,\n WindowsPkcs11SigningConfig,\n WindowsSigningConfiguration,\n WindowsSigntoolFamilyConfig,\n WindowsSigntoolSigningConfig,\n} from \"./options/winOptions.js\"\nexport { BuildResult, Packager } from \"./packager.js\"\nexport { ElectronGetOptions } from \"./util/electronGet.js\"\nexport { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from \"./packagerApi.js\"\nexport { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from \"./targets/win/nsis/nsisOptions.js\"\nexport { FuseOptionsV1 } from \"./options/FuseOptionsV1.js\"\nexport { CancellationToken, ProgressInfo } from \"builder-util-runtime\"\nexport { PublishOptions, UploadTask } from \"electron-publish\"\nexport { WindowsSignOptions } from \"./codeSign/win/windowsCodeSign.js\"\nexport {\n CertificateFromStoreInfo,\n CustomWindowsSign,\n CustomWindowsSignTaskConfiguration,\n FileCodeSigningInfo,\n WindowsSignTaskConfiguration,\n WindowsSignToolManager,\n} from \"./codeSign/win/windowsSignToolManager.js\"\nexport { HsmSignManager } from \"./codeSign/win/hsmSignManager.js\"\nexport { Pkcs11SignManager } from \"./codeSign/win/pkcs11SignManager.js\"\nexport { SigntoolSignManager } from \"./codeSign/win/signtoolBaseSignManager.js\"\nexport { ToolInfo } from \"./util/bundledTool.js\"\nexport { ForgeOptions, buildForge } from \"./forge-maker.js\"\nexport { Framework, PrepareApplicationStageDirectoryOptions } from \"./Framework.js\"\nexport { LinuxPackager } from \"./linuxPackager.js\"\nexport { CustomMacSign, CustomMacSignOptions, MacPackager } from \"./macPackager.js\"\nexport { PlatformPackager } from \"./platformPackager.js\"\nexport { PublishManager } from \"./publish/PublishManager.js\"\nexport { WinPackager } from \"./winPackager.js\"\n\nconst expectedOptions = new Set([\"publish\", \"targets\", \"mac\", \"win\", \"linux\", \"projectDir\", \"platformPackagerFactory\", \"config\", \"effectiveOptionComputed\", \"prepackaged\"])\n\nexport function checkBuildRequestOptions(options: PackagerOptions & PublishOptions) {\n for (const optionName of Object.keys(options)) {\n if (!expectedOptions.has(optionName) && (options as any)[optionName] !== undefined) {\n throw new InvalidConfigurationError(`Unknown option \"${optionName}\"`)\n }\n }\n}\n\nexport function build(options: PackagerOptions & PublishOptions, packager: Packager = new Packager(options)): Promise<Array<string>> {\n checkBuildRequestOptions(options)\n\n const publishManager = new PublishManager(packager, options)\n const sigIntHandler = () => {\n log.warn(\"cancelled by SIGINT\")\n packager.cancellationToken.cancel()\n publishManager.cancelTasks()\n }\n process.once(\"SIGINT\", sigIntHandler)\n\n const promise = packager.build().then(async buildResult => {\n const afterAllArtifactBuild = await resolveFunction(\n packager.appInfo.type,\n buildResult.configuration.afterAllArtifactBuild,\n \"afterAllArtifactBuild\",\n await packager.getWorkspaceRoot()\n )\n if (afterAllArtifactBuild != null) {\n const newArtifacts = asArray(await Promise.resolve(afterAllArtifactBuild(buildResult)))\n if (newArtifacts.length === 0 || !publishManager.isPublish) {\n return buildResult.artifactPaths\n }\n\n const publishConfigurations = await publishManager.getGlobalPublishConfigurations()\n if (publishConfigurations == null || publishConfigurations.length === 0) {\n return buildResult.artifactPaths\n }\n\n for (const newArtifact of newArtifacts) {\n if (buildResult.artifactPaths.includes(newArtifact)) {\n log.warn({ newArtifact }, \"skipping publish of artifact, already published\")\n continue\n }\n buildResult.artifactPaths.push(newArtifact)\n for (const publishConfiguration of publishConfigurations) {\n await publishManager.scheduleUpload(\n publishConfiguration,\n {\n file: newArtifact,\n arch: null,\n },\n packager.appInfo\n )\n }\n }\n }\n return buildResult.artifactPaths\n })\n\n return executeFinally(promise, isErrorOccurred => {\n let promise: Promise<any>\n if (isErrorOccurred) {\n publishManager.cancelTasks()\n promise = Promise.resolve(null)\n } else {\n promise = publishManager.awaitTasks()\n }\n\n return promise.then(() => {\n packager.clearPackagerEventListeners()\n process.removeListener(\"SIGINT\", sigIntHandler)\n })\n })\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { InvalidConfigurationError, executeFinally, log } from \"builder-util\"\nimport { asArray } from \"builder-util-runtime\"\nimport { PublishOptions } from \"electron-publish\"\nimport { Packager } from \"./packager.js\"\nimport { PackagerOptions } from \"./packagerApi.js\"\nimport { PublishManager } from \"./publish/PublishManager.js\"\nimport { resolveFunction } from \"./util/resolve.js\"\n\nexport { Arch, archFromString, getArchSuffix } from \"builder-util\"\nexport { AppInfo } from \"./appInfo.js\"\nexport {\n AfterExtractContext,\n AfterPackContext,\n BeforePackContext,\n CommonConfiguration,\n Configuration,\n Hook,\n Hooks,\n MetadataDirectories,\n PackContext,\n ToolsetConfig,\n} from \"./configuration.js\"\nexport {\n BeforeBuildContext,\n CompressionLevel,\n DEFAULT_TARGET,\n DIR_TARGET,\n Platform,\n SourceRepositoryInfo,\n Target,\n TargetConfigType,\n TargetConfiguration,\n TargetSpecificOptions,\n} from \"./core.js\"\nexport { ElectronBrandingOptions, ElectronPlatformName } from \"./electron/ElectronFramework.js\"\nexport { AppXOptions } from \"./options/AppXOptions.js\"\nexport { CommonWindowsInstallerConfiguration } from \"./options/CommonWindowsInstallerConfiguration.js\"\nexport { FileAssociation } from \"./options/FileAssociation.js\"\nexport {\n AppImageOptions,\n CommonLinuxOptions,\n DebOptions,\n FlatpakOptions,\n LinuxConfiguration,\n LinuxDesktopFile,\n LinuxTargetSpecificOptions,\n PacmanOptions,\n RpmOptions,\n} from \"./options/linuxOptions.js\"\nexport type { DmgContent, DmgOptions, DmgWindow, ElectronSignOptions, ElectronUniversalOptions, MacConfiguration, MacOsTargetName, MasConfiguration } from \"./options/macOptions.js\"\nexport { AuthorMetadata, Metadata, RepositoryInfo } from \"./options/metadata.js\"\nexport { MsiOptions } from \"./options/MsiOptions.js\"\nexport { MsiWrappedOptions } from \"./options/MsiWrappedOptions.js\"\nexport { MsixOptions, MsixWindowsService } from \"./options/MsixOptions.js\"\nexport { BackgroundAlignment, BackgroundScaling, PkgBackgroundOptions, PkgOptions } from \"./options/pkgOptions.js\"\nexport { AsarOptions, FileSet, FilesBuildOptions, PlatformSpecificBuildOptions, Protocol, ReleaseInfo } from \"./options/PlatformSpecificBuildOptions.js\"\nexport { PlugDescriptor, SlotDescriptor, SnapcraftOptions } from \"./options/SnapOptions.js\"\nexport { SquirrelWindowsOptions } from \"./options/SquirrelWindowsOptions.js\"\nexport {\n WindowsAzureSigningConfig,\n WindowsConfiguration,\n WindowsHsmSigningConfig,\n WindowsPkcs11SigningConfig,\n WindowsSigningConfiguration,\n WindowsSigntoolFamilyConfig,\n WindowsSigntoolSigningConfig,\n} from \"./options/winOptions.js\"\nexport { BuildResult, Packager } from \"./packager.js\"\nexport { ElectronGetOptions } from \"./util/electronGet.js\"\nexport { ArtifactBuildStarted, ArtifactCreated, PackagerOptions } from \"./packagerApi.js\"\nexport { CommonNsisOptions, CustomNsisBinary, NsisOptions, NsisWebOptions, PortableOptions } from \"./targets/win/nsis/nsisOptions.js\"\nexport { FuseOptionsV1 } from \"./options/FuseOptionsV1.js\"\nexport { CancellationToken, ProgressInfo } from \"builder-util-runtime\"\nexport { PublishOptions, UploadTask } from \"electron-publish\"\nexport { combineSignResults, isSignResultSigned, SignFileResult, SigningResult } from \"./codeSign/signResult.js\"\nexport { WindowsSignOptions } from \"./codeSign/win/windowsCodeSign.js\"\nexport {\n CertificateFromStoreInfo,\n CustomWindowsSign,\n CustomWindowsSignTaskConfiguration,\n FileCodeSigningInfo,\n WindowsSignTaskConfiguration,\n WindowsSignToolManager,\n} from \"./codeSign/win/windowsSignToolManager.js\"\nexport { HsmSignManager } from \"./codeSign/win/hsmSignManager.js\"\nexport { Pkcs11SignManager } from \"./codeSign/win/pkcs11SignManager.js\"\nexport { SigntoolSignManager } from \"./codeSign/win/signtoolBaseSignManager.js\"\nexport { ToolInfo } from \"./util/bundledTool.js\"\nexport { ForgeOptions, buildForge } from \"./forge-maker.js\"\nexport { Framework, PrepareApplicationStageDirectoryOptions } from \"./Framework.js\"\nexport { LinuxPackager } from \"./linuxPackager.js\"\nexport { CustomMacSign, CustomMacSignOptions, MacPackager } from \"./macPackager.js\"\nexport { PlatformPackager } from \"./platformPackager.js\"\nexport { PublishManager } from \"./publish/PublishManager.js\"\nexport { WinPackager } from \"./winPackager.js\"\n\nconst expectedOptions = new Set([\"publish\", \"targets\", \"mac\", \"win\", \"linux\", \"projectDir\", \"platformPackagerFactory\", \"config\", \"effectiveOptionComputed\", \"prepackaged\"])\n\nexport function checkBuildRequestOptions(options: PackagerOptions & PublishOptions) {\n for (const optionName of Object.keys(options)) {\n if (!expectedOptions.has(optionName) && (options as any)[optionName] !== undefined) {\n throw new InvalidConfigurationError(`Unknown option \"${optionName}\"`)\n }\n }\n}\n\nexport function build(options: PackagerOptions & PublishOptions, packager: Packager = new Packager(options)): Promise<Array<string>> {\n checkBuildRequestOptions(options)\n\n const publishManager = new PublishManager(packager, options)\n const sigIntHandler = () => {\n log.warn(\"cancelled by SIGINT\")\n packager.cancellationToken.cancel()\n publishManager.cancelTasks()\n }\n process.once(\"SIGINT\", sigIntHandler)\n\n const promise = packager.build().then(async buildResult => {\n const afterAllArtifactBuild = await resolveFunction(\n packager.appInfo.type,\n buildResult.configuration.afterAllArtifactBuild,\n \"afterAllArtifactBuild\",\n await packager.getWorkspaceRoot()\n )\n if (afterAllArtifactBuild != null) {\n const newArtifacts = asArray(await Promise.resolve(afterAllArtifactBuild(buildResult)))\n if (newArtifacts.length === 0 || !publishManager.isPublish) {\n return buildResult.artifactPaths\n }\n\n const publishConfigurations = await publishManager.getGlobalPublishConfigurations()\n if (publishConfigurations == null || publishConfigurations.length === 0) {\n return buildResult.artifactPaths\n }\n\n for (const newArtifact of newArtifacts) {\n if (buildResult.artifactPaths.includes(newArtifact)) {\n log.warn({ newArtifact }, \"skipping publish of artifact, already published\")\n continue\n }\n buildResult.artifactPaths.push(newArtifact)\n for (const publishConfiguration of publishConfigurations) {\n await publishManager.scheduleUpload(\n publishConfiguration,\n {\n file: newArtifact,\n arch: null,\n },\n packager.appInfo\n )\n }\n }\n }\n return buildResult.artifactPaths\n })\n\n return executeFinally(promise, isErrorOccurred => {\n let promise: Promise<any>\n if (isErrorOccurred) {\n publishManager.cancelTasks()\n promise = Promise.resolve(null)\n } else {\n promise = publishManager.awaitTasks()\n }\n\n return promise.then(() => {\n packager.clearPackagerEventListeners()\n process.removeListener(\"SIGINT\", sigIntHandler)\n })\n })\n}\n"]}
@@ -3,17 +3,18 @@ import { Arch, AsyncTaskManager } from "builder-util";
3
3
  import { MemoLazy, Nullish } from "builder-util-runtime";
4
4
  import { AppInfo } from "./appInfo.js";
5
5
  import { CodeSigningInfo, CreateKeychainOptions, Identity } from "./codeSign/mac/macCodeSign.js";
6
+ import { SigningResult } from "./codeSign/signResult.js";
6
7
  import { Target } from "./core.js";
7
8
  import { AfterPackContext, ElectronPlatformName } from "./index.js";
8
- import { MacTargetHelper, PlatformType } from "./targets/mac/MacTargetHelper.js";
9
+ import { MacTargetHelper, MasPlatformType, PlatformType } from "./targets/mac/MacTargetHelper.js";
9
10
  import { MacConfiguration, MasConfiguration } from "./options/macOptions.js";
10
11
  import { Packager } from "./packager.js";
11
12
  import { DoPackOptions, PlatformPackager } from "./platformPackager.js";
12
13
  export type CustomMacSignOptions = SignOptions;
13
14
  export type CustomMacSign = (configuration: CustomMacSignOptions, packager: MacPackager) => Promise<void>;
14
- interface PlatformConfig {
15
+ interface PlatformConfig<C extends MacConfiguration | MasConfiguration = MacConfiguration | MasConfiguration> {
15
16
  type: PlatformType;
16
- config: MacConfiguration | MasConfiguration;
17
+ config: C;
17
18
  platformName: ElectronPlatformName;
18
19
  }
19
20
  export declare class MacPackager extends PlatformPackager<MacConfiguration | MasConfiguration> {
@@ -23,8 +24,10 @@ export declare class MacPackager extends PlatformPackager<MacConfiguration | Mas
23
24
  constructor(info: Packager);
24
25
  get defaultTarget(): Array<string>;
25
26
  /**
26
- * Get the merged configuration for a specific platform type
27
+ * Get the merged configuration for a specific platform type. Calls statically known to be a MAS
28
+ * flavor (`mas` / `mas-dev`) get a `MasConfiguration` back, so no cast is needed downstream.
27
29
  */
30
+ getPlatformConfig(platformType: MasPlatformType): PlatformConfig<MasConfiguration>;
28
31
  getPlatformConfig(platformType: PlatformType): PlatformConfig;
29
32
  expandArch(pattern: string, arch?: Arch | null): string[];
30
33
  protected prepareAppInfo(appInfo: AppInfo): AppInfo;
@@ -43,17 +46,22 @@ export declare class MacPackager extends PlatformPackager<MacConfiguration | Mas
43
46
  pack(outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager): Promise<void>;
44
47
  private packMasTargets;
45
48
  private packMacTargets;
46
- private signMas;
47
49
  /**
48
- * Main signing method with platform awareness
50
+ * Creates the signed MAS installer .pkg for an already codesigned app. Kept separate from `sign()`
51
+ * so that the `afterSign` hook can run between codesigning and installer creation (see `packMasTargets`).
49
52
  */
50
- private sign;
53
+ protected createMasInstaller(appPath: string, outDir: string, arch: Arch, targetPlatform: MasPlatformType): Promise<void>;
54
+ /**
55
+ * Main signing method with platform awareness. Protected so tests can stub signing
56
+ * (`isSignAllowed()` short-circuits it on non-mac hosts). Failures are thrown, never returned.
57
+ */
58
+ protected sign(appPath: string, arch: Arch, targetPlatform: PlatformType): Promise<SigningResult>;
51
59
  protected doSign(opts: SignOptions, signConfig: MacConfiguration["sign"], identity: Identity | null): Promise<void>;
52
60
  doFlat(appPath: string, outFile: string, identity: Identity, keychain: string | Nullish): Promise<any>;
53
61
  getElectronSrcDir(dist: string): string;
54
62
  getElectronDestinationDir(appOutDir: string): string;
55
63
  applyCommonInfo(appPlist: any, contentsPath: string, cascadedOptions: MacConfiguration | MasConfiguration): Promise<void>;
56
- protected signApp(packContext: AfterPackContext, isAsar: boolean, platformType?: PlatformType): Promise<boolean>;
64
+ protected signApp(packContext: AfterPackContext, isAsar: boolean, platformType?: PlatformType): Promise<SigningResult>;
57
65
  }
58
66
  export {};
59
67
  //# sourceMappingURL=macPackager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"macPackager.d.ts","sourceRoot":"","sources":["../src/macPackager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"macPackager.d.ts","sourceRoot":"","sources":["../src/macPackager.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import * as path from "path";
9
9
  import { AppInfo } from "./appInfo.js";
10
10
  import { assertSafeHelperName } from "./electron/mac/electronMacUtils.js";
11
11
  import { createKeychain, isSignAllowed, removeKeychain, sign } from "./codeSign/mac/macCodeSign.js";
12
+ import { combineSignResults, isSignResultSigned } from "./codeSign/signResult.js";
12
13
  import { DIR_TARGET, Platform } from "./core.js";
13
14
  import { MacTargetHelper } from "./targets/mac/MacTargetHelper.js";
14
15
  import { chooseNotNull, PlatformPackager } from "./platformPackager.js";
@@ -58,9 +59,6 @@ export class MacPackager extends PlatformPackager {
58
59
  get defaultTarget() {
59
60
  return this.info.framework.macOsDefaultTargets;
60
61
  }
61
- /**
62
- * Get the merged configuration for a specific platform type
63
- */
64
62
  getPlatformConfig(platformType) {
65
63
  let config;
66
64
  let platformName;
@@ -219,7 +217,7 @@ export class MacPackager extends PlatformPackager {
219
217
  }
220
218
  await this.doAddElectronFuses(packContext);
221
219
  // Mirror the base-class guard: skip signing when the caller explicitly set sign:false
222
- // (e.g. packMasTargets passes sign:false so that signMas() is the sole signing step).
220
+ // (e.g. packMasTargets passes sign:false so that its own sign() call is the sole signing step).
223
221
  if (config.options?.sign ?? true) {
224
222
  await this.doSignAfterPack(outDir, appOutDir, platformName, platformType, arch, platformSpecificBuildOptions, targets);
225
223
  }
@@ -290,7 +288,32 @@ export class MacPackager extends PlatformPackager {
290
288
  });
291
289
  MacTargetHelper.assertSafePathForCommandUsage(this.appInfo.productFilename, "product filename");
292
290
  }
293
- await this.signMas(appPath, targetOutDir, arch, platformType);
291
+ const signResult = await this.sign(appPath, arch, platformType);
292
+ const signed = isSignResultSigned(signResult);
293
+ // The MAS flow packs with sign:false and signs here, bypassing doSignAfterPack — the only other
294
+ // emitAfterSign site. Mirror its contract: fire afterSign after codesigning succeeded, but before
295
+ // the .pkg installer is built, and warn when signing was skipped (#9997).
296
+ const packContext = {
297
+ appOutDir: path.dirname(appPath),
298
+ outDir: resolvedOutDir,
299
+ arch,
300
+ targets: [target],
301
+ packager: this,
302
+ electronPlatformName: platformConfig.platformName,
303
+ };
304
+ if (signed) {
305
+ await this.info.emitAfterSign(packContext);
306
+ }
307
+ else if (this.info.filterPackagerEventListeners("afterSign", "user").length) {
308
+ log.warn(null, `skipping "afterSign" hook as no signing occurred, perhaps you intended "afterPack"?`);
309
+ }
310
+ // A development-signed build (mas-dev, or an explicit sign.type "development" — see
311
+ // MacTargetHelper.shouldCreateMasInstaller) produces no installer
312
+ const masSignConfig = platformConfig.config.sign;
313
+ const masSignOpts = isElectronSignOptions(masSignConfig) ? masSignConfig : undefined;
314
+ if (signed && MacTargetHelper.shouldCreateMasInstaller(platformType, masSignOpts?.type)) {
315
+ await this.createMasInstaller(appPath, targetOutDir, arch, platformType);
316
+ }
294
317
  }
295
318
  }
296
319
  async packMacTargets(outDir, arch, targets, prepackaged, taskManager) {
@@ -309,16 +332,25 @@ export class MacPackager extends PlatformPackager {
309
332
  }
310
333
  this.packageInDistributableFormat(appPath, arch, targets, taskManager);
311
334
  }
312
- async signMas(appPath, outDir, arch, targetPlatform) {
313
- const signed = await this.sign(appPath, outDir, arch, targetPlatform);
314
- return signed;
335
+ /**
336
+ * Creates the signed MAS installer .pkg for an already codesigned app. Kept separate from `sign()`
337
+ * so that the `afterSign` hook can run between codesigning and installer creation (see `packMasTargets`).
338
+ */
339
+ async createMasInstaller(appPath, outDir, arch, targetPlatform) {
340
+ const config = this.getPlatformConfig(targetPlatform).config;
341
+ const signConfig = config.sign;
342
+ const signOpts = isElectronSignOptions(signConfig) ? signConfig : undefined;
343
+ const keychainFile = (await this.codeSigningInfo.value).keychainFile;
344
+ await this.helper.createMasInstaller(appPath, outDir, config, keychainFile, targetPlatform, arch, signOpts?.identity);
315
345
  }
316
346
  /**
317
- * Main signing method with platform awareness
347
+ * Main signing method with platform awareness. Protected so tests can stub signing
348
+ * (`isSignAllowed()` short-circuits it on non-mac hosts). Failures are thrown, never returned.
318
349
  */
319
- async sign(appPath, outDir, arch, targetPlatform) {
350
+ async sign(appPath, arch, targetPlatform) {
320
351
  if (!isSignAllowed()) {
321
- return false;
352
+ // non-mac host, or the pull-request CI guard — signing cannot happen in this environment
353
+ return "skipped:unsupported";
322
354
  }
323
355
  // getPlatformConfig cascades mac → mas → masDev, so `sign` (and `sign.identity`) is already merged for this flavor.
324
356
  const config = this.getPlatformConfig(targetPlatform).config.sign;
@@ -338,22 +370,18 @@ export class MacPackager extends PlatformPackager {
338
370
  const isMas = MacTargetHelper.isMasTarget(targetPlatform);
339
371
  const identity = await this.helper.findSigningIdentity(targetPlatform, qualifier, keychainFile, hasCustomSign, signOpts);
340
372
  if (!identity) {
341
- return false;
373
+ return "skipped:no-certificate";
342
374
  }
343
375
  if (!isMacOsHighSierra()) {
344
376
  throw new InvalidConfigurationError("macOS High Sierra 10.13.6 is required to sign");
345
377
  }
346
378
  const signOptions = await this.helper.buildSignOptions(appPath, identity, signOpts, keychainFile, arch, targetPlatform);
347
379
  await this.doSign(signOptions, config, identity);
348
- // Handle MAS installer creation (skipped for development-signed builds)
349
- if (outDir && MacTargetHelper.shouldCreateMasInstaller(targetPlatform, signOpts?.type)) {
350
- await this.helper.createMasInstaller(appPath, outDir, this.getPlatformConfig(targetPlatform).config, keychainFile, targetPlatform, arch, qualifier);
351
- }
352
380
  // Handle notarization for non-MAS builds
353
381
  if (!isMas) {
354
382
  await this.helper.notarizeIfProvided(appPath);
355
383
  }
356
- return true;
384
+ return hasCustomSign ? "signed:custom" : "signed";
357
385
  }
358
386
  //noinspection JSMethodCanBeStatic
359
387
  async doSign(opts, signConfig, identity) {
@@ -455,27 +483,27 @@ export class MacPackager extends PlatformPackager {
455
483
  const readDirectoryAndSign = async (sourceDirectory, directories, shouldSign) => {
456
484
  const normalizedSourceDirectory = path.resolve(sourceDirectory);
457
485
  MacTargetHelper.assertSafePathForCommandUsage(normalizedSourceDirectory, "application output directory");
458
- await Promise.all(directories.map(async (file) => {
459
- if (shouldSign(file)) {
460
- const entryName = path.basename(file);
461
- if (file !== entryName) {
462
- throw new InvalidConfigurationError(`Invalid entry name in source directory: ${file}`);
463
- }
464
- const signTarget = path.resolve(normalizedSourceDirectory, entryName);
465
- const safeSignTarget = sanitizeDirPath(signTarget, normalizedSourceDirectory);
466
- await this.sign(safeSignTarget, null, packContext.arch, targetPlatform);
486
+ return await Promise.all(directories
487
+ .filter(file => shouldSign(file))
488
+ .map(async (file) => {
489
+ const entryName = path.basename(file);
490
+ if (file !== entryName) {
491
+ throw new InvalidConfigurationError(`Invalid entry name in source directory: ${file}`);
467
492
  }
493
+ const signTarget = path.resolve(normalizedSourceDirectory, entryName);
494
+ const safeSignTarget = sanitizeDirPath(signTarget, normalizedSourceDirectory);
495
+ return await this.sign(safeSignTarget, packContext.arch, targetPlatform);
468
496
  }));
469
- return true;
470
497
  };
471
498
  const appFileName = `${this.appInfo.productFilename}.app`;
472
- await readDirectoryAndSign(packContext.appOutDir, await readdir(packContext.appOutDir), file => file === appFileName);
499
+ // the combined result gates the `afterSign` hook — a signed result wins (see PlatformPackager.doSignAfterPack)
500
+ const results = await readDirectoryAndSign(packContext.appOutDir, await readdir(packContext.appOutDir), file => file === appFileName);
473
501
  if (!isAsar) {
474
- return true;
502
+ return combineSignResults(results);
475
503
  }
476
504
  const outResourcesDir = path.join(packContext.appOutDir, "resources", "app.asar.unpacked");
477
- await readDirectoryAndSign(outResourcesDir, await orIfFileNotExist(readdir(outResourcesDir), []), file => file.endsWith(".app"));
478
- return true;
505
+ results.push(...(await readDirectoryAndSign(outResourcesDir, await orIfFileNotExist(readdir(outResourcesDir), []), file => file.endsWith(".app"))));
506
+ return combineSignResults(results);
479
507
  }
480
508
  }
481
509
  //# sourceMappingURL=macPackager.js.map