@silexlabs/silex 3.0.0-alpha.100

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 (282) hide show
  1. package/.env.default +19 -0
  2. package/.silex.js +37 -0
  3. package/LICENSE +661 -0
  4. package/README.md +96 -0
  5. package/dist/client/client/api.d.ts +85 -0
  6. package/dist/client/client/assetUrl.d.ts +51 -0
  7. package/dist/client/client/config.d.ts +58 -0
  8. package/dist/client/client/events.d.ts +14 -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 +72 -0
  12. package/dist/client/client/grapesjs/PublicationUi.d.ts +62 -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/footer.d.ts +2 -0
  16. package/dist/client/client/grapesjs/index.d.ts +5 -0
  17. package/dist/client/client/grapesjs/internal-links.d.ts +1 -0
  18. package/dist/client/client/grapesjs/new-page-dialog.d.ts +2 -0
  19. package/dist/client/client/grapesjs/openImport.d.ts +9 -0
  20. package/dist/client/client/grapesjs/page-panel.d.ts +3 -0
  21. package/dist/client/client/grapesjs/project-bar.d.ts +1 -0
  22. package/dist/client/client/grapesjs/rich-text.d.ts +1 -0
  23. package/dist/client/client/grapesjs/semantic.d.ts +1 -0
  24. package/dist/client/client/grapesjs/settings.d.ts +2 -0
  25. package/dist/client/client/grapesjs/storage.d.ts +1 -0
  26. package/dist/client/client/grapesjs/symbolDialogs.d.ts +3 -0
  27. package/dist/client/client/index.d.ts +5 -0
  28. package/dist/client/client/publication-transformers.d.ts +41 -0
  29. package/dist/client/client/utils.d.ts +2 -0
  30. package/dist/client/constants.d.ts +29 -0
  31. package/dist/client/css/admin.css +4491 -0
  32. package/dist/client/index.html +9 -0
  33. package/dist/client/js/main.js +321 -0
  34. package/dist/client/js/main.js.LICENSE.txt +24 -0
  35. package/dist/client/page.d.ts +2 -0
  36. package/dist/client/types.d.ts +334 -0
  37. package/dist/plugins/client/client/api.d.ts +85 -0
  38. package/dist/plugins/client/client/api.js +114 -0
  39. package/dist/plugins/client/client/api.js.map +1 -0
  40. package/dist/plugins/client/client/assetUrl.d.ts +51 -0
  41. package/dist/plugins/client/client/assetUrl.js +224 -0
  42. package/dist/plugins/client/client/assetUrl.js.map +1 -0
  43. package/dist/plugins/client/client/config.d.ts +58 -0
  44. package/dist/plugins/client/client/config.js +90 -0
  45. package/dist/plugins/client/client/config.js.map +1 -0
  46. package/dist/plugins/client/client/events.d.ts +14 -0
  47. package/dist/plugins/client/client/events.js +34 -0
  48. package/dist/plugins/client/client/events.js.map +1 -0
  49. package/dist/plugins/client/client/grapesjs/LoginDialog.d.ts +15 -0
  50. package/dist/plugins/client/client/grapesjs/LoginDialog.js +195 -0
  51. package/dist/plugins/client/client/grapesjs/LoginDialog.js.map +1 -0
  52. package/dist/plugins/client/client/grapesjs/PublicationManager.d.ts +72 -0
  53. package/dist/plugins/client/client/grapesjs/PublicationManager.js +356 -0
  54. package/dist/plugins/client/client/grapesjs/PublicationManager.js.map +1 -0
  55. package/dist/plugins/client/client/grapesjs/PublicationUi.d.ts +62 -0
  56. package/dist/plugins/client/client/grapesjs/PublicationUi.js +336 -0
  57. package/dist/plugins/client/client/grapesjs/PublicationUi.js.map +1 -0
  58. package/dist/plugins/client/client/grapesjs/blocks.d.ts +1 -0
  59. package/dist/plugins/client/client/grapesjs/blocks.js +37 -0
  60. package/dist/plugins/client/client/grapesjs/blocks.js.map +1 -0
  61. package/dist/plugins/client/client/grapesjs/breadcrumbs.d.ts +1 -0
  62. package/dist/plugins/client/client/grapesjs/breadcrumbs.js +75 -0
  63. package/dist/plugins/client/client/grapesjs/breadcrumbs.js.map +1 -0
  64. package/dist/plugins/client/client/grapesjs/footer.d.ts +2 -0
  65. package/dist/plugins/client/client/grapesjs/footer.js +28 -0
  66. package/dist/plugins/client/client/grapesjs/footer.js.map +1 -0
  67. package/dist/plugins/client/client/grapesjs/index.d.ts +5 -0
  68. package/dist/plugins/client/client/grapesjs/index.js +313 -0
  69. package/dist/plugins/client/client/grapesjs/index.js.map +1 -0
  70. package/dist/plugins/client/client/grapesjs/internal-links.d.ts +1 -0
  71. package/dist/plugins/client/client/grapesjs/internal-links.js +219 -0
  72. package/dist/plugins/client/client/grapesjs/internal-links.js.map +1 -0
  73. package/dist/plugins/client/client/grapesjs/new-page-dialog.d.ts +2 -0
  74. package/dist/plugins/client/client/grapesjs/new-page-dialog.js +83 -0
  75. package/dist/plugins/client/client/grapesjs/new-page-dialog.js.map +1 -0
  76. package/dist/plugins/client/client/grapesjs/openImport.d.ts +9 -0
  77. package/dist/plugins/client/client/grapesjs/openImport.js +74 -0
  78. package/dist/plugins/client/client/grapesjs/openImport.js.map +1 -0
  79. package/dist/plugins/client/client/grapesjs/page-panel.d.ts +3 -0
  80. package/dist/plugins/client/client/grapesjs/page-panel.js +113 -0
  81. package/dist/plugins/client/client/grapesjs/page-panel.js.map +1 -0
  82. package/dist/plugins/client/client/grapesjs/project-bar.d.ts +1 -0
  83. package/dist/plugins/client/client/grapesjs/project-bar.js +104 -0
  84. package/dist/plugins/client/client/grapesjs/project-bar.js.map +1 -0
  85. package/dist/plugins/client/client/grapesjs/rich-text.d.ts +1 -0
  86. package/dist/plugins/client/client/grapesjs/rich-text.js +31 -0
  87. package/dist/plugins/client/client/grapesjs/rich-text.js.map +1 -0
  88. package/dist/plugins/client/client/grapesjs/semantic.d.ts +1 -0
  89. package/dist/plugins/client/client/grapesjs/semantic.js +110 -0
  90. package/dist/plugins/client/client/grapesjs/semantic.js.map +1 -0
  91. package/dist/plugins/client/client/grapesjs/settings.d.ts +2 -0
  92. package/dist/plugins/client/client/grapesjs/settings.js +198 -0
  93. package/dist/plugins/client/client/grapesjs/settings.js.map +1 -0
  94. package/dist/plugins/client/client/grapesjs/storage.d.ts +1 -0
  95. package/dist/plugins/client/client/grapesjs/storage.js +126 -0
  96. package/dist/plugins/client/client/grapesjs/storage.js.map +1 -0
  97. package/dist/plugins/client/client/grapesjs/symbolDialogs.d.ts +3 -0
  98. package/dist/plugins/client/client/grapesjs/symbolDialogs.js +36 -0
  99. package/dist/plugins/client/client/grapesjs/symbolDialogs.js.map +1 -0
  100. package/dist/plugins/client/client/publication-transformers.d.ts +41 -0
  101. package/dist/plugins/client/client/publication-transformers.js +238 -0
  102. package/dist/plugins/client/client/publication-transformers.js.map +1 -0
  103. package/dist/plugins/client/client/utils.d.ts +2 -0
  104. package/dist/plugins/client/client/utils.js +25 -0
  105. package/dist/plugins/client/client/utils.js.map +1 -0
  106. package/dist/plugins/client/constants.d.ts +29 -0
  107. package/dist/plugins/client/constants.js +46 -0
  108. package/dist/plugins/client/constants.js.map +1 -0
  109. package/dist/plugins/client/page.d.ts +2 -0
  110. package/dist/plugins/client/page.js +31 -0
  111. package/dist/plugins/client/page.js.map +1 -0
  112. package/dist/plugins/client/plugins/client/11ty.d.ts +17 -0
  113. package/dist/plugins/client/plugins/client/11ty.js +86 -0
  114. package/dist/plugins/client/plugins/client/11ty.js.map +1 -0
  115. package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +2 -0
  116. package/dist/plugins/client/plugins/client/publicationRenderer.js +170 -0
  117. package/dist/plugins/client/plugins/client/publicationRenderer.js.map +1 -0
  118. package/dist/plugins/client/plugins/client/template.d.ts +2 -0
  119. package/dist/plugins/client/plugins/client/template.js +183 -0
  120. package/dist/plugins/client/plugins/client/template.js.map +1 -0
  121. package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
  122. package/dist/plugins/client/plugins/client/website-info.js +72 -0
  123. package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
  124. package/dist/plugins/client/types.d.ts +334 -0
  125. package/dist/plugins/client/types.js +74 -0
  126. package/dist/plugins/client/types.js.map +1 -0
  127. package/dist/plugins/server/constants.d.ts +29 -0
  128. package/dist/plugins/server/constants.js +49 -0
  129. package/dist/plugins/server/constants.js.map +1 -0
  130. package/dist/plugins/server/plugins/server/AuthPlugin.d.ts +1 -0
  131. package/dist/plugins/server/plugins/server/AuthPlugin.js +40 -0
  132. package/dist/plugins/server/plugins/server/AuthPlugin.js.map +1 -0
  133. package/dist/plugins/server/plugins/server/Cache.d.ts +2 -0
  134. package/dist/plugins/server/plugins/server/Cache.js +32 -0
  135. package/dist/plugins/server/plugins/server/Cache.js.map +1 -0
  136. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +29 -0
  137. package/dist/plugins/server/plugins/server/DownloadConnector.js +129 -0
  138. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +1 -0
  139. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +86 -0
  140. package/dist/plugins/server/plugins/server/FtpConnector.js +526 -0
  141. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -0
  142. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +87 -0
  143. package/dist/plugins/server/plugins/server/GitlabConnector.js +564 -0
  144. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -0
  145. package/dist/plugins/server/plugins/server/PublicationOptimizer.d.ts +0 -0
  146. package/dist/plugins/server/plugins/server/PublicationOptimizer.js +14 -0
  147. package/dist/plugins/server/plugins/server/PublicationOptimizer.js.map +1 -0
  148. package/dist/plugins/server/plugins/server/SslPlugin.d.ts +1 -0
  149. package/dist/plugins/server/plugins/server/SslPlugin.js +86 -0
  150. package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -0
  151. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +1 -0
  152. package/dist/plugins/server/plugins/server/StaticPlugin.js +78 -0
  153. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -0
  154. package/dist/plugins/server/server/config.d.ts +59 -0
  155. package/dist/plugins/server/server/config.js +181 -0
  156. package/dist/plugins/server/server/config.js.map +1 -0
  157. package/dist/plugins/server/server/connectors/FsHosting.d.ts +13 -0
  158. package/dist/plugins/server/server/connectors/FsHosting.js +54 -0
  159. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -0
  160. package/dist/plugins/server/server/connectors/FsStorage.d.ts +43 -0
  161. package/dist/plugins/server/server/connectors/FsStorage.js +257 -0
  162. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -0
  163. package/dist/plugins/server/server/connectors/connectors.d.ts +87 -0
  164. package/dist/plugins/server/server/connectors/connectors.js +127 -0
  165. package/dist/plugins/server/server/connectors/connectors.js.map +1 -0
  166. package/dist/plugins/server/server/events.d.ts +26 -0
  167. package/dist/plugins/server/server/events.js +31 -0
  168. package/dist/plugins/server/server/events.js.map +1 -0
  169. package/dist/plugins/server/server/jobs.d.ts +12 -0
  170. package/dist/plugins/server/server/jobs.js +77 -0
  171. package/dist/plugins/server/server/jobs.js.map +1 -0
  172. package/dist/plugins/server/server/utils/validation.d.ts +7 -0
  173. package/dist/plugins/server/server/utils/validation.js +38 -0
  174. package/dist/plugins/server/server/utils/validation.js.map +1 -0
  175. package/dist/plugins/server/types.d.ts +334 -0
  176. package/dist/plugins/server/types.js +78 -0
  177. package/dist/plugins/server/types.js.map +1 -0
  178. package/dist/server/constants.js +29 -0
  179. package/dist/server/plugins/server/Cache.js +15 -0
  180. package/dist/server/server/api/api.js +20 -0
  181. package/dist/server/server/api/connectorApi.js +216 -0
  182. package/dist/server/server/api/publicationApi.js +108 -0
  183. package/dist/server/server/api/websiteApi.js +296 -0
  184. package/dist/server/server/cli.js +68 -0
  185. package/dist/server/server/config.js +120 -0
  186. package/dist/server/server/connectors/FsHosting.js +35 -0
  187. package/dist/server/server/connectors/FsStorage.js +225 -0
  188. package/dist/server/server/connectors/connectors.js +89 -0
  189. package/dist/server/server/events.js +14 -0
  190. package/dist/server/server/expose.js +27 -0
  191. package/dist/server/server/express.js +47 -0
  192. package/dist/server/server/index.js +90 -0
  193. package/dist/server/server/jobs.js +48 -0
  194. package/dist/server/server/utils/validation.js +15 -0
  195. package/dist/server/types.js +34 -0
  196. package/package.json +209 -0
  197. package/public/assets/container.png +0 -0
  198. package/public/assets/favicon.png +0 -0
  199. package/public/assets/logo-silex-small.png +0 -0
  200. package/public/robots.txt +2 -0
  201. package/public/silex.js +24 -0
  202. package/src/css/_mixins.scss +8 -0
  203. package/src/css/_variables.scss +33 -0
  204. package/src/css/dialog.scss +41 -0
  205. package/src/css/footer.scss +12 -0
  206. package/src/css/grapesjs-light.scss +180 -0
  207. package/src/css/grapesjs.scss +152 -0
  208. package/src/css/index.scss +32 -0
  209. package/src/css/light.scss +7 -0
  210. package/src/css/loader.scss +12 -0
  211. package/src/css/page-panel.scss +65 -0
  212. package/src/css/project-bar.scss +102 -0
  213. package/src/css/silex.scss +189 -0
  214. package/src/css/website-info.scss +14 -0
  215. package/src/html/debug.pug +8 -0
  216. package/src/html/index.pug +39 -0
  217. package/src/html/templates/includes.pug +1 -0
  218. package/src/html/templates/workspace.pug +2 -0
  219. package/src/ts/client/api.ts +144 -0
  220. package/src/ts/client/assetUrl.test.ts +125 -0
  221. package/src/ts/client/assetUrl.ts +235 -0
  222. package/src/ts/client/config.ts +105 -0
  223. package/src/ts/client/events.ts +34 -0
  224. package/src/ts/client/expose.ts +30 -0
  225. package/src/ts/client/grapesjs/LoginDialog.ts +204 -0
  226. package/src/ts/client/grapesjs/PublicationManager.ts +370 -0
  227. package/src/ts/client/grapesjs/PublicationUi.ts +342 -0
  228. package/src/ts/client/grapesjs/blocks.ts +37 -0
  229. package/src/ts/client/grapesjs/breadcrumbs.ts +79 -0
  230. package/src/ts/client/grapesjs/eleventy.ts +47 -0
  231. package/src/ts/client/grapesjs/footer.ts +27 -0
  232. package/src/ts/client/grapesjs/index.ts +335 -0
  233. package/src/ts/client/grapesjs/internal-links.test.ts +105 -0
  234. package/src/ts/client/grapesjs/internal-links.ts +225 -0
  235. package/src/ts/client/grapesjs/new-page-dialog.ts +90 -0
  236. package/src/ts/client/grapesjs/openImport.ts +81 -0
  237. package/src/ts/client/grapesjs/page-panel.ts +118 -0
  238. package/src/ts/client/grapesjs/project-bar.ts +107 -0
  239. package/src/ts/client/grapesjs/rich-text.ts +33 -0
  240. package/src/ts/client/grapesjs/semantic.ts +114 -0
  241. package/src/ts/client/grapesjs/settings.ts +208 -0
  242. package/src/ts/client/grapesjs/storage.ts +121 -0
  243. package/src/ts/client/grapesjs/symbolDialogs.ts +38 -0
  244. package/src/ts/client/index.ts +98 -0
  245. package/src/ts/client/publication-transformers.test.ts +199 -0
  246. package/src/ts/client/publication-transformers.ts +263 -0
  247. package/src/ts/client/utils.ts +28 -0
  248. package/src/ts/constants.ts +52 -0
  249. package/src/ts/externs.ts +18 -0
  250. package/src/ts/page.ts +31 -0
  251. package/src/ts/plugins/client/11ty.ts +104 -0
  252. package/src/ts/plugins/client/publicationRenderer.ts +174 -0
  253. package/src/ts/plugins/client/template.ts +192 -0
  254. package/src/ts/plugins/client/website-info.ts +84 -0
  255. package/src/ts/plugins/server/AuthPlugin.ts +38 -0
  256. package/src/ts/plugins/server/Cache.ts +28 -0
  257. package/src/ts/plugins/server/DownloadConnector.ts +148 -0
  258. package/src/ts/plugins/server/FtpConnector.test.ts +82 -0
  259. package/src/ts/plugins/server/FtpConnector.ts +609 -0
  260. package/src/ts/plugins/server/GitlabConnector.ts +644 -0
  261. package/src/ts/plugins/server/PublicationOptimizer.ts +14 -0
  262. package/src/ts/plugins/server/SslPlugin.ts +84 -0
  263. package/src/ts/plugins/server/StaticPlugin.ts +79 -0
  264. package/src/ts/server/api/api.ts +19 -0
  265. package/src/ts/server/api/connectorApi.ts +345 -0
  266. package/src/ts/server/api/publicationApi.ts +159 -0
  267. package/src/ts/server/api/websiteApi.ts +432 -0
  268. package/src/ts/server/cli.ts +65 -0
  269. package/src/ts/server/config.ts +189 -0
  270. package/src/ts/server/connectors/FsHosting.ts +60 -0
  271. package/src/ts/server/connectors/FsStorage.test.ts +51 -0
  272. package/src/ts/server/connectors/FsStorage.ts +261 -0
  273. package/src/ts/server/connectors/connectors.ts +203 -0
  274. package/src/ts/server/events.ts +37 -0
  275. package/src/ts/server/expose.ts +19 -0
  276. package/src/ts/server/express.ts +70 -0
  277. package/src/ts/server/index.ts +100 -0
  278. package/src/ts/server/jobs.test.ts +75 -0
  279. package/src/ts/server/jobs.ts +87 -0
  280. package/src/ts/server/utils/BackwardCompat.ts +552 -0
  281. package/src/ts/server/utils/validation.ts +34 -0
  282. package/src/ts/types.ts +339 -0
@@ -0,0 +1,564 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ const constants_1 = require("../../constants");
46
+ const connectors_1 = require("../../server/connectors/connectors");
47
+ const types_1 = require("../../types");
48
+ const node_fetch_1 = __importDefault(require("node-fetch"));
49
+ const crypto_1 = __importStar(require("crypto"));
50
+ async function wait(ms) {
51
+ return new Promise(resolve => setTimeout(resolve, ms));
52
+ }
53
+ const svg = `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
54
+ <svg
55
+ xmlns:svg="http://www.w3.org/2000/svg"
56
+ xmlns="http://www.w3.org/2000/svg"
57
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
58
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
59
+ width="1000"
60
+ height="963.197"
61
+ viewBox="0 0 1000 963.197"
62
+ version="1.1"
63
+ id="svg85">
64
+ <sodipodi:namedview
65
+ id="namedview87"
66
+ pagecolor="#ffffff"
67
+ bordercolor="#666666"
68
+ borderopacity="1.0"
69
+ inkscape:pageshadow="2"
70
+ inkscape:pageopacity="0.0"
71
+ inkscape:pagecheckerboard="0"
72
+ showgrid="false"
73
+ inkscape:zoom="1"
74
+ inkscape:cx="991.5"
75
+ inkscape:cy="964.5"
76
+ inkscape:window-width="1126"
77
+ inkscape:window-height="895"
78
+ inkscape:window-x="774"
79
+ inkscape:window-y="12"
80
+ inkscape:window-maximized="0"
81
+ inkscape:current-layer="svg85" />
82
+ <defs
83
+ id="defs74">
84
+ <style
85
+ id="style72">.cls-1{fill:#e24329;}.cls-2{fill:#fc6d26;}.cls-3{fill:#fca326;}</style>
86
+ </defs>
87
+ <g
88
+ id="LOGO"
89
+ transform="matrix(5.2068817,0,0,5.2068817,-489.30756,-507.76085)">
90
+ <path
91
+ class="cls-1"
92
+ d="m 282.83,170.73 -0.27,-0.69 -26.14,-68.22 a 6.81,6.81 0 0 0 -2.69,-3.24 7,7 0 0 0 -8,0.43 7,7 0 0 0 -2.32,3.52 l -17.65,54 h -71.47 l -17.65,-54 a 6.86,6.86 0 0 0 -2.32,-3.53 7,7 0 0 0 -8,-0.43 6.87,6.87 0 0 0 -2.69,3.24 L 97.44,170 l -0.26,0.69 a 48.54,48.54 0 0 0 16.1,56.1 l 0.09,0.07 0.24,0.17 39.82,29.82 19.7,14.91 12,9.06 a 8.07,8.07 0 0 0 9.76,0 l 12,-9.06 19.7,-14.91 40.06,-30 0.1,-0.08 a 48.56,48.56 0 0 0 16.08,-56.04 z"
93
+ id="path76" />
94
+ <path
95
+ class="cls-2"
96
+ d="m 282.83,170.73 -0.27,-0.69 a 88.3,88.3 0 0 0 -35.15,15.8 L 190,229.25 c 19.55,14.79 36.57,27.64 36.57,27.64 l 40.06,-30 0.1,-0.08 a 48.56,48.56 0 0 0 16.1,-56.08 z"
97
+ id="path78" />
98
+ <path
99
+ class="cls-3"
100
+ d="m 153.43,256.89 19.7,14.91 12,9.06 a 8.07,8.07 0 0 0 9.76,0 l 12,-9.06 19.7,-14.91 c 0,0 -17.04,-12.89 -36.59,-27.64 -19.55,14.75 -36.57,27.64 -36.57,27.64 z"
101
+ id="path80" />
102
+ <path
103
+ class="cls-2"
104
+ d="M 132.58,185.84 A 88.19,88.19 0 0 0 97.44,170 l -0.26,0.69 a 48.54,48.54 0 0 0 16.1,56.1 l 0.09,0.07 0.24,0.17 39.82,29.82 c 0,0 17,-12.85 36.57,-27.64 z"
105
+ id="path82" />
106
+ </g>
107
+ </svg>`;
108
+ const encodedSvg = encodeURIComponent(svg);
109
+ const ICON = `data:image/svg+xml,${encodedSvg}`;
110
+ class GitlabConnector {
111
+ config;
112
+ connectorId = 'gitlab';
113
+ connectorType = types_1.ConnectorType.STORAGE;
114
+ displayName = 'GitLab';
115
+ icon = ICON;
116
+ disableLogout = false;
117
+ color = '#2B1B63';
118
+ background = 'rgba(252, 109, 38, 0.2)';
119
+ options;
120
+ constructor(config, opts) {
121
+ this.config = config;
122
+ this.options = {
123
+ branch: 'main',
124
+ assetsFolder: 'assets',
125
+ //metaRepo: 'silex-meta',
126
+ //metaRepoFile: 'websites.json',
127
+ repoPrefix: 'silex_',
128
+ scope: 'api',
129
+ ...opts,
130
+ };
131
+ if (!this.options.clientId)
132
+ throw new Error('Missing Gitlab client ID');
133
+ if (!this.options.clientSecret)
134
+ throw new Error('Missing Gitlab client secret');
135
+ }
136
+ // **
137
+ // Convenience methods for the Gitlab API
138
+ getAssetPath(path) {
139
+ return encodeURIComponent(`${this.options.assetsFolder}${path}`);
140
+ }
141
+ async createFile(session, websiteId, path, content, isBase64 = false) {
142
+ // Remove leading slash
143
+ const safePath = path.replace(/^\//, '');
144
+ return this.callApi(session, `api/v4/projects/${websiteId}/repository/files/${safePath}`, 'POST', {
145
+ id: websiteId,
146
+ branch: this.options.branch,
147
+ content,
148
+ commit_message: `Create file ${path} from Silex`,
149
+ encoding: isBase64 ? 'base64' : undefined,
150
+ });
151
+ }
152
+ async updateFile(session, websiteId, path, content, isBase64 = false) {
153
+ // Remove leading slash
154
+ const safePath = path.replace(/^\//, '');
155
+ return this.callApi(session, `api/v4/projects/${websiteId}/repository/files/${safePath}`, 'PUT', {
156
+ id: websiteId,
157
+ branch: this.options.branch,
158
+ content: await (0, connectors_1.contentToString)(content),
159
+ commit_message: `Update website asset ${path} from Silex`,
160
+ encoding: isBase64 ? 'base64' : undefined,
161
+ });
162
+ }
163
+ /*
164
+ * Get the meta repo path for the current user
165
+ * The meta repo contains a JSON file which contains the list of websites
166
+ */
167
+ //private getMetaRepoPath(session: GitlabSession): string {
168
+ // if(!session.gitlab?.username) throw new ApiError('Missing Gitlab user ID. User not logged in?', 401)
169
+ // return encodeURIComponent(`${session.gitlab.username}/${this.options.metaRepo}`)
170
+ //}
171
+ ///**
172
+ // * Initialize the storage with a meta repo
173
+ // */
174
+ //private async initStorage(session: GitlabSession): Promise<void> {
175
+ // // Create the meta repo
176
+ // try {
177
+ // const project = await this.callApi(session, 'api/v4/projects/', 'POST', {
178
+ // name: this.options.metaRepo,
179
+ // }) as any
180
+ // return this.createFile(session, this.getMetaRepoPath(session), this.options.metaRepoFile, JSON.stringify({
181
+ // websites: {}
182
+ // } as MetaRepoFileContent))
183
+ // } catch (e) {
184
+ // console.error('Could not init storage', e.statusCode, e.httpStatusCode, e)
185
+ // throw e
186
+ // }
187
+ //}
188
+ /**
189
+ * Call the Gitlab API with the user's token and handle errors
190
+ */
191
+ async callApi(session, path, method = 'GET', body = null, params = {}) {
192
+ const token = session?.gitlab?.token;
193
+ const tokenParam = token ? `access_token=${token.access_token}&` : '';
194
+ const paramsStr = Object.entries(params).map(([k, v]) => `${k}=${encodeURIComponent(v.toString())}`).join('&');
195
+ const url = `https://gitlab.com/${path}?${tokenParam}${paramsStr}`;
196
+ const headers = {
197
+ 'Content-Type': 'application/json',
198
+ };
199
+ if (method === 'GET' && body) {
200
+ console.error('Gitlab API error (4) - GET request with body', { url, method, body, params });
201
+ }
202
+ // With or without body
203
+ const response = await (0, node_fetch_1.default)(url, body && method !== 'GET' ? {
204
+ method,
205
+ headers,
206
+ body: body ? JSON.stringify(body) : undefined
207
+ } : {
208
+ method,
209
+ headers,
210
+ });
211
+ let json;
212
+ // Handle the case when the server returns an non-JSON response (e.g. 400 Bad Request)
213
+ const text = await response.text();
214
+ try {
215
+ json = JSON.parse(text);
216
+ }
217
+ catch (e) {
218
+ if (!response.ok) {
219
+ // A real error
220
+ throw e;
221
+ }
222
+ else {
223
+ // Useless error linked to the fact that the response is not JSON
224
+ console.error('Gitlab API error (3) - could not parse response', response.status, response.statusText, { url, method, body, params, text });
225
+ return text;
226
+ }
227
+ }
228
+ if (!response.ok) {
229
+ if (response.status === 401 && session?.gitlab?.token?.refresh_token) {
230
+ // Refresh the token
231
+ const token = session?.gitlab?.token;
232
+ const body = {
233
+ grant_type: 'refresh_token',
234
+ refresh_token: token.refresh_token,
235
+ client_id: this.options.clientId,
236
+ client_secret: this.options.clientSecret,
237
+ };
238
+ const response = await (0, node_fetch_1.default)('https://gitlab.com/oauth/token', {
239
+ method: 'POST',
240
+ headers: {
241
+ 'Content-Type': 'application/json',
242
+ },
243
+ body: JSON.stringify(body)
244
+ });
245
+ const refreshJson = await response.json();
246
+ if (response.ok) {
247
+ session.gitlab.token = {
248
+ ...token,
249
+ ...refreshJson,
250
+ };
251
+ return await this.callApi(session, path, method, body, params);
252
+ }
253
+ else {
254
+ const message = typeof refreshJson?.message === 'object' ? Object.entries(refreshJson.message).map(entry => entry.join(' ')).join(' ') : refreshJson?.message ?? refreshJson?.error ?? response.statusText;
255
+ console.error('Gitlab API error (2) - could not refresh token', response.status, response.statusText, { message }, 'refresh_token:', token.refresh_token);
256
+ // Workaround for when the token is invalid
257
+ // It happens often which is not normal (refresh token should last 6 months)
258
+ this.logout(session);
259
+ // Notify the user
260
+ throw new types_1.ApiError(`Gitlab API error (2): ${message}`, response.status);
261
+ }
262
+ }
263
+ else {
264
+ const message = typeof json?.message === 'object' ? Object.entries(json.message).map(entry => entry.join(' ')).join(' ') : json?.message ?? json?.error ?? response.statusText;
265
+ console.error('Gitlab API error (1)', response.status, response.statusText, { message });
266
+ throw new types_1.ApiError(`Gitlab API error (1): ${message}`, response.status);
267
+ }
268
+ }
269
+ return json;
270
+ }
271
+ generateCodeVerifier() {
272
+ return crypto_1.default.randomBytes(64).toString('base64')
273
+ .replace(/\+/g, '-')
274
+ .replace(/\//g, '_')
275
+ .replace(/=/g, '')
276
+ .substr(0, 128);
277
+ }
278
+ async generateCodeChallenge(verifier) {
279
+ const hashed = (0, crypto_1.createHash)('sha256').update(verifier).digest();
280
+ let base64Url = hashed.toString('base64');
281
+ // Replace '+' with '-', '/' with '_', and remove '='
282
+ base64Url = base64Url.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
283
+ return base64Url;
284
+ }
285
+ getRedirect() {
286
+ const params = `connectorId=${this.connectorId}&type=${this.connectorType}`;
287
+ return `${this.config.url}${constants_1.API_PATH}${constants_1.API_CONNECTOR_PATH}${constants_1.API_CONNECTOR_LOGIN_CALLBACK}?${params}`;
288
+ }
289
+ /**
290
+ * Get the OAuth URL to redirect the user to
291
+ * The URL should look like
292
+ * https://gitlab.example.com/oauth/authorize?client_id=APP_ID&redirect_uri=REDIRECT_URI&response_type=code&state=STATE&scope=REQUESTED_SCOPES&code_challenge=CODE_CHALLENGE&code_challenge_method=S256
293
+ * OAuth2 Step #1 from https://docs.gitlab.com/ee/api/oauth2.html#authorization-code-with-proof-key-for-code-exchange-pkce
294
+ */
295
+ async getOAuthUrl(session) {
296
+ const redirect_uri = encodeURIComponent(this.getRedirect());
297
+ const state = Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
298
+ const codeVerifier = this.generateCodeVerifier();
299
+ // Create the code challenge
300
+ const codeChallenge = await this.generateCodeChallenge(codeVerifier);
301
+ // Store the code verifier and code challenge in the session
302
+ session.gitlab = {
303
+ ...session.gitlab,
304
+ state,
305
+ codeVerifier,
306
+ codeChallenge,
307
+ };
308
+ return `https://gitlab.com/oauth/authorize?client_id=${this.options.clientId}&redirect_uri=${redirect_uri}&response_type=code&state=${session.gitlab.state}&scope=${this.options.scope}&code_challenge=${codeChallenge}&code_challenge_method=S256`;
309
+ }
310
+ getOptions(formData) {
311
+ return {}; // FIXME: store branch
312
+ }
313
+ async getLoginForm(session, redirectTo) {
314
+ return null;
315
+ }
316
+ async getSettingsForm(session, redirectTo) {
317
+ return null;
318
+ }
319
+ async isLoggedIn(session) {
320
+ return !!session?.gitlab?.token;
321
+ }
322
+ /**
323
+ * Get the token from return code
324
+ * Set the token in the session
325
+ * OAuth2 Step #2 from https://docs.gitlab.com/ee/api/oauth2.html#authorization-code-with-proof-key-for-code-exchange-pkce
326
+ */
327
+ async setToken(session, loginResult) {
328
+ if (!loginResult.state || loginResult.state !== session.gitlab?.state)
329
+ throw new types_1.ApiError('Invalid state', 401);
330
+ if (!session.gitlab?.codeVerifier)
331
+ throw new types_1.ApiError('Missing code verifier', 401);
332
+ if (!session.gitlab?.codeChallenge)
333
+ throw new types_1.ApiError('Missing code challenge', 401);
334
+ const response = await (0, node_fetch_1.default)('https://gitlab.com/oauth/token', {
335
+ method: 'POST',
336
+ headers: {
337
+ 'Content-Type': 'application/json',
338
+ },
339
+ body: JSON.stringify({
340
+ client_id: this.options.clientId,
341
+ client_secret: this.options.clientSecret,
342
+ code: loginResult.code,
343
+ grant_type: 'authorization_code',
344
+ redirect_uri: this.getRedirect(),
345
+ code_verifier: session.gitlab.codeVerifier,
346
+ }),
347
+ });
348
+ const token = await response.json();
349
+ // Store the token in the session
350
+ session.gitlab = { token, state: session.gitlab.state, codeVerifier: session.gitlab.codeVerifier, codeChallenge: session.gitlab.codeChallenge };
351
+ // We need to get the user ID for listWebsites
352
+ const user = await this.callApi(session, 'api/v4/user');
353
+ session.gitlab.userId = user.id;
354
+ session.gitlab.username = user.username;
355
+ }
356
+ async logout(session) {
357
+ delete session.gitlab;
358
+ }
359
+ async getUser(session) {
360
+ const user = await this.callApi(session, 'api/v4/user');
361
+ return {
362
+ name: user.name,
363
+ email: user.email,
364
+ picture: user.avatar_url,
365
+ storage: await (0, connectors_1.toConnectorData)(session, this),
366
+ };
367
+ }
368
+ async listWebsites(session) {
369
+ //try {
370
+ // const result = await this.callApi(session, `api/v4/projects/${this.getMetaRepoPath(session)}/repository/files/${this.options.metaRepoFile}`, 'GET', null, {
371
+ // ref: this.options.branch,
372
+ // })
373
+ // const { content } = result
374
+ // const contentDecoded = Buffer.from(content, 'base64').toString('utf8')
375
+ // const websites = (JSON.parse(contentDecoded) as MetaRepoFileContent).websites
376
+ // return Object.entries(websites).map(([websiteId, {meta, createdAt, updatedAt}]) => ({
377
+ // websiteId,
378
+ // createdAt: new Date(createdAt),
379
+ // updatedAt: new Date(updatedAt),
380
+ // ...meta,
381
+ // }))
382
+ //} catch (e) {
383
+ // console.error('Could not list websites', e.statusCode, e.httpStatusCode, e.code)
384
+ // if (e.statusCode === 404 || e.httpStatusCode === 404) {
385
+ // await this.initStorage(session)
386
+ // return []
387
+ // } else {
388
+ // throw e
389
+ // }
390
+ //}
391
+ const projects = await this.callApi(session, `api/v4/users/${session.gitlab?.userId}/projects`);
392
+ return projects
393
+ .filter(p => p.name.startsWith(this.options.repoPrefix))
394
+ .map(p => ({
395
+ websiteId: p.id,
396
+ name: p.name.replace(this.options.repoPrefix, ''),
397
+ createdAt: p.created_at,
398
+ updatedAt: p.last_activity_at,
399
+ connectorUserSettings: {},
400
+ }));
401
+ }
402
+ async readWebsite(session, websiteId) {
403
+ const result = await this.callApi(session, `api/v4/projects/${websiteId}/repository/files/${constants_1.WEBSITE_DATA_FILE}`, 'GET', null, {
404
+ ref: this.options.branch,
405
+ });
406
+ const { content } = result;
407
+ const contentDecoded = Buffer.from(content, 'base64').toString('utf8');
408
+ const websiteData = JSON.parse(contentDecoded);
409
+ return websiteData;
410
+ }
411
+ async createWebsite(session, websiteMeta) {
412
+ const project = await this.callApi(session, 'api/v4/projects/', 'POST', {
413
+ name: this.options.repoPrefix + websiteMeta.name,
414
+ });
415
+ await this.createFile(session, project.id, constants_1.WEBSITE_DATA_FILE, JSON.stringify({}));
416
+ //await this.createFile(session, project.id, WEBSITE_META_DATA_FILE, JSON.stringify(websiteMeta))
417
+ //await this.updateWebsite(session, project.id, {} as WebsiteData)
418
+ //await this.setWebsiteMeta(session, project.id, websiteMeta)
419
+ return project.id;
420
+ }
421
+ async updateWebsite(session, websiteId, websiteData) {
422
+ const project = await this.callApi(session, `api/v4/projects/${websiteId}/repository/files/${constants_1.WEBSITE_DATA_FILE}`, 'PUT', {
423
+ branch: this.options.branch,
424
+ commit_message: 'Update website data from Silex',
425
+ content: JSON.stringify(websiteData),
426
+ file_path: constants_1.WEBSITE_DATA_FILE,
427
+ id: websiteId,
428
+ });
429
+ }
430
+ async deleteWebsite(session, websiteId) {
431
+ // Delete repo
432
+ await this.callApi(session, `api/v4/projects/${websiteId}`, 'DELETE');
433
+ //// Load the meta repo data
434
+ //const file = await this.callApi(session, `api/v4/projects/${this.getMetaRepoPath(session)}/repository/files/${this.options.metaRepoFile}`, 'GET', null, {
435
+ // ref: this.options.branch,
436
+ //})
437
+ //const metaRepo = JSON.parse(Buffer.from(file.content, 'base64').toString('utf8')) as MetaRepoFileContent
438
+ //const data = metaRepo.websites[websiteId]
439
+ //if(!data) throw new ApiError(`Website ${websiteId} not found`, 404)
440
+ //// Update or create the website meta data
441
+ //delete metaRepo.websites[websiteId]
442
+ //// Save the meta repo data
443
+ //const project = await this.callApi(session, `api/v4/projects/${this.getMetaRepoPath(session)}/repository/files/${this.options.metaRepoFile}`, 'PUT', {
444
+ // branch: this.options.branch,
445
+ // commit_message: `Delete meta data of ${data.meta.name} (${websiteId}) from Silex`,
446
+ // content: JSON.stringify(metaRepo),
447
+ // file_path: this.options.metaRepoFile,
448
+ //})
449
+ }
450
+ async getWebsiteMeta(session, websiteId) {
451
+ //const file = await this.callApi(session, `api/v4/projects/${this.getMetaRepoPath(session)}/repository/files/${this.options.metaRepoFile}`, 'GET', null, {
452
+ // ref: this.options.branch,
453
+ //})
454
+ //const metaRepo = JSON.parse(Buffer.from(file.content, 'base64').toString('utf8')) as MetaRepoFileContent
455
+ //if(!metaRepo.websites[websiteId]) throw new ApiError(`Website ${websiteId} not found`, 404)
456
+ //return {
457
+ // websiteId,
458
+ // createdAt: new Date(metaRepo.websites[websiteId].createdAt),
459
+ // updatedAt: new Date(metaRepo.websites[websiteId].updatedAt),
460
+ // ...metaRepo.websites[websiteId].meta,
461
+ //}
462
+ // const response = await this.callApi(session, `api/v4/projects/${websiteId}/repository/files/${WEBSITE_META_DATA_FILE}`, 'GET', null, {
463
+ // ref: this.options.branch,
464
+ // }) as any
465
+ // Base64 to string to JSON
466
+ // const contentDecoded = Buffer.from(response.content, 'base64').toString('utf8')
467
+ // const websiteMeta = JSON.parse(contentDecoded) as WebsiteMetaFileContent
468
+ const project = await this.callApi(session, `api/v4/projects/${websiteId}`);
469
+ return {
470
+ websiteId,
471
+ name: project.name.replace(this.options.repoPrefix, ''),
472
+ imageUrl: project.avatar_url,
473
+ createdAt: project.created_at,
474
+ updatedAt: project.last_activity_at,
475
+ connectorUserSettings: {},
476
+ };
477
+ }
478
+ async setWebsiteMeta(session, websiteId, websiteMeta) {
479
+ //// Load the meta repo data
480
+ //const file = await this.callApi(session, `api/v4/projects/${this.getMetaRepoPath(session)}/repository/files/${this.options.metaRepoFile}`, 'GET', null, {
481
+ // ref: this.options.branch,
482
+ //})
483
+ //const metaRepo = JSON.parse(Buffer.from(file.content, 'base64').toString('utf8')) as MetaRepoFileContent
484
+ //// Update or create the website meta data
485
+ //metaRepo.websites[websiteId] = {
486
+ // updatedAt: new Date().toISOString(),
487
+ // createdAt: metaRepo.websites[websiteId]?.createdAt ?? new Date().toISOString(),
488
+ // meta: websiteMeta,
489
+ //}
490
+ //// Save the meta repo data
491
+ //const project = await this.callApi(session, `api/v4/projects/${this.getMetaRepoPath(session)}/repository/files/${this.options.metaRepoFile}`, 'PUT', {
492
+ // branch: this.options.branch,
493
+ // commit_message: `Update website meta data of ${websiteMeta.name} (${websiteId}) from Silex`,
494
+ // content: JSON.stringify(metaRepo),
495
+ // file_path: this.options.metaRepoFile,
496
+ //})
497
+ // Rename the repo if needed
498
+ const oldMeta = await this.getWebsiteMeta(session, websiteId);
499
+ if (websiteMeta.name !== oldMeta.name) {
500
+ await this.callApi(session, `api/v4/projects/${websiteId}`, 'PUT', {
501
+ name: this.options.repoPrefix + websiteMeta.name,
502
+ });
503
+ }
504
+ //// Update the metadata file
505
+ //await this.callApi(session, `api/v4/projects/${websiteId}/repository/files/${WEBSITE_META_DATA_FILE}`, 'PUT', {
506
+ // branch: this.options.branch,
507
+ // commit_message: 'Update website meta data from Silex',
508
+ // content: JSON.stringify(websiteMeta),
509
+ // file_path: WEBSITE_META_DATA_FILE,
510
+ // id: websiteId,
511
+ //})
512
+ }
513
+ async writeAssets(session, websiteId, files, status) {
514
+ // For each file
515
+ for (const file of files) {
516
+ // Convert to base64
517
+ const content = (await (0, connectors_1.contentToBuffer)(file.content)).toString('base64');
518
+ try {
519
+ await this.updateFile(session, websiteId, this.getAssetPath(file.path), content, true);
520
+ }
521
+ catch (e) {
522
+ // If the file does not exist, create it
523
+ if (e.statusCode === 404 || e.httpStatusCode === 404 || e.message.endsWith('A file with this name doesn\'t exist')) {
524
+ await this.createFile(session, websiteId, this.getAssetPath(file.path), content, true);
525
+ }
526
+ else {
527
+ throw e;
528
+ }
529
+ }
530
+ }
531
+ }
532
+ async readAsset(session, websiteId, fileName) {
533
+ // Remove leading slash
534
+ const finalPath = this.getAssetPath(fileName);
535
+ // Call the API
536
+ const url = `https://gitlab.com/api/v4/projects/${websiteId}/repository/files/${finalPath}?ref=${this.options.branch}&access_token=${session.gitlab?.token?.access_token}`;
537
+ const response = await (0, node_fetch_1.default)(url, {
538
+ method: 'GET',
539
+ headers: {
540
+ 'Content-Type': 'application/json',
541
+ },
542
+ });
543
+ const json = await response.json();
544
+ if (!response.ok)
545
+ throw new types_1.ApiError(`Gitlab API error: ${json?.message ?? json?.error ?? response.statusText}`, response.status);
546
+ // From base64 string to buffer
547
+ const buf = Buffer.from(json.content, 'base64');
548
+ // Return the image bytes
549
+ return buf;
550
+ }
551
+ async deleteAssets(session, websiteId, fileNames) {
552
+ return this.callApi(session, `api/v4/projects/${websiteId}/repository/commits`, 'POST', {
553
+ id: websiteId,
554
+ branch: this.options.branch,
555
+ commit_message: `Delete assets from Silex: ${fileNames.join(', ')}`,
556
+ actions: fileNames.map(f => ({
557
+ action: 'delete',
558
+ file_path: this.getAssetPath(f),
559
+ })),
560
+ });
561
+ }
562
+ }
563
+ exports.default = GitlabConnector;
564
+ //# sourceMappingURL=GitlabConnector.js.map
@@ -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,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>;