@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
@@ -0,0 +1,21 @@
1
+ import { Editor } from 'grapesjs';
2
+ export declare const PROJECT_BAR_PANEL_ID = "project-bar-panel";
3
+ export declare const containerPanelId = "project-bar-container";
4
+ export interface PanelObject {
5
+ command: string | ((editor: Editor) => void);
6
+ text: string;
7
+ className: string;
8
+ name?: string;
9
+ attributes: {
10
+ title?: string;
11
+ containerClassName?: string;
12
+ };
13
+ buttons?: {
14
+ command: string;
15
+ text: string;
16
+ className: string;
17
+ }[];
18
+ onClick?: (editor: Editor) => void;
19
+ }
20
+ export declare const projectBarPlugin: (editor: any, opts: any) => void;
21
+ export declare function addButton(editor: Editor, panel: PanelObject): void;
@@ -0,0 +1 @@
1
+ export default function (editor: any): void;
@@ -0,0 +1,4 @@
1
+ import { RichTextEditorAction } from 'grapesjs';
2
+ export declare const orderedList: RichTextEditorAction;
3
+ export declare const unorderedList: RichTextEditorAction;
4
+ export declare const richTextPlugin: (editor: any, opts: any) => void;
@@ -0,0 +1 @@
1
+ export declare const semanticPlugin: (editor: any, opts: any) => void;
@@ -0,0 +1,16 @@
1
+ import { TemplateResult } from 'lit-html';
2
+ import { WebsiteSettings } from '../../types';
3
+ export declare const idCodeWrapper = "settings-head-wrapper";
4
+ export declare function isSite(model: any): boolean;
5
+ export interface SettingsSection {
6
+ id: string;
7
+ label: string;
8
+ render: (settings: WebsiteSettings, model: Backbone.Model) => TemplateResult;
9
+ }
10
+ /**
11
+ * This is the settings dialog default sections
12
+ * Each section has an entry in the sidebar
13
+ * Each section render as part of the settings form
14
+ * The form is submitted to save the settings with all FormData
15
+ */
16
+ export declare const defaultSections: SettingsSection[];
@@ -0,0 +1,4 @@
1
+ export declare const cmdOpenSettings = "open-settings";
2
+ export declare const settingsDialog: (editor: any, opts: any) => void;
3
+ export declare function addSection(section: any, siteOrPage: 'site' | 'page', position: 'first' | 'last' | number): void;
4
+ export declare function removeSection(id: any, siteOrPage: 'site' | 'page'): void;
@@ -0,0 +1,2 @@
1
+ export declare const cmdPauseAutoSave = "pause-auto-save";
2
+ export declare const storagePlugin: (editor: any) => void;
@@ -0,0 +1,3 @@
1
+ export declare const cmdPromptAddSymbol = "symbol-prompt-add";
2
+ declare const _default: (editor: any, opts: any) => void;
3
+ export default _default;
@@ -0,0 +1 @@
1
+ export default function (editor: any): void;
@@ -0,0 +1,10 @@
1
+ import { ClientConfig } from './config';
2
+ export * from './expose';
3
+ /**
4
+ * Expose the config object
5
+ */
6
+ export declare let config: ClientConfig;
7
+ /**
8
+ * Start Silex, called from host HTML page with window.silex.start()
9
+ */
10
+ export declare function start(options?: {}): Promise<void>;
@@ -0,0 +1,42 @@
1
+ import { Component, CssRule, StyleProps, Editor } from 'grapesjs';
2
+ import { ClientSideFile, ClientSideFileType, Initiator, PublicationData } from '../types';
3
+ /**
4
+ * Interface for publication transformers
5
+ * They are added to the config object with config.addPublicationTransformer()
6
+ */
7
+ export interface PublicationTransformer {
8
+ renderComponent?(component: Component, toHtml: () => string): string | undefined;
9
+ renderCssRule?(rule: CssRule, initialRule: () => StyleProps): StyleProps | undefined;
10
+ transformFile?(file: ClientSideFile): ClientSideFile;
11
+ transformPermalink?(link: string, type: ClientSideFileType, initiator: Initiator): string;
12
+ transformPath?(path: string, type: ClientSideFileType): string;
13
+ }
14
+ export declare const publicationTransformerDefault: PublicationTransformer;
15
+ export declare function validatePublicationTransformer(transformer: PublicationTransformer): void;
16
+ /**
17
+ * Alter the components rendering
18
+ * Exported for unit tests
19
+ */
20
+ export declare function renderComponents(editor: Editor): void;
21
+ /**
22
+ * Alter the styles rendering
23
+ * Exported for unit tests
24
+ */
25
+ export declare function renderCssRules(editor: Editor): void;
26
+ /**
27
+ * Transform background image url according to the transformed path of assets
28
+ */
29
+ export declare function transformBgImage(editor: Editor, style: StyleProps): StyleProps;
30
+ /**
31
+ * Transform files
32
+ * Exported for unit tests
33
+ */
34
+ export declare function transformFiles(editor: Editor, data: PublicationData): void;
35
+ /**
36
+ * Transform files paths
37
+ * Exported for unit tests
38
+ */
39
+ export declare function transformPermalink(editor: Editor, path: string, type: ClientSideFileType, initiator: Initiator): string;
40
+ export declare function transformPath(editor: Editor, path: string, type: ClientSideFileType): string;
41
+ export declare function resetRenderComponents(editor: Editor): void;
42
+ export declare function resetRenderCssRules(editor: Editor): void;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @fileoverview Make sure custom script blocks include script tags when published
3
+ */
4
+ export default function (config: any): Promise<void>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @fileoverview Make sure custom script blocks include script tags when published
3
+ */
4
+ export default function (config: any): Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { Component, Editor } from 'grapesjs';
2
+ export declare function onAll(editor: Editor, cbk: (c: Component) => void): void;
3
+ /**
4
+ * SHA256 hash a string
5
+ */
6
+ export declare function hashString(str: string): Promise<string>;
7
+ /**
8
+ * Select the <body> element in the editor.
9
+ * @param editor The GrapesJS editor.
10
+ */
11
+ export declare function selectBody(editor: Editor): void;
12
+ /**
13
+ * Checks if an element is a text or input field.
14
+ * @param element The element to check.
15
+ */
16
+ export declare function isTextOrInputField(element: HTMLElement): boolean;
17
+ /**
18
+ * Makes every word in a string start with an uppercase letter.
19
+ * @param str The string to title-case.
20
+ * @param sep The separator between words.
21
+ */
22
+ export declare function titleCase(str: string, sep?: string): string;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileoverview define constants for Silex client and server
3
+ */
4
+ export declare const WEBSITE_DATA_FILE = "website.json";
5
+ export declare const WEBSITE_META_DATA_FILE = "meta.json";
6
+ export declare const DEFAULT_WEBSITE_ID = "default";
7
+ export declare const DEFAULT_LANGUAGE = "en";
8
+ export declare const CLIENT_CONFIG_FILE_NAME = "silex.js";
9
+ export declare const API_PATH = "/api";
10
+ export declare const API_CONNECTOR_PATH = "/connector";
11
+ export declare const API_CONNECTOR_USER = "/user";
12
+ export declare const API_CONNECTOR_LIST = "/";
13
+ export declare const API_CONNECTOR_LOGOUT = "/logout";
14
+ export declare const API_CONNECTOR_LOGIN = "/login";
15
+ export declare const API_CONNECTOR_SETTINGS = "/settings";
16
+ export declare const API_CONNECTOR_LOGIN_CALLBACK = "/login/callback";
17
+ export declare const API_PUBLICATION_PATH = "/publication";
18
+ export declare const API_PUBLICATION_PUBLISH = "/";
19
+ export declare const API_PUBLICATION_STATUS = "/publication/status";
20
+ export declare const API_WEBSITE_PATH = "/website";
21
+ export declare const API_WEBSITE_READ = "/";
22
+ export declare const API_WEBSITE_WRITE = "/";
23
+ export declare const API_WEBSITE_CREATE = "/";
24
+ export declare const API_WEBSITE_DELETE = "/";
25
+ export declare const API_WEBSITE_DUPLICATE = "/duplicate";
26
+ export declare const API_WEBSITE_LIST = "/";
27
+ export declare const API_WEBSITE_ASSET_READ = "/assets";
28
+ export declare const API_WEBSITE_ASSETS_WRITE = "/assets";
29
+ export declare const API_WEBSITE_META_READ = "/meta";
30
+ export declare const API_WEBSITE_META_WRITE = "/meta";
31
+ export declare let SILEX_VERSION: any;
32
+ export declare const DEV_MESSAGE: string;
@@ -0,0 +1,2 @@
1
+ export declare function getPageSlug(pageName: any): any;
2
+ export declare function getPageLink(pageName: any): string;
@@ -0,0 +1,339 @@
1
+ /**
2
+ * @fileoverview define types for Silex client and server
3
+ */
4
+ export interface PublicationSettings {
5
+ connector?: ConnectorData;
6
+ options?: ConnectorOptions;
7
+ }
8
+ export interface WebsiteFile {
9
+ html: string;
10
+ css: string;
11
+ htmlPath: string;
12
+ cssPath: string;
13
+ }
14
+ export declare class ApiError extends Error {
15
+ readonly httpStatusCode: number;
16
+ constructor(message: string, httpStatusCode: number);
17
+ }
18
+ export type ApiResponseError = {
19
+ message: string;
20
+ };
21
+ export type ApiPublicationPublishBody = WebsiteData;
22
+ export type ApiPublicationPublishQuery = {
23
+ websiteId: WebsiteId;
24
+ hostingId: ConnectorId;
25
+ storageId: ConnectorId;
26
+ options: ConnectorOptions;
27
+ };
28
+ export type ApiPublicationPublishResponse = {
29
+ url: string;
30
+ job: PublicationJobData;
31
+ };
32
+ export type ApiPublicationStatusQuery = {
33
+ jobId: JobId;
34
+ };
35
+ export type ApiPublicationStatusResponse = PublicationJobData;
36
+ export type ApiWebsiteReadQuery = {
37
+ websiteId: WebsiteId;
38
+ connectorId?: ConnectorId;
39
+ };
40
+ export type ApiWebsiteReadResponse = WebsiteData;
41
+ export type ApiWebsiteListQuery = {
42
+ connectorId?: ConnectorId;
43
+ };
44
+ export type ApiWebsiteListResponse = WebsiteMeta[];
45
+ export type ApiWebsiteWriteQuery = {
46
+ websiteId: WebsiteId;
47
+ connectorId?: ConnectorId;
48
+ };
49
+ export type ApiWebsiteWriteBody = WebsiteData;
50
+ export type ApiWebsiteWriteResponse = {
51
+ message: string;
52
+ };
53
+ export type ApiWebsiteCreateQuery = {
54
+ connectorId?: ConnectorId;
55
+ };
56
+ export type ApiWebsiteCreateBody = WebsiteMetaFileContent;
57
+ export type ApiWebsiteCreateResponse = {
58
+ message: string;
59
+ };
60
+ export type ApiWebsiteDeleteQuery = {
61
+ websiteId: WebsiteId;
62
+ connectorId?: ConnectorId;
63
+ };
64
+ export type ApiWebsiteDuplicateQuery = {
65
+ websiteId: WebsiteId;
66
+ connectorId?: ConnectorId;
67
+ };
68
+ export type ApiWebsiteMetaReadQuery = {
69
+ websiteId: WebsiteId;
70
+ connectorId?: ConnectorId;
71
+ };
72
+ export type ApiWebsiteMetaReadResponse = WebsiteMeta;
73
+ export type ApiWebsiteMetaWriteQuery = {
74
+ websiteId: WebsiteId;
75
+ connectorId?: ConnectorId;
76
+ };
77
+ export type ApiWebsiteMetaWriteBody = WebsiteMetaFileContent;
78
+ export type ApiWebsiteMetaWriteResponse = {
79
+ message: string;
80
+ };
81
+ export type ApiWebsiteAssetsReadQuery = {
82
+ websiteId: WebsiteId;
83
+ connectorId?: ConnectorId;
84
+ };
85
+ export type ApiWebsiteAssetsReadParams = {
86
+ path: string;
87
+ };
88
+ export type ApiWebsiteAssetsReadResponse = string;
89
+ export type ApiWebsiteAssetsWriteQuery = {
90
+ websiteId: WebsiteId;
91
+ connectorId?: ConnectorId;
92
+ };
93
+ export type ApiWebsiteAssetsWriteBody = ClientSideFile[];
94
+ export type ApiWebsiteAssetsWriteResponse = {
95
+ data: string[];
96
+ };
97
+ export type ApiConnectorListQuery = {
98
+ type: ConnectorType;
99
+ };
100
+ export type ApiConnectorListResponse = ConnectorData[];
101
+ export type ApiConnectorLoginQuery = {
102
+ connectorId: ConnectorId;
103
+ type: ConnectorType;
104
+ };
105
+ export type ApiConnectorLoggedInPostMessage = {
106
+ type: string;
107
+ error: boolean;
108
+ message: string;
109
+ connectorId: ConnectorId;
110
+ options: ConnectorOptions;
111
+ };
112
+ export type ApiConnectorLoginCbkQuery = {
113
+ connectorId?: ConnectorId;
114
+ type: ConnectorType;
115
+ error?: string;
116
+ };
117
+ export type ApiConnectorLoginCbkBody = object;
118
+ export type ApiConnectorSettingsQuery = {
119
+ connectorId?: ConnectorId;
120
+ type: ConnectorType;
121
+ };
122
+ export type ApiConnectorSettingsResponse = string;
123
+ export type ApiConnectorSettingsPostQuery = {
124
+ connectorId?: ConnectorId;
125
+ type: ConnectorType;
126
+ };
127
+ export type ApiConnectorSettingsPostBody = ConnectorUserSettings;
128
+ export type ApiConnectorSettingsPostResponse = {
129
+ message: string;
130
+ };
131
+ export type ApiConnectorLogoutQuery = {
132
+ connectorId?: ConnectorId;
133
+ type: ConnectorType;
134
+ };
135
+ export type ApiConnectorUserQuery = {
136
+ connectorId?: ConnectorId;
137
+ type: ConnectorType;
138
+ };
139
+ export type ApiConnectorUserResponse = ConnectorUser;
140
+ export declare const defaultWebsiteData: WebsiteData;
141
+ export interface Component {
142
+ type: string;
143
+ content?: string;
144
+ attributes: {
145
+ [key: string]: string;
146
+ };
147
+ components: Component[];
148
+ }
149
+ export interface Page {
150
+ id: string;
151
+ name: string;
152
+ slug: string;
153
+ settings: WebsiteSettings;
154
+ frames: {
155
+ component: Component;
156
+ }[];
157
+ }
158
+ export interface WebsiteData {
159
+ pages: Page[];
160
+ assets: Asset[];
161
+ styles: Style[];
162
+ settings: WebsiteSettings;
163
+ fonts: Font[];
164
+ symbols: symbol[];
165
+ publication: PublicationSettings;
166
+ }
167
+ export interface PublicationData extends WebsiteData {
168
+ files?: ClientSideFile[];
169
+ }
170
+ export interface WebsiteSettings {
171
+ description?: string;
172
+ title?: string;
173
+ lang?: string;
174
+ head?: string;
175
+ favicon?: string;
176
+ 'og:title'?: string;
177
+ 'og:description'?: string;
178
+ 'og:image'?: string;
179
+ }
180
+ export interface Font {
181
+ name: string;
182
+ value: string;
183
+ variants: string[];
184
+ }
185
+ export declare enum Unit {
186
+ PX = "px"
187
+ }
188
+ export interface Asset {
189
+ type: string;
190
+ src: string;
191
+ unitDim: Unit;
192
+ height: number;
193
+ width: number;
194
+ name: string;
195
+ path?: string;
196
+ }
197
+ export interface Style {
198
+ selectors: Selector[];
199
+ style: {
200
+ [key: string]: string;
201
+ };
202
+ }
203
+ export type Selector = string | {
204
+ name: string;
205
+ type: number;
206
+ };
207
+ /**
208
+ * Type for a connector id
209
+ */
210
+ export type ConnectorId = string;
211
+ export type ConnectorOptions = {
212
+ websiteUrl?: string;
213
+ [key: string]: any;
214
+ };
215
+ export declare enum ClientSideFileType {
216
+ HTML = "html",
217
+ ASSET = "asset",
218
+ CSS = "css",
219
+ OTHER = "other"
220
+ }
221
+ export declare enum Initiator {
222
+ HTML = "html",
223
+ CSS = "css"
224
+ }
225
+ /**
226
+ * Type for a client side file when the content is not available, used to handle file names and paths and urls
227
+ */
228
+ export interface ClientSideFileWithPermalink {
229
+ path: string;
230
+ permalink?: string;
231
+ type: ClientSideFileType;
232
+ }
233
+ /**
234
+ * Type for a client side file when the content is available as a string
235
+ */
236
+ export interface ClientSideFileWithContent extends ClientSideFileWithPermalink {
237
+ content: string;
238
+ }
239
+ /**
240
+ * Type for a client side file when the content is in the connector
241
+ */
242
+ export interface ClientSideFileWithSrc extends ClientSideFileWithPermalink {
243
+ src: string;
244
+ }
245
+ /**
246
+ * Type for a client side file
247
+ * @see connector/File
248
+ */
249
+ export type ClientSideFile = ClientSideFileWithContent | ClientSideFileWithSrc;
250
+ /**
251
+ * Type for file listing
252
+ */
253
+ export interface FileMeta {
254
+ name: string;
255
+ isDir: boolean;
256
+ size: number;
257
+ createdAt: Date;
258
+ updatedAt: Date;
259
+ metadata?: object;
260
+ }
261
+ /**
262
+ * Enum to express if the connector is a storage or a hosting
263
+ */
264
+ export declare enum ConnectorType {
265
+ STORAGE = "STORAGE",
266
+ HOSTING = "HOSTING"
267
+ }
268
+ /**
269
+ * Type for a website id
270
+ */
271
+ export type WebsiteId = string;
272
+ /**
273
+ * Back end data shared with the front end
274
+ */
275
+ export interface ConnectorData {
276
+ connectorId: ConnectorId;
277
+ type: ConnectorType;
278
+ displayName: string;
279
+ icon: string;
280
+ disableLogout: boolean;
281
+ isLoggedIn: boolean;
282
+ oauthUrl: string | null;
283
+ color: string;
284
+ background: string;
285
+ }
286
+ /**
287
+ * User settings for a connector and for a given website
288
+ */
289
+ export type ConnectorUserSettings = {
290
+ [websiteId: string]: object;
291
+ };
292
+ /**
293
+ * Back end data shared with the front end
294
+ */
295
+ export interface ConnectorUser {
296
+ name: string;
297
+ email?: string;
298
+ picture?: string;
299
+ storage: ConnectorData;
300
+ }
301
+ export interface WebsiteMetaFileContent {
302
+ name: string;
303
+ imageUrl?: string;
304
+ connectorUserSettings: ConnectorUserSettings;
305
+ }
306
+ /**
307
+ * Back end data sent to the front end
308
+ * Meta data can be the root path of the websites, or the bucket name, etc.
309
+ */
310
+ export interface WebsiteMeta extends WebsiteMetaFileContent {
311
+ websiteId: WebsiteId;
312
+ createdAt?: Date;
313
+ updatedAt?: Date;
314
+ }
315
+ /**
316
+ * Enum to express if the job is in progress or finished or errored
317
+ */
318
+ export declare enum JobStatus {
319
+ IN_PROGRESS = "IN_PROGRESS",
320
+ SUCCESS = "SUCCESS",
321
+ ERROR = "ERROR"
322
+ }
323
+ /**
324
+ * Id used to track the progress of a publication
325
+ */
326
+ export type JobId = string;
327
+ /**
328
+ * Data structure which is sent to the client to display the progress of a job
329
+ */
330
+ export interface JobData {
331
+ jobId: JobId;
332
+ status: JobStatus;
333
+ message: string;
334
+ _timeout?: ReturnType<typeof setTimeout>;
335
+ }
336
+ export interface PublicationJobData extends JobData {
337
+ logs: string[][];
338
+ errors: string[][];
339
+ }
@@ -4,8 +4,6 @@
4
4
  export interface PublicationSettings {
5
5
  connector?: ConnectorData;
6
6
  options?: ConnectorOptions;
7
- url?: string;
8
- autoHomePage?: boolean;
9
7
  }
10
8
  export interface WebsiteFile {
11
9
  html: string;
@@ -63,11 +61,15 @@ export type ApiWebsiteDeleteQuery = {
63
61
  websiteId: WebsiteId;
64
62
  connectorId?: ConnectorId;
65
63
  };
64
+ export type ApiWebsiteDuplicateQuery = {
65
+ websiteId: WebsiteId;
66
+ connectorId?: ConnectorId;
67
+ };
66
68
  export type ApiWebsiteMetaReadQuery = {
67
69
  websiteId: WebsiteId;
68
70
  connectorId?: ConnectorId;
69
71
  };
70
- export type ApiWebsiteMetaReadResponse = WebsiteMetaFileContent;
72
+ export type ApiWebsiteMetaReadResponse = WebsiteMeta;
71
73
  export type ApiWebsiteMetaWriteQuery = {
72
74
  websiteId: WebsiteId;
73
75
  connectorId?: ConnectorId;
@@ -136,6 +138,23 @@ export type ApiConnectorUserQuery = {
136
138
  };
137
139
  export type ApiConnectorUserResponse = ConnectorUser;
138
140
  export declare const defaultWebsiteData: WebsiteData;
141
+ export interface Component {
142
+ type: string;
143
+ content?: string;
144
+ attributes: {
145
+ [key: string]: string;
146
+ };
147
+ components: Component[];
148
+ }
149
+ export interface Page {
150
+ id: string;
151
+ name: string;
152
+ slug: string;
153
+ settings: WebsiteSettings;
154
+ frames: {
155
+ component: Component;
156
+ }[];
157
+ }
139
158
  export interface WebsiteData {
140
159
  pages: Page[];
141
160
  assets: Asset[];
@@ -146,7 +165,7 @@ export interface WebsiteData {
146
165
  publication: PublicationSettings;
147
166
  }
148
167
  export interface PublicationData extends WebsiteData {
149
- files?: WebsiteFile[];
168
+ files?: ClientSideFile[];
150
169
  }
151
170
  export interface WebsiteSettings {
152
171
  description?: string;
@@ -163,31 +182,6 @@ export interface Font {
163
182
  value: string;
164
183
  variants: string[];
165
184
  }
166
- export interface Page {
167
- name?: string;
168
- id: string;
169
- type?: string;
170
- frames: Frame[];
171
- settings?: WebsiteSettings;
172
- cssExt?: string;
173
- htmlExt?: string;
174
- slug?: string;
175
- }
176
- export interface Frame {
177
- component: {
178
- type: string;
179
- stylable: string[];
180
- };
181
- components: Component[];
182
- }
183
- export interface Component {
184
- type: string;
185
- content?: string;
186
- attributes: {
187
- [key: string]: string;
188
- };
189
- conponents: Component[];
190
- }
191
185
  export declare enum Unit {
192
186
  PX = "px"
193
187
  }
@@ -214,15 +208,45 @@ export type Selector = string | {
214
208
  * Type for a connector id
215
209
  */
216
210
  export type ConnectorId = string;
217
- export type ConnectorOptions = object;
211
+ export type ConnectorOptions = {
212
+ websiteUrl?: string;
213
+ [key: string]: any;
214
+ };
215
+ export declare enum ClientSideFileType {
216
+ HTML = "html",
217
+ ASSET = "asset",
218
+ CSS = "css",
219
+ OTHER = "other"
220
+ }
221
+ export declare enum Initiator {
222
+ HTML = "html",
223
+ CSS = "css"
224
+ }
218
225
  /**
219
- * Type for a client side file
220
- * @see connector/File
226
+ * Type for a client side file when the content is not available, used to handle file names and paths and urls
221
227
  */
222
- export interface ClientSideFile {
228
+ export interface ClientSideFileWithPermalink {
223
229
  path: string;
230
+ permalink?: string;
231
+ type: ClientSideFileType;
232
+ }
233
+ /**
234
+ * Type for a client side file when the content is available as a string
235
+ */
236
+ export interface ClientSideFileWithContent extends ClientSideFileWithPermalink {
224
237
  content: string;
225
238
  }
239
+ /**
240
+ * Type for a client side file when the content is in the connector
241
+ */
242
+ export interface ClientSideFileWithSrc extends ClientSideFileWithPermalink {
243
+ src: string;
244
+ }
245
+ /**
246
+ * Type for a client side file
247
+ * @see connector/File
248
+ */
249
+ export type ClientSideFile = ClientSideFileWithContent | ClientSideFileWithSrc;
226
250
  /**
227
251
  * Type for file listing
228
252
  */
@@ -285,8 +309,8 @@ export interface WebsiteMetaFileContent {
285
309
  */
286
310
  export interface WebsiteMeta extends WebsiteMetaFileContent {
287
311
  websiteId: WebsiteId;
288
- createdAt: Date;
289
- updatedAt: Date;
312
+ createdAt?: Date;
313
+ updatedAt?: Date;
290
314
  }
291
315
  /**
292
316
  * Enum to express if the job is in progress or finished or errored