@silexlabs/silex 3.0.0-alpha.69 → 3.0.0-alpha.71

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 (30) hide show
  1. package/dist/client/js/main.js +9 -10
  2. package/dist/plugins/client/client/assetUrl.js +10 -10
  3. package/dist/plugins/client/client/assetUrl.js.map +1 -1
  4. package/dist/plugins/client/client/config.js.map +1 -1
  5. package/dist/plugins/client/client/grapesjs/PublicationManager.js +17 -0
  6. package/dist/plugins/client/client/grapesjs/PublicationManager.js.map +1 -1
  7. package/dist/plugins/client/client/grapesjs/PublicationUi.js +13 -9
  8. package/dist/plugins/client/client/grapesjs/PublicationUi.js.map +1 -1
  9. package/dist/plugins/client/plugins/client/template.js.map +1 -1
  10. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  11. package/dist/plugins/server/plugins/server/DownloadConnector.js +129 -0
  12. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  13. package/dist/plugins/server/plugins/server/GitlabConnector.js +60 -3
  14. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
  15. package/dist/plugins/server/server/api/publicationApi.d.ts +23 -0
  16. package/dist/plugins/server/server/api/publicationApi.js +148 -0
  17. package/dist/plugins/server/server/api/publicationApi.js.map +1 -0
  18. package/dist/plugins/server/server/connectors/connectors.d.ts +3 -3
  19. package/dist/plugins/server/server/events.js +16 -0
  20. package/dist/plugins/server/server/events.js.map +1 -1
  21. package/package.json +3 -1
  22. package/src/ts/client/assetUrl.ts +10 -10
  23. package/src/ts/client/config.ts +0 -1
  24. package/src/ts/client/grapesjs/PublicationManager.ts +17 -0
  25. package/src/ts/client/grapesjs/PublicationUi.ts +13 -9
  26. package/src/ts/plugins/client/template.ts +1 -1
  27. package/src/ts/plugins/server/DownloadConnector.ts +150 -0
  28. package/src/ts/plugins/server/GitlabConnector.ts +61 -3
  29. package/src/ts/server/connectors/connectors.ts +4 -4
  30. package/src/ts/server/events.ts +18 -0
@@ -1 +1 @@
1
- {"version":3,"file":"GitlabConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/GitlabConnector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAA+G;AAE/G,mEAA6K;AAC7K,uCAAiI;AACjI,4DAA8B;AAC9B,iDAA2C;AAoF3C,KAAK,UAAU,IAAI,CAAC,EAAU;IAC5B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,MAAqB,eAAe;IAUd;IATpB,WAAW,GAAG,QAAQ,CAAA;IACtB,aAAa,GAAG,qBAAa,CAAC,OAAO,CAAA;IACrC,WAAW,GAAG,QAAQ,CAAA;IACtB,IAAI,GAAG,gHAAgH,CAAA;IACvH,aAAa,GAAG,KAAK,CAAA;IACrB,KAAK,GAAG,SAAS,CAAA;IACjB,UAAU,GAAG,SAAS,CAAA;IACtB,OAAO,CAAe;IAEtB,YAAoB,MAAoB,EAAE,IAA4B;QAAlD,WAAM,GAAN,MAAM,CAAc;QACtC,IAAI,CAAC,OAAO,GAAG;YACb,MAAM,EAAE,MAAM;YACd,YAAY,EAAE,QAAQ;YACtB,yBAAyB;YACzB,gCAAgC;YAChC,UAAU,EAAE,QAAQ;YACpB,KAAK,EAAE,KAAK;YACZ,GAAG,IAAI;SACS,CAAA;QAClB,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QACtE,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAChF,CAAC;IAED,KAAK;IACL,yCAAyC;IACjC,YAAY,CAAC,IAAY;QAC/B,OAAO,kBAAkB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,CAAA;IAClE,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAsB,EAAE,SAAoB,EAAE,IAAY,EAAE,OAAe,EAAE,QAAQ,GAAG,KAAK;QACpH,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,qBAAqB,QAAQ,EAAE,EAAE,MAAM,EAAE;YAChG,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO;YACP,cAAc,EAAE,eAAe,IAAI,aAAa;YAChD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC1C,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAsB,EAAE,SAAoB,EAAE,IAAY,EAAE,OAAe,EAAE,QAAQ,GAAG,KAAK;QACpH,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,qBAAqB,QAAQ,EAAE,EAAE,KAAK,EAAE;YAC/F,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO,EAAE,MAAM,IAAA,4BAAe,EAAC,OAAO,CAAC;YACvC,cAAc,EAAE,wBAAwB,IAAI,aAAa;YACzD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC1C,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,2DAA2D;IAC3D,wGAAwG;IACxG,oFAAoF;IACpF,GAAG;IAEH,KAAK;IACL,4CAA4C;IAC5C,KAAK;IACL,oEAAoE;IACpE,2BAA2B;IAC3B,SAAS;IACT,+EAA+E;IAC/E,oCAAoC;IACpC,eAAe;IACf,gHAAgH;IAChH,oBAAoB;IACpB,gCAAgC;IAChC,iBAAiB;IACjB,gFAAgF;IAChF,aAAa;IACb,KAAK;IACL,GAAG;IAEH;;OAEG;IACK,KAAK,CAAC,OAAO,CAAC,OAAsB,EAAE,IAAY,EAAE,SAA4C,KAAK,EAAE,OAAyF,IAAI,EAAE,SAAc,EAAE;QAC5N,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,CAAA;QACpC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACrE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAE,CAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvH,MAAM,GAAG,GAAG,sBAAsB,IAAI,IAAI,UAAU,GAAG,SAAS,EAAE,CAAA;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;YAChC,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAC,CAAA;QACF,IAAI,IAA8C,CAAA;QAClD,sFAAsF;QACtF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI;YACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACxB;QAAC,OAAO,CAAC,EAAE;YACV,IAAG,CAAC,QAAQ,CAAC,EAAE,EAAE;gBACf,eAAe;gBACf,MAAM,CAAC,CAAA;aACR;iBAAM;gBACL,iEAAiE;gBACjE,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAA;gBACzI,OAAO,IAAI,CAAA;aACZ;SACF;QACD,IAAG,CAAC,QAAQ,CAAC,EAAE,EAAE;YACf,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACpE,oBAAoB;gBACpB,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,CAAA;gBACpC,MAAM,IAAI,GAAG;oBACX,UAAU,EAAE,eAAe;oBAC3B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAChC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;iBACzC,CAAA;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,gCAAgC,EAAE;oBAC7D,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;qBACnC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC3B,CAAC,CAAA;gBACF,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBACzC,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG;wBACrB,GAAG,KAAK;wBACR,GAAG,WAAW;qBACf,CAAA;oBACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAW,EAAE,MAAM,CAAC,CAAA;iBACtE;qBAAM;oBACL,MAAM,OAAO,GAAG,OAAO,WAAW,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAA;oBAC1M,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC,CAAC,CAAA;oBAChH,MAAM,IAAI,gBAAQ,CAAC,yBAAyB,OAAO,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;iBACxE;aACF;iBAAM;gBACL,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAA;gBAC9K,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAC,OAAO,EAAC,CAAC,CAAA;gBACtF,MAAM,IAAI,gBAAQ,CAAC,yBAAyB,OAAO,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;aACxE;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,oBAAoB;QAC1B,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC7C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,QAAQ;QAC1C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;QAC7D,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACzC,qDAAqD;QACrD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC/E,OAAO,SAAS,CAAA;IAClB,CAAC;IAGO,WAAW;QACjB,MAAM,MAAM,GAAG,eAAe,IAAI,CAAC,WAAW,SAAS,IAAI,CAAC,aAAa,EAAE,CAAA;QAC3E,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,oBAAQ,GAAG,8BAAkB,GAAG,wCAA4B,IAAI,MAAM,EAAE,CAAA;IACtG,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,OAAsB;QACtC,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;QAE3D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QACvG,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAEhD,4BAA4B;QAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAA;QAEpE,4DAA4D;QAC5D,OAAO,CAAC,MAAM,GAAG;YACf,GAAG,OAAO,CAAC,MAAM;YACjB,KAAK;YACL,YAAY;YACZ,aAAa;SACd,CAAA;QACD,OAAO,gDAAgD,IAAI,CAAC,OAAO,CAAC,QAAQ,iBAAiB,YAAY,6BAA6B,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,aAAa,6BAA6B,CAAA;IACrP,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,OAAO,EAAE,CAAA,CAAC,sBAAsB;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAsB,EAAE,UAAkB;QAC3D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAsB,EAAE,UAAkB;QAC9D,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAA;IACjC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB,EAAE,WAAgB;QACrD,IAAG,CAAC,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,EAAE,KAAK;YAAE,MAAM,IAAI,gBAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAA;QAC9G,IAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY;YAAE,MAAM,IAAI,gBAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;QAClF,IAAG,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa;YAAE,MAAM,IAAI,gBAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAA;QAEpF,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,gCAAgC,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAChC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY;gBACxC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,UAAU,EAAE,oBAAoB;gBAChC,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;gBAChC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY;aAC3C,CAAC;SACH,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAEnC,iCAAiC;QACjC,OAAO,CAAC,MAAM,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAA;QAE/I,8CAA8C;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAQ,CAAA;QAC9D,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;QAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,OAAO,OAAO,CAAC,MAAM,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAQ,CAAA;QAC9D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,OAAO,EAAE,MAAM,IAAA,4BAAe,EAAC,OAAO,EAAE,IAAwB,CAAC;SAClE,CAAA;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAsB;QACvC,OAAO;QACP,+JAA+J;QAC/J,+BAA+B;QAC/B,MAAM;QACN,8BAA8B;QAC9B,0EAA0E;QAC1E,iFAAiF;QACjF,yFAAyF;QACzF,gBAAgB;QAChB,qCAAqC;QACrC,qCAAqC;QACrC,cAAc;QACd,OAAO;QACP,eAAe;QACf,oFAAoF;QACpF,2DAA2D;QAC3D,qCAAqC;QACrC,eAAe;QACf,YAAY;QACZ,aAAa;QACb,KAAK;QACL,GAAG;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,WAAW,CAAU,CAAA;QACxG,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;aACvD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACT,SAAS,EAAE,CAAC,CAAC,EAAE;YACf,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACjD,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,SAAS,EAAE,CAAC,CAAC,gBAAgB;YAC7B,qBAAqB,EAAE,EAAE;SAC1B,CAAC,CAAC,CAAA;IACP,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAsB,EAAE,SAAiB;QACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,qBAAqB,6BAAiB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YAC5H,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;SACzB,CAAQ,CAAA;QACT,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QAC1B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAgB,CAAA;QAC7D,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAsB,EAAE,WAAmC;QAC7E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE;YACtE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI;SACjD,CAAQ,CAAA;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,6BAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,EAAiB,CAAC,CAAC,CAAA;QAChG,iGAAiG;QACjG,kEAAkE;QAClE,6DAA6D;QAC7D,OAAO,OAAO,CAAC,EAAE,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAsB,EAAE,SAAoB,EAAE,WAAwB;QACxF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,qBAAqB,6BAAiB,EAAE,EAAE,KAAK,EAAE;YACvH,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,cAAc,EAAE,gCAAgC;YAChD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YACpC,SAAS,EAAE,6BAAiB;YAC5B,EAAE,EAAE,SAAS;SACd,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAsB,EAAE,SAAoB;QAC9D,cAAc;QACd,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAA;QACrE,4BAA4B;QAC5B,2JAA2J;QAC3J,6BAA6B;QAC7B,IAAI;QACJ,0GAA0G;QAC1G,2CAA2C;QAC3C,qEAAqE;QACrE,2CAA2C;QAC3C,qCAAqC;QACrC,4BAA4B;QAC5B,wJAAwJ;QACxJ,gCAAgC;QAChC,sFAAsF;QACtF,sCAAsC;QACtC,yCAAyC;QACzC,IAAI;IACN,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAsB,EAAE,SAAoB;QAC/D,2JAA2J;QAC3J,6BAA6B;QAC7B,IAAI;QACJ,0GAA0G;QAC1G,6FAA6F;QAC7F,UAAU;QACV,cAAc;QACd,gEAAgE;QAChE,gEAAgE;QAChE,yCAAyC;QACzC,GAAG;QACH,yIAAyI;QACzI,8BAA8B;QAC9B,YAAY;QACZ,2BAA2B;QAC3B,kFAAkF;QAClF,2EAA2E;QAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,EAAE,CAAC,CAAA;QAC3E,OAAO;YACL,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACvD,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,SAAS,EAAE,OAAO,CAAC,UAAU;YAC7B,SAAS,EAAE,OAAO,CAAC,gBAAgB;YACnC,qBAAqB,EAAE,EAAE;SAC1B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAsB,EAAE,SAAoB,EAAE,WAAmC;QACpG,4BAA4B;QAC5B,2JAA2J;QAC3J,6BAA6B;QAC7B,IAAI;QACJ,0GAA0G;QAC1G,2CAA2C;QAC3C,kCAAkC;QAClC,wCAAwC;QACxC,mFAAmF;QACnF,sBAAsB;QACtB,GAAG;QACH,4BAA4B;QAC5B,wJAAwJ;QACxJ,gCAAgC;QAChC,gGAAgG;QAChG,sCAAsC;QACtC,yCAAyC;QACzC,IAAI;QAEJ,4BAA4B;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC7D,IAAG,WAAW,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,EAAE;YACpC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,EAAE,EAAE,KAAK,EAAE;gBACjE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI;aACjD,CAAC,CAAA;SACH;QACD,6BAA6B;QAC7B,iHAAiH;QACjH,gCAAgC;QAChC,0DAA0D;QAC1D,yCAAyC;QACzC,sCAAsC;QACtC,kBAAkB;QAClB,IAAI;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAsB,EAAE,SAAiB,EAAE,KAAsB,EAAE,MAAmC;QACtH,gBAAgB;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,oBAAoB;YACpB,MAAM,OAAO,GAAG,CAAC,MAAM,IAAA,4BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxE,IAAI;gBACF,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;aACvF;YAAC,OAAO,CAAC,EAAE;gBACV,wCAAwC;gBACxC,IAAI,CAAC,CAAC,UAAU,KAAK,GAAG,IAAI,CAAC,CAAC,cAAc,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE;oBAClH,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;iBACvF;qBAAM;oBACL,MAAM,CAAC,CAAA;iBACR;aACF;SACF;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAsB,EAAE,SAAiB,EAAE,QAAgB;QACzE,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC7C,eAAe;QACf,MAAM,GAAG,GAAG,sCAAsC,SAAS,qBAAqB,SAAS,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,iBAAiB,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAA;QAC1K,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,IAAG,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,gBAAQ,CAAC,qBAAqB,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;QAChI,+BAA+B;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC/C,yBAAyB;QACzB,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAsB,EAAE,SAAiB,EAAE,SAAmB;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,SAAS,qBAAqB,EAAE,MAAM,EAAE;YACtF,EAAE,EAAE,SAAS;YACb,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,cAAc,EAAE,6BAA6B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACnE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aAChC,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC;CACF;AA/cD,kCA+cC"}
1
+ {"version":3,"file":"GitlabConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/GitlabConnector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Router } from 'express';
2
+ import { HostingConnector, StorageConnector } from '../connectors/connectors';
3
+ import { ServerConfig } from '../config';
4
+ /**
5
+ * @fileoverview Publication plugin for Silex
6
+ * Adds a publication API to Silex server
7
+ */
8
+ /**
9
+ * Error thrown by the publication API
10
+ * @param message error message
11
+ * @param code http status code
12
+ */
13
+ export declare class PublicationError extends Error {
14
+ code: number;
15
+ constructor(message: string, code: number);
16
+ }
17
+ /**
18
+ * Get the desired connector
19
+ * Can be the default connector or a specific one
20
+ */
21
+ export declare function getHostingConnector(session: any, config: ServerConfig, connectorId?: string): Promise<HostingConnector>;
22
+ export declare function getStorageConnector(session: any, config: ServerConfig, connectorId?: string): Promise<StorageConnector>;
23
+ export default function (config: ServerConfig): Router;
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /*
3
+ * Silex website builder, free/libre no-code tool for makers.
4
+ * Copyright (c) 2023 lexoyo and Silex Labs foundation
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.getStorageConnector = exports.getHostingConnector = exports.PublicationError = void 0;
20
+ const express_1 = require("express");
21
+ const constants_1 = require("../../constants");
22
+ const types_1 = require("../../types");
23
+ const connectors_1 = require("../connectors/connectors");
24
+ const validation_1 = require("../utils/validation");
25
+ const events_1 = require("../events");
26
+ const jobs_1 = require("../jobs");
27
+ /**
28
+ * @fileoverview Publication plugin for Silex
29
+ * Adds a publication API to Silex server
30
+ */
31
+ /**
32
+ * Error thrown by the publication API
33
+ * @param message error message
34
+ * @param code http status code
35
+ */
36
+ class PublicationError extends Error {
37
+ code;
38
+ constructor(message, code) {
39
+ super(message);
40
+ this.code = code;
41
+ }
42
+ }
43
+ exports.PublicationError = PublicationError;
44
+ const PROJECT_ROOT = require.main ? require.main.path : process.cwd();
45
+ /**
46
+ * Get the desired connector
47
+ * Can be the default connector or a specific one
48
+ */
49
+ async function getHostingConnector(session, config, connectorId) {
50
+ const hostingConnector = await (0, connectors_1.getConnector)(config, session, types_1.ConnectorType.HOSTING, connectorId); // ?? config.getHostingConnectors()[0]
51
+ if (!hostingConnector) {
52
+ throw new PublicationError('No hosting connector found', 500);
53
+ }
54
+ if (!await hostingConnector.isLoggedIn(session)) {
55
+ throw new PublicationError('Not logged in', 401);
56
+ }
57
+ return hostingConnector;
58
+ }
59
+ exports.getHostingConnector = getHostingConnector;
60
+ async function getStorageConnector(session, config, connectorId) {
61
+ const storageConnector = await (0, connectors_1.getConnector)(config, session, types_1.ConnectorType.STORAGE, connectorId); // ?? config.getStorageConnectors()[0]
62
+ if (!storageConnector) {
63
+ throw new PublicationError('No storage connector found', 500);
64
+ }
65
+ if (!await storageConnector.isLoggedIn(session)) {
66
+ throw new PublicationError('Not logged in to the storage connector', 401);
67
+ }
68
+ return storageConnector;
69
+ }
70
+ exports.getStorageConnector = getStorageConnector;
71
+ function default_1(config) {
72
+ // Create a new router
73
+ const router = (0, express_1.Router)();
74
+ // Get publication status
75
+ router.get(constants_1.API_PUBLICATION_STATUS, async function (req, res) {
76
+ const query = req.query;
77
+ const jobId = query.jobId;
78
+ const job = jobId && (0, jobs_1.getJob)(jobId);
79
+ if (!job) {
80
+ console.error(`Error: job not found with id ${jobId}`);
81
+ res.status(404).json({
82
+ message: 'Error: job not found.',
83
+ });
84
+ return;
85
+ }
86
+ res.json({
87
+ ...job,
88
+ _timeout: undefined,
89
+ });
90
+ });
91
+ // Publish website
92
+ router.post(constants_1.API_PUBLICATION_PUBLISH, async function (req, res) {
93
+ try {
94
+ const query = req.query;
95
+ const body = req.body;
96
+ const websiteId = (0, validation_1.requiredParam)(query.websiteId, 'id in query');
97
+ const storageId = (0, validation_1.requiredParam)(query.storageId, 'storageId in query');
98
+ const hostingId = (0, validation_1.requiredParam)(query.hostingId, 'hostingId in query');
99
+ const session = (0, validation_1.requiredParam)(req['session'], 'session on express request');
100
+ // Check params
101
+ const data = body;
102
+ const { files } = data;
103
+ if (!files) {
104
+ throw new PublicationError('Missing files in body', 400);
105
+ }
106
+ // Hook for plugins
107
+ config.emit(events_1.ServerEvent.PUBLISH_START, data);
108
+ // Get hosting connector and make sure the user is logged in
109
+ const hostingConnector = await getHostingConnector(session, config, hostingId);
110
+ // Get storage connector which holds the assets
111
+ const storage = await getStorageConnector(session, config, storageId);
112
+ // Load the content if necessary
113
+ const filesList = await Promise.all(files.map(async (file) => {
114
+ const prefix = constants_1.API_WEBSITE_ASSET_READ;
115
+ const fileWithContent = file;
116
+ const fileWithSrc = file;
117
+ if (!fileWithContent.content && !fileWithSrc.src)
118
+ throw new PublicationError('Missing content or src in file', 400);
119
+ const src = fileWithSrc.src?.startsWith(prefix) ? fileWithSrc.src.substring(prefix.length) : fileWithSrc.src;
120
+ return {
121
+ path: file.path,
122
+ content: fileWithContent.content ??
123
+ await storage.readAsset(session, websiteId, src),
124
+ };
125
+ }));
126
+ res.json({
127
+ url: await hostingConnector.getUrl(session, websiteId),
128
+ job: await hostingConnector.publish(session, websiteId, filesList, jobs_1.jobManager),
129
+ });
130
+ }
131
+ catch (err) {
132
+ console.error('Error publishing the website', err);
133
+ res
134
+ .status(typeof err.code === 'number' ? err.code : 500)
135
+ .json({
136
+ message: `Error publishing the website. ${err.message}`
137
+ });
138
+ // Hook for plugins
139
+ config.emit(events_1.ServerEvent.PUBLISH_END, err);
140
+ return;
141
+ }
142
+ // Hook for plugins
143
+ config.emit(events_1.ServerEvent.PUBLISH_END);
144
+ });
145
+ return router;
146
+ }
147
+ exports.default = default_1;
148
+ //# sourceMappingURL=publicationApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicationApi.js","sourceRoot":"","sources":["../../../../../src/ts/server/api/publicationApi.ts"],"names":[],"mappings":"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"}
@@ -46,9 +46,7 @@ export interface Connector<Session extends ConnectorSession = ConnectorSession>
46
46
  isLoggedIn(session: Session): Promise<boolean>;
47
47
  setToken(session: Session, token: object): Promise<void>;
48
48
  logout(session: Session): Promise<void>;
49
- getUser(session: Session): Promise<ConnectorUser>;
50
- getWebsiteMeta(session: Session, websiteId: WebsiteId): Promise<WebsiteMeta>;
51
- setWebsiteMeta(session: Session, websiteId: WebsiteId, data: WebsiteMetaFileContent): Promise<void>;
49
+ getUser(session: Session): Promise<ConnectorUser | null>;
52
50
  getOptions(formData: object): ConnectorOptions;
53
51
  }
54
52
  /**
@@ -65,6 +63,8 @@ export interface StorageConnector<Session extends ConnectorSession = ConnectorSe
65
63
  writeAssets(session: Session, websiteId: WebsiteId, files: ConnectorFile[], status?: StatusCallback): Promise<void>;
66
64
  readAsset(session: Session, websiteId: WebsiteId, fileName: string): Promise<ConnectorFileContent>;
67
65
  deleteAssets(session: Session, websiteId: WebsiteId, fileNames: string[]): Promise<void>;
66
+ getWebsiteMeta(session: Session, websiteId: WebsiteId): Promise<WebsiteMeta>;
67
+ setWebsiteMeta(session: Session, websiteId: WebsiteId, data: WebsiteMetaFileContent): Promise<void>;
68
68
  }
69
69
  /**
70
70
  * Hosting connectors are used to publish the website
@@ -1,4 +1,20 @@
1
1
  "use strict";
2
+ /*
3
+ * Silex website builder, free/libre no-code tool for makers.
4
+ * Copyright (c) 2023 lexoyo and Silex Labs foundation
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU Affero General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU Affero General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
2
18
  Object.defineProperty(exports, "__esModule", { value: true });
3
19
  exports.ServerEvent = void 0;
4
20
  var ServerEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/ts/server/events.ts"],"names":[],"mappings":";;;AAGA,IAAY,WASX;AATD,WAAY,WAAW;IACrB,8CAA+B,CAAA;IAC/B,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,0CAA2B,CAAA;IAC3B,kDAAmC,CAAA;IACnC,8CAA+B,CAAA;IAC/B,8DAA+C,CAAA;IAC/C,0DAA2C,CAAA;AAC7C,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/ts/server/events.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAMH,IAAY,WASX;AATD,WAAY,WAAW;IACrB,8CAA+B,CAAA;IAC/B,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,0CAA2B,CAAA;IAC3B,kDAAmC,CAAA;IACnC,8CAA+B,CAAA;IAC/B,8DAA+C,CAAA;IAC/C,0DAA2C,CAAA;AAC7C,CAAC,EATW,WAAW,2BAAX,WAAW,QAStB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@silexlabs/silex",
3
3
  "description": "Free and easy website builder for everyone.",
4
- "version": "3.0.0-alpha.69",
4
+ "version": "3.0.0-alpha.71",
5
5
  "version:backwardcompat": "3.0.0",
6
6
  "author": {
7
7
  "name": "Alex Hoyau",
@@ -110,7 +110,9 @@
110
110
  "@silexlabs/grapesjs-symbols": "1.0.22",
111
111
  "@silexlabs/grapesjs-ui-suggest-classes": "1.0.23",
112
112
  "@silexlabs/silex-plugins": "1.0.10",
113
+ "@types/archiver": "^5.3.2",
113
114
  "adm-zip": "0.5.10",
115
+ "archiver": "^5.3.1",
114
116
  "basic-ftp": "^5.0.3",
115
117
  "body-parser": "1.20.2",
116
118
  "cli": "1.0.1",
@@ -86,10 +86,10 @@ export const assetsPublicationTransformer = {
86
86
  */
87
87
  export function addTempDataToAssetUrl(assets: Asset[], websiteId: WebsiteId, storageId: ConnectorId): Asset[] {
88
88
  return assets.map((asset: Asset) => {
89
- return {
89
+ return asset.src ? {
90
90
  ...asset,
91
91
  src: storedToDisplayed(asset.src, websiteId, storageId),
92
- }
92
+ } : asset
93
93
  })
94
94
  }
95
95
 
@@ -100,10 +100,10 @@ export function addTempDataToAssetUrl(assets: Asset[], websiteId: WebsiteId, sto
100
100
  export function removeTempDataFromAssetUrl(assets: Asset[]): Asset[] {
101
101
  return assets.map((asset: Asset) => {
102
102
  // Return the asset with the new URL
103
- return {
103
+ return asset.src ? {
104
104
  ...asset,
105
105
  src: displayedToStored(asset.src),
106
- }
106
+ } : asset
107
107
  })
108
108
  }
109
109
 
@@ -112,13 +112,13 @@ export function removeTempDataFromAssetUrl(assets: Asset[]): Asset[] {
112
112
  */
113
113
  function addTempDataToComponents(component: Component, websiteId: WebsiteId, storageId: ConnectorId): Component {
114
114
  // Update the asset URL in the component
115
- const newComponent = {
115
+ const newComponent = component.attributes?.src ? {
116
116
  ...component,
117
117
  attributes: {
118
118
  ...component.attributes,
119
- src: component.attributes?.src ? storedToDisplayed(component.attributes.src, websiteId, storageId) : undefined,
119
+ src: storedToDisplayed(component.attributes.src, websiteId, storageId),
120
120
  },
121
- }
121
+ } : component
122
122
  // Update the asset URL in the children
123
123
  if (newComponent.components) {
124
124
  newComponent.components = newComponent.components.map((childComponent: Component) => {
@@ -133,13 +133,13 @@ function addTempDataToComponents(component: Component, websiteId: WebsiteId, sto
133
133
  */
134
134
  function removeTempDataFromComponents(component: Component): Component {
135
135
  // Update the asset URL in the component
136
- const newComponent = {
136
+ const newComponent = component.attributes?.src ? {
137
137
  ...component,
138
138
  attributes: {
139
139
  ...component.attributes,
140
- src: component.attributes?.src ? displayedToStored(component.attributes.src) : undefined,
140
+ src: displayedToStored(component.attributes.src),
141
141
  },
142
- }
142
+ } : component
143
143
  // Update the asset URL in the children
144
144
  if (newComponent.components) {
145
145
  newComponent.components = newComponent.components.map((childComponent: Component) => {
@@ -99,7 +99,6 @@ export class ClientConfig extends Config {
99
99
  transformers.forEach(transformer => {
100
100
  validatePublicationTransformer(transformer)
101
101
  })
102
-
103
102
  // Add to the list
104
103
  this.publicationTransformers = this.publicationTransformers.concat(transformers)
105
104
  }
@@ -147,6 +147,19 @@ export class PublicationManager {
147
147
  }
148
148
 
149
149
  async goLogin(connector: ConnectorData) {
150
+ // Check if the user is already logged in
151
+ if(connector.isLoggedIn) {
152
+ this.settings = {
153
+ ...this.settings, // In case there are options
154
+ connector,
155
+ }
156
+ this.status = PublicationStatus.STATUS_NONE
157
+ // Save the website with the new settings
158
+ this.editor.store(null)
159
+ // Display the dialog
160
+ this.dialog && this.dialog.displayPending(this.job, this.status)
161
+ return
162
+ }
150
163
  this.settings = {}
151
164
  this.status = PublicationStatus.STATUS_LOGGED_OUT
152
165
  this.dialog && this.dialog.displayPending(this.job, this.status)
@@ -228,6 +241,10 @@ export class PublicationManager {
228
241
  } as ClientSideFile]))
229
242
  .concat(projectData.assets
230
243
  .map(asset => {
244
+ // TODO: is this needed?
245
+ // // Remove /assets that is added by grapesjs
246
+ // const initialPath = asset.src
247
+ // .replace(/^\/assets/, '')
231
248
  // Transform the file paths with the transformers
232
249
  const path = transformPath(this.editor, asset.src, ClientSideFileType.ASSET)
233
250
  const src = transformPermalink(this.editor, asset.src, ClientSideFileType.ASSET)
@@ -191,8 +191,7 @@ export class PublicationUi {
191
191
  max-height: 50vh;
192
192
  overflow: auto;
193
193
  font-size: x-small;
194
- "
195
- >${unsafeHTML(cleanupLogEntry(job.logs))}
194
+ " >${unsafeHTML(cleanupLogEntry(job.logs))}
196
195
  </pre>
197
196
  </details>
198
197
  ` : ''}
@@ -223,13 +222,13 @@ export class PublicationUi {
223
222
  class="silex-button silex-button--primary"
224
223
  id="publish-button--primary"
225
224
  @click=${() => this.editor.Commands.run(cmdPublicationLogin, this.settings.connector)}
226
- >Login</button>
225
+ >Connect</button>
227
226
  `: this.settings.connector.disableLogout ? '' : html`
228
227
  <button
229
228
  class="silex-button silex-button--secondary"
230
229
  id="publish-button--secondary"
231
230
  @click=${() => this.editor.Commands.run(cmdPublicationLogout)}
232
- >Logout</button>
231
+ >Disconnect</button>
233
232
  `}
234
233
  <button
235
234
  class="silex-button silex-button--secondary"
@@ -243,14 +242,19 @@ export class PublicationUi {
243
242
  try {
244
243
  render(html`<main><p>Loading</p></main>`, this.el)
245
244
  const hostingConnectors = await connectorList({ type: ConnectorType.HOSTING })
246
- const loggedConnector: ConnectorData = hostingConnectors.find(connector => connector.isLoggedIn)
247
- if (loggedConnector) {
248
- this.settings.connector = loggedConnector
245
+ const loggedConnectors: ConnectorData[] = hostingConnectors.filter(connector => connector.isLoggedIn)
246
+ if (hostingConnectors.length === 1 && loggedConnectors.length === 1) {
247
+ this.settings.connector = loggedConnectors[0]
249
248
  return this.renderOpenDialog(null, PublicationStatus.STATUS_NONE)
250
249
  }
250
+ //const loggedConnector: ConnectorData = hostingConnectors.find(connector => connector.isLoggedIn)
251
+ //if (loggedConnector) {
252
+ // this.settings.connector = loggedConnector
253
+ // return this.renderOpenDialog(null, PublicationStatus.STATUS_NONE)
254
+ //}
251
255
  return html`
252
256
  <main>
253
- <p>You need to login to publish your website</p>
257
+ <p>You need to connect a hosting connector to publish your website</p>
254
258
  ${this.isError(status) || this.isLoggedOut(status) ? html`
255
259
  <p>Login error</p>
256
260
  <div>${unsafeHTML(this.errorMessage)}</div>
@@ -260,7 +264,7 @@ export class PublicationUi {
260
264
  class="silex-button silex-button--primary"
261
265
  id="publish-button--primary"
262
266
  @click=${() => this.editor.Commands.run(cmdPublicationLogin, connector)}
263
- >Login with ${connector.connectorId}</button>
267
+ >${connector.displayName}</button>
264
268
  `)}
265
269
  </main>
266
270
  <footer>
@@ -178,7 +178,7 @@ export default async (config, opts: any = {}) => {
178
178
  c.toHTML = () => {
179
179
  return `${before
180
180
  }${c.get('tagName') ? `<${c.get('tagName')}
181
- ${Object.entries(c.get('attributes')).map(([key, value]) => makeAttribute(key, value)).join(' ')}
181
+ ${Object.entries(c.get('attributes') as object).map(([key, value]) => makeAttribute(key, value)).join(' ')}
182
182
  ${classes.length || classname ? `class="${classes.join(' ')} ${classname}"` : ''}
183
183
  ${attributes}
184
184
  ${style ? `style="${style}"` : ''}
@@ -0,0 +1,150 @@
1
+ import { createWriteStream } from 'fs'
2
+ import archiver from 'archiver'
3
+ import { ConnectorOptions, ConnectorType, ConnectorUser, JobData, JobStatus, PublicationJobData, WebsiteId } from '../../types'
4
+ import { ConnectorFile, ConnectorSession, HostingConnector } from '../../server/connectors/connectors'
5
+ import { tmpdir } from 'os'
6
+ import { JobManager } from '../../server/jobs'
7
+ import { Readable } from 'stream'
8
+ import { ServerConfig } from '../../server/config'
9
+ import { ServerEvent } from '../../server/events'
10
+ import { getHostingConnector } from '../../server/api/publicationApi'
11
+
12
+ import { Request, Response } from 'express'
13
+
14
+ type DownloadConnectorSession = ConnectorSession;
15
+
16
+ type DownloadConnectorOptions = object
17
+
18
+ const svg = '<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 384 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M64 464c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16h48v80c0 17.7 14.3 32 32 32h80V448c0 8.8-7.2 16-16 16H64zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V154.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0H64zm48 112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16H128c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8H136.6c-14.5 0-27.2 9.7-30.9 23.8zM128 336h32c8.8 0 16 7.2 16 16s-7.2 16-16 16H128c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>'
19
+ const encodedSvg = encodeURIComponent(svg)
20
+ const ZIP_ICON = `data:image/svg+xml,${encodedSvg}`
21
+
22
+ export default class implements HostingConnector<DownloadConnectorSession> {
23
+ connectorId = 'download-connector'
24
+ displayName = 'Download zip file'
25
+ icon = ZIP_ICON
26
+ disableLogout = false
27
+ options: DownloadConnectorOptions
28
+ connectorType = ConnectorType.HOSTING
29
+ color = '#ffffff'
30
+ background = '#006400'
31
+
32
+ constructor(config: ServerConfig) {
33
+ // Add a route to serve the zip file
34
+ config.on(ServerEvent.STARTUP_END, ({app}) => {
35
+ app.get('/download/:tmpZipFile', async (req: Request, res: Response) => {
36
+ const path = `${tmpdir()}/${req.params.tmpZipFile}`
37
+ res.sendFile(path, {}, (err) => {
38
+ if (err) {
39
+ console.error('[DownloadConnector] Error while sending file', err)
40
+ res.status(500).send(`
41
+ <h1>Error</h1>
42
+ <p>There was an error while getting the zip file of your website</p>
43
+ <p>${err.message}</p>
44
+ `)
45
+ }
46
+ })
47
+ })
48
+ })
49
+ }
50
+
51
+ getOptions(formData: object): ConnectorOptions {
52
+ return {}
53
+ }
54
+
55
+ async getOAuthUrl(session: DownloadConnectorSession): Promise<null> { return null }
56
+
57
+ async getLoginForm(session: DownloadConnectorSession, redirectTo: string): Promise<string | null> {
58
+ return null
59
+ }
60
+ async getSettingsForm(session: DownloadConnectorSession, redirectTo: string): Promise<string | null> {
61
+ return null
62
+ }
63
+
64
+ async isLoggedIn(session: DownloadConnectorSession): Promise<boolean> {
65
+ return true
66
+ }
67
+
68
+ async setToken(session: DownloadConnectorSession, query: object): Promise<void> {}
69
+
70
+ async logout(session: DownloadConnectorSession): Promise<void> {}
71
+
72
+ async getUser(session: DownloadConnectorSession): Promise<ConnectorUser | null> {
73
+ return null
74
+ }
75
+
76
+ async publish(session: DownloadConnectorSession, websiteId: WebsiteId, files: ConnectorFile[], jobManager: JobManager): Promise<JobData> {
77
+ const job = jobManager.startJob(`Publishing to ${this.displayName}`) as PublicationJobData
78
+ this.startPublishingInBackground(session, websiteId, files, job)
79
+ return job
80
+ }
81
+
82
+ async startPublishingInBackground(session: DownloadConnectorSession, websiteId: WebsiteId, files: ConnectorFile[], job: PublicationJobData): Promise<void> {
83
+ const fileName = `${websiteId}-${Date.now()}-${Math.random().toString(36).substring(7)}.zip`
84
+ return new Promise<string>((resolve, reject) => {
85
+ let resolved = false
86
+ try {
87
+ // Generate a temporary path for the zip file, in the OS tmp folder, with the website id, the date and random string
88
+ const path = `${tmpdir()}/${fileName}`
89
+ // create a file to stream archive data to.
90
+ const output = createWriteStream(path)
91
+ const archive = archiver('zip', {
92
+ zlib: { level: 9 } // Sets the compression level.
93
+ })
94
+
95
+ // Listen to archive events
96
+ // listen for all archive data to be written
97
+ // 'close' event is fired only when a file descriptor is involved
98
+ output.on('close', function () {
99
+ !resolved && resolve(path)
100
+ resolved = true
101
+ })
102
+
103
+ // good practice to catch warnings (ie stat failures and other non-blocking errors)
104
+ archive.on('warning', function (err) {
105
+ if (err.code === 'ENOENT') {
106
+ // log warning
107
+ } else {
108
+ !resolved && reject(err)
109
+ resolved = true
110
+ }
111
+ })
112
+
113
+ // good practice to catch this error explicitly
114
+ archive.on('error', function (err) {
115
+ !resolved && reject(err)
116
+ resolved = true
117
+ })
118
+
119
+ // pipe archive data to the filey
120
+ archive.pipe(output)
121
+
122
+ // append files
123
+ for (const file of files) {
124
+ job.message = `Adding ${file.path} to the zip file`
125
+ // Handle content as string, buffer or readable
126
+ archive.append(file.content, { name: file.path })
127
+ }
128
+
129
+ // finalize the archive (ie we are done appending files but streams have to finish yet)
130
+ job.message = 'Finalizing the zip file'
131
+ return archive.finalize()
132
+ .then(() => path)
133
+ } catch (err) {
134
+ console.error('Error while creating the zip file', err)
135
+ job.message = `Error while creating the zip file: ${err.message}`
136
+ job.status = JobStatus.ERROR
137
+ !resolved && reject(err)
138
+ resolved = true
139
+ }
140
+ })
141
+ .then(path => {
142
+ job.message = `Zip file created, <a href="/download/${fileName}" target="_blank">download it now</a>`
143
+ job.status = JobStatus.SUCCESS
144
+ })
145
+ }
146
+
147
+ async getUrl(session: DownloadConnectorSession, websiteId: WebsiteId): Promise<string> {
148
+ return ''
149
+ }
150
+ }