@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,85 +0,0 @@
1
- import { ConnectorId, JobId, PublicationJobData, WebsiteId, ConnectorData, ConnectorType, WebsiteData, ClientSideFile, PublicationData, ConnectorUser, WebsiteMeta, WebsiteMetaFileContent, ConnectorOptions } from '../types';
2
- export declare enum ApiRoute {
3
- PUBLICATION_PUBLISH = "/api/publication/",
4
- PUBLICATION_STATUS = "/api/publication/publication/status",
5
- CONNECTOR_USER = "/api/connector/user",
6
- CONNECTOR_LOGOUT = "/api/connector/logout",
7
- CONNECTOR_LIST = "/api/connector/",
8
- WEBSITE_READ = "/api/website/",
9
- WEBSITE_WRITE = "/api/website/",
10
- WEBSITE_DELETE = "/api/website/",
11
- WEBSITE_CREATE = "/api/website/",
12
- WEBSITE_LIST = "/api/website/",
13
- WEBSITE_ASSETS_READ = "/api/website/assets",
14
- WEBSITE_ASSETS_WRITE = "/api/website/assets",
15
- WEBSITE_META_READ = "/api/website/meta",
16
- WEBSITE_META_WRITE = "/api/website/meta"
17
- }
18
- export declare function setServerUrl(url: string): void;
19
- export declare function getServerUrl(): string;
20
- export declare function getUser({ type, connectorId }: {
21
- type: ConnectorType;
22
- connectorId?: ConnectorId;
23
- }): Promise<ConnectorUser>;
24
- export declare function logout({ type, connectorId }: {
25
- type: ConnectorType;
26
- connectorId?: ConnectorId;
27
- }): Promise<void>;
28
- export declare function publish({ websiteId, hostingId, storageId, data, options }: {
29
- websiteId: WebsiteId;
30
- hostingId: ConnectorId;
31
- storageId: ConnectorId;
32
- data: PublicationData;
33
- options: ConnectorOptions;
34
- }): Promise<[url: string, job: PublicationJobData]>;
35
- export declare function publicationStatus({ jobId }: {
36
- jobId: JobId;
37
- }): Promise<PublicationJobData>;
38
- export declare function connectorList({ type }: {
39
- type: ConnectorType;
40
- }): Promise<ConnectorData[]>;
41
- export declare function websiteList({ connectorId }: {
42
- connectorId?: ConnectorId;
43
- }): Promise<WebsiteMeta[]>;
44
- export declare function websiteLoad({ websiteId, connectorId }: {
45
- websiteId: WebsiteId;
46
- connectorId?: ConnectorId;
47
- }): Promise<WebsiteData>;
48
- export declare function websiteSave({ websiteId, data, connectorId }: {
49
- websiteId: WebsiteId;
50
- data: WebsiteData;
51
- connectorId?: ConnectorId;
52
- }): Promise<void>;
53
- export declare function websiteDelete({ websiteId, connectorId }: {
54
- websiteId: WebsiteId;
55
- connectorId?: ConnectorId;
56
- }): Promise<void>;
57
- export declare function websiteCreate({ websiteId, data, connectorId }: {
58
- websiteId: WebsiteId;
59
- data: WebsiteMetaFileContent;
60
- connectorId?: ConnectorId;
61
- }): Promise<void>;
62
- export declare function websiteMetaWrite({ websiteId, data, connectorId }: {
63
- websiteId: WebsiteId;
64
- data: WebsiteMetaFileContent;
65
- connectorId?: ConnectorId;
66
- }): Promise<void>;
67
- export declare function websiteMetaRead({ websiteId, connectorId }: {
68
- websiteId: WebsiteId;
69
- connectorId?: ConnectorId;
70
- }): Promise<WebsiteMeta>;
71
- export declare function websiteAssetsLoad({ path, websiteId, connectorId }: {
72
- path: string;
73
- websiteId: WebsiteId;
74
- connectorId: ConnectorId;
75
- }): Promise<string>;
76
- /**
77
- * Not used directly, grapesjs handles the upload
78
- * @see assetManager in src/ts/client/grapesjs/index.ts
79
- */
80
- export declare function websiteAssetsSave({ websiteId, connectorId, files }: {
81
- websiteId: WebsiteId;
82
- connectorId: ConnectorId;
83
- files: ClientSideFile[];
84
- }): Promise<string[]>;
85
- export declare function api<ReqQuery, ReqBody, ResBody>(route: ApiRoute | string, method: string, query?: ReqQuery, payload?: ReqBody): Promise<ResBody>;
@@ -1,114 +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 { API_CONNECTOR_LIST, API_CONNECTOR_USER, API_CONNECTOR_LOGOUT, API_CONNECTOR_PATH, API_PATH, API_PUBLICATION_PATH, API_PUBLICATION_PUBLISH, API_PUBLICATION_STATUS, API_WEBSITE_ASSET_READ, API_WEBSITE_ASSETS_WRITE, API_WEBSITE_DELETE, API_WEBSITE_LIST, API_WEBSITE_PATH, API_WEBSITE_READ, API_WEBSITE_WRITE, API_WEBSITE_META_READ, API_WEBSITE_META_WRITE, API_WEBSITE_CREATE } from '../constants';
18
- import { ApiError } from '../types';
19
- export var ApiRoute;
20
- (function (ApiRoute) {
21
- ApiRoute["PUBLICATION_PUBLISH"] = "/api/publication/";
22
- ApiRoute["PUBLICATION_STATUS"] = "/api/publication/publication/status";
23
- ApiRoute["CONNECTOR_USER"] = "/api/connector/user";
24
- ApiRoute["CONNECTOR_LOGOUT"] = "/api/connector/logout";
25
- ApiRoute["CONNECTOR_LIST"] = "/api/connector/";
26
- ApiRoute["WEBSITE_READ"] = "/api/website/";
27
- ApiRoute["WEBSITE_WRITE"] = "/api/website/";
28
- ApiRoute["WEBSITE_DELETE"] = "/api/website/";
29
- ApiRoute["WEBSITE_CREATE"] = "/api/website/";
30
- ApiRoute["WEBSITE_LIST"] = "/api/website/";
31
- ApiRoute["WEBSITE_ASSETS_READ"] = "/api/website/assets";
32
- ApiRoute["WEBSITE_ASSETS_WRITE"] = "/api/website/assets";
33
- ApiRoute["WEBSITE_META_READ"] = "/api/website/meta";
34
- ApiRoute["WEBSITE_META_WRITE"] = "/api/website/meta";
35
- })(ApiRoute || (ApiRoute = {}));
36
- // Root URL of Silex server, should we use config.rootUrl ?
37
- let serverUrl = window.location.origin + window.location.pathname.replace(/\/$/, '');
38
- export function setServerUrl(url) {
39
- serverUrl = url;
40
- }
41
- export function getServerUrl() {
42
- return serverUrl;
43
- }
44
- export async function getUser({ type, connectorId }) {
45
- return api(ApiRoute.CONNECTOR_USER, 'GET', {
46
- type,
47
- connectorId,
48
- });
49
- }
50
- export async function logout({ type, connectorId }) {
51
- return api(ApiRoute.CONNECTOR_LOGOUT, 'POST', { connectorId, type });
52
- }
53
- export async function publish({ websiteId, hostingId, storageId, data, options }) {
54
- const { url, job } = await api(ApiRoute.PUBLICATION_PUBLISH, 'POST', { websiteId, hostingId, storageId, options }, data);
55
- return [url, job];
56
- }
57
- export async function publicationStatus({ jobId }) {
58
- return api(ApiRoute.PUBLICATION_STATUS, 'GET', { jobId });
59
- }
60
- export async function connectorList({ type }) {
61
- const list = await api(ApiRoute.CONNECTOR_LIST, 'GET', { type });
62
- return list;
63
- }
64
- export async function websiteList({ connectorId }) {
65
- return api(ApiRoute.WEBSITE_LIST, 'GET', { connectorId });
66
- }
67
- export async function websiteLoad({ websiteId, connectorId }) {
68
- return api(ApiRoute.WEBSITE_READ, 'GET', { websiteId, connectorId: connectorId });
69
- }
70
- export async function websiteSave({ websiteId, data, connectorId }) {
71
- const { message } = await api(ApiRoute.WEBSITE_WRITE, 'POST', { websiteId, connectorId: connectorId }, data);
72
- }
73
- export async function websiteDelete({ websiteId, connectorId }) {
74
- await api(ApiRoute.WEBSITE_DELETE, 'DELETE', { websiteId, connectorId: connectorId });
75
- }
76
- export async function websiteCreate({ websiteId, data, connectorId }) {
77
- await api(ApiRoute.WEBSITE_CREATE, 'PUT', { connectorId: connectorId }, data);
78
- }
79
- export async function websiteMetaWrite({ websiteId, data, connectorId }) {
80
- await api(ApiRoute.WEBSITE_META_WRITE, 'POST', { websiteId, connectorId: connectorId }, data);
81
- }
82
- export async function websiteMetaRead({ websiteId, connectorId }) {
83
- return api(ApiRoute.WEBSITE_META_WRITE, 'GET', { websiteId, connectorId });
84
- }
85
- export async function websiteAssetsLoad({ path, websiteId, connectorId }) {
86
- return api(`${ApiRoute.WEBSITE_ASSETS_READ}/${path}`, 'GET', { websiteId, connectorId: connectorId });
87
- }
88
- /**
89
- * Not used directly, grapesjs handles the upload
90
- * @see assetManager in src/ts/client/grapesjs/index.ts
91
- */
92
- export async function websiteAssetsSave({ websiteId, connectorId, files }) {
93
- const { data } = await api(ApiRoute.WEBSITE_ASSETS_WRITE, 'POST', { websiteId, connectorId: connectorId }, files);
94
- return data;
95
- }
96
- export async function api(route, method, query, payload) {
97
- const url = `${serverUrl}${route.toString()}?${new URLSearchParams(Object.entries(query)
98
- .filter(([key, value]) => !!value)
99
- .map(([key, value]) => [key, typeof value === 'string' ? value : JSON.stringify(value)])).toString()}`;
100
- const response = await fetch(url, {
101
- method,
102
- headers: {
103
- 'Content-Type': 'application/json',
104
- },
105
- body: payload && JSON.stringify(payload),
106
- credentials: 'include', // sends the cookies with the request
107
- });
108
- if (!response.ok) {
109
- const json = await response.json();
110
- throw new ApiError(json.message, response.status);
111
- }
112
- return response.json();
113
- }
114
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../../src/ts/client/api.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { Asset, ClientSideFileType, ConnectorId, Page, Style, WebsiteId } from '../types';
2
- /**
3
- * Function to convert a path from it stored version to the displayed version
4
- * Stored version is like `/assets/image.webp`
5
- * Grapesjs version is like `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
6
- * Exported for unit tests
7
- */
8
- export declare function storedToDisplayed(path: string, websiteId: WebsiteId, storageId: ConnectorId): string;
9
- /**
10
- * Function to convert a path from the one we give to grapesjs to the stored version
11
- * Grapesjs version is like `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
12
- * Stored version is like `/assets/image.webp`
13
- * @param path the path to convert
14
- * @returns the converted path
15
- * Exported for unit tests
16
- */
17
- export declare function displayedToStored(path: string): string;
18
- /**
19
- * Publication transformer to convert the asset URL during publication
20
- */
21
- export declare const assetsPublicationTransformer: {
22
- transformPath(path: string, type: ClientSideFileType): string;
23
- transformPermalink(path: string, type: ClientSideFileType): string;
24
- };
25
- /**
26
- * Update asset URL to use the current storage connector and website ID
27
- * Assets URLs are stored in the project data in the form `/assets/image.webp`
28
- * This function adds the API path and the connectorId and websiteId like so: `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
29
- */
30
- export declare function addTempDataToAssetUrl(assets: Asset[], websiteId: WebsiteId, storageId: ConnectorId): Asset[];
31
- /**
32
- * Remove the temporary data from the asset URL
33
- * Remove the API path and the connectorId and websiteId like so: `/assets/image.webp`
34
- */
35
- export declare function removeTempDataFromAssetUrl(assets: Asset[]): Asset[];
36
- /**
37
- * Add temp data to pages
38
- */
39
- export declare function addTempDataToPages(pages: Page[], websiteId: WebsiteId, storageId: ConnectorId): Page[];
40
- /**
41
- * Remove temp data from asset URL in the components
42
- */
43
- export declare function removeTempDataFromPages(pages: Page[]): Page[];
44
- /**
45
- * Add data to stylesheets
46
- */
47
- export declare function addTempDataToStyles(styles: Style[], websiteId: WebsiteId, storageId: ConnectorId): Style[];
48
- /**
49
- * Remove temp data from stylesheets
50
- */
51
- export declare function removeTempDataFromStyles(styles: Style[]): Style[];
@@ -1,224 +0,0 @@
1
- import { API_PATH, API_WEBSITE_ASSET_READ, API_WEBSITE_PATH } from '../constants';
2
- import { ClientSideFileType } from '../types';
3
- /**
4
- * @fileoverview Helpers to manage assets URL
5
- * Assets URLs are stored on storage in their "stored version": `/assets/image.webp`
6
- * But the client side uses the "display version": `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
7
- * After loading the site data we convert all URLs to the client side version
8
- * Before saving the site data we convert all URLs to the storage version
9
- * During publicationn we convert all URLs to the storage version and back
10
- */
11
- // Get the base URL where Silex is served
12
- const baseUrl = window.location.pathname.replace(/\/$/, '');
13
- // Orging and path, should we use config.rootUrl?
14
- const SERVER_URL = window.location.origin;
15
- console.log('SERVER_URL', SERVER_URL);
16
- /**
17
- * Function to convert a path from it stored version to the displayed version
18
- * Stored version is like `/assets/image.webp`
19
- * Grapesjs version is like `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
20
- * Exported for unit tests
21
- */
22
- export function storedToDisplayed(path, websiteId, storageId) {
23
- // Check the path is a stored path
24
- if (path.startsWith('/assets')) {
25
- // Make an absolute URL
26
- const url = new URL(path, SERVER_URL);
27
- // Remove the assets folder as it is part of the saved path
28
- url.pathname = url.pathname.replace(/^\/assets/, '');
29
- // Add the API path and the connectorId and websiteId
30
- url.pathname = `${baseUrl}${API_PATH}${API_WEBSITE_PATH}${API_WEBSITE_ASSET_READ}${url.pathname}`;
31
- // Add the GET params
32
- url.searchParams.set('websiteId', websiteId);
33
- url.searchParams.set('connectorId', storageId);
34
- // Back to a relative URL, keep the path but not the origin
35
- const encodedPath = '/' + url.toString() // add a leading slash
36
- .replace(new RegExp(`^${SERVER_URL}`), '')
37
- .replace(/^\//, ''); // remove the first slash if it exists
38
- return decodeURIComponent(encodedPath);
39
- }
40
- else {
41
- console.warn('storedToDisplayed: path is not a stored path', path);
42
- return path;
43
- }
44
- }
45
- /**
46
- * Function to convert a path from the one we give to grapesjs to the stored version
47
- * Grapesjs version is like `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
48
- * Stored version is like `/assets/image.webp`
49
- * @param path the path to convert
50
- * @returns the converted path
51
- * Exported for unit tests
52
- */
53
- export function displayedToStored(path) {
54
- // The path to the assets API
55
- const apiPath = `${baseUrl}${API_PATH}${API_WEBSITE_PATH}${API_WEBSITE_ASSET_READ}`;
56
- // Check the path is a displayed path
57
- if (path.startsWith(apiPath)) {
58
- const url = new URL(path, SERVER_URL);
59
- url.pathname = url.pathname.replace(new RegExp(`^${apiPath}`), '');
60
- url.pathname = `${baseUrl}/assets${url.pathname}`;
61
- url.searchParams.delete('websiteId');
62
- url.searchParams.delete('connectorId');
63
- const encodedPath = '/' + url.toString() // add a leading slash
64
- .replace(new RegExp(`^${SERVER_URL}${baseUrl}`), '')
65
- .replace(/^\//, ''); // remove the first slash if it exists
66
- return decodeURIComponent(encodedPath);
67
- }
68
- else {
69
- console.warn('displayedToStored: path is not a displayed path', path);
70
- return path;
71
- }
72
- }
73
- /**
74
- * Publication transformer to convert the asset URL during publication
75
- */
76
- export const assetsPublicationTransformer = {
77
- transformPath(path, type) {
78
- if (type === ClientSideFileType.ASSET) {
79
- const result = displayedToStored(path);
80
- return result;
81
- }
82
- return undefined;
83
- },
84
- transformPermalink(path, type) {
85
- if (type === ClientSideFileType.ASSET) {
86
- const result = displayedToStored(path);
87
- return result;
88
- }
89
- return undefined;
90
- },
91
- };
92
- /**
93
- * Update asset URL to use the current storage connector and website ID
94
- * Assets URLs are stored in the project data in the form `/assets/image.webp`
95
- * This function adds the API path and the connectorId and websiteId like so: `/api/website/assets/image.webp?websiteId=47868975&connectorId=gitlab`
96
- */
97
- export function addTempDataToAssetUrl(assets, websiteId, storageId) {
98
- return assets.map((asset) => {
99
- return asset.src ? {
100
- ...asset,
101
- src: storedToDisplayed(asset.src, websiteId, storageId),
102
- } : asset;
103
- });
104
- }
105
- /**
106
- * Remove the temporary data from the asset URL
107
- * Remove the API path and the connectorId and websiteId like so: `/assets/image.webp`
108
- */
109
- export function removeTempDataFromAssetUrl(assets) {
110
- return assets.map((asset) => {
111
- // Return the asset with the new URL
112
- return asset.src ? {
113
- ...asset,
114
- src: displayedToStored(asset.src),
115
- } : asset;
116
- });
117
- }
118
- /**
119
- * Reucrsive function to update the asset URL in the components
120
- */
121
- function addTempDataToComponents(component, websiteId, storageId) {
122
- // Update the asset URL in the component
123
- const newComponent = component.attributes?.src ? {
124
- ...component,
125
- attributes: {
126
- ...component.attributes,
127
- src: storedToDisplayed(component.attributes.src, websiteId, storageId),
128
- },
129
- } : component;
130
- // Update the asset URL in the children
131
- if (newComponent.components) {
132
- newComponent.components = newComponent.components.map((childComponent) => {
133
- return addTempDataToComponents(childComponent, websiteId, storageId);
134
- });
135
- }
136
- return newComponent;
137
- }
138
- /**
139
- * Reucrsive function to update the asset URL in the components
140
- */
141
- function removeTempDataFromComponents(component) {
142
- // Update the asset URL in the component
143
- const newComponent = component.attributes?.src ? {
144
- ...component,
145
- attributes: {
146
- ...component.attributes,
147
- src: displayedToStored(component.attributes.src),
148
- },
149
- } : component;
150
- // Update the asset URL in the children
151
- if (newComponent.components) {
152
- newComponent.components = newComponent.components.map((childComponent) => {
153
- return removeTempDataFromComponents(childComponent);
154
- });
155
- }
156
- return newComponent;
157
- }
158
- /**
159
- * Add temp data to pages
160
- */
161
- export function addTempDataToPages(pages, websiteId, storageId) {
162
- return pages.map((page) => {
163
- return {
164
- ...page,
165
- frames: page.frames.map(frame => ({
166
- ...frame,
167
- component: addTempDataToComponents(frame.component, websiteId, storageId),
168
- }))
169
- };
170
- });
171
- }
172
- /**
173
- * Remove temp data from asset URL in the components
174
- */
175
- export function removeTempDataFromPages(pages) {
176
- return pages.map((page) => {
177
- return {
178
- ...page,
179
- frames: page.frames.map(frame => ({
180
- ...frame,
181
- component: removeTempDataFromComponents(frame.component),
182
- }))
183
- };
184
- });
185
- }
186
- /**
187
- * Add data to stylesheets
188
- */
189
- export function addTempDataToStyles(styles, websiteId, storageId) {
190
- const pattern = /url\((["']?)([^"']+?)\1\)/g;
191
- return styles.map((style) => {
192
- if (style.style && style.style['background-image']) {
193
- const urls = [...style.style['background-image'].matchAll(pattern)].map(match => storedToDisplayed(match[2], websiteId, storageId));
194
- return {
195
- ...style,
196
- style: {
197
- ...style.style,
198
- 'background-image': urls.map(url => `url('${url}')`).join(', '),
199
- },
200
- };
201
- }
202
- return style;
203
- });
204
- }
205
- /**
206
- * Remove temp data from stylesheets
207
- */
208
- export function removeTempDataFromStyles(styles) {
209
- const pattern = /url\((["']?)([^"']+?)\1\)/g;
210
- return styles.map((style) => {
211
- if (style.style && style.style['background-image']) {
212
- const urls = [...style.style['background-image'].matchAll(pattern)].map(match => displayedToStored(match[2]));
213
- return {
214
- ...style,
215
- style: {
216
- ...style.style,
217
- 'background-image': urls.map(url => `url('${url}')`).join(', '),
218
- },
219
- };
220
- }
221
- return style;
222
- });
223
- }
224
- //# sourceMappingURL=assetUrl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assetUrl.js","sourceRoot":"","sources":["../../../../src/ts/client/assetUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACjF,OAAO,EAAS,kBAAkB,EAAkD,MAAM,UAAU,CAAA;AAEpG;;;;;;;GAOG;AAEH,yCAAyC;AACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAE3D,iDAAiD;AACjD,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAA;AACzC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;AAErC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAoB,EAAE,SAAsB;IAC1F,kCAAkC;IAClC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QAC9B,uBAAuB;QACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACrC,2DAA2D;QAC3D,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACpD,qDAAqD;QACrD,GAAG,CAAC,QAAQ,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;QACjG,qBAAqB;QACrB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAC9C,2DAA2D;QAC3D,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,sBAAsB;aAC5D,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;aACzC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,CAAC,sCAAsC;QAC5D,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAA;KACvC;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,IAAI,CAAC,CAAA;QAClE,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,GAAG,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,sBAAsB,EAAE,CAAA;IACnF,qCAAqC;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QACrC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;QAClE,GAAG,CAAC,QAAQ,GAAG,GAAG,OAAO,UAAU,GAAG,CAAC,QAAQ,EAAE,CAAA;QACjD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QACpC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QACtC,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,sBAAsB;aAC5D,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,UAAU,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;aACnD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,CAAC,sCAAsC;QAC5D,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAA;KACvC;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,IAAI,CAAC,CAAA;QACrE,OAAO,IAAI,CAAA;KACZ;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,aAAa,CAAC,IAAY,EAAE,IAAwB;QAClD,IAAG,IAAI,KAAK,kBAAkB,CAAC,KAAK,EAAE;YACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACtC,OAAO,MAAM,CAAA;SACd;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,kBAAkB,CAAC,IAAY,EAAE,IAAwB;QACvD,IAAG,IAAI,KAAK,kBAAkB,CAAC,KAAK,EAAE;YACpC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACtC,OAAO,MAAM,CAAA;SACd;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe,EAAE,SAAoB,EAAE,SAAsB;IACjG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;SACxD,CAAC,CAAC,CAAC,KAAK,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE;QACjC,oCAAoC;QACpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACjB,GAAG,KAAK;YACR,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC;SAClC,CAAC,CAAC,CAAC,KAAK,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,SAAoB,EAAE,SAAoB,EAAE,SAAsB;IACjG,wCAAwC;IACxC,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,GAAG,SAAS;QACZ,UAAU,EAAE;YACV,GAAG,SAAS,CAAC,UAAU;YACvB,GAAG,EAAE,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC;SACvE;KACF,CAAC,CAAC,CAAC,SAAS,CAAA;IACb,uCAAuC;IACvC,IAAI,YAAY,CAAC,UAAU,EAAE;QAC3B,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAyB,EAAE,EAAE;YAClF,OAAO,uBAAuB,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;KACH;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CAAC,SAAoB;IACxD,wCAAwC;IACxC,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,GAAG,SAAS;QACZ,UAAU,EAAE;YACV,GAAG,SAAS,CAAC,UAAU;YACvB,GAAG,EAAE,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;SACjD;KACF,CAAC,CAAC,CAAC,SAAS,CAAA;IACb,uCAAuC;IACvC,IAAI,YAAY,CAAC,UAAU,EAAE;QAC3B,YAAY,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,cAAyB,EAAE,EAAE;YAClF,OAAO,4BAA4B,CAAC,cAAc,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;KACH;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,SAAoB,EAAE,SAAsB;IAC5F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAU,EAAE,EAAE;QAC9B,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChC,GAAG,KAAK;gBACR,SAAS,EAAE,uBAAuB,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;aAC1E,CAAC,CAAC;SACJ,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAU,EAAE,EAAE;QAC9B,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChC,GAAG,KAAK;gBACR,SAAS,EAAE,4BAA4B,CAAC,KAAK,CAAC,SAAS,CAAC;aACzD,CAAC,CAAC;SACJ,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe,EAAE,SAAoB,EAAE,SAAsB;IAC/F,MAAM,OAAO,GAAG,4BAA4B,CAAA;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;YAClD,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;YACnI,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE;oBACL,GAAG,KAAK,CAAC,KAAK;oBACd,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAChE;aACF,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAe;IACtD,MAAM,OAAO,GAAG,4BAA4B,CAAA;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;YAClD,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7G,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE;oBACL,GAAG,KAAK,CAAC,KAAK;oBACd,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;iBAChE;aACF,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,58 +0,0 @@
1
- import { Config } from '@silexlabs/silex-plugins';
2
- import { ConnectorId, WebsiteId } from '../types';
3
- import { Editor, EditorConfig } from 'grapesjs';
4
- import { PublicationTransformer } from './publication-transformers';
5
- import * as api from './api';
6
- /**
7
- * @fileoverview Silex client side config
8
- */
9
- export declare class ClientConfig extends Config {
10
- api: typeof api;
11
- /**
12
- * The website to load
13
- * This is the id of the website in the storage connector
14
- */
15
- websiteId: WebsiteId;
16
- /**
17
- * The storage connector to use
18
- * If not found in the URL and the user is not logged in to any storage, use the first storage
19
- */
20
- storageId: ConnectorId;
21
- /**
22
- * language for I18n module
23
- */
24
- lang: string;
25
- /**
26
- * root url of Silex app
27
- */
28
- rootUrl: string;
29
- /**
30
- * debug mode
31
- */
32
- debug: boolean;
33
- /**
34
- * Grapesjs config
35
- */
36
- grapesJsConfig: EditorConfig;
37
- /**
38
- * Client config url
39
- * This is the url of the config file which is a plugin
40
- */
41
- clientConfigUrl: string;
42
- /**
43
- * Init GrapesJS config which depend on the config file properties
44
- */
45
- initGrapesConfig(): void;
46
- /**
47
- * Get grapesjs editor
48
- */
49
- getEditor(): Editor;
50
- /**
51
- * Publication transformers let plugins change files before they are published
52
- */
53
- publicationTransformers: Array<PublicationTransformer>;
54
- /**
55
- * Add a publication transformer(s)
56
- */
57
- addPublicationTransformers(transformers: PublicationTransformer | PublicationTransformer[]): void;
58
- }
@@ -1,90 +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 { Config } from '@silexlabs/silex-plugins';
18
- import { getEditor, getEditorConfig } from './grapesjs';
19
- import { CLIENT_CONFIG_FILE_NAME, DEFAULT_LANGUAGE, DEFAULT_WEBSITE_ID } from '../constants';
20
- import { validatePublicationTransformer } from './publication-transformers';
21
- import * as api from './api';
22
- /**
23
- * @fileoverview Silex client side config
24
- */
25
- export class ClientConfig extends Config {
26
- api = api;
27
- /**
28
- * The website to load
29
- * This is the id of the website in the storage connector
30
- */
31
- websiteId = new URL(location.href).searchParams.get('id') ?? DEFAULT_WEBSITE_ID;
32
- /**
33
- * The storage connector to use
34
- * If not found in the URL and the user is not logged in to any storage, use the first storage
35
- */
36
- storageId = new URL(location.href).searchParams.get('connectorId');
37
- /**
38
- * language for I18n module
39
- */
40
- lang = new URL(location.href).searchParams.get('lang') ?? DEFAULT_LANGUAGE;
41
- /**
42
- * root url of Silex app
43
- */
44
- rootUrl = window.location.origin + window.location.pathname.replace(/\/$/, '');
45
- /**
46
- * debug mode
47
- */
48
- debug = false;
49
- /**
50
- * Grapesjs config
51
- */
52
- grapesJsConfig;
53
- /**
54
- * Client config url
55
- * This is the url of the config file which is a plugin
56
- */
57
- clientConfigUrl = `${this.rootUrl}/${CLIENT_CONFIG_FILE_NAME}`;
58
- /**
59
- * Init GrapesJS config which depend on the config file properties
60
- */
61
- initGrapesConfig() {
62
- this.grapesJsConfig = getEditorConfig(this.websiteId, this.storageId, this.rootUrl);
63
- }
64
- /**
65
- * Get grapesjs editor
66
- */
67
- getEditor() {
68
- return getEditor();
69
- }
70
- /**
71
- * Publication transformers let plugins change files before they are published
72
- */
73
- publicationTransformers = [];
74
- /**
75
- * Add a publication transformer(s)
76
- */
77
- addPublicationTransformers(transformers) {
78
- // Make sure it is an array
79
- if (!Array.isArray(transformers)) {
80
- transformers = [transformers];
81
- }
82
- // Validate
83
- transformers.forEach(transformer => {
84
- validatePublicationTransformer(transformer);
85
- });
86
- // Add to the list
87
- this.publicationTransformers = this.publicationTransformers.concat(transformers);
88
- }
89
- }
90
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/ts/client/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAG5F,OAAO,EAA0B,8BAA8B,EAAE,MAAM,4BAA4B,CAAA;AACnG,OAAO,KAAK,GAAG,MAAM,OAAO,CAAA;AAE5B;;GAEG;AAEH,MAAM,OAAO,YAAa,SAAQ,MAAM;IACtC,GAAG,GAAG,GAAG,CAAA;IAET;;;OAGG;IACH,SAAS,GAAc,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAA;IAE1F;;;OAGG;IACH,SAAS,GAAgB,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAE/E;;OAEG;IACH,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAA;IAE1E;;OAEG;IACH,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAE9E;;OAEG;IACH,KAAK,GAAG,KAAK,CAAA;IAEb;;OAEG;IACH,cAAc,CAAc;IAE5B;;;OAGG;IACH,eAAe,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,uBAAuB,EAAE,CAAA;IAE9D;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACrF,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,SAAS,EAAE,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,uBAAuB,GAAkC,EAAE,CAAA;IAE3D;;OAEG;IACH,0BAA0B,CAAC,YAA+D;QACxF,2BAA2B;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAChC,YAAY,GAAG,CAAC,YAAY,CAAC,CAAA;SAC9B;QACD,WAAW;QACX,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YACjC,8BAA8B,CAAC,WAAW,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QACF,kBAAkB;QAClB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAClF,CAAC;CACF"}
@@ -1,15 +0,0 @@
1
- import { Editor } from 'grapesjs';
2
- import { ConnectorId, ConnectorType, ConnectorUser } from '../../types';
3
- import { WebsiteId } from '../../types';
4
- export declare const cmdLogin = "silex:auth:login";
5
- export declare const cmdLogout = "silex:auth:logout";
6
- export declare const eventLoggingIn = "silex:auth:logging-in";
7
- export declare const eventLoggedIn = "silex:auth:logged-in";
8
- export declare const eventLoginFailed = "silex:auth:login-failed";
9
- export declare const eventLoggedOut = "silex:auth:logged-out";
10
- export interface LoginDialogOptions {
11
- id: WebsiteId;
12
- }
13
- export declare function getCurrentUser(editor: Editor): Promise<ConnectorUser>;
14
- export declare function updateUser(editor: Editor, type: ConnectorType, connectorId?: ConnectorId): Promise<ConnectorUser>;
15
- export default function loginDialogPlugin(editor: any, opts: any): void;