@silexlabs/silex 3.0.1-alpha.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 (323) hide show
  1. package/.env.default +20 -0
  2. package/.silex.js +67 -8
  3. package/LICENSE +661 -203
  4. package/README.md +37 -35
  5. package/dist/client/client/api.d.ts +90 -0
  6. package/dist/client/client/assetUrl.d.ts +54 -0
  7. package/dist/client/client/config.d.ts +102 -0
  8. package/dist/client/client/events.d.ts +23 -0
  9. package/dist/client/client/expose.d.ts +8 -0
  10. package/dist/client/client/grapesjs/LoginDialog.d.ts +15 -0
  11. package/dist/client/client/grapesjs/PublicationManager.d.ts +73 -0
  12. package/dist/client/client/grapesjs/PublicationUi.d.ts +59 -0
  13. package/dist/client/client/grapesjs/blocks.d.ts +1 -0
  14. package/dist/client/client/grapesjs/breadcrumbs.d.ts +1 -0
  15. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  16. package/dist/client/client/grapesjs/footer.d.ts +2 -0
  17. package/dist/client/client/grapesjs/img.d.ts +6 -0
  18. package/dist/client/client/grapesjs/index.d.ts +9 -0
  19. package/dist/client/client/grapesjs/internal-links.d.ts +1 -0
  20. package/dist/client/client/grapesjs/keymaps.d.ts +123 -0
  21. package/dist/client/client/grapesjs/new-page-dialog.d.ts +2 -0
  22. package/dist/client/client/grapesjs/openImport.d.ts +9 -0
  23. package/dist/client/client/grapesjs/page-panel.d.ts +9 -0
  24. package/dist/client/client/grapesjs/project-bar.d.ts +21 -0
  25. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  26. package/dist/client/client/grapesjs/rich-text.d.ts +4 -0
  27. package/dist/client/client/grapesjs/semantic.d.ts +1 -0
  28. package/dist/client/client/grapesjs/settings-sections.d.ts +16 -0
  29. package/dist/client/client/grapesjs/settings.d.ts +4 -0
  30. package/dist/client/client/grapesjs/storage.d.ts +2 -0
  31. package/dist/client/client/grapesjs/symbolDialogs.d.ts +3 -0
  32. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  33. package/dist/client/client/index.d.ts +10 -0
  34. package/dist/client/client/publication-transformers.d.ts +42 -0
  35. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  36. package/dist/client/client/publish-fonts.d.ts +4 -0
  37. package/dist/client/client/utils.d.ts +22 -0
  38. package/dist/client/constants.d.ts +32 -0
  39. package/dist/client/css/admin.css +1114 -328
  40. package/dist/client/css/admin.css.map +1 -0
  41. package/dist/client/grapesjs-filter-styles/dist/index.d.ts +4 -0
  42. package/dist/client/grapesjs-fonts/dist/index.d.ts +4 -0
  43. package/dist/client/grapesjs-fonts/src/commands.d.ts +3 -0
  44. package/dist/client/grapesjs-fonts/src/fonts.d.ts +4 -0
  45. package/dist/client/grapesjs-storage-rate-limit/dist/index.d.ts +4 -0
  46. package/dist/client/grapesjs-ui-suggest-classes/dist/index.d.ts +4 -0
  47. package/dist/client/index.html +3 -2
  48. package/dist/client/js/main.js +356 -131
  49. package/dist/client/js/main.js.LICENSE.txt +15 -1
  50. package/dist/client/page.d.ts +2 -0
  51. package/dist/client/silex-lib/src/ts/client/api.d.ts +90 -0
  52. package/dist/client/silex-lib/src/ts/client/assetUrl.d.ts +54 -0
  53. package/dist/client/silex-lib/src/ts/client/config.d.ts +102 -0
  54. package/dist/client/silex-lib/src/ts/client/events.d.ts +23 -0
  55. package/dist/client/silex-lib/src/ts/client/expose.d.ts +8 -0
  56. package/dist/client/silex-lib/src/ts/client/grapesjs/LoginDialog.d.ts +15 -0
  57. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationManager.d.ts +73 -0
  58. package/dist/client/silex-lib/src/ts/client/grapesjs/PublicationUi.d.ts +59 -0
  59. package/dist/client/silex-lib/src/ts/client/grapesjs/blocks.d.ts +1 -0
  60. package/dist/client/silex-lib/src/ts/client/grapesjs/breadcrumbs.d.ts +1 -0
  61. package/dist/client/silex-lib/src/ts/client/grapesjs/css-props.d.ts +6 -0
  62. package/dist/client/silex-lib/src/ts/client/grapesjs/footer.d.ts +2 -0
  63. package/dist/client/silex-lib/src/ts/client/grapesjs/img.d.ts +6 -0
  64. package/dist/client/silex-lib/src/ts/client/grapesjs/index.d.ts +9 -0
  65. package/dist/client/silex-lib/src/ts/client/grapesjs/internal-links.d.ts +1 -0
  66. package/dist/client/silex-lib/src/ts/client/grapesjs/keymaps.d.ts +123 -0
  67. package/dist/client/silex-lib/src/ts/client/grapesjs/new-page-dialog.d.ts +2 -0
  68. package/dist/client/silex-lib/src/ts/client/grapesjs/openImport.d.ts +9 -0
  69. package/dist/client/silex-lib/src/ts/client/grapesjs/page-panel.d.ts +9 -0
  70. package/dist/client/silex-lib/src/ts/client/grapesjs/project-bar.d.ts +21 -0
  71. package/dist/client/silex-lib/src/ts/client/grapesjs/resize-panel.d.ts +1 -0
  72. package/dist/client/silex-lib/src/ts/client/grapesjs/rich-text.d.ts +4 -0
  73. package/dist/client/silex-lib/src/ts/client/grapesjs/semantic.d.ts +1 -0
  74. package/dist/client/silex-lib/src/ts/client/grapesjs/settings-sections.d.ts +16 -0
  75. package/dist/client/silex-lib/src/ts/client/grapesjs/settings.d.ts +4 -0
  76. package/dist/client/silex-lib/src/ts/client/grapesjs/storage.d.ts +2 -0
  77. package/dist/client/silex-lib/src/ts/client/grapesjs/symbolDialogs.d.ts +3 -0
  78. package/dist/client/silex-lib/src/ts/client/grapesjs/view-buttons.d.ts +1 -0
  79. package/dist/client/silex-lib/src/ts/client/index.d.ts +10 -0
  80. package/dist/client/silex-lib/src/ts/client/publication-transformers.d.ts +42 -0
  81. package/dist/client/silex-lib/src/ts/client/publish-custom-code-block.d.ts +4 -0
  82. package/dist/client/silex-lib/src/ts/client/publish-fonts.d.ts +4 -0
  83. package/dist/client/silex-lib/src/ts/client/utils.d.ts +22 -0
  84. package/dist/client/silex-lib/src/ts/constants.d.ts +32 -0
  85. package/dist/client/silex-lib/src/ts/page.d.ts +2 -0
  86. package/dist/client/silex-lib/src/ts/types.d.ts +339 -0
  87. package/dist/client/types.d.ts +339 -0
  88. package/dist/plugins/client/client/events.d.ts +23 -0
  89. package/dist/plugins/client/client/events.js +43 -0
  90. package/dist/plugins/client/client/events.js.map +1 -0
  91. package/dist/plugins/client/plugins/client/template.d.ts +2 -0
  92. package/dist/plugins/client/plugins/client/template.js +234 -0
  93. package/dist/plugins/client/plugins/client/template.js.map +1 -0
  94. package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
  95. package/dist/plugins/client/plugins/client/website-info.js +72 -0
  96. package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
  97. package/dist/plugins/client/types.d.ts +339 -0
  98. package/dist/plugins/client/types.js +80 -0
  99. package/dist/plugins/client/types.js.map +1 -0
  100. package/dist/plugins/server/constants.d.ts +32 -0
  101. package/dist/plugins/server/constants.js +76 -0
  102. package/dist/plugins/server/constants.js.map +1 -0
  103. package/dist/plugins/server/plugins/server/Cache.d.ts +2 -0
  104. package/dist/plugins/server/plugins/server/Cache.js +36 -0
  105. package/dist/plugins/server/plugins/server/Cache.js.map +1 -0
  106. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  107. package/dist/plugins/server/plugins/server/DownloadConnector.js +127 -0
  108. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  109. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +86 -0
  110. package/dist/plugins/server/plugins/server/FtpConnector.js +536 -0
  111. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -0
  112. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +135 -0
  113. package/dist/plugins/server/plugins/server/GitlabConnector.js +649 -0
  114. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -0
  115. package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +16 -0
  116. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js +209 -0
  117. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +1 -0
  118. package/dist/plugins/server/plugins/server/PublicationOptimizer.d.ts +0 -0
  119. package/dist/plugins/server/plugins/server/PublicationOptimizer.js +14 -0
  120. package/dist/plugins/server/plugins/server/PublicationOptimizer.js.map +1 -0
  121. package/dist/plugins/server/plugins/server/SslPlugin.d.ts +1 -0
  122. package/dist/plugins/server/plugins/server/SslPlugin.js +86 -0
  123. package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -0
  124. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +8 -0
  125. package/dist/plugins/server/plugins/server/StaticPlugin.js +45 -0
  126. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -0
  127. package/dist/plugins/server/server/config.d.ts +59 -0
  128. package/dist/plugins/server/server/config.js +181 -0
  129. package/dist/plugins/server/server/config.js.map +1 -0
  130. package/dist/plugins/server/server/connectors/FsHosting.d.ts +14 -0
  131. package/dist/plugins/server/server/connectors/FsHosting.js +66 -0
  132. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -0
  133. package/dist/plugins/server/server/connectors/FsStorage.d.ts +44 -0
  134. package/dist/plugins/server/server/connectors/FsStorage.js +261 -0
  135. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -0
  136. package/dist/plugins/server/server/connectors/connectors.d.ts +86 -0
  137. package/dist/plugins/server/server/connectors/connectors.js +126 -0
  138. package/dist/plugins/server/server/connectors/connectors.js.map +1 -0
  139. package/dist/plugins/server/server/events.d.ts +26 -0
  140. package/dist/plugins/server/server/events.js +31 -0
  141. package/dist/plugins/server/server/events.js.map +1 -0
  142. package/dist/plugins/server/server/jobs.d.ts +12 -0
  143. package/dist/plugins/server/server/jobs.js +79 -0
  144. package/dist/plugins/server/server/jobs.js.map +1 -0
  145. package/dist/plugins/server/server/utils/validation.d.ts +7 -0
  146. package/dist/plugins/server/server/utils/validation.js +37 -0
  147. package/dist/plugins/server/server/utils/validation.js.map +1 -0
  148. package/dist/plugins/server/types.d.ts +339 -0
  149. package/dist/plugins/server/types.js +84 -0
  150. package/dist/plugins/server/types.js.map +1 -0
  151. package/dist/server/constants.js +55 -0
  152. package/dist/server/plugins/server/Cache.js +19 -0
  153. package/dist/server/server/api/api.js +20 -0
  154. package/dist/server/server/api/connectorApi.js +334 -0
  155. package/dist/server/server/api/publicationApi.js +106 -0
  156. package/dist/server/server/api/websiteApi.js +315 -0
  157. package/dist/server/server/cli.js +71 -0
  158. package/dist/server/server/config.js +120 -0
  159. package/dist/server/server/connectors/FsHosting.js +47 -0
  160. package/dist/server/server/connectors/FsStorage.js +228 -0
  161. package/dist/server/server/connectors/connectors.js +88 -0
  162. package/dist/server/server/events.js +14 -0
  163. package/dist/server/server/expose.js +27 -0
  164. package/dist/server/server/express.js +46 -0
  165. package/dist/server/server/index.js +94 -0
  166. package/dist/server/server/jobs.js +50 -0
  167. package/dist/server/server/utils/validation.js +14 -0
  168. package/dist/server/types.js +40 -0
  169. package/package.json +99 -49
  170. package/public/assets/download.png +0 -0
  171. package/public/assets/favicon.ico +0 -0
  172. package/public/assets/favicon.png +0 -0
  173. package/public/assets/ftp.png +0 -0
  174. package/public/assets/gitlab.png +0 -0
  175. package/public/assets/gitlab2.png +0 -0
  176. package/public/assets/laptop.png +0 -0
  177. package/public/assets/logo-silex-small.png +0 -0
  178. package/public/silex.js +22 -23
  179. package/src/css/_variables.scss +24 -20
  180. package/src/css/dialog.scss +35 -2
  181. package/src/css/fonts.scss +31 -0
  182. package/src/css/footer.scss +12 -0
  183. package/src/css/grapesjs-light.scss +180 -0
  184. package/src/css/grapesjs-plugins.scss +227 -0
  185. package/src/css/grapesjs.scss +159 -1
  186. package/src/css/index.scss +12 -1
  187. package/src/css/light.scss +7 -0
  188. package/src/css/loader.scss +2 -0
  189. package/src/css/project-bar.scss +32 -16
  190. package/src/css/silex.scss +79 -5
  191. package/src/css/website-info.scss +14 -0
  192. package/src/html/index.pug +3 -3
  193. package/src/html/templates/includes.pug +0 -1
  194. package/src/ts/client/api.ts +156 -0
  195. package/src/ts/client/assetUrl.test.ts +164 -0
  196. package/src/ts/client/assetUrl.ts +254 -0
  197. package/src/ts/client/config.ts +175 -13
  198. package/src/ts/client/events.ts +43 -0
  199. package/src/ts/client/expose.ts +27 -1
  200. package/src/ts/client/grapesjs/LoginDialog.ts +204 -0
  201. package/src/ts/client/grapesjs/PublicationManager.ts +433 -0
  202. package/src/ts/client/grapesjs/PublicationUi.ts +366 -0
  203. package/src/ts/client/grapesjs/blocks.ts +17 -0
  204. package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
  205. package/src/ts/client/grapesjs/css-props.ts +910 -0
  206. package/src/ts/client/grapesjs/eleventy.ts +30 -7
  207. package/src/ts/client/grapesjs/footer.ts +42 -0
  208. package/src/ts/client/grapesjs/img.ts +147 -0
  209. package/src/ts/client/grapesjs/index.ts +311 -122
  210. package/src/ts/client/grapesjs/internal-links.test.ts +19 -1
  211. package/src/ts/client/grapesjs/internal-links.ts +31 -7
  212. package/src/ts/client/grapesjs/keymaps.ts +207 -0
  213. package/src/ts/client/grapesjs/new-page-dialog.ts +19 -3
  214. package/src/ts/client/grapesjs/openImport.ts +22 -0
  215. package/src/ts/client/grapesjs/page-panel.ts +109 -7
  216. package/src/ts/client/grapesjs/project-bar.ts +133 -72
  217. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  218. package/src/ts/client/grapesjs/rich-text.ts +38 -13
  219. package/src/ts/client/grapesjs/semantic.ts +20 -3
  220. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  221. package/src/ts/client/grapesjs/settings.ts +191 -96
  222. package/src/ts/client/grapesjs/storage.ts +187 -0
  223. package/src/ts/client/grapesjs/symbolDialogs.ts +21 -5
  224. package/src/ts/client/grapesjs/view-buttons.ts +42 -0
  225. package/src/ts/client/index.ts +80 -21
  226. package/src/ts/client/publication-transformers.test.ts +207 -0
  227. package/src/ts/client/publication-transformers.ts +280 -0
  228. package/src/ts/client/publish-custom-code-block.ts +31 -0
  229. package/src/ts/client/publish-fonts.ts +36 -0
  230. package/src/ts/client/utils.ts +70 -1
  231. package/src/ts/constants.ts +78 -0
  232. package/src/ts/externs.ts +17 -0
  233. package/src/ts/page.ts +20 -3
  234. package/src/ts/plugins/client/template.ts +246 -0
  235. package/src/ts/plugins/client/website-info.ts +84 -0
  236. package/src/ts/plugins/server/Cache.ts +32 -0
  237. package/src/ts/plugins/server/DownloadConnector.ts +146 -0
  238. package/src/ts/plugins/server/FtpConnector.test.ts +82 -0
  239. package/src/ts/plugins/server/FtpConnector.ts +621 -0
  240. package/src/ts/plugins/server/GitlabConnector.ts +749 -0
  241. package/src/ts/plugins/server/GitlabHostingConnector.ts +215 -0
  242. package/src/ts/plugins/server/PublicationOptimizer.ts +14 -0
  243. package/src/ts/plugins/server/SslPlugin.ts +84 -0
  244. package/src/ts/plugins/server/StaticPlugin.ts +45 -0
  245. package/src/ts/server/api/api.ts +19 -0
  246. package/src/ts/server/api/connectorApi.ts +464 -0
  247. package/src/ts/server/api/publicationApi.ts +159 -0
  248. package/src/ts/server/api/websiteApi.ts +462 -0
  249. package/src/ts/server/cli.ts +48 -14
  250. package/src/ts/server/config.ts +158 -60
  251. package/src/ts/server/connectors/FsHosting.ts +66 -0
  252. package/src/ts/server/connectors/FsStorage.test.ts +51 -0
  253. package/src/ts/server/connectors/FsStorage.ts +290 -0
  254. package/src/ts/server/connectors/connectors.ts +203 -0
  255. package/src/ts/server/events.ts +37 -0
  256. package/src/ts/server/expose.ts +19 -0
  257. package/src/ts/server/express.ts +57 -5
  258. package/src/ts/server/index.ts +79 -16
  259. package/src/ts/server/jobs.test.ts +75 -0
  260. package/src/ts/server/jobs.ts +89 -0
  261. package/src/ts/server/utils/BackwardCompat.ts +546 -528
  262. package/src/ts/server/utils/validation.ts +34 -0
  263. package/src/ts/types.ts +295 -85
  264. package/.dockerignore +0 -5
  265. package/.editorconfig +0 -14
  266. package/.eslintrc.json +0 -43
  267. package/.github/FUNDING.yml +0 -13
  268. package/.github/workflows/docker-hub-publish.yml +0 -36
  269. package/.github/workflows/npm-publish.yml +0 -19
  270. package/.github/workflows/test.yml +0 -26
  271. package/.nvmrc +0 -1
  272. package/.silex/default/.silex.data.json +0 -1
  273. package/CODE_OF_CONDUCT.md +0 -128
  274. package/CONTRIBUTING.md +0 -131
  275. package/Dockerfile +0 -15
  276. package/directus.silex.js +0 -7
  277. package/dist/constants.js +0 -4
  278. package/dist/events.js +0 -5
  279. package/dist/page.js +0 -15
  280. package/dist/server/cli.js +0 -43
  281. package/dist/server/config.js +0 -70
  282. package/dist/server/express.js +0 -18
  283. package/dist/server/index.js +0 -58
  284. package/dist/types.js +0 -34
  285. package/jest.config.js +0 -10
  286. package/logos/logo_by_ceubri/silex-icon-2018@200px.png +0 -0
  287. package/logos/logo_by_ceubri/silex-icon-2018@4x.png +0 -0
  288. package/logos/logo_by_ceubri/silex-logo-2018-white-transp.pdf +0 -0
  289. package/logos/logo_by_ceubri/silex-logo-2018-white.jpg +0 -0
  290. package/logos/logo_by_ceubri/silex-logo-2018-white.pdf +0 -0
  291. package/logos/logo_by_ceubri/silex-logo-2018-white.png +0 -0
  292. package/logos/logo_by_ceubri/silex-logo-2018-white@0.5x.png +0 -0
  293. package/logos/logo_by_ceubri/silex-logo-2018-white@0.75x.png +0 -0
  294. package/logos/logo_by_ceubri/silex-logo-2018-white@4x.jpg +0 -0
  295. package/logos/logo_by_ceubri/silex-logo-2018-white@4x.png +0 -0
  296. package/logos/logo_by_ceubri/silex-logo-2018.ai +5 -2521
  297. package/logos/logo_by_ceubri/silex-logo-2018.jpg +0 -0
  298. package/logos/logo_by_ceubri/silex-logo-2018.pdf +0 -0
  299. package/logos/logo_by_ceubri/silex-logo-2018.png +0 -0
  300. package/logos/logo_by_ceubri/silex-logo-2018@0.5x.png +0 -0
  301. package/logos/logo_by_ceubri/silex-logo-2018@0.75x.png +0 -0
  302. package/logos/logo_by_ceubri/silex-logo-2018@4x.jpg +0 -0
  303. package/logos/logo_by_ceubri/silex-logo-2018@4x.png +0 -0
  304. package/logos/silexlabs.png +0 -0
  305. package/src/example-client-config.js +0 -47
  306. package/src/plugins/AuthPlugin.js +0 -21
  307. package/src/plugins/Cache.js +0 -11
  308. package/src/plugins/DefaultBackend.js +0 -149
  309. package/src/plugins/ExpressPlugin.js +0 -39
  310. package/src/plugins/HooksPlugin.js +0 -58
  311. package/src/plugins/PublishPlugin.js +0 -69
  312. package/src/plugins/SslPlugin.js +0 -66
  313. package/src/plugins/StaticPlugin.js +0 -48
  314. package/src/plugins/WebsitePlugin.js +0 -207
  315. package/src/ts/client/grapesjs/publish.ts +0 -386
  316. package/src/ts/client/grapesjs/template.ts +0 -166
  317. package/src/ts/events.ts +0 -2
  318. package/tsconfig-server-debug.json +0 -19
  319. package/tsconfig-server-release.json +0 -19
  320. package/tsconfig.jest.json +0 -9
  321. package/tsconfig.json +0 -26
  322. package/webpack.config.js +0 -28
  323. package/webpack.debug.config.js +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitlabConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/GitlabConnector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import GitlabConnector, { GitlabOptions, GitlabSession } from './GitlabConnector';
2
+ import { HostingConnector, ConnectorFile } from '../../server/connectors/connectors';
3
+ import { ConnectorType, WebsiteId, JobData, PublicationJobData } from '../../types';
4
+ import { JobManager } from '../../server/jobs';
5
+ import { ServerConfig } from '../../server/config';
6
+ export default class GitlabHostingConnector extends GitlabConnector implements HostingConnector {
7
+ displayName: string;
8
+ connectorType: ConnectorType;
9
+ constructor(config: ServerConfig, opts: Partial<GitlabOptions>);
10
+ publish(session: GitlabSession, websiteId: WebsiteId, files: ConnectorFile[], { startJob, jobSuccess, jobError }: JobManager): Promise<JobData>;
11
+ getUrl(session: GitlabSession, websiteId: WebsiteId): Promise<string>;
12
+ getAdminUrl(session: GitlabSession, websiteId: WebsiteId): Promise<string>;
13
+ getPageUrl(session: GitlabSession, websiteId: WebsiteId, projectUrl: string): Promise<string>;
14
+ getGitlabJobLogsUrl(session: GitlabSession, websiteId: WebsiteId, job: PublicationJobData, { startJob, jobSuccess, jobError }: JobManager, projectUrl: string, tag: any): Promise<string | null>;
15
+ createTag(session: GitlabSession, websiteId: WebsiteId, job: PublicationJobData, { startJob, jobSuccess, jobError }: JobManager): Promise<string | null>;
16
+ }
@@ -0,0 +1,209 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ /**
23
+ * Gitlab hosting connector
24
+ * @fileoverview Gitlab hosting connector for Silex, connect to the user's Gitlab account to host websites with .gitlab-ci.yml file template for plain html by default
25
+ * @see https://docs.gitlab.com/ee/api/oauth2.html
26
+ * @see https://docs.gitlab.com/ee/user/project/pages/getting_started/pages_ci_cd_template.html
27
+ */
28
+ const dedent_1 = __importDefault(require("dedent"));
29
+ const GitlabConnector_1 = __importDefault(require("./GitlabConnector"));
30
+ const types_1 = require("../../types");
31
+ const promises_1 = require("timers/promises");
32
+ const waitTimeOut = 5000; /* for wait loop in job pages getting */
33
+ const SILEX_OVERWRITE_NOTICE = '# silexOverwrite: true';
34
+ class GitlabHostingConnector extends GitlabConnector_1.default {
35
+ displayName = 'Gitlab hosting';
36
+ connectorType = types_1.ConnectorType.HOSTING;
37
+ constructor(config, opts) {
38
+ super(config, opts);
39
+ // public directory for standard gitlab pages
40
+ this.options.assetsFolder = 'public';
41
+ }
42
+ async publish(session, websiteId, files, { startJob, jobSuccess, jobError }) {
43
+ const job = startJob(`Publishing to ${this.displayName}`);
44
+ job.logs = [[`Publishing to ${this.displayName}`]];
45
+ job.errors = [[]];
46
+ /* Configuration file .gitlab-ci.yml contains template for plain html Gitlab pages*/
47
+ const pathYml = '.gitlab-ci.yml';
48
+ const contentYml = (0, dedent_1.default) `
49
+ ${SILEX_OVERWRITE_NOTICE}
50
+ # You will want to remove these lines if you customize your build process
51
+ # Silex will overwrite this file unless you remove these lines
52
+ # This is the default build process for plain eleventy sites
53
+ image: node:20
54
+ pages:
55
+ stage: deploy
56
+ environment: production
57
+ script:${files.find(file => file.path.includes('.11tydata.')) ? `
58
+ - npx @11ty/eleventy@v3.0.0-alpha.20 --input=public --output=_site
59
+ - mkdir -p public/css public/assets && cp -R public/css public/assets _site/
60
+ - rm -rf public && mv _site public`
61
+ : ''}
62
+ - echo "The site will be deployed to $CI_PAGES_URL"
63
+ artifacts:
64
+ paths:
65
+ - public
66
+ rules:
67
+ - if: '$CI_COMMIT_TAG'
68
+ - if: '$CI_PIPELINE_SOURCE == "trigger"'
69
+ `;
70
+ try {
71
+ const originalCi = await this.readFile(session, websiteId, pathYml);
72
+ if (originalCi.toString().startsWith(SILEX_OVERWRITE_NOTICE)) {
73
+ await this.updateFile(session, websiteId, pathYml, contentYml);
74
+ }
75
+ }
76
+ catch (e) {
77
+ // If the file .gitlab-ci.yml does not exist, create it, otherwise do nothing (do not overwriting existing one)
78
+ if (e.statusCode === 404 || e.httpStatusCode === 404 || e.message.endsWith('A file with this name doesn\'t exist')) {
79
+ await this.createFile(session, websiteId, pathYml, contentYml);
80
+ }
81
+ else {
82
+ jobError(job.jobId, e.message);
83
+ }
84
+ }
85
+ // publishing all files for website
86
+ // Do not await for the result, return the job and continue the publication in the background
87
+ this.writeAssets(session, websiteId, files, async ({ status, message }) => {
88
+ // Update the job status
89
+ if (status === types_1.JobStatus.SUCCESS) {
90
+ /* Squash and tag the commits */
91
+ const successTag = await this.createTag(session, websiteId, job, { startJob, jobSuccess, jobError });
92
+ if (!successTag) {
93
+ // jobError will have been called in createTag
94
+ return;
95
+ }
96
+ try {
97
+ job.message = 'Getting the website URL...';
98
+ job.logs[0].push(job.message);
99
+ const gitlabUrl = await this.getUrl(session, websiteId);
100
+ job.logs[0].push(`Website URL: ${gitlabUrl}`);
101
+ job.message = 'Getting the admin URL...';
102
+ job.logs[0].push(job.message);
103
+ const adminUrl = await this.getAdminUrl(session, websiteId);
104
+ job.logs[0].push(`Admin URL: ${adminUrl}`);
105
+ job.message = 'Getting the page URL...';
106
+ job.logs[0].push(job.message);
107
+ const pageUrl = await this.getPageUrl(session, websiteId, adminUrl);
108
+ job.logs[0].push(`Page URL: ${pageUrl}`);
109
+ job.message = 'Getting the deployment logs URL...';
110
+ job.logs[0].push(job.message);
111
+ const gitlabJobLogsUrl = await this.getGitlabJobLogsUrl(session, websiteId, job, { startJob, jobSuccess, jobError }, adminUrl, successTag);
112
+ // Because of the GitLab policy, this can be null (and we suggest the user to verify their account)
113
+ if (!gitlabJobLogsUrl) {
114
+ let errorMessage = 'Could not retrieve the deployment logs URL.';
115
+ if (this.isUsingOfficialInstance()) {
116
+ const verifyURL = 'https://gitlab.com/-/identity_verification';
117
+ errorMessage +=
118
+ `<div class="notice">
119
+ If your GitLab account is recent, you may need to verify it <a href="${verifyURL}" target="_blank">here</a>
120
+ in order to be able to use pipelines (this is GitLab's policy, not Silex's).
121
+ </div>`;
122
+ }
123
+ throw new Error(errorMessage);
124
+ }
125
+ job.logs[0].push(`Deployment logs URL: ${gitlabJobLogsUrl}`);
126
+ const message = `
127
+ <p><a href="${gitlabUrl}" target="_blank">Your website will soon be live here</a>.</p>
128
+ <p>Changes may take a few minutes to appear, <a href="${gitlabJobLogsUrl}" target="_blank">follow deployment here</a>.</p>
129
+ <p>Manage <a href="${pageUrl}" target="_blank">GitLab Pages settings</a>.</p>
130
+ `;
131
+ job.logs[0].push(message);
132
+ jobSuccess(job.jobId, message);
133
+ }
134
+ catch (error) {
135
+ console.error('Error during getting the website URLs:', error.message);
136
+ jobError(job.jobId, `Failed to get the website URLs: ${error.message}`);
137
+ }
138
+ }
139
+ else if (status === types_1.JobStatus.ERROR) {
140
+ job.errors[0].push(message);
141
+ jobError(job.jobId, message);
142
+ }
143
+ else {
144
+ // Update the job status while uploading files
145
+ job.status = status;
146
+ job.message = message;
147
+ job.logs[0].push(message);
148
+ }
149
+ })
150
+ .catch(e => {
151
+ console.error('Error uploading files to gitlab:', e.message);
152
+ jobError(job.jobId, `Failed to upload files: ${e.message}`);
153
+ });
154
+ return job;
155
+ }
156
+ /* Get and return Url Gitlab Pages */
157
+ async getUrl(session, websiteId) {
158
+ const response = await this.callApi(session, `api/v4/projects/${websiteId}/pages`, 'GET');
159
+ return response.url;
160
+ }
161
+ async getAdminUrl(session, websiteId) {
162
+ const projectInfo = await this.callApi(session, `api/v4/projects/${websiteId}`, 'GET');
163
+ return projectInfo.web_url;
164
+ }
165
+ async getPageUrl(session, websiteId, projectUrl) {
166
+ return `${projectUrl}/pages`;
167
+ }
168
+ // waiting for the job corresponding to the current tag
169
+ async getGitlabJobLogsUrl(session, websiteId, job, { startJob, jobSuccess, jobError }, projectUrl, tag) {
170
+ const t0 = Date.now();
171
+ do {
172
+ const jobs = await this.callApi(session, `api/v4/projects/${websiteId}/jobs`, 'GET');
173
+ if (!jobs.length)
174
+ return null;
175
+ if (jobs[0].ref === tag) {
176
+ return `${projectUrl}/-/jobs/${jobs[0].id}`;
177
+ }
178
+ await (0, promises_1.setTimeout)(waitTimeOut);
179
+ } while ((Date.now() - t0) < this.options.timeOut);
180
+ // failed in timelaps allowed (avoiding infinite loop)
181
+ jobError(job.jobId, 'Failed to get job id');
182
+ job.message = 'Unable to get job id';
183
+ job.logs[0].push(job.message);
184
+ return `${projectUrl}/-/jobs/`;
185
+ }
186
+ async createTag(session, websiteId, job, { startJob, jobSuccess, jobError }) {
187
+ const projectId = websiteId; // Assuming websiteId corresponds to GitLab project ID
188
+ const newTag = '_silex_' + Date.now();
189
+ // Create a new tag
190
+ try {
191
+ job.message = `Creating new tag ${newTag}...`;
192
+ job.logs[0].push(job.message);
193
+ await this.callApi(session, `api/v4/projects/${projectId}/repository/tags`, 'POST', {
194
+ tag_name: newTag,
195
+ ref: 'main',
196
+ message: 'Publication from Silex',
197
+ });
198
+ }
199
+ catch (error) {
200
+ console.error('Error during creating new tag:', error.message);
201
+ jobError(job.jobId, `Failed to create new tag: ${error.message}`);
202
+ return null;
203
+ }
204
+ // Return new tag
205
+ return newTag;
206
+ }
207
+ }
208
+ exports.default = GitlabHostingConnector;
209
+ //# sourceMappingURL=GitlabHostingConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitlabHostingConnector.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/GitlabHostingConnector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ //import { minify } from 'html-minifier'
2
+ //const optim = files.map(file => ({
3
+ // ...file,
4
+ // html: minify(file.html, {
5
+ // continueOnParseError: true,
6
+ // collapseInlineTagWhitespace: true,
7
+ // collapseWhitespace: true,
8
+ // minifyCSS: true,
9
+ // minifyJS: true,
10
+ // removeScriptTypeAttributes: true,
11
+ // removeStyleLinkTypeAttributes: true,
12
+ // }).trim(),
13
+ //}))
14
+ //# sourceMappingURL=PublicationOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublicationOptimizer.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/PublicationOptimizer.ts"],"names":[],"mappings":"AACA,wCAAwC;AACxC,oCAAoC;AACpC,YAAY;AACZ,6BAA6B;AAC7B,iCAAiC;AACjC,wCAAwC;AACxC,+BAA+B;AAC/B,sBAAsB;AACtB,qBAAqB;AACrB,uCAAuC;AACvC,0CAA0C;AAC1C,cAAc;AACd,KAAK"}
@@ -0,0 +1 @@
1
+ export default function (config: any, opts?: {}): Promise<void>;
@@ -0,0 +1,86 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.default = default_1;
23
+ const express_1 = __importDefault(require("express"));
24
+ const fs_1 = require("fs");
25
+ const https_1 = require("https");
26
+ const express_force_ssl_1 = __importDefault(require("express-force-ssl"));
27
+ const events_1 = require("../../server/events");
28
+ // interface SslOptions {
29
+ // forceHttps?: boolean
30
+ // trustXFPHeader?: boolean
31
+ // privateKey?: string
32
+ // certificate?: string
33
+ // sslPort?: string
34
+ // }
35
+ async function default_1(config, opts = {}) {
36
+ // Options with defaults
37
+ const options = {
38
+ forceHttps: process.env.SILEX_FORCE_HTTPS === 'true',
39
+ trustXFPHeader: process.env.SILEX_FORCE_HTTPS_TRUST_XFP_HEADER === 'true',
40
+ privateKey: process.env.SILEX_SSL_PRIVATE_KEY,
41
+ certificate: process.env.SILEX_SSL_CERTIFICATE,
42
+ sslPort: process.env.SSL_PORT || '443',
43
+ ...opts,
44
+ };
45
+ // Add routes on silex startup
46
+ config.on(events_1.ServerEvent.STARTUP_START, ({ app }) => {
47
+ const router = express_1.default.Router();
48
+ // SSL
49
+ // force ssl if the env var SILEX_FORCE_HTTPS is set
50
+ if (options.forceHttps) {
51
+ console.info('> [SslPlugin] Force SSL option is enabled');
52
+ app.set('forceSSLOptions', {
53
+ trustXFPHeader: !!options.trustXFPHeader,
54
+ });
55
+ router.use(express_force_ssl_1.default);
56
+ }
57
+ else {
58
+ console.info('> [SslPlugin] Force SSL option is disabled, env var SILEX_FORCE_HTTPS not set');
59
+ }
60
+ // SSL certificate
61
+ if (options.privateKey && options.certificate) {
62
+ console.info('> [SslPlugin] SSL certificate is enabled, found certificate:', options.certificate);
63
+ try {
64
+ const privateKey = (0, fs_1.readFileSync)(options.privateKey).toString();
65
+ const certificate = (0, fs_1.readFileSync)(options.certificate).toString();
66
+ const sslServerOptions = {
67
+ key: privateKey,
68
+ cert: certificate,
69
+ requestCert: true,
70
+ rejectUnauthorized: false,
71
+ };
72
+ (0, https_1.createServer)(sslServerOptions, this).listen(options.sslPort, () => {
73
+ console.info('> [SslPlugin] Listening on port ', options.sslPort);
74
+ });
75
+ }
76
+ catch (e) {
77
+ console.error('> [SslPlugin] Load certificate failed.', e);
78
+ }
79
+ }
80
+ else {
81
+ console.info('> [SslPlugin] Certificate disabled, env vars SILEX_SSL_CERTIFICATE and SILEX_SSL_PRIVATE_KEY not set');
82
+ }
83
+ app.use(router);
84
+ });
85
+ }
86
+ //# sourceMappingURL=SslPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SslPlugin.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/SslPlugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AAgBH,4BAoDC;AAlED,sDAA6B;AAC7B,2BAAiC;AACjC,iCAAoC;AACpC,0EAAwC;AACxC,gDAAiD;AAEjD,yBAAyB;AACzB,yBAAyB;AACzB,6BAA6B;AAC7B,wBAAwB;AACxB,yBAAyB;AACzB,qBAAqB;AACrB,IAAI;AAEW,KAAK,oBAAU,MAAM,EAAE,IAAI,GAAG,EAAE;IAC7C,wBAAwB;IACxB,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM;QACpD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,KAAK,MAAM;QACzE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAC7C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK;QACtC,GAAG,IAAI;KACR,CAAA;IAED,8BAA8B;IAC9B,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,aAAa,EAAE,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAE/B,MAAM;QACN,oDAAoD;QACpD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;YACzD,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE;gBACzB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc;aACzC,CAAC,CAAA;YACF,MAAM,CAAC,GAAG,CAAC,2BAAQ,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;QAC/F,CAAC;QAED,kBAAkB;QAClB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,8DAA8D,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;YACjG,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAA,iBAAY,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAC9D,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAEhE,MAAM,gBAAgB,GAAG;oBACvB,GAAG,EAAE,UAAU;oBACf,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,IAAI;oBACjB,kBAAkB,EAAE,KAAK;iBAC1B,CAAA;gBAED,IAAA,oBAAY,EAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE;oBAChE,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;gBACnE,CAAC,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAA;QACtH,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ type StaticOptions = {
2
+ routes: {
3
+ path: string;
4
+ route: string;
5
+ }[];
6
+ };
7
+ export default function (config: any, options?: StaticOptions): Promise<void>;
8
+ export {};
@@ -0,0 +1,45 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.default = default_1;
23
+ const express_1 = __importDefault(require("express"));
24
+ const serve_static_1 = __importDefault(require("serve-static"));
25
+ const Cache_1 = require("./Cache");
26
+ const events_1 = require("../../server/events");
27
+ async function default_1(config, options = { routes: [] }) {
28
+ if (!options.routes)
29
+ throw new Error('The config for static module has no `routes` attribute');
30
+ console.info(`> [StaticPlugin] Serving ${options.routes.length} static files`);
31
+ config.on(events_1.ServerEvent.STARTUP_START, ({ app }) => {
32
+ const router = express_1.default.Router();
33
+ options.routes
34
+ .forEach(folder => {
35
+ if (!folder.route)
36
+ throw new Error('The config for static module has no `route` attribute');
37
+ if (!folder.path)
38
+ throw new Error('The config for static module has no `path` attribute');
39
+ console.info(`> [StaticPlugin] Serving static files from ${folder.path} on ${folder.route}`);
40
+ router.use(folder.route, (0, serve_static_1.default)(folder.path));
41
+ });
42
+ app.use(Cache_1.withCache, router);
43
+ });
44
+ }
45
+ //# sourceMappingURL=StaticPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticPlugin.js","sourceRoot":"","sources":["../../../../../src/ts/plugins/server/StaticPlugin.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;AAcH,4BAeC;AA3BD,sDAA6B;AAC7B,gEAAsC;AACtC,mCAAmC;AACnC,gDAAiD;AASlC,KAAK,oBAAU,MAAM,EAAE,UAAyB,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3E,IAAG,CAAC,OAAO,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC7F,OAAO,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,MAAM,CAAC,MAAM,eAAe,CAAC,CAAA;IAE9E,MAAM,CAAC,EAAE,CAAC,oBAAW,CAAC,aAAa,EAAE,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;QAC/B,OAAO,CAAC,MAAM;aACX,OAAO,CAAC,MAAM,CAAC,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;YAC3F,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACzF,OAAO,CAAC,IAAI,CAAC,8CAA8C,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,CAAA;YAC5F,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;QACJ,GAAG,CAAC,GAAG,CAAC,iBAAS,EAAG,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @fileoverview This is where the default config is defined. Also use this object as an event emitter to listen to Silex events
3
+ * The values can be overriden with env vars or before passing the config to Silex
4
+ */
5
+ /**
6
+ * @class default config for Silex server
7
+ */
8
+ import { Config, Plugin } from '@silexlabs/silex-plugins';
9
+ import { Application } from 'express';
10
+ import { HostingConnector, StorageConnector } from './connectors/connectors';
11
+ import { Connector } from './connectors/connectors';
12
+ import { ConnectorType } from '../types';
13
+ /**
14
+ * Config types definitions
15
+ */
16
+ export declare class ServerConfig extends Config {
17
+ expressOptions: {
18
+ jsonLimit: string;
19
+ textLimit: string;
20
+ urlencodedLimit: string;
21
+ sessionName: string;
22
+ sessionSecret: string;
23
+ cors: string;
24
+ };
25
+ port: string;
26
+ debug: boolean;
27
+ url: string;
28
+ userConfigPath: Plugin | undefined;
29
+ configFilePath: Plugin;
30
+ getConnectors(type?: ConnectorType | string | null): Connector[];
31
+ private storageConnectors;
32
+ addStorageConnector(storage: StorageConnector | StorageConnector[]): void;
33
+ setStorageConnectors(storageConnectors: StorageConnector[]): void;
34
+ getStorageConnectors(): StorageConnector[];
35
+ private hostingConnectors;
36
+ addHostingConnector(hosting: HostingConnector | HostingConnector[]): void;
37
+ setHostingConnectors(hostings: HostingConnector[]): void;
38
+ getHostingConnectors(): HostingConnector[];
39
+ /**
40
+ * Add routes to serve the client config file
41
+ */
42
+ addRoutes(app: Application): Promise<void>;
43
+ /**
44
+ * Load config files
45
+ * This is the main config file and the user config file
46
+ */
47
+ loadConfigFiles(): Promise<void>;
48
+ /**
49
+ * Load user config file
50
+ * This is the config file passed as env var CONFIG
51
+ */
52
+ loadUserConfig(): Promise<void>;
53
+ /**
54
+ * Load .silex.js in the root folder
55
+ * This is the main config file
56
+ */
57
+ loadSilexConfig(): Promise<void>;
58
+ initDefaultConnectors(): Promise<void>;
59
+ }