@silexlabs/silex 3.0.1-0 → 3.0.1

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 (250) hide show
  1. package/.env.default +3 -2
  2. package/.silex.js +39 -1
  3. package/README.md +37 -35
  4. package/dist/client/client/api.d.ts +8 -1
  5. package/dist/client/client/assetUrl.d.ts +54 -0
  6. package/dist/client/client/config.d.ts +60 -1
  7. package/dist/client/client/events.d.ts +19 -10
  8. package/dist/client/client/grapesjs/PublicationManager.d.ts +6 -8
  9. package/dist/client/client/grapesjs/PublicationUi.d.ts +8 -10
  10. package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
  11. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  12. package/dist/client/client/grapesjs/footer.d.ts +2 -0
  13. package/dist/client/client/grapesjs/img.d.ts +6 -0
  14. package/dist/client/client/grapesjs/index.d.ts +6 -2
  15. package/dist/client/client/grapesjs/internal-links.d.ts +1 -1
  16. package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
  17. package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
  18. package/dist/client/client/grapesjs/page-panel.d.ts +7 -1
  19. package/dist/client/client/grapesjs/project-bar.d.ts +20 -0
  20. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  21. package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
  22. package/dist/client/client/grapesjs/semantic.d.ts +1 -1
  23. package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
  24. package/dist/client/client/grapesjs/settings.d.ts +3 -1
  25. package/dist/client/client/grapesjs/storage.d.ts +1 -0
  26. package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
  27. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  28. package/dist/client/client/index.d.ts +5 -0
  29. package/dist/client/client/publication-transformers.d.ts +42 -0
  30. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  31. package/dist/client/client/publish-fonts.d.ts +4 -0
  32. package/dist/client/client/utils.d.ts +22 -1
  33. package/dist/client/constants.d.ts +3 -0
  34. package/dist/client/css/admin.css +1107 -411
  35. package/dist/client/css/admin.css.map +1 -0
  36. package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
  37. package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
  38. package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
  39. package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
  40. package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
  41. package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
  42. package/dist/client/index.html +3 -2
  43. package/dist/client/js/main.js +305 -170
  44. package/dist/client/js/main.js.LICENSE.txt +21 -1
  45. package/dist/client/page.d.ts +1 -1
  46. package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
  47. package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
  48. package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
  49. package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
  50. package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
  51. package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
  52. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
  53. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
  54. package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
  55. package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
  56. package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
  57. package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
  58. package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
  59. package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
  60. package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
  61. package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
  62. package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
  63. package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
  64. package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
  65. package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
  66. package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
  67. package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
  68. package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
  69. package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
  70. package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
  71. package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
  72. package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
  73. package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
  74. package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
  75. package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
  76. package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
  77. package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
  78. package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
  79. package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
  80. package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
  81. package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
  82. package/dist/client/types.d.ts +59 -35
  83. package/dist/plugins/client/client/events.d.ts +19 -10
  84. package/dist/plugins/client/client/events.js +11 -0
  85. package/dist/plugins/client/client/events.js.map +1 -1
  86. package/dist/plugins/client/plugins/client/template.js +119 -71
  87. package/dist/plugins/client/plugins/client/template.js.map +1 -1
  88. package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
  89. package/dist/plugins/client/plugins/client/website-info.js +72 -0
  90. package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
  91. package/dist/plugins/client/types.d.ts +59 -35
  92. package/dist/plugins/client/types.js +23 -0
  93. package/dist/plugins/client/types.js.map +1 -1
  94. package/dist/plugins/server/constants.d.ts +3 -0
  95. package/dist/plugins/server/constants.js +28 -1
  96. package/dist/plugins/server/constants.js.map +1 -1
  97. package/dist/plugins/server/plugins/server/Cache.js +9 -5
  98. package/dist/plugins/server/plugins/server/Cache.js.map +1 -1
  99. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  100. package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
  101. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  102. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +5 -2
  103. package/dist/plugins/server/plugins/server/FtpConnector.js +38 -23
  104. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
  105. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +63 -9
  106. package/dist/plugins/server/plugins/server/GitlabConnector.js +367 -91
  107. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
  108. package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
  109. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
  110. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
  111. package/dist/plugins/server/plugins/server/SslPlugin.js +6 -6
  112. package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -1
  113. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -1
  114. package/dist/plugins/server/plugins/server/StaticPlugin.js +5 -31
  115. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -1
  116. package/dist/plugins/server/server/config.js +8 -9
  117. package/dist/plugins/server/server/config.js.map +1 -1
  118. package/dist/plugins/server/server/connectors/FsHosting.d.ts +3 -2
  119. package/dist/plugins/server/server/connectors/FsHosting.js +18 -7
  120. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
  121. package/dist/plugins/server/server/connectors/FsStorage.d.ts +3 -1
  122. package/dist/plugins/server/server/connectors/FsStorage.js +35 -28
  123. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
  124. package/dist/plugins/server/server/connectors/connectors.d.ts +7 -7
  125. package/dist/plugins/server/server/connectors/connectors.js +6 -7
  126. package/dist/plugins/server/server/connectors/connectors.js.map +1 -1
  127. package/dist/plugins/server/server/events.js +16 -0
  128. package/dist/plugins/server/server/events.js.map +1 -1
  129. package/dist/plugins/server/server/jobs.d.ts +6 -0
  130. package/dist/plugins/server/server/jobs.js +12 -8
  131. package/dist/plugins/server/server/jobs.js.map +1 -1
  132. package/dist/plugins/server/server/utils/validation.js +1 -2
  133. package/dist/plugins/server/server/utils/validation.js.map +1 -1
  134. package/dist/plugins/server/types.d.ts +59 -35
  135. package/dist/plugins/server/types.js +24 -1
  136. package/dist/plugins/server/types.js.map +1 -1
  137. package/dist/server/constants.js +27 -1
  138. package/dist/server/plugins/server/Cache.js +9 -5
  139. package/dist/server/server/api/api.js +1 -1
  140. package/dist/server/server/api/connectorApi.js +154 -25
  141. package/dist/server/server/api/publicationApi.js +17 -25
  142. package/dist/server/server/api/websiteApi.js +30 -8
  143. package/dist/server/server/cli.js +9 -6
  144. package/dist/server/server/config.js +8 -9
  145. package/dist/server/server/connectors/FsHosting.js +17 -7
  146. package/dist/server/server/connectors/FsStorage.js +34 -28
  147. package/dist/server/server/connectors/connectors.js +6 -7
  148. package/dist/server/server/express.js +4 -5
  149. package/dist/server/server/index.js +5 -1
  150. package/dist/server/server/jobs.js +11 -8
  151. package/dist/server/server/utils/validation.js +1 -2
  152. package/dist/server/types.js +13 -1
  153. package/package.json +56 -42
  154. package/public/assets/download.png +0 -0
  155. package/public/assets/favicon.ico +0 -0
  156. package/public/assets/favicon.png +0 -0
  157. package/public/assets/ftp.png +0 -0
  158. package/public/assets/gitlab.png +0 -0
  159. package/public/assets/gitlab2.png +0 -0
  160. package/public/assets/laptop.png +0 -0
  161. package/public/assets/logo-silex-small.png +0 -0
  162. package/public/silex.js +5 -23
  163. package/src/css/_variables.scss +23 -20
  164. package/src/css/dialog.scss +27 -1
  165. package/src/css/fonts.scss +31 -0
  166. package/src/css/footer.scss +12 -0
  167. package/src/css/grapesjs-light.scss +180 -0
  168. package/src/css/grapesjs-plugins.scss +227 -0
  169. package/src/css/grapesjs.scss +84 -10
  170. package/src/css/index.scss +12 -1
  171. package/src/css/light.scss +7 -0
  172. package/src/css/project-bar.scss +32 -16
  173. package/src/css/silex.scss +79 -5
  174. package/src/css/website-info.scss +14 -0
  175. package/src/html/index.pug +3 -3
  176. package/src/ts/client/api.ts +38 -14
  177. package/src/ts/client/assetUrl.test.ts +164 -0
  178. package/src/ts/client/assetUrl.ts +254 -0
  179. package/src/ts/client/config.ts +133 -5
  180. package/src/ts/client/events.ts +21 -9
  181. package/src/ts/client/grapesjs/LoginDialog.ts +4 -2
  182. package/src/ts/client/grapesjs/PublicationManager.ts +180 -54
  183. package/src/ts/client/grapesjs/PublicationUi.ts +122 -86
  184. package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
  185. package/src/ts/client/grapesjs/css-props.ts +910 -0
  186. package/src/ts/client/grapesjs/eleventy.ts +11 -8
  187. package/{dist/plugins/client/page.js → src/ts/client/grapesjs/footer.ts} +24 -13
  188. package/src/ts/client/grapesjs/img.ts +147 -0
  189. package/src/ts/client/grapesjs/index.ts +234 -52
  190. package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
  191. package/src/ts/client/grapesjs/internal-links.ts +14 -7
  192. package/src/ts/client/grapesjs/keymaps.ts +207 -0
  193. package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
  194. package/src/ts/client/grapesjs/page-panel.ts +92 -7
  195. package/src/ts/client/grapesjs/project-bar.ts +116 -72
  196. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  197. package/src/ts/client/grapesjs/rich-text.ts +21 -13
  198. package/src/ts/client/grapesjs/semantic.ts +3 -3
  199. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  200. package/src/ts/client/grapesjs/settings.ts +174 -96
  201. package/src/ts/client/grapesjs/storage.ts +98 -33
  202. package/src/ts/client/grapesjs/symbolDialogs.ts +3 -4
  203. package/src/ts/{plugins/server/AuthPlugin.ts → client/grapesjs/view-buttons.ts} +23 -19
  204. package/src/ts/client/index.ts +35 -16
  205. package/src/ts/client/publication-transformers.test.ts +207 -0
  206. package/src/ts/client/publication-transformers.ts +280 -0
  207. package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
  208. package/src/ts/client/publish-fonts.ts +36 -0
  209. package/src/ts/client/utils.ts +53 -1
  210. package/src/ts/constants.ts +31 -0
  211. package/src/ts/page.ts +2 -2
  212. package/src/ts/plugins/client/template.ts +125 -75
  213. package/src/ts/plugins/client/website-info.ts +84 -0
  214. package/src/ts/plugins/server/Cache.ts +6 -2
  215. package/src/ts/plugins/server/DownloadConnector.ts +146 -0
  216. package/src/ts/plugins/server/FtpConnector.ts +47 -21
  217. package/src/ts/plugins/server/GitlabConnector.ts +423 -108
  218. package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
  219. package/src/ts/plugins/server/SslPlugin.ts +5 -5
  220. package/src/ts/plugins/server/StaticPlugin.ts +3 -30
  221. package/src/ts/server/api/connectorApi.ts +165 -28
  222. package/src/ts/server/api/publicationApi.ts +17 -24
  223. package/src/ts/server/api/websiteApi.ts +57 -14
  224. package/src/ts/server/cli.ts +7 -5
  225. package/src/ts/server/config.ts +9 -10
  226. package/src/ts/server/connectors/FsHosting.ts +14 -8
  227. package/src/ts/server/connectors/FsStorage.ts +40 -7
  228. package/src/ts/server/connectors/connectors.ts +8 -6
  229. package/src/ts/server/events.ts +17 -0
  230. package/src/ts/server/express.ts +2 -2
  231. package/src/ts/server/index.ts +6 -0
  232. package/src/ts/server/jobs.ts +14 -2
  233. package/src/ts/server/utils/BackwardCompat.ts +530 -529
  234. package/src/ts/types.ts +78 -34
  235. package/dist/plugins/client/client/utils.d.ts +0 -1
  236. package/dist/plugins/client/client/utils.js.map +0 -1
  237. package/dist/plugins/client/page.d.ts +0 -2
  238. package/dist/plugins/client/page.js.map +0 -1
  239. package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
  240. package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -128
  241. package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
  242. package/dist/plugins/server/plugins/server/AuthPlugin.d.ts +0 -1
  243. package/dist/plugins/server/plugins/server/AuthPlugin.js +0 -38
  244. package/dist/plugins/server/plugins/server/AuthPlugin.js.map +0 -1
  245. package/dist/plugins/server/plugins/server/HooksPlugin.d.ts +0 -7
  246. package/dist/plugins/server/plugins/server/HooksPlugin.js +0 -74
  247. package/dist/plugins/server/plugins/server/HooksPlugin.js.map +0 -1
  248. package/src/example-client-config.js +0 -64
  249. package/src/ts/plugins/client/publicationRenderer.ts +0 -128
  250. package/src/ts/plugins/server/HooksPlugin.ts +0 -76
@@ -16,7 +16,7 @@
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.API_WEBSITE_META_WRITE = exports.API_WEBSITE_META_READ = exports.API_WEBSITE_ASSETS_WRITE = exports.API_WEBSITE_ASSET_READ = exports.API_WEBSITE_LIST = exports.API_WEBSITE_DELETE = exports.API_WEBSITE_CREATE = exports.API_WEBSITE_WRITE = exports.API_WEBSITE_READ = exports.API_WEBSITE_PATH = exports.API_PUBLICATION_STATUS = exports.API_PUBLICATION_PUBLISH = exports.API_PUBLICATION_PATH = exports.API_CONNECTOR_LOGIN_CALLBACK = exports.API_CONNECTOR_SETTINGS = exports.API_CONNECTOR_LOGIN = exports.API_CONNECTOR_LOGOUT = exports.API_CONNECTOR_LIST = exports.API_CONNECTOR_USER = exports.API_CONNECTOR_PATH = exports.API_PATH = exports.CLIENT_CONFIG_FILE_NAME = exports.DEFAULT_LANGUAGE = exports.DEFAULT_WEBSITE_ID = exports.WEBSITE_META_DATA_FILE = exports.WEBSITE_DATA_FILE = void 0;
19
+ exports.DEV_MESSAGE = exports.SILEX_VERSION = exports.API_WEBSITE_META_WRITE = exports.API_WEBSITE_META_READ = exports.API_WEBSITE_ASSETS_WRITE = exports.API_WEBSITE_ASSET_READ = exports.API_WEBSITE_LIST = exports.API_WEBSITE_DUPLICATE = exports.API_WEBSITE_DELETE = exports.API_WEBSITE_CREATE = exports.API_WEBSITE_WRITE = exports.API_WEBSITE_READ = exports.API_WEBSITE_PATH = exports.API_PUBLICATION_STATUS = exports.API_PUBLICATION_PUBLISH = exports.API_PUBLICATION_PATH = exports.API_CONNECTOR_LOGIN_CALLBACK = exports.API_CONNECTOR_SETTINGS = exports.API_CONNECTOR_LOGIN = exports.API_CONNECTOR_LOGOUT = exports.API_CONNECTOR_LIST = exports.API_CONNECTOR_USER = exports.API_CONNECTOR_PATH = exports.API_PATH = exports.CLIENT_CONFIG_FILE_NAME = exports.DEFAULT_LANGUAGE = exports.DEFAULT_WEBSITE_ID = exports.WEBSITE_META_DATA_FILE = exports.WEBSITE_DATA_FILE = void 0;
20
20
  /**
21
21
  * @fileoverview define constants for Silex client and server
22
22
  */
@@ -41,9 +41,36 @@ exports.API_WEBSITE_READ = '/';
41
41
  exports.API_WEBSITE_WRITE = '/';
42
42
  exports.API_WEBSITE_CREATE = '/';
43
43
  exports.API_WEBSITE_DELETE = '/';
44
+ exports.API_WEBSITE_DUPLICATE = '/duplicate';
44
45
  exports.API_WEBSITE_LIST = '/';
45
46
  exports.API_WEBSITE_ASSET_READ = '/assets';
46
47
  exports.API_WEBSITE_ASSETS_WRITE = '/assets';
47
48
  exports.API_WEBSITE_META_READ = '/meta';
48
49
  exports.API_WEBSITE_META_WRITE = '/meta';
50
+ try {
51
+ exports.SILEX_VERSION = SILEX_VERSION_ENV;
52
+ }
53
+ catch (e) {
54
+ // fallback to default value
55
+ exports.SILEX_VERSION = exports.SILEX_VERSION || '3.0.0';
56
+ }
57
+ exports.DEV_MESSAGE = `
58
+ __________________________________________________________
59
+
60
+ Create static websites visually, with dynamic content,
61
+ in the free spirit of the web.
62
+
63
+ ███████ ██ ██ ███████ ██ ██ ██ ██ ██████
64
+ ██ ██ ██ ██ ██ ██ ██ ██ ██
65
+ ███████ ██ ██ █████ ███ ██ ██ █████
66
+ ██ ██ ██ ██ ██ ██ ██ ██ ██
67
+ ███████ ██ ███████ ███████ ██ ██ ████ ██████ ${exports.SILEX_VERSION.slice(1)}
68
+
69
+ Users are expected to contribute:
70
+
71
+ * Web designers: https://docs.silex.me/en/user/contribute
72
+ * Developers: https://docs.silex.me/en/dev/contribute
73
+
74
+ __________________________________________________________
75
+ `;
49
76
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/ts/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH;;GAEG;AAEU,QAAA,iBAAiB,GAAG,cAAc,CAAA;AAClC,QAAA,sBAAsB,GAAG,WAAW,CAAA;AAEpC,QAAA,kBAAkB,GAAG,SAAS,CAAA;AAC9B,QAAA,gBAAgB,GAAG,IAAI,CAAA;AACvB,QAAA,uBAAuB,GAAG,UAAU,CAAA;AAEpC,QAAA,QAAQ,GAAG,MAAM,CAAA;AAEjB,QAAA,kBAAkB,GAAG,YAAY,CAAA;AACjC,QAAA,kBAAkB,GAAG,OAAO,CAAA;AAC5B,QAAA,kBAAkB,GAAG,GAAG,CAAA;AACxB,QAAA,oBAAoB,GAAG,SAAS,CAAA;AAChC,QAAA,mBAAmB,GAAG,QAAQ,CAAA;AAC9B,QAAA,sBAAsB,GAAG,WAAW,CAAA;AACpC,QAAA,4BAA4B,GAAG,iBAAiB,CAAA;AAEhD,QAAA,oBAAoB,GAAG,cAAc,CAAA;AACrC,QAAA,uBAAuB,GAAG,GAAG,CAAA;AAC7B,QAAA,sBAAsB,GAAG,qBAAqB,CAAA;AAE9C,QAAA,gBAAgB,GAAG,UAAU,CAAA;AAC7B,QAAA,gBAAgB,GAAG,GAAG,CAAA;AACtB,QAAA,iBAAiB,GAAG,GAAG,CAAA;AACvB,QAAA,kBAAkB,GAAG,GAAG,CAAA;AACxB,QAAA,kBAAkB,GAAG,GAAG,CAAA;AACxB,QAAA,gBAAgB,GAAG,GAAG,CAAA;AACtB,QAAA,sBAAsB,GAAG,SAAS,CAAA;AAClC,QAAA,wBAAwB,GAAG,SAAS,CAAA;AACpC,QAAA,qBAAqB,GAAG,OAAO,CAAA;AAC/B,QAAA,sBAAsB,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/ts/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH;;GAEG;AAEU,QAAA,iBAAiB,GAAG,cAAc,CAAA;AAClC,QAAA,sBAAsB,GAAG,WAAW,CAAA;AAEpC,QAAA,kBAAkB,GAAG,SAAS,CAAA;AAC9B,QAAA,gBAAgB,GAAG,IAAI,CAAA;AACvB,QAAA,uBAAuB,GAAG,UAAU,CAAA;AAEpC,QAAA,QAAQ,GAAG,MAAM,CAAA;AAEjB,QAAA,kBAAkB,GAAG,YAAY,CAAA;AACjC,QAAA,kBAAkB,GAAG,OAAO,CAAA;AAC5B,QAAA,kBAAkB,GAAG,GAAG,CAAA;AACxB,QAAA,oBAAoB,GAAG,SAAS,CAAA;AAChC,QAAA,mBAAmB,GAAG,QAAQ,CAAA;AAC9B,QAAA,sBAAsB,GAAG,WAAW,CAAA;AACpC,QAAA,4BAA4B,GAAG,iBAAiB,CAAA;AAEhD,QAAA,oBAAoB,GAAG,cAAc,CAAA;AACrC,QAAA,uBAAuB,GAAG,GAAG,CAAA;AAC7B,QAAA,sBAAsB,GAAG,qBAAqB,CAAA;AAE9C,QAAA,gBAAgB,GAAG,UAAU,CAAA;AAC7B,QAAA,gBAAgB,GAAG,GAAG,CAAA;AACtB,QAAA,iBAAiB,GAAG,GAAG,CAAA;AACvB,QAAA,kBAAkB,GAAG,GAAG,CAAA;AACxB,QAAA,kBAAkB,GAAG,GAAG,CAAA;AACxB,QAAA,qBAAqB,GAAG,YAAY,CAAA;AACpC,QAAA,gBAAgB,GAAG,GAAG,CAAA;AACtB,QAAA,sBAAsB,GAAG,SAAS,CAAA;AAClC,QAAA,wBAAwB,GAAG,SAAS,CAAA;AACpC,QAAA,qBAAqB,GAAG,OAAO,CAAA;AAC/B,QAAA,sBAAsB,GAAG,OAAO,CAAA;AAO7C,IAAI,CAAC;IAAC,qBAAa,GAAG,iBAAiB,CAAA;AAAC,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACnD,4BAA4B;IAC5B,qBAAa,GAAG,qBAAa,IAAI,OAAO,CAAA;AAC1C,CAAC;AAEY,QAAA,WAAW,GAAG;;;;;;;;;;2DAUgC,qBAAa,CAAC,KAAK,CAAC,CAAC,CAAC;;;;;;;;CAQhF,CAAA"}
@@ -16,17 +16,21 @@
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.withCache = exports.noCache = void 0;
19
+ exports.noCache = noCache;
20
+ exports.withCache = withCache;
20
21
  function noCache(req, res, next) {
21
22
  res.header('Cache-Control', 'private,no-cache,no-store,must-revalidate,proxy-revalidate');
22
23
  res.header('Expires', '-1');
23
24
  res.header('Pragma', 'no-cache');
24
25
  next();
25
26
  }
26
- exports.noCache = noCache;
27
27
  function withCache(req, res, next) {
28
- res.header('Cache-Control', 'public,max-age=86400,immutable'); // 24h
29
- next();
28
+ if (req.url.endsWith('.html') || req.url.endsWith('/')) {
29
+ noCache(req, res, next);
30
+ }
31
+ else {
32
+ res.header('Cache-Control', 'public,max-age=86400,immutable'); // 24h
33
+ next();
34
+ }
30
35
  }
31
- exports.withCache = withCache;
32
36
  //# sourceMappingURL=Cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/Cache.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,SAAgB,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI;IACrC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,4DAA4D,CAAC,CAAA;IACzF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC3B,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAChC,IAAI,EAAE,CAAA;AACR,CAAC;AALD,0BAKC;AAED,SAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;IACtC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAA,CAAC,MAAM;IACpE,IAAI,EAAE,CAAA;AACR,CAAC;AAHD,8BAGC"}
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/Cache.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAEH,0BAKC;AAED,8BAOC;AAdD,SAAgB,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,IAAI;IACrC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,4DAA4D,CAAC,CAAA;IACzF,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IAC3B,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;IAChC,IAAI,EAAE,CAAA;AACR,CAAC;AAED,SAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;IACtC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,gCAAgC,CAAC,CAAA,CAAC,MAAM;QACpE,IAAI,EAAE,CAAA;IACR,CAAC;AACH,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { ConnectorOptions, ConnectorType, ConnectorUser, JobData, PublicationJobData, WebsiteId } from '../../types';
2
+ import { ConnectorFile, ConnectorSession, HostingConnector } from '../../server/connectors/connectors';
3
+ import { JobManager } from '../../server/jobs';
4
+ import { ServerConfig } from '../../server/config';
5
+ type DownloadConnectorSession = ConnectorSession;
6
+ type DownloadConnectorOptions = object;
7
+ export default class implements HostingConnector<DownloadConnectorSession> {
8
+ connectorId: string;
9
+ displayName: string;
10
+ icon: string;
11
+ disableLogout: boolean;
12
+ options: DownloadConnectorOptions;
13
+ connectorType: ConnectorType;
14
+ color: string;
15
+ background: string;
16
+ constructor(config: ServerConfig);
17
+ getOptions(formData: object): ConnectorOptions;
18
+ getOAuthUrl(session: DownloadConnectorSession): Promise<null>;
19
+ getLoginForm(session: DownloadConnectorSession, redirectTo: string): Promise<string | null>;
20
+ getSettingsForm(session: DownloadConnectorSession, redirectTo: string): Promise<string | null>;
21
+ isLoggedIn(session: DownloadConnectorSession): Promise<boolean>;
22
+ setToken(session: DownloadConnectorSession, query: object): Promise<void>;
23
+ logout(session: DownloadConnectorSession): Promise<void>;
24
+ getUser(session: DownloadConnectorSession): Promise<ConnectorUser | null>;
25
+ publish(session: DownloadConnectorSession, websiteId: WebsiteId, files: ConnectorFile[], jobManager: JobManager): Promise<JobData>;
26
+ startPublishingInBackground(session: DownloadConnectorSession, websiteId: WebsiteId, files: ConnectorFile[], job: PublicationJobData): Promise<void>;
27
+ getUrl(session: DownloadConnectorSession, websiteId: WebsiteId): Promise<string>;
28
+ }
29
+ export {};
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = require("fs");
7
+ const archiver_1 = __importDefault(require("archiver"));
8
+ const types_1 = require("../../types");
9
+ const os_1 = require("os");
10
+ const events_1 = require("../../server/events");
11
+ const ZIP_ICON = '/assets/download.png';
12
+ class default_1 {
13
+ connectorId = 'download-connector';
14
+ displayName = 'Download zip file';
15
+ icon = ZIP_ICON;
16
+ disableLogout = false;
17
+ options;
18
+ connectorType = types_1.ConnectorType.HOSTING;
19
+ color = '#ffffff';
20
+ background = '#006400';
21
+ constructor(config) {
22
+ // Add a route to serve the zip file
23
+ config.on(events_1.ServerEvent.STARTUP_END, ({ app }) => {
24
+ app.get('/download/:tmpZipFile', async (req, res) => {
25
+ const path = `${(0, os_1.tmpdir)()}/${req.params.tmpZipFile}`;
26
+ res.sendFile(path, {}, (err) => {
27
+ if (err) {
28
+ console.error('[DownloadConnector] Error while sending file', err);
29
+ res.status(500).send(`
30
+ <h1>Error</h1>
31
+ <p>There was an error while getting the zip file of your website</p>
32
+ <p>${err.message}</p>
33
+ `);
34
+ }
35
+ });
36
+ });
37
+ });
38
+ }
39
+ getOptions(formData) {
40
+ return {};
41
+ }
42
+ async getOAuthUrl(session) { return null; }
43
+ async getLoginForm(session, redirectTo) {
44
+ return null;
45
+ }
46
+ async getSettingsForm(session, redirectTo) {
47
+ return null;
48
+ }
49
+ async isLoggedIn(session) {
50
+ return true;
51
+ }
52
+ async setToken(session, query) { }
53
+ async logout(session) { }
54
+ async getUser(session) {
55
+ return null;
56
+ }
57
+ async publish(session, websiteId, files, jobManager) {
58
+ const job = jobManager.startJob(`Publishing to ${this.displayName}`);
59
+ this.startPublishingInBackground(session, websiteId, files, job);
60
+ return job;
61
+ }
62
+ async startPublishingInBackground(session, websiteId, files, job) {
63
+ const fileName = `${websiteId}-${Date.now()}-${Math.random().toString(36).substring(7)}.zip`;
64
+ return new Promise((resolve, reject) => {
65
+ let resolved = false;
66
+ try {
67
+ // Generate a temporary path for the zip file, in the OS tmp folder, with the website id, the date and random string
68
+ const path = `${(0, os_1.tmpdir)()}/${fileName}`;
69
+ // create a file to stream archive data to.
70
+ const output = (0, fs_1.createWriteStream)(path);
71
+ const archive = (0, archiver_1.default)('zip', {
72
+ zlib: { level: 9 } // Sets the compression level.
73
+ });
74
+ // Listen to archive events
75
+ // listen for all archive data to be written
76
+ // 'close' event is fired only when a file descriptor is involved
77
+ output.on('close', function () {
78
+ !resolved && resolve(path);
79
+ resolved = true;
80
+ });
81
+ // good practice to catch warnings (ie stat failures and other non-blocking errors)
82
+ archive.on('warning', function (err) {
83
+ if (err.code === 'ENOENT') {
84
+ // log warning
85
+ }
86
+ else {
87
+ !resolved && reject(err);
88
+ resolved = true;
89
+ }
90
+ });
91
+ // good practice to catch this error explicitly
92
+ archive.on('error', function (err) {
93
+ !resolved && reject(err);
94
+ resolved = true;
95
+ });
96
+ // pipe archive data to the filey
97
+ archive.pipe(output);
98
+ // append files
99
+ for (const file of files) {
100
+ job.message = `Adding ${file.path} to the zip file`;
101
+ // Handle content as string, buffer or readable
102
+ archive.append(file.content, { name: file.path });
103
+ }
104
+ // finalize the archive (ie we are done appending files but streams have to finish yet)
105
+ job.message = 'Finalizing the zip file';
106
+ return archive.finalize()
107
+ .then(() => path);
108
+ }
109
+ catch (err) {
110
+ console.error('Error while creating the zip file', err);
111
+ job.message = `Error while creating the zip file: ${err.message}`;
112
+ job.status = types_1.JobStatus.ERROR;
113
+ !resolved && reject(err);
114
+ resolved = true;
115
+ }
116
+ })
117
+ .then(path => {
118
+ job.message = `Zip file created, <a href="/download/${fileName}" target="_blank">download it now</a>`;
119
+ job.status = types_1.JobStatus.SUCCESS;
120
+ });
121
+ }
122
+ async getUrl(session, websiteId) {
123
+ return '';
124
+ }
125
+ }
126
+ exports.default = default_1;
127
+ //# sourceMappingURL=DownloadConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DownloadConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/DownloadConnector.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- /// <reference types="node" />
2
1
  import { Readable } from 'stream';
3
2
  import { ConnectorFile, ConnectorFileContent, StatusCallback, StorageConnector } from '../../server/connectors/connectors';
4
3
  import { ConnectorType, ConnectorUser, WebsiteMeta, JobData, WebsiteId, WebsiteMetaFileContent, WebsiteData, ConnectorOptions } from '../../types';
5
4
  import { ServerConfig } from '../../server/config';
5
+ import { JobManager } from '../../server/jobs';
6
6
  /**
7
7
  * @fileoverview FTP connector for Silex
8
8
  * This is a connector for Silex, which allows to store the website on a FTP server
@@ -29,6 +29,7 @@ export interface FtpOptions {
29
29
  type: ConnectorType;
30
30
  path: string;
31
31
  assetsFolder: string;
32
+ cssFolder: string;
32
33
  authorizeUrl: string;
33
34
  authorizePath: string;
34
35
  }
@@ -75,9 +76,11 @@ export default class FtpConnector implements StorageConnector<FtpSession> {
75
76
  readWebsite(session: FtpSession, websiteId: string): Promise<WebsiteData | Readable>;
76
77
  updateWebsite(session: FtpSession, websiteId: string, data: WebsiteData): Promise<void>;
77
78
  deleteWebsite(session: FtpSession, websiteId: string): Promise<void>;
79
+ duplicateWebsite(session: FtpSession, websiteId: string): Promise<void>;
78
80
  writeAssets(session: any, id: WebsiteId, files: ConnectorFile[], statusCbk?: StatusCallback): Promise<void>;
81
+ writeFile(session: any, id: WebsiteId, files: ConnectorFile[], relativePath: string, statusCbk?: StatusCallback): Promise<void>;
79
82
  readAsset(session: FtpSession, id: string, path: string): Promise<ConnectorFileContent>;
80
83
  deleteAssets(session: FtpSession, id: WebsiteId, paths: string[]): Promise<void>;
81
84
  getUrl(session: FtpSession, id: WebsiteId): Promise<string>;
82
- publish(session: FtpSession, id: string, files: ConnectorFile[]): Promise<JobData>;
85
+ publish(session: FtpSession, id: WebsiteId, files: ConnectorFile[], { startJob, jobSuccess, jobError }: JobManager): Promise<JobData>;
83
86
  }
@@ -17,15 +17,15 @@
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
  const basic_ftp_1 = require("basic-ftp");
20
- const stream_1 = require("stream");
21
20
  const connectors_1 = require("../../server/connectors/connectors");
22
21
  const validation_1 = require("../../server/utils/validation");
23
22
  const constants_1 = require("../../constants");
24
23
  const types_1 = require("../../types");
25
- const jobs_1 = require("../../server/jobs");
26
24
  const path_1 = require("path");
27
25
  const os_1 = require("os");
28
26
  const uuid_1 = require("uuid");
27
+ const promises_1 = require("fs/promises");
28
+ const fs_1 = require("fs");
29
29
  // **
30
30
  // Utils methos
31
31
  function formHtml(redirectTo, type, { host, user, pass, port, secure, storageRootPath, publicationPath, websiteUrl }, err = '') {
@@ -184,7 +184,7 @@ details > p {
184
184
  class FtpConnector {
185
185
  connectorId = 'ftp';
186
186
  displayName = 'Ftp';
187
- icon = 'ftp';
187
+ icon = '/assets/ftp.png';
188
188
  options;
189
189
  connectorType;
190
190
  color = '#ffffff';
@@ -193,8 +193,9 @@ class FtpConnector {
193
193
  this.options = {
194
194
  path: '',
195
195
  assetsFolder: 'assets',
196
- authorizeUrl: '/api/authorize/ftp/',
197
- authorizePath: '/api/authorize/ftp/',
196
+ cssFolder: 'css',
197
+ authorizeUrl: './api/authorize/ftp/',
198
+ authorizePath: './api/authorize/ftp/',
198
199
  ...opts,
199
200
  };
200
201
  if (!this.options.type)
@@ -222,9 +223,13 @@ class FtpConnector {
222
223
  progress && progress('Upload complete');
223
224
  }
224
225
  async read(ftp, path) {
225
- const stream = new stream_1.PassThrough();
226
- await ftp.downloadTo(stream, path);
227
- return stream;
226
+ const tempDir = await (0, promises_1.mkdtemp)((0, path_1.join)((0, os_1.tmpdir)(), 'silex-tmp'));
227
+ const tempPath = (0, path_1.join)(tempDir, 'silex-ftp.tmp');
228
+ await ftp.downloadTo(tempPath, path);
229
+ const rStream = (0, fs_1.createReadStream)(tempPath);
230
+ await (0, promises_1.rm)(tempPath);
231
+ await (0, promises_1.rmdir)(tempDir);
232
+ return rStream;
228
233
  }
229
234
  async readdir(ftp, path) {
230
235
  const list = await ftp.list(path);
@@ -279,7 +284,6 @@ class FtpConnector {
279
284
  async getOAuthUrl(session) { return null; }
280
285
  async getLoginForm(session, redirectTo) {
281
286
  const { host, user, pass, port, secure, publicationPath, storageRootPath, websiteUrl } = this.sessionData(session);
282
- (0, validation_1.requiredParam)(os_1.type, 'connector type');
283
287
  return `
284
288
  <style>
285
289
  ${formCss}
@@ -309,7 +313,7 @@ class FtpConnector {
309
313
  async getUser(session) {
310
314
  return {
311
315
  name: this.sessionData(session).user,
312
- picture: 'data://image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAA',
316
+ picture: 'data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' height=\'1em\' viewBox=\'0 0 448 512\'%3E%3C!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --%3E%3Cpath d=\'M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512H418.3c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304H178.3z\'/%3E%3C/svg%3E',
313
317
  storage: await (0, connectors_1.toConnectorData)(session, this)
314
318
  };
315
319
  }
@@ -339,8 +343,6 @@ class FtpConnector {
339
343
  const ftp = await this.getClient(this.sessionData(session));
340
344
  // Get stats for the website folder
341
345
  const folder = (0, path_1.join)(this.rootPath(session), websiteId);
342
- const lastMod = await ftp.lastMod(folder);
343
- // Read the meta data file to get the meta data set by the user
344
346
  const path = (0, path_1.join)(this.rootPath(session), websiteId, constants_1.WEBSITE_META_DATA_FILE);
345
347
  const readable = await this.read(ftp, path);
346
348
  const meta = JSON.parse(await (0, connectors_1.contentToString)(readable));
@@ -348,9 +350,6 @@ class FtpConnector {
348
350
  // Return all meta
349
351
  return {
350
352
  websiteId,
351
- //url: await this.getFileUrl(session, websiteId, WEBSITE_DATA_FILE_NAME),
352
- createdAt: lastMod,
353
- updatedAt: lastMod,
354
353
  ...meta,
355
354
  };
356
355
  }
@@ -420,7 +419,21 @@ class FtpConnector {
420
419
  await this.rmdir(ftp, websitePath);
421
420
  this.closeClient(ftp);
422
421
  }
422
+ async duplicateWebsite(session, websiteId) {
423
+ const newWebsiteId = (0, uuid_1.v4)();
424
+ const storageRootPath = this.rootPath(session);
425
+ const ftp = await this.getClient(this.sessionData(session));
426
+ const websitePath = (0, path_1.join)(storageRootPath, websiteId);
427
+ const newWebsitePath = (0, path_1.join)(storageRootPath, newWebsiteId);
428
+ const tempDir = await (0, promises_1.mkdtemp)((0, os_1.tmpdir)());
429
+ await ftp.downloadToDir(websitePath, tempDir);
430
+ await ftp.uploadFromDir(tempDir, newWebsitePath);
431
+ this.closeClient(ftp);
432
+ }
423
433
  async writeAssets(session, id, files, statusCbk) {
434
+ return this.writeFile(session, id, files, this.options.assetsFolder, statusCbk);
435
+ }
436
+ async writeFile(session, id, files, relativePath, statusCbk) {
424
437
  // Connect to FTP server
425
438
  statusCbk && statusCbk({
426
439
  message: 'Connecting to FTP server',
@@ -444,7 +457,7 @@ class FtpConnector {
444
457
  message: `Writing file ${file.path}`,
445
458
  status: types_1.JobStatus.IN_PROGRESS,
446
459
  });
447
- const dstPath = (0, path_1.join)(this.options.path, rootPath, id, this.options.assetsFolder, file.path);
460
+ const dstPath = (0, path_1.join)(this.options.path, rootPath, id, relativePath, file.path);
448
461
  lastFile = file;
449
462
  const result = await this.write(ftp, dstPath, file.content, message => {
450
463
  statusCbk && statusCbk({
@@ -474,7 +487,7 @@ class FtpConnector {
474
487
  const storageRootPath = this.rootPath(session);
475
488
  const ftp = await this.getClient(this.sessionData(session));
476
489
  const dirPath = (0, path_1.join)(this.options.path, storageRootPath, id, this.options.assetsFolder, path);
477
- const asset = this.read(ftp, dirPath);
490
+ const asset = await this.read(ftp, dirPath);
478
491
  this.closeClient(ftp);
479
492
  return asset;
480
493
  }
@@ -491,27 +504,29 @@ class FtpConnector {
491
504
  console.warn('FIXME: do not store websiteUrl in the session, but in the website data');
492
505
  return this.sessionData(session).websiteUrl ?? '';
493
506
  }
494
- async publish(session, id, files) {
495
- const job = (0, jobs_1.startJob)(`Publishing to ${this.displayName}`);
507
+ async publish(session, id, files, { startJob, jobSuccess, jobError }) {
508
+ const job = startJob(`Publishing to ${this.displayName}`);
496
509
  job.logs = [[`Publishing to ${this.displayName}`]];
497
510
  job.errors = [[]];
498
511
  // Create folders
499
512
  const rootPath = this.rootPath(session);
500
513
  const ftp = await this.getClient(this.sessionData(session));
501
514
  await this.mkdir(ftp, rootPath);
502
- await this.mkdir(ftp, (0, path_1.join)(rootPath, 'assets'));
515
+ await this.mkdir(ftp, (0, path_1.join)(rootPath, this.options.assetsFolder));
516
+ await this.mkdir(ftp, (0, path_1.join)(rootPath, this.options.cssFolder));
503
517
  // Write files
504
- this.writeAssets(session, '', files, async ({ status, message }) => {
518
+ // Do not await for the result, return the job and continue the publication in the background
519
+ this.writeFile(session, '', files, '', async ({ status, message }) => {
505
520
  // Update the job status
506
521
  job.status = status;
507
522
  job.message = message;
508
523
  job.logs[0].push(message);
509
524
  if (status === types_1.JobStatus.SUCCESS) {
510
- (0, jobs_1.jobSuccess)(job.jobId, message);
525
+ jobSuccess(job.jobId, message);
511
526
  }
512
527
  else if (status === types_1.JobStatus.ERROR) {
513
528
  job.errors[0].push(message);
514
- (0, jobs_1.jobError)(job.jobId, message);
529
+ jobError(job.jobId, message);
515
530
  }
516
531
  });
517
532
  return job;
@@ -1 +1 @@
1
- {"version":3,"file":"FtpConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/FtpConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FtpConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/FtpConnector.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,15 @@ export interface GitlabOptions {
11
11
  clientSecret: string;
12
12
  branch: string;
13
13
  assetsFolder: string;
14
+ repoPrefix: string;
15
+ scope: string;
16
+ domain: string;
17
+ timeOut: number;
14
18
  }
15
- interface GitlabToken {
16
- state: string;
17
- codeVerifier: string;
18
- codeChallenge: string;
19
+ export interface GitlabToken {
20
+ state?: string;
21
+ codeVerifier?: string;
22
+ codeChallenge?: string;
19
23
  token?: {
20
24
  access_token: string;
21
25
  token_type: string;
@@ -26,9 +30,50 @@ interface GitlabToken {
26
30
  scope: string;
27
31
  };
28
32
  userId?: number;
33
+ username?: string;
29
34
  }
30
- interface GitlabSession {
31
- gitlab?: GitlabToken;
35
+ export type GitlabSession = Record<string, GitlabToken>;
36
+ interface GitlabAction {
37
+ action: 'create' | 'delete' | 'move' | 'update' | 'cherry-pick';
38
+ file_path?: string;
39
+ content?: string;
40
+ commit_id?: string;
41
+ }
42
+ interface GitlabWriteFile {
43
+ branch: string;
44
+ commit_message: string;
45
+ id?: string;
46
+ actions?: GitlabAction[];
47
+ content?: string;
48
+ file_path?: string;
49
+ encoding?: 'base64' | 'text';
50
+ }
51
+ interface GitlabGetToken {
52
+ grant_type: 'authorization_code';
53
+ client_id: string;
54
+ client_secret: string;
55
+ code: string;
56
+ redirect_uri: string;
57
+ code_verifier: string;
58
+ }
59
+ interface GitlabWebsiteName {
60
+ name: string;
61
+ }
62
+ interface GitlabCreateBranch {
63
+ branch: string;
64
+ ref: string;
65
+ }
66
+ interface GitlabGetTags {
67
+ per_page?: number;
68
+ }
69
+ interface GitlabCreateTag {
70
+ tag_name: string;
71
+ ref: string;
72
+ message: string;
73
+ }
74
+ interface GitlabFetchCommits {
75
+ ref_name: string;
76
+ since: string;
32
77
  }
33
78
  export default class GitlabConnector implements StorageConnector {
34
79
  private config;
@@ -42,9 +87,14 @@ export default class GitlabConnector implements StorageConnector {
42
87
  options: GitlabOptions;
43
88
  constructor(config: ServerConfig, opts: Partial<GitlabOptions>);
44
89
  private getAssetPath;
45
- private createFile;
46
- private updateFile;
47
- private callApi;
90
+ isUsingOfficialInstance(): boolean;
91
+ createFile(session: GitlabSession, websiteId: WebsiteId, path: string, content: string, isBase64?: boolean): Promise<void>;
92
+ updateFile(session: GitlabSession, websiteId: WebsiteId, path: string, content: string, isBase64?: boolean): Promise<void>;
93
+ readFile(session: GitlabSession, websiteId: string, fileName: string): Promise<Buffer>;
94
+ /**
95
+ * Call the Gitlab API with the user's token and handle errors
96
+ */
97
+ callApi(session: GitlabSession, path: string, method?: 'POST' | 'GET' | 'PUT' | 'DELETE', body?: GitlabWriteFile | GitlabGetToken | GitlabWebsiteName | GitlabCreateBranch | GitlabGetTags | GitlabCreateTag | GitlabFetchCommits | null, params?: any): Promise<any>;
48
98
  private generateCodeVerifier;
49
99
  private generateCodeChallenge;
50
100
  private getRedirect;
@@ -55,6 +105,9 @@ export default class GitlabConnector implements StorageConnector {
55
105
  * OAuth2 Step #1 from https://docs.gitlab.com/ee/api/oauth2.html#authorization-code-with-proof-key-for-code-exchange-pkce
56
106
  */
57
107
  getOAuthUrl(session: GitlabSession): Promise<string>;
108
+ getSessionToken(session: GitlabSession | undefined): GitlabToken;
109
+ setSessionToken(session: GitlabSession, token: GitlabToken): void;
110
+ resetSessionToken(session: GitlabSession): void;
58
111
  getOptions(formData: object): object;
59
112
  getLoginForm(session: GitlabSession, redirectTo: string): Promise<null>;
60
113
  getSettingsForm(session: GitlabSession, redirectTo: string): Promise<null>;
@@ -72,6 +125,7 @@ export default class GitlabConnector implements StorageConnector {
72
125
  createWebsite(session: GitlabSession, websiteMeta: WebsiteMetaFileContent): Promise<WebsiteId>;
73
126
  updateWebsite(session: GitlabSession, websiteId: WebsiteId, websiteData: WebsiteData): Promise<void>;
74
127
  deleteWebsite(session: GitlabSession, websiteId: WebsiteId): Promise<void>;
128
+ duplicateWebsite(session: GitlabSession, websiteId: string): Promise<void>;
75
129
  getWebsiteMeta(session: GitlabSession, websiteId: WebsiteId): Promise<WebsiteMeta>;
76
130
  setWebsiteMeta(session: GitlabSession, websiteId: WebsiteId, websiteMeta: WebsiteMetaFileContent): Promise<void>;
77
131
  writeAssets(session: GitlabSession, websiteId: string, files: ConnectorFile[], status?: StatusCallback | undefined): Promise<void>;