@silexlabs/silex 3.0.0-alpha.96 → 3.0.0

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 (206) hide show
  1. package/.env.default +2 -1
  2. package/README.md +31 -9
  3. package/dist/client/client/api.d.ts +5 -0
  4. package/dist/client/client/assetUrl.d.ts +3 -0
  5. package/dist/client/client/config.d.ts +31 -0
  6. package/dist/client/client/events.d.ts +7 -1
  7. package/dist/client/client/grapesjs/PublicationManager.d.ts +2 -1
  8. package/dist/client/client/grapesjs/css-props.d.ts +6 -0
  9. package/dist/client/client/grapesjs/img.d.ts +6 -0
  10. package/dist/client/client/grapesjs/index.d.ts +2 -2
  11. package/dist/client/client/grapesjs/new-page-dialog.d.ts +1 -1
  12. package/dist/client/client/grapesjs/page-panel.d.ts +1 -1
  13. package/dist/client/client/grapesjs/project-bar.d.ts +16 -0
  14. package/dist/client/client/grapesjs/resize-panel.d.ts +1 -0
  15. package/dist/client/client/grapesjs/rich-text.d.ts +4 -1
  16. package/dist/client/client/grapesjs/semantic.d.ts +1 -1
  17. package/dist/client/client/grapesjs/settings-sections.d.ts +15 -0
  18. package/dist/client/client/grapesjs/settings.d.ts +3 -1
  19. package/dist/client/client/grapesjs/symbolDialogs.d.ts +1 -1
  20. package/dist/client/client/grapesjs/view-buttons.d.ts +1 -0
  21. package/dist/client/client/index.d.ts +10 -0
  22. package/dist/client/client/publication-transformers.d.ts +4 -3
  23. package/dist/client/client/publish-custom-code-block.d.ts +4 -0
  24. package/dist/client/client/publish-fonts.d.ts +4 -0
  25. package/dist/client/client/utils.d.ts +4 -0
  26. package/dist/client/constants.d.ts +1 -0
  27. package/dist/client/css/admin.css +273 -32
  28. package/dist/client/index.html +2 -1
  29. package/dist/client/js/main.js +164 -123
  30. package/dist/client/js/main.js.LICENSE.txt +15 -1
  31. package/dist/client/types.d.ts +12 -7
  32. package/dist/plugins/client/client/events.d.ts +7 -1
  33. package/dist/plugins/client/client/events.js +7 -1
  34. package/dist/plugins/client/client/events.js.map +1 -1
  35. package/dist/plugins/client/plugins/client/template.js +108 -58
  36. package/dist/plugins/client/plugins/client/template.js.map +1 -1
  37. package/dist/plugins/client/types.d.ts +12 -7
  38. package/dist/plugins/client/types.js +6 -0
  39. package/dist/plugins/client/types.js.map +1 -1
  40. package/dist/plugins/server/constants.d.ts +1 -0
  41. package/dist/plugins/server/constants.js +2 -1
  42. package/dist/plugins/server/constants.js.map +1 -1
  43. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +1 -0
  44. package/dist/plugins/server/plugins/server/FtpConnector.js +12 -1
  45. package/dist/plugins/server/plugins/server/FtpConnector.js.map +1 -1
  46. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +3 -0
  47. package/dist/plugins/server/plugins/server/GitlabConnector.js +72 -35
  48. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
  49. package/dist/plugins/server/server/config.js +3 -3
  50. package/dist/plugins/server/server/config.js.map +1 -1
  51. package/dist/plugins/server/server/connectors/FsHosting.d.ts +1 -0
  52. package/dist/plugins/server/server/connectors/FsHosting.js +13 -1
  53. package/dist/plugins/server/server/connectors/FsHosting.js.map +1 -1
  54. package/dist/plugins/server/server/connectors/FsStorage.d.ts +2 -1
  55. package/dist/plugins/server/server/connectors/FsStorage.js +29 -25
  56. package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
  57. package/dist/plugins/server/server/connectors/connectors.d.ts +1 -0
  58. package/dist/plugins/server/server/jobs.js +4 -2
  59. package/dist/plugins/server/server/jobs.js.map +1 -1
  60. package/dist/plugins/server/types.d.ts +12 -7
  61. package/dist/plugins/server/types.js +7 -1
  62. package/dist/plugins/server/types.js.map +1 -1
  63. package/dist/server/constants.js +2 -1
  64. package/dist/server/server/api/publicationApi.js +3 -5
  65. package/dist/server/server/api/websiteApi.js +26 -7
  66. package/dist/server/server/cli.js +9 -6
  67. package/dist/server/server/config.js +3 -3
  68. package/dist/server/server/connectors/FsHosting.js +13 -1
  69. package/dist/server/server/connectors/FsStorage.js +28 -25
  70. package/dist/server/server/jobs.js +4 -2
  71. package/dist/server/types.js +7 -1
  72. package/package.json +35 -31
  73. package/public/assets/favicon.ico +0 -0
  74. package/public/assets/favicon.png +0 -0
  75. package/public/assets/logo-silex-small.png +0 -0
  76. package/src/css/_variables.scss +5 -3
  77. package/src/css/dialog.scss +22 -1
  78. package/src/css/fonts.scss +31 -0
  79. package/src/css/footer.scss +1 -1
  80. package/src/css/grapesjs-plugins.scss +34 -0
  81. package/src/css/grapesjs.scss +26 -11
  82. package/src/css/index.scss +1 -0
  83. package/src/css/project-bar.scss +11 -7
  84. package/src/css/silex.scss +58 -5
  85. package/src/html/index.pug +2 -2
  86. package/src/ts/client/api.ts +14 -9
  87. package/src/ts/client/assetUrl.test.ts +145 -42
  88. package/src/ts/client/assetUrl.ts +29 -10
  89. package/src/ts/client/config.ts +85 -4
  90. package/src/ts/client/events.ts +15 -9
  91. package/src/ts/client/grapesjs/PublicationManager.ts +71 -38
  92. package/src/ts/client/grapesjs/PublicationUi.ts +13 -11
  93. package/src/ts/client/grapesjs/css-props.ts +544 -0
  94. package/src/ts/client/grapesjs/eleventy.ts +2 -5
  95. package/src/ts/client/grapesjs/footer.ts +24 -9
  96. package/src/ts/client/grapesjs/img.ts +147 -0
  97. package/src/ts/client/grapesjs/index.ts +63 -25
  98. package/src/ts/client/grapesjs/internal-links.test.ts +2 -1
  99. package/src/ts/client/grapesjs/internal-links.ts +0 -1
  100. package/src/ts/client/grapesjs/new-page-dialog.ts +2 -3
  101. package/src/ts/client/grapesjs/page-panel.ts +28 -3
  102. package/src/ts/client/grapesjs/project-bar.ts +83 -64
  103. package/src/ts/client/grapesjs/resize-panel.ts +20 -0
  104. package/src/ts/client/grapesjs/rich-text.ts +21 -13
  105. package/src/ts/client/grapesjs/semantic.ts +3 -3
  106. package/src/ts/client/grapesjs/settings-sections.ts +117 -0
  107. package/src/ts/client/grapesjs/settings.ts +120 -77
  108. package/src/ts/client/grapesjs/symbolDialogs.ts +2 -3
  109. package/src/ts/client/grapesjs/view-buttons.ts +42 -0
  110. package/src/ts/client/index.ts +13 -6
  111. package/src/ts/client/publication-transformers.test.ts +13 -5
  112. package/src/ts/client/publication-transformers.ts +60 -47
  113. package/{dist/plugins/client/client/utils.js → src/ts/client/publish-custom-code-block.ts} +14 -8
  114. package/{dist/plugins/client/page.js → src/ts/client/publish-fonts.ts} +19 -14
  115. package/src/ts/client/utils.ts +18 -0
  116. package/src/ts/constants.ts +1 -0
  117. package/src/ts/plugins/client/template.ts +112 -60
  118. package/src/ts/plugins/server/FtpConnector.ts +14 -2
  119. package/src/ts/plugins/server/GitlabConnector.ts +71 -32
  120. package/src/ts/server/api/publicationApi.ts +5 -5
  121. package/src/ts/server/api/websiteApi.ts +51 -17
  122. package/src/ts/server/cli.ts +7 -5
  123. package/src/ts/server/config.ts +4 -4
  124. package/src/ts/server/connectors/FsHosting.ts +11 -5
  125. package/src/ts/server/connectors/FsStorage.ts +33 -4
  126. package/src/ts/server/connectors/connectors.ts +1 -1
  127. package/src/ts/server/jobs.ts +4 -2
  128. package/src/ts/types.ts +10 -7
  129. package/dist/plugins/client/client/api.d.ts +0 -85
  130. package/dist/plugins/client/client/api.js +0 -114
  131. package/dist/plugins/client/client/api.js.map +0 -1
  132. package/dist/plugins/client/client/assetUrl.d.ts +0 -51
  133. package/dist/plugins/client/client/assetUrl.js +0 -224
  134. package/dist/plugins/client/client/assetUrl.js.map +0 -1
  135. package/dist/plugins/client/client/config.d.ts +0 -58
  136. package/dist/plugins/client/client/config.js +0 -90
  137. package/dist/plugins/client/client/config.js.map +0 -1
  138. package/dist/plugins/client/client/grapesjs/LoginDialog.d.ts +0 -15
  139. package/dist/plugins/client/client/grapesjs/LoginDialog.js +0 -195
  140. package/dist/plugins/client/client/grapesjs/LoginDialog.js.map +0 -1
  141. package/dist/plugins/client/client/grapesjs/PublicationManager.d.ts +0 -72
  142. package/dist/plugins/client/client/grapesjs/PublicationManager.js +0 -356
  143. package/dist/plugins/client/client/grapesjs/PublicationManager.js.map +0 -1
  144. package/dist/plugins/client/client/grapesjs/PublicationUi.d.ts +0 -62
  145. package/dist/plugins/client/client/grapesjs/PublicationUi.js +0 -336
  146. package/dist/plugins/client/client/grapesjs/PublicationUi.js.map +0 -1
  147. package/dist/plugins/client/client/grapesjs/blocks.d.ts +0 -1
  148. package/dist/plugins/client/client/grapesjs/blocks.js +0 -37
  149. package/dist/plugins/client/client/grapesjs/blocks.js.map +0 -1
  150. package/dist/plugins/client/client/grapesjs/breadcrumbs.d.ts +0 -1
  151. package/dist/plugins/client/client/grapesjs/breadcrumbs.js +0 -75
  152. package/dist/plugins/client/client/grapesjs/breadcrumbs.js.map +0 -1
  153. package/dist/plugins/client/client/grapesjs/footer.d.ts +0 -2
  154. package/dist/plugins/client/client/grapesjs/footer.js +0 -28
  155. package/dist/plugins/client/client/grapesjs/footer.js.map +0 -1
  156. package/dist/plugins/client/client/grapesjs/index.d.ts +0 -5
  157. package/dist/plugins/client/client/grapesjs/index.js +0 -313
  158. package/dist/plugins/client/client/grapesjs/index.js.map +0 -1
  159. package/dist/plugins/client/client/grapesjs/internal-links.d.ts +0 -1
  160. package/dist/plugins/client/client/grapesjs/internal-links.js +0 -219
  161. package/dist/plugins/client/client/grapesjs/internal-links.js.map +0 -1
  162. package/dist/plugins/client/client/grapesjs/new-page-dialog.d.ts +0 -2
  163. package/dist/plugins/client/client/grapesjs/new-page-dialog.js +0 -83
  164. package/dist/plugins/client/client/grapesjs/new-page-dialog.js.map +0 -1
  165. package/dist/plugins/client/client/grapesjs/openImport.d.ts +0 -9
  166. package/dist/plugins/client/client/grapesjs/openImport.js +0 -74
  167. package/dist/plugins/client/client/grapesjs/openImport.js.map +0 -1
  168. package/dist/plugins/client/client/grapesjs/page-panel.d.ts +0 -3
  169. package/dist/plugins/client/client/grapesjs/page-panel.js +0 -113
  170. package/dist/plugins/client/client/grapesjs/page-panel.js.map +0 -1
  171. package/dist/plugins/client/client/grapesjs/project-bar.d.ts +0 -1
  172. package/dist/plugins/client/client/grapesjs/project-bar.js +0 -104
  173. package/dist/plugins/client/client/grapesjs/project-bar.js.map +0 -1
  174. package/dist/plugins/client/client/grapesjs/rich-text.d.ts +0 -1
  175. package/dist/plugins/client/client/grapesjs/rich-text.js +0 -31
  176. package/dist/plugins/client/client/grapesjs/rich-text.js.map +0 -1
  177. package/dist/plugins/client/client/grapesjs/semantic.d.ts +0 -1
  178. package/dist/plugins/client/client/grapesjs/semantic.js +0 -110
  179. package/dist/plugins/client/client/grapesjs/semantic.js.map +0 -1
  180. package/dist/plugins/client/client/grapesjs/settings.d.ts +0 -2
  181. package/dist/plugins/client/client/grapesjs/settings.js +0 -198
  182. package/dist/plugins/client/client/grapesjs/settings.js.map +0 -1
  183. package/dist/plugins/client/client/grapesjs/storage.d.ts +0 -1
  184. package/dist/plugins/client/client/grapesjs/storage.js +0 -126
  185. package/dist/plugins/client/client/grapesjs/storage.js.map +0 -1
  186. package/dist/plugins/client/client/grapesjs/symbolDialogs.d.ts +0 -3
  187. package/dist/plugins/client/client/grapesjs/symbolDialogs.js +0 -36
  188. package/dist/plugins/client/client/grapesjs/symbolDialogs.js.map +0 -1
  189. package/dist/plugins/client/client/publication-transformers.d.ts +0 -41
  190. package/dist/plugins/client/client/publication-transformers.js +0 -238
  191. package/dist/plugins/client/client/publication-transformers.js.map +0 -1
  192. package/dist/plugins/client/client/utils.d.ts +0 -2
  193. package/dist/plugins/client/client/utils.js.map +0 -1
  194. package/dist/plugins/client/constants.d.ts +0 -29
  195. package/dist/plugins/client/constants.js +0 -46
  196. package/dist/plugins/client/constants.js.map +0 -1
  197. package/dist/plugins/client/page.d.ts +0 -2
  198. package/dist/plugins/client/page.js.map +0 -1
  199. package/dist/plugins/client/plugins/client/11ty.d.ts +0 -17
  200. package/dist/plugins/client/plugins/client/11ty.js +0 -86
  201. package/dist/plugins/client/plugins/client/11ty.js.map +0 -1
  202. package/dist/plugins/client/plugins/client/publicationRenderer.d.ts +0 -2
  203. package/dist/plugins/client/plugins/client/publicationRenderer.js +0 -170
  204. package/dist/plugins/client/plugins/client/publicationRenderer.js.map +0 -1
  205. package/src/ts/plugins/client/11ty.ts +0 -104
  206. package/src/ts/plugins/client/publicationRenderer.ts +0 -174
@@ -1,195 +0,0 @@
1
- import { html, render } from 'lit-html';
2
- import { ConnectorType } from '../../types';
3
- import { connectorList, getUser, logout } from '../api';
4
- import { API_CONNECTOR_LOGIN, API_CONNECTOR_PATH, API_PATH } from '../../constants';
5
- export const cmdLogin = 'silex:auth:login';
6
- export const cmdLogout = 'silex:auth:logout';
7
- export const eventLoggingIn = 'silex:auth:logging-in';
8
- export const eventLoggedIn = 'silex:auth:logged-in';
9
- export const eventLoginFailed = 'silex:auth:login-failed';
10
- export const eventLoggedOut = 'silex:auth:logged-out';
11
- export async function getCurrentUser(editor) {
12
- return editor.getModel().get('user');
13
- }
14
- export async function updateUser(editor, type, connectorId) {
15
- const user = await getUser({ type, connectorId });
16
- editor.getModel().set('user', user);
17
- return user;
18
- }
19
- // Orging and path, should we use config.rootUrl?
20
- const SERVER_URL = window.location.origin + window.location.pathname.replace(/\/$/, '');
21
- let open = false;
22
- let body = null;
23
- export default function loginDialogPlugin(editor, opts) {
24
- // Options
25
- const options = {
26
- ...opts,
27
- };
28
- // Commands and events
29
- editor.Commands.add(cmdLogin, {
30
- async run(editor) { await openDialog(); },
31
- stop(editor) { closeDialog(); },
32
- });
33
- editor.Commands.add(cmdLogout, {
34
- async run(editor) {
35
- await logout({ type: ConnectorType.STORAGE });
36
- editor.getModel().set('user', null);
37
- editor.trigger(eventLoggedOut);
38
- },
39
- });
40
- editor.on(eventLoggedOut, async () => openDialog());
41
- // Dialog API
42
- function closeDialog() {
43
- if (open) {
44
- editor.Modal.close();
45
- open = false;
46
- }
47
- }
48
- async function openDialog() {
49
- editor.trigger(eventLoggingIn);
50
- open = true;
51
- editor.Modal.open({
52
- title: 'Login',
53
- content: '<div id="LoginDialog__content"></div>',
54
- }, {
55
- closeOnConfirm: false,
56
- closeOnEscape: false,
57
- closeOnOverlayClick: false,
58
- });
59
- body = document.querySelector('#LoginDialog__content');
60
- if (!body) {
61
- throw new Error('Dialog creation failed');
62
- }
63
- render(html `Logging in...`, body);
64
- return loadStorageList(async (list) => onStorageList(list));
65
- }
66
- async function onStorageList(list) {
67
- const loggedIn = list.find(connector => connector.isLoggedIn);
68
- if (loggedIn) {
69
- try {
70
- const status = await updateUser(editor, loggedIn.type, loggedIn.connectorId);
71
- editor.trigger(eventLoggedIn, status);
72
- return closeDialog();
73
- }
74
- catch (err) {
75
- console.error('Error with updating login status', err);
76
- render(html `
77
- <main>
78
- <p>There was an error with updating the login status. ${err.message}</p>
79
- </main>
80
- <footer>
81
- <button class="silex-button silex-button--primary" @click=${() => loadStorageList(async (list) => onStorageList(list))}>Retry</button>
82
- <button class="silex-button" @click=${async () => {
83
- await logout({ type: loggedIn.type, connectorId: loggedIn.connectorId });
84
- openDialog();
85
- }}>Login with another connector</button>
86
- </footer>
87
- `, body);
88
- }
89
- return;
90
- }
91
- // Display the list of storage and continue to login
92
- render(html `
93
- <main>
94
- <p>Login and give Silex access to a file storage.</p>
95
- ${list.map(connector => html `
96
- <button
97
- class="silex-button silex-button--primary"
98
- id="publish-button--primary"
99
- @click=${() => loginWithConnector(connector)}
100
- >Login with ${connector.displayName}</button>
101
- `)}
102
- </main>
103
- <footer>
104
- </footer>
105
- `, body);
106
- }
107
- // Auth management
108
- async function loadStorageList(done) {
109
- try {
110
- const storageConnectors = await connectorList({ type: ConnectorType.STORAGE });
111
- await done(storageConnectors);
112
- }
113
- catch (err) {
114
- console.error('Error with loading storage connectors', err);
115
- render(html `
116
- <main>
117
- An error occured while loading the storage connectors: ${err.message}
118
- </main>
119
- <footer>
120
- <button type="button" class="gjs-btn-prim" @click=${() => loadStorageList(done)}>Retry</button>
121
- </footer>
122
- `, body);
123
- }
124
- }
125
- async function loginWithConnector(connector) {
126
- const nonOAuthUrl = `${SERVER_URL}${API_PATH}${API_CONNECTOR_PATH}${API_CONNECTOR_LOGIN}?connectorId=${connector.connectorId}&type=${connector.type}`;
127
- window.open(connector.oauthUrl ?? nonOAuthUrl, '_blank');
128
- return new Promise(resolve => {
129
- render(html `
130
- <main>
131
- <p>Waiting for your authorization in popup window...</p>
132
- </main>
133
- <footer>
134
- <button type="button" class="gjs-btn-prim" @click=${() => openDialog()}>Cancel</button>
135
- </footer>
136
- `, body);
137
- const onMessage = async (event) => {
138
- const data = event.data;
139
- if (data?.type === 'login') {
140
- window.removeEventListener('message', onMessage);
141
- const { connectorId, error, message } = data; // TODO: use options from the connector? For now they are stored in the session
142
- if (error) {
143
- // Error, start over
144
- console.error('login error', message);
145
- render(html `
146
- <main>
147
- <p>Login failed with error: ${message}</p>
148
- <footer>
149
- <button type="button" class="gjs-btn-prim" @click=${() => openDialog()}>Retry</button>
150
- ${connectorId ? html `<button class="silex-button" @click=${async () => {
151
- await logout({ type: connector.type, connectorId });
152
- openDialog();
153
- }}>Login with another connector</button>` : ''}
154
-
155
- </footer>
156
- `, body);
157
- editor.trigger(eventLoginFailed);
158
- }
159
- else {
160
- try {
161
- render(html `
162
- <main>
163
- <p>Loging in...</p>
164
- </main>
165
- <footer>
166
- </footer>
167
- `, body);
168
- const status = await updateUser(editor, connector.type, connectorId);
169
- editor.trigger(eventLoggedIn, status);
170
- closeDialog();
171
- }
172
- catch (err) {
173
- console.error('Error with loading login status', err);
174
- render(html `
175
- <main>
176
- An error occured, could not get your data.
177
- ${err.message}
178
- </main>
179
- <footer>
180
- <button type="button" class="gjs-btn-prim" @click=${() => openDialog()}>Retry</button>
181
- <button class="silex-button" @click=${async () => {
182
- await logout({ type: connector.type, connectorId });
183
- openDialog();
184
- }}>Login with another connector</button>
185
- </footer>
186
- `, body);
187
- }
188
- }
189
- }
190
- };
191
- window.addEventListener('message', onMessage, false);
192
- });
193
- }
194
- }
195
- //# sourceMappingURL=LoginDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoginDialog.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/LoginDialog.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import { ConnectorData, PublicationJobData, PublicationSettings, WebsiteFile, WebsiteId, WebsiteSettings } from '../../types';
2
- import { Editor } from 'grapesjs';
3
- import { PublicationUi } from './PublicationUi';
4
- /**
5
- * @fileoverview Publication manager for Silex
6
- * This plugin adds a publication feature to Silex
7
- * It lets the user publish the website to a hosting service
8
- * It can optionally display a button and a dialog
9
- * Useful commands:
10
- * - publish: starts the publication process and optionally open the dialog
11
- * - publish-login: open the login dialog
12
- * - publish-logout: logout from the hosting service and let the user choose a hosting service again
13
- */
14
- export declare const cmdPublicationStart = "publish";
15
- export declare const cmdPublicationLogin = "publish-login";
16
- export declare const cmdPublicationLogout = "publish-logout";
17
- export type PublishableEditor = Editor & {
18
- PublicationManager: PublicationManager;
19
- };
20
- export declare enum PublicationStatus {
21
- STATUS_NONE = "STATUS_NONE",
22
- STATUS_PENDING = "STATUS_PENDING",
23
- STATUS_ERROR = "STATUS_ERROR",
24
- STATUS_SUCCESS = "STATUS_SUCCESS",
25
- STATUS_LOGGED_OUT = "STATUS_AUTH_ERROR"
26
- }
27
- export type PublicationManagerOptions = {
28
- appendTo?: string;
29
- websiteId: WebsiteId;
30
- };
31
- export default function publishPlugin(editor: any, opts: any): void;
32
- export declare class PublicationManager {
33
- private editor;
34
- /**
35
- * Publication dialog
36
- * This class is responsible for the UI
37
- */
38
- dialog?: PublicationUi;
39
- /**
40
- * Publication settings
41
- * This is the data which is stored in the website settings
42
- */
43
- _settings: PublicationSettings;
44
- get settings(): PublicationSettings;
45
- set settings(newSettings: PublicationSettings);
46
- /**
47
- * Plugin options
48
- * This is the data which is passed to the plugin by grapesjs
49
- */
50
- options: PublicationManagerOptions;
51
- /**
52
- * Publication job during the publication process
53
- */
54
- job: PublicationJobData | null;
55
- /**
56
- * Publication state
57
- * This is the state of the publication process
58
- */
59
- status: PublicationStatus;
60
- constructor(editor: PublishableEditor, opts: PublicationManagerOptions);
61
- goLogin(connector: ConnectorData): Promise<unknown>;
62
- goLogout(): Promise<void>;
63
- /**
64
- * Start the publication process
65
- * This is the command "publish"
66
- */
67
- startPublication(): Promise<void>;
68
- getHtmlFiles(siteSettings: WebsiteSettings): Promise<WebsiteFile[]>;
69
- trackProgress(): Promise<void>;
70
- private setPublicationTransformers;
71
- private resetPublicationTransformers;
72
- }
@@ -1,356 +0,0 @@
1
- /*
2
- * Silex website builder, free/libre no-code tool for makers.
3
- * Copyright (c) 2023 lexoyo and Silex Labs foundation
4
- *
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU Affero General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or any later version.
8
- *
9
- * This program is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU Affero General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU Affero General Public License
15
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
16
- */
17
- import { getPageSlug } from '../../page';
18
- import { ClientSideFileType, ConnectorType, JobStatus } from '../../types';
19
- import { PublicationUi } from './PublicationUi';
20
- import { getUser, logout, publicationStatus, publish } from '../api';
21
- import { API_CONNECTOR_LOGIN, API_CONNECTOR_PATH, API_PATH } from '../../constants';
22
- import { ClientEvent } from '../events';
23
- import { resetRenderComponents, resetRenderCssRules, transformPermalink, transformFiles, transformPath, renderComponents, renderCssRules } from '../publication-transformers';
24
- /**
25
- * @fileoverview Publication manager for Silex
26
- * This plugin adds a publication feature to Silex
27
- * It lets the user publish the website to a hosting service
28
- * It can optionally display a button and a dialog
29
- * Useful commands:
30
- * - publish: starts the publication process and optionally open the dialog
31
- * - publish-login: open the login dialog
32
- * - publish-logout: logout from the hosting service and let the user choose a hosting service again
33
- */
34
- // Constants
35
- export const cmdPublicationStart = 'publish';
36
- export const cmdPublicationLogin = 'publish-login';
37
- export const cmdPublicationLogout = 'publish-logout';
38
- export var PublicationStatus;
39
- (function (PublicationStatus) {
40
- PublicationStatus["STATUS_NONE"] = "STATUS_NONE";
41
- PublicationStatus["STATUS_PENDING"] = "STATUS_PENDING";
42
- PublicationStatus["STATUS_ERROR"] = "STATUS_ERROR";
43
- PublicationStatus["STATUS_SUCCESS"] = "STATUS_SUCCESS";
44
- PublicationStatus["STATUS_LOGGED_OUT"] = "STATUS_AUTH_ERROR";
45
- })(PublicationStatus || (PublicationStatus = {}));
46
- // plugin init cod
47
- export default function publishPlugin(editor, opts) {
48
- editor.PublicationManager = new PublicationManager(editor, opts);
49
- }
50
- function jobStatusToPublicationStatus(status) {
51
- switch (status) {
52
- case JobStatus.IN_PROGRESS:
53
- return PublicationStatus.STATUS_PENDING;
54
- case JobStatus.ERROR:
55
- return PublicationStatus.STATUS_ERROR;
56
- case JobStatus.SUCCESS:
57
- return PublicationStatus.STATUS_SUCCESS;
58
- }
59
- throw new Error(`Unknown job status ${status}`);
60
- }
61
- // Orging and path, should we use config.rootUrl?
62
- const SERVER_URL = window.location.origin + window.location.pathname.replace(/\/$/, '');
63
- // The publication manager class
64
- // This class is responsible for the publication dialog and for the publication process
65
- // It is added to the editor instance as editor.PublicationManager
66
- export class PublicationManager {
67
- editor;
68
- /**
69
- * Publication dialog
70
- * This class is responsible for the UI
71
- */
72
- dialog;
73
- /**
74
- * Publication settings
75
- * This is the data which is stored in the website settings
76
- */
77
- _settings;
78
- get settings() {
79
- return this._settings;
80
- }
81
- set settings(newSettings) {
82
- this._settings = newSettings;
83
- this.dialog && (this.dialog.settings = newSettings);
84
- }
85
- /**
86
- * Plugin options
87
- * This is the data which is passed to the plugin by grapesjs
88
- */
89
- options;
90
- /**
91
- * Publication job during the publication process
92
- */
93
- job = null;
94
- /**
95
- * Publication state
96
- * This is the state of the publication process
97
- */
98
- status = PublicationStatus.STATUS_NONE;
99
- constructor(editor, opts) {
100
- this.editor = editor;
101
- this.options = {
102
- appendTo: 'options',
103
- ...opts,
104
- };
105
- // Save the publication settings in the website settings
106
- editor.on('storage:start:store', (data) => {
107
- data.publication = this.settings;
108
- });
109
- // load publication settings from the website
110
- editor.on('storage:end:load', (data) => {
111
- this.settings = data.publication ?? {};
112
- // Check if the user is logged in
113
- getUser({ type: ConnectorType.HOSTING, connectorId: this.settings.connector?.connectorId })
114
- .then((user) => { })
115
- .catch((err) => {
116
- this.status = PublicationStatus.STATUS_LOGGED_OUT;
117
- this.settings = {};
118
- this.dialog && this.dialog.displayError('Please login', this.job, this.status);
119
- });
120
- });
121
- // Add the publish command to the editor
122
- editor.Commands.add(cmdPublicationStart, () => this.startPublication());
123
- editor.Commands.add(cmdPublicationLogin, (editor, sender, connector) => this.goLogin(connector));
124
- editor.Commands.add(cmdPublicationLogout, () => this.goLogout());
125
- // Add the publication dialog to the editor
126
- if (this.options.appendTo) {
127
- this.dialog = new PublicationUi(editor, {
128
- appendTo: this.options.appendTo,
129
- });
130
- }
131
- else {
132
- console.info('PublicationUi is disabled because no appendTo option is set');
133
- }
134
- }
135
- async goLogin(connector) {
136
- // Check if the user is already logged in
137
- if (connector.isLoggedIn) {
138
- this.settings = {
139
- ...this.settings,
140
- connector,
141
- };
142
- this.status = PublicationStatus.STATUS_NONE;
143
- // Save the website with the new settings
144
- this.editor.store(null);
145
- // Display the dialog
146
- this.dialog && this.dialog.displayPending(this.job, this.status);
147
- return;
148
- }
149
- this.settings = {};
150
- this.status = PublicationStatus.STATUS_LOGGED_OUT;
151
- this.dialog && this.dialog.displayPending(this.job, this.status);
152
- const params = {
153
- connectorId: connector.connectorId,
154
- type: connector.type,
155
- };
156
- window.open(connector.oauthUrl || `${SERVER_URL}${API_PATH}${API_CONNECTOR_PATH}${API_CONNECTOR_LOGIN}?connectorId=${params.connectorId}&type=${params.type}`, '_blank');
157
- return new Promise(resolve => {
158
- const onMessage = async (event) => {
159
- const data = event.data;
160
- if (data?.type === 'login') {
161
- window.removeEventListener('message', onMessage);
162
- if (data.error) {
163
- this.status = PublicationStatus.STATUS_LOGGED_OUT;
164
- this.settings = {};
165
- this.dialog && this.dialog.displayError(data.message, this.job, this.status);
166
- }
167
- else {
168
- this.editor.trigger(ClientEvent.PUBLISH_LOGIN_END);
169
- //const uesr = await getUser({type: connector.type, connectorId: data.connectorId})
170
- this.settings.connector = connector;
171
- this.settings.options = data.options;
172
- this.status = PublicationStatus.STATUS_NONE;
173
- // Save the website with the new settings
174
- this.editor.store(null);
175
- // Display the dialog
176
- this.dialog && this.dialog.displayPending(this.job, this.status);
177
- //await this.startPublication()
178
- }
179
- }
180
- };
181
- window.addEventListener('message', onMessage, false);
182
- });
183
- }
184
- async goLogout() {
185
- try {
186
- await logout({ type: ConnectorType.HOSTING, connectorId: this.settings.connector.connectorId });
187
- this.settings = {};
188
- this.dialog && this.dialog.displayPending(this.job, this.status);
189
- }
190
- catch (e) {
191
- console.error('logout error', e);
192
- this.status = PublicationStatus.STATUS_ERROR;
193
- this.dialog && this.dialog.displayError(e.message, this.job, this.status);
194
- }
195
- }
196
- /**
197
- * Start the publication process
198
- * This is the command "publish"
199
- */
200
- async startPublication() {
201
- if (this.status === PublicationStatus.STATUS_PENDING)
202
- throw new Error('Publication is already in progress');
203
- this.status = PublicationStatus.STATUS_PENDING;
204
- this.job = null;
205
- this.dialog && this.dialog.displayPending(this.job, this.status);
206
- this.editor.trigger(ClientEvent.PUBLISH_START);
207
- // User and where to publish
208
- const storageUser = this.editor.getModel().get('user');
209
- if (!storageUser)
210
- throw new Error('User not logged in to a storage connector');
211
- if (!this.settings.connector?.connectorId)
212
- throw new Error('User not logged in to a hosting connector');
213
- const websiteId = this.options.websiteId;
214
- const storageId = storageUser.storage.connectorId;
215
- // Data to publish
216
- // See assetUrl.ts which is a default transformer, always present
217
- this.setPublicationTransformers();
218
- const projectData = this.editor.getProjectData();
219
- const siteSettings = this.editor.getModel().get('settings');
220
- // Build the files structure
221
- const files = (await this.getHtmlFiles(siteSettings))
222
- .flatMap(file => ([{
223
- path: file.htmlPath,
224
- content: file.html,
225
- type: ClientSideFileType.HTML,
226
- }, {
227
- path: file.cssPath,
228
- content: file.css,
229
- type: ClientSideFileType.CSS,
230
- }]))
231
- .concat(projectData.assets
232
- .map(asset => {
233
- // TODO: is this needed?
234
- // // Remove /assets that is added by grapesjs
235
- // const initialPath = asset.src
236
- // .replace(/^\/assets/, '')
237
- // Transform the file paths with the transformers
238
- const path = transformPath(this.editor, asset.src, ClientSideFileType.ASSET);
239
- const src = transformPermalink(this.editor, asset.src, ClientSideFileType.ASSET);
240
- return {
241
- ...asset,
242
- path,
243
- src,
244
- type: ClientSideFileType.ASSET, // Replaces grapesjs's 'image' type
245
- };
246
- }));
247
- // Create the data to send to the server
248
- const data = {
249
- ...projectData,
250
- settings: siteSettings,
251
- publication: this.settings,
252
- files,
253
- };
254
- this.resetPublicationTransformers();
255
- transformFiles(this.editor, data);
256
- this.editor.trigger(ClientEvent.PUBLISH_DATA, data);
257
- try {
258
- const [url, job] = await publish({
259
- websiteId,
260
- hostingId: this.settings.connector.connectorId,
261
- storageId,
262
- data: data,
263
- options: this.settings.options,
264
- });
265
- this.job = job;
266
- this.status = jobStatusToPublicationStatus(this.job.status);
267
- // Save the publication settings
268
- // Useless because the url is useful after publish only
269
- //if(this.settings.url !== url) {
270
- // this.settings.url = url
271
- // await this.editor.store(null)
272
- //}
273
- this.trackProgress();
274
- }
275
- catch (e) {
276
- console.error('publish error', e);
277
- if (e.code === 401 || e.httpStatusCode === 401) {
278
- this.status = PublicationStatus.STATUS_LOGGED_OUT;
279
- this.settings = {};
280
- this.dialog && this.dialog.displayError('Please login.', this.job, this.status);
281
- }
282
- else {
283
- this.status = PublicationStatus.STATUS_ERROR;
284
- this.dialog && this.dialog.displayError(`An error occured, your site is not published. ${e.message}`, this.job, this.status);
285
- }
286
- this.editor.trigger(ClientEvent.PUBLISH_ERROR, { success: false, message: e.message });
287
- this.editor.trigger(ClientEvent.PUBLISH_END, { success: false, message: e.message });
288
- return;
289
- }
290
- }
291
- async getHtmlFiles(siteSettings) {
292
- return this.editor.Pages.getAll().map(page => {
293
- const pageSettings = page.get('settings');
294
- function getSetting(name) {
295
- return (pageSettings || {})[name] || (siteSettings || [])[name] || '';
296
- }
297
- const component = page.getMainComponent();
298
- // Transform the file paths
299
- const slug = getPageSlug(page.get('name'));
300
- const cssInitialPath = `/css/${slug}.css`;
301
- const htmlInitialPath = `/${slug}.html`;
302
- const cssPermalink = transformPermalink(this.editor, cssInitialPath, ClientSideFileType.CSS);
303
- const cssPath = transformPath(this.editor, cssInitialPath, ClientSideFileType.CSS);
304
- const htmlPath = transformPath(this.editor, htmlInitialPath, ClientSideFileType.HTML);
305
- const body = this.editor.getHtml({ component });
306
- return {
307
- html: `<!DOCTYPE html>
308
- <html lang="${getSetting('lang')}">
309
- <head>
310
- <link rel="stylesheet" href="${cssPermalink}" />
311
- ${siteSettings?.head || ''}
312
- ${pageSettings?.head || ''}
313
- <title>${getSetting('title')}</title>
314
- <link rel="icon" href="${getSetting('favicon')}" />
315
- ${['description', 'og:title', 'og:description', 'og:image']
316
- .map(prop => `<meta property="${prop}" content="${getSetting(prop)}"/>`)
317
- .join('\n')}
318
- </head>
319
- ${body}
320
- </html>`,
321
- css: this.editor.getCss({ component }),
322
- cssPath,
323
- htmlPath,
324
- };
325
- });
326
- }
327
- async trackProgress() {
328
- try {
329
- this.job = await publicationStatus({ jobId: this.job.jobId });
330
- this.status = jobStatusToPublicationStatus(this.job.status);
331
- }
332
- catch (e) {
333
- this.status = PublicationStatus.STATUS_ERROR;
334
- this.dialog && this.dialog.displayError(`An error occured, your site is not published. ${e.message}`, this.job, this.status);
335
- this.editor.trigger(ClientEvent.PUBLISH_END, { success: false, message: e.message });
336
- this.editor.trigger(ClientEvent.PUBLISH_ERROR, { success: false, message: e.message });
337
- return;
338
- }
339
- if (this.job.status === JobStatus.IN_PROGRESS) {
340
- setTimeout(() => this.trackProgress(), 2000);
341
- }
342
- else {
343
- this.editor.trigger(ClientEvent.PUBLISH_END, { success: this.job.status === JobStatus.SUCCESS, message: this.job.message });
344
- }
345
- this.dialog && this.dialog.displayPending(this.job, this.status);
346
- }
347
- setPublicationTransformers() {
348
- renderComponents(this.editor);
349
- renderCssRules(this.editor);
350
- }
351
- resetPublicationTransformers() {
352
- resetRenderComponents(this.editor);
353
- resetRenderCssRules(this.editor);
354
- }
355
- }
356
- //# sourceMappingURL=PublicationManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PublicationManager.js","sourceRoot":"","sources":["../../../../../src/ts/client/grapesjs/PublicationManager.ts"],"names":[],"mappings":"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"}