@silexlabs/silex 3.7.0 → 3.9.0-canary.2

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 (596) hide show
  1. package/README.md +115 -78
  2. package/common/examples/plugin.js +6 -0
  3. package/common/silex-plugins/config.test.ts +71 -0
  4. package/common/silex-plugins/config.ts +25 -0
  5. package/common/silex-plugins/index.ts +2 -0
  6. package/common/silex-plugins/plugin.test.ts +57 -0
  7. package/common/silex-plugins/plugin.ts +65 -0
  8. package/dist/client/css/admin.css +25 -12
  9. package/dist/client/css/all.min.css +5 -5
  10. package/dist/client/index.html +2 -2
  11. package/dist/client/js/main.js +3108 -2940
  12. package/dist/client/js/main.js.LICENSE.txt +6 -4
  13. package/dist/client/webfonts/fa-brands-400.woff2 +0 -0
  14. package/dist/client/webfonts/fa-regular-400.woff2 +0 -0
  15. package/dist/client/webfonts/fa-solid-900.woff2 +0 -0
  16. package/dist/client/webfonts/fa-v4compatibility.woff2 +0 -0
  17. package/dist/server/common/externs.js +2 -0
  18. package/dist/server/common/silex-plugins/config.js +25 -0
  19. package/dist/server/common/silex-plugins/index.js +18 -0
  20. package/dist/server/common/silex-plugins/plugin.js +41 -0
  21. package/dist/server/server/api/api.js +9 -9
  22. package/dist/server/server/api/connectorApi.js +35 -35
  23. package/dist/server/server/api/publicationApi.js +19 -19
  24. package/dist/server/server/api/websiteApi.js +46 -46
  25. package/dist/server/server/config.js +19 -19
  26. package/dist/server/server/connectors/FsHosting.js +6 -6
  27. package/dist/server/server/connectors/FsStorage.js +35 -35
  28. package/dist/server/server/connectors/connectors.js +3 -3
  29. package/dist/server/server/expose.js +18 -8
  30. package/dist/server/server/express.js +3 -3
  31. package/dist/server/server/index.js +29 -19
  32. package/dist/server/server/jobs.js +4 -4
  33. package/dist/{plugins/server/plugins/server → server/server/plugins}/DownloadConnector.js +23 -28
  34. package/dist/{plugins/server/plugins/server → server/server/plugins}/FtpConnector.js +42 -117
  35. package/dist/{plugins/server/plugins/server → server/server/plugins}/GitlabConnector.js +80 -271
  36. package/dist/{plugins/server/plugins/server → server/server/plugins}/GitlabHostingConnector.js +11 -134
  37. package/dist/server/server/plugins/PublicationOptimizer.js +2 -0
  38. package/dist/{plugins/server/plugins/server → server/server/plugins}/SslPlugin.js +3 -32
  39. package/dist/{plugins/server/plugins/server → server/server/plugins}/StaticPlugin.js +4 -21
  40. package/dist/server/server/utils/BackwardCompat.js +2 -0
  41. package/dist/server/server/utils/websiteDataSerialization.js +10 -10
  42. package/{src/ts/client → editor}/api.ts +2 -2
  43. package/{src/ts/client → editor}/assetUrl.test.ts +6 -33
  44. package/{src/ts/client → editor}/assetUrl.ts +2 -2
  45. package/{src/ts/client → editor}/config.ts +3 -3
  46. package/{src/css/theme-modern.scss → editor/css/design-system.scss} +29 -14
  47. package/{src → editor}/css/index.scss +1 -3
  48. package/{src → editor}/css/project-bar.scss +5 -0
  49. package/{src/ts/client → editor}/expose.ts +3 -3
  50. package/{src/ts/client → editor}/grapesjs/LoginDialog.ts +3 -3
  51. package/{src/ts/client → editor}/grapesjs/PublicationManager.ts +3 -3
  52. package/{src/ts/client → editor}/grapesjs/PublicationUi.ts +1 -1
  53. package/{src/ts/client → editor}/grapesjs/cms/index.ts +1 -1
  54. package/{src/ts/client → editor}/grapesjs/cms/page-settings.ts +1 -1
  55. package/{src/ts/client → editor}/grapesjs/cms/publication.ts +1 -1
  56. package/{src/ts/client → editor}/grapesjs/eleventy.ts +1 -1
  57. package/{src/ts/client → editor}/grapesjs/index.ts +5 -3
  58. package/{src/ts/client → editor}/grapesjs/internal-links.ts +2 -2
  59. package/{src/ts/client → editor}/grapesjs/resize-panel.ts +2 -1
  60. package/{src/ts/client → editor}/grapesjs/settings-sections.ts +1 -1
  61. package/{src/ts/client → editor}/grapesjs/settings.ts +2 -2
  62. package/{src/ts/client → editor}/grapesjs/storage.ts +1 -1
  63. package/editor/grapesjs/website-info.ts +52 -0
  64. package/{src/ts/client → editor}/index.ts +1 -1
  65. package/{src/ts/client → editor}/publication-transformers.test.ts +10 -10
  66. package/{src/ts/client → editor}/publication-transformers.ts +1 -1
  67. package/{src/ts/client → editor}/publish-fonts.ts +2 -2
  68. package/grapesjs-plugins/expression-input/.husky/pre-commit +2 -0
  69. package/grapesjs-plugins/expression-input/.prettierrc.json +7 -0
  70. package/grapesjs-plugins/expression-input/.vscode/extensions.json +9 -0
  71. package/grapesjs-plugins/expression-input/CHANGELOG.md +47 -0
  72. package/grapesjs-plugins/expression-input/LICENSE +661 -0
  73. package/grapesjs-plugins/expression-input/README.md +59 -0
  74. package/grapesjs-plugins/expression-input/babel.config.js +3 -0
  75. package/grapesjs-plugins/expression-input/commitlint.config.js +1 -0
  76. package/grapesjs-plugins/expression-input/dev/README.md +1 -0
  77. package/grapesjs-plugins/expression-input/dev/expression-input.html +148 -0
  78. package/grapesjs-plugins/expression-input/dev/input-chain.html +88 -0
  79. package/grapesjs-plugins/expression-input/dev/popin-form.html +83 -0
  80. package/grapesjs-plugins/expression-input/docs/expression-input.md +173 -0
  81. package/grapesjs-plugins/expression-input/docs/popin-form.md +228 -0
  82. package/grapesjs-plugins/expression-input/eslint.config.mjs +71 -0
  83. package/grapesjs-plugins/expression-input/package.json +84 -0
  84. package/grapesjs-plugins/expression-input/playwright.config.ts +6 -0
  85. package/grapesjs-plugins/expression-input/rollup.config.js +39 -0
  86. package/grapesjs-plugins/expression-input/src/expression-input.ts +339 -0
  87. package/grapesjs-plugins/expression-input/src/index.ts +3 -0
  88. package/grapesjs-plugins/expression-input/src/input-chain.ts +216 -0
  89. package/grapesjs-plugins/expression-input/src/popin-form.ts +189 -0
  90. package/grapesjs-plugins/expression-input/src/popin-overlay.ts +188 -0
  91. package/grapesjs-plugins/expression-input/src/styles.ts +374 -0
  92. package/grapesjs-plugins/expression-input/src/test/popin-form_test.ts +47 -0
  93. package/grapesjs-plugins/expression-input/tsconfig.json +34 -0
  94. package/grapesjs-plugins/expression-input/web-dev-server.config.js +25 -0
  95. package/grapesjs-plugins/expression-input/web-test-runner.config.js +124 -0
  96. package/grapesjs-plugins/grapesjs-advanced-selector/.editorconfig +5 -0
  97. package/grapesjs-plugins/grapesjs-advanced-selector/.husky/pre-commit +4 -0
  98. package/grapesjs-plugins/grapesjs-advanced-selector/LICENSE +661 -0
  99. package/grapesjs-plugins/grapesjs-advanced-selector/README.md +158 -0
  100. package/grapesjs-plugins/grapesjs-advanced-selector/babel.config.js +3 -0
  101. package/grapesjs-plugins/grapesjs-advanced-selector/eslint.config.mjs +20 -0
  102. package/grapesjs-plugins/grapesjs-advanced-selector/index.html +353 -0
  103. package/grapesjs-plugins/grapesjs-advanced-selector/jest.config.cjs +11 -0
  104. package/grapesjs-plugins/grapesjs-advanced-selector/package-lock.json +12500 -0
  105. package/grapesjs-plugins/grapesjs-advanced-selector/package.json +75 -0
  106. package/grapesjs-plugins/grapesjs-advanced-selector/public/simple-selector.html +12 -0
  107. package/grapesjs-plugins/grapesjs-advanced-selector/src/StylableElement.ts +15 -0
  108. package/grapesjs-plugins/grapesjs-advanced-selector/src/capabilities.ts +49 -0
  109. package/grapesjs-plugins/grapesjs-advanced-selector/src/commands.ts +89 -0
  110. package/grapesjs-plugins/grapesjs-advanced-selector/src/components/complex-selector.ts +187 -0
  111. package/grapesjs-plugins/grapesjs-advanced-selector/src/components/compound-selector.ts +241 -0
  112. package/grapesjs-plugins/grapesjs-advanced-selector/src/components/current-selector-display.ts +289 -0
  113. package/grapesjs-plugins/grapesjs-advanced-selector/src/components/inline-select.ts +199 -0
  114. package/grapesjs-plugins/grapesjs-advanced-selector/src/components/resize-input.ts +19 -0
  115. package/grapesjs-plugins/grapesjs-advanced-selector/src/components/simple-selector.ts +537 -0
  116. package/grapesjs-plugins/grapesjs-advanced-selector/src/i18n/en.ts +75 -0
  117. package/grapesjs-plugins/grapesjs-advanced-selector/src/i18n/fr.ts +75 -0
  118. package/grapesjs-plugins/grapesjs-advanced-selector/src/index.ts +47 -0
  119. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/ComplexSelector.test.ts +380 -0
  120. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/ComplexSelector.ts +231 -0
  121. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/CompoundSelector.test.ts +232 -0
  122. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/CompoundSelector.ts +128 -0
  123. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/GrapesJsSelectors.test.ts +1077 -0
  124. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/GrapesJsSelectors.ts +653 -0
  125. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/Operator.test.ts +45 -0
  126. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/Operator.ts +129 -0
  127. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/PseudoClass.test.ts +31 -0
  128. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/PseudoClass.ts +159 -0
  129. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/SimpleSelector.test.ts +181 -0
  130. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/SimpleSelector.ts +379 -0
  131. package/grapesjs-plugins/grapesjs-advanced-selector/src/plugin.ts +225 -0
  132. package/grapesjs-plugins/grapesjs-advanced-selector/src/styles.ts +40 -0
  133. package/grapesjs-plugins/grapesjs-advanced-selector/src/test-data.json +3546 -0
  134. package/grapesjs-plugins/grapesjs-advanced-selector/tsconfig.json +37 -0
  135. package/grapesjs-plugins/grapesjs-ai-capabilities/.eslintrc.json +31 -0
  136. package/grapesjs-plugins/grapesjs-ai-capabilities/LICENSE +17 -0
  137. package/grapesjs-plugins/grapesjs-ai-capabilities/README.md +129 -0
  138. package/grapesjs-plugins/grapesjs-ai-capabilities/_index.html +37 -0
  139. package/grapesjs-plugins/grapesjs-ai-capabilities/package-lock.json +9023 -0
  140. package/grapesjs-plugins/grapesjs-ai-capabilities/package.json +46 -0
  141. package/grapesjs-plugins/grapesjs-ai-capabilities/src/index.js +97 -0
  142. package/grapesjs-plugins/grapesjs-ai-capabilities/test/index.test.js +198 -0
  143. package/grapesjs-plugins/grapesjs-ai-capabilities/tsconfig.json +29 -0
  144. package/grapesjs-plugins/grapesjs-css-variables/.eslintrc.json +31 -0
  145. package/grapesjs-plugins/grapesjs-css-variables/LICENSE +661 -0
  146. package/grapesjs-plugins/grapesjs-css-variables/README.md +172 -0
  147. package/grapesjs-plugins/grapesjs-css-variables/TEST_SCENARIOS.md +181 -0
  148. package/grapesjs-plugins/grapesjs-css-variables/_index.html +93 -0
  149. package/grapesjs-plugins/grapesjs-css-variables/package-lock.json +9020 -0
  150. package/grapesjs-plugins/grapesjs-css-variables/package.json +46 -0
  151. package/grapesjs-plugins/grapesjs-css-variables/src/capabilities.js +133 -0
  152. package/grapesjs-plugins/grapesjs-css-variables/src/index.js +37 -0
  153. package/grapesjs-plugins/grapesjs-css-variables/src/locale/en.js +22 -0
  154. package/grapesjs-plugins/grapesjs-css-variables/src/locale/fr.js +22 -0
  155. package/grapesjs-plugins/grapesjs-css-variables/src/modal.js +692 -0
  156. package/grapesjs-plugins/grapesjs-css-variables/src/style-manager.js +461 -0
  157. package/grapesjs-plugins/grapesjs-css-variables/src/types.js +8 -0
  158. package/grapesjs-plugins/grapesjs-css-variables/src/variables.js +439 -0
  159. package/grapesjs-plugins/grapesjs-data-source/.husky/pre-commit +4 -0
  160. package/grapesjs-plugins/grapesjs-data-source/.nvmrc +1 -0
  161. package/grapesjs-plugins/grapesjs-data-source/LICENSE +661 -0
  162. package/grapesjs-plugins/grapesjs-data-source/README.md +674 -0
  163. package/grapesjs-plugins/grapesjs-data-source/__mocks__/directus-schema.json +67137 -0
  164. package/grapesjs-plugins/grapesjs-data-source/__mocks__/directus-test-schema.json +8393 -0
  165. package/grapesjs-plugins/grapesjs-data-source/__mocks__/graphql-mocks.js +7 -0
  166. package/grapesjs-plugins/grapesjs-data-source/__mocks__/simple-schema.json +493 -0
  167. package/grapesjs-plugins/grapesjs-data-source/__mocks__/squidex-schema.json +6656 -0
  168. package/grapesjs-plugins/grapesjs-data-source/__mocks__/strapi-schema.json +7986 -0
  169. package/grapesjs-plugins/grapesjs-data-source/_index.html +110 -0
  170. package/grapesjs-plugins/grapesjs-data-source/babel.config.js +7 -0
  171. package/grapesjs-plugins/grapesjs-data-source/eslint.config.mjs +47 -0
  172. package/grapesjs-plugins/grapesjs-data-source/example.graphql +355 -0
  173. package/grapesjs-plugins/grapesjs-data-source/example.graphql.json +5666 -0
  174. package/grapesjs-plugins/grapesjs-data-source/example.page.json +1 -0
  175. package/grapesjs-plugins/grapesjs-data-source/integration-tests/base/graphql-response.json +6 -0
  176. package/grapesjs-plugins/grapesjs-data-source/integration-tests/base/graphql-types.json +2095 -0
  177. package/grapesjs-plugins/grapesjs-data-source/integration-tests/base/preview.html +5 -0
  178. package/grapesjs-plugins/grapesjs-data-source/integration-tests/base/website.json +79 -0
  179. package/grapesjs-plugins/grapesjs-data-source/integration-tests/countries-lists/graphql-response.json +1056 -0
  180. package/grapesjs-plugins/grapesjs-data-source/integration-tests/countries-lists/graphql-types.json +2095 -0
  181. package/grapesjs-plugins/grapesjs-data-source/integration-tests/countries-lists/preview.html +36 -0
  182. package/grapesjs-plugins/grapesjs-data-source/integration-tests/countries-lists/website.json +422 -0
  183. package/grapesjs-plugins/grapesjs-data-source/integration-tests/example.graphql-result.json +18718 -0
  184. package/grapesjs-plugins/grapesjs-data-source/integration-tests/example.graphql-types.json +1955 -0
  185. package/grapesjs-plugins/grapesjs-data-source/integration-tests/graphql-modules.json +191 -0
  186. package/grapesjs-plugins/grapesjs-data-source/integration-tests/modules.html +45 -0
  187. package/grapesjs-plugins/grapesjs-data-source/integration-tests/visibility-truthy/graphql-response.json +1056 -0
  188. package/grapesjs-plugins/grapesjs-data-source/integration-tests/visibility-truthy/graphql-types.json +2095 -0
  189. package/grapesjs-plugins/grapesjs-data-source/integration-tests/visibility-truthy/preview.html +31 -0
  190. package/grapesjs-plugins/grapesjs-data-source/integration-tests/visibility-truthy/website.json +261 -0
  191. package/grapesjs-plugins/grapesjs-data-source/integration-tests/website-modules.json +650 -0
  192. package/grapesjs-plugins/grapesjs-data-source/jest.config.js +21 -0
  193. package/grapesjs-plugins/grapesjs-data-source/package-lock.json +13182 -0
  194. package/grapesjs-plugins/grapesjs-data-source/package.json +77 -0
  195. package/grapesjs-plugins/grapesjs-data-source/src/api.ts +386 -0
  196. package/grapesjs-plugins/grapesjs-data-source/src/capabilities.ts +80 -0
  197. package/grapesjs-plugins/grapesjs-data-source/src/commands.ts +269 -0
  198. package/grapesjs-plugins/grapesjs-data-source/src/datasources/GraphQL.ts +1039 -0
  199. package/grapesjs-plugins/grapesjs-data-source/src/datasources/graphql-introspection-query.ts +112 -0
  200. package/grapesjs-plugins/grapesjs-data-source/src/datasources/graphql.test.ts +657 -0
  201. package/grapesjs-plugins/grapesjs-data-source/src/filters/index.ts +102 -0
  202. package/grapesjs-plugins/grapesjs-data-source/src/filters/liquid.test.ts +27 -0
  203. package/grapesjs-plugins/grapesjs-data-source/src/filters/liquid.ts +985 -0
  204. package/grapesjs-plugins/grapesjs-data-source/src/index.ts +103 -0
  205. package/grapesjs-plugins/grapesjs-data-source/src/integration.test.ts +504 -0
  206. package/grapesjs-plugins/grapesjs-data-source/src/model/ExpressionTree.ts +251 -0
  207. package/grapesjs-plugins/grapesjs-data-source/src/model/completion.ts +213 -0
  208. package/grapesjs-plugins/grapesjs-data-source/src/model/dataSourceManager.ts +315 -0
  209. package/grapesjs-plugins/grapesjs-data-source/src/model/dataSourceRegistry.test.ts +170 -0
  210. package/grapesjs-plugins/grapesjs-data-source/src/model/dataSourceRegistry.ts +117 -0
  211. package/grapesjs-plugins/grapesjs-data-source/src/model/expressionEvaluator.ts +241 -0
  212. package/grapesjs-plugins/grapesjs-data-source/src/model/previewDataLoader.ts +196 -0
  213. package/grapesjs-plugins/grapesjs-data-source/src/model/queryBuilder.ts +118 -0
  214. package/grapesjs-plugins/grapesjs-data-source/src/model/state.test.ts +76 -0
  215. package/grapesjs-plugins/grapesjs-data-source/src/model/state.ts +243 -0
  216. package/grapesjs-plugins/grapesjs-data-source/src/model/token.ts +336 -0
  217. package/grapesjs-plugins/grapesjs-data-source/src/storage.test.ts +81 -0
  218. package/grapesjs-plugins/grapesjs-data-source/src/storage.ts +55 -0
  219. package/grapesjs-plugins/grapesjs-data-source/src/test-data.ts +154 -0
  220. package/grapesjs-plugins/grapesjs-data-source/src/types.ts +299 -0
  221. package/grapesjs-plugins/grapesjs-data-source/src/utils.test.ts +46 -0
  222. package/grapesjs-plugins/grapesjs-data-source/src/utils.ts +367 -0
  223. package/grapesjs-plugins/grapesjs-data-source/src/view/canvas.ts +718 -0
  224. package/grapesjs-plugins/grapesjs-data-source/src/view/custom-states-editor.ts +371 -0
  225. package/grapesjs-plugins/grapesjs-data-source/src/view/defaultStyles.ts +432 -0
  226. package/grapesjs-plugins/grapesjs-data-source/src/view/index.ts +168 -0
  227. package/grapesjs-plugins/grapesjs-data-source/src/view/properties-editor.ts +249 -0
  228. package/grapesjs-plugins/grapesjs-data-source/src/view/settings.ts +1551 -0
  229. package/grapesjs-plugins/grapesjs-data-source/src/view/state-editor.ts +528 -0
  230. package/grapesjs-plugins/grapesjs-data-source/strapi/.editorconfig +16 -0
  231. package/grapesjs-plugins/grapesjs-data-source/strapi/.env.example +7 -0
  232. package/grapesjs-plugins/grapesjs-data-source/strapi/.eslintignore +3 -0
  233. package/grapesjs-plugins/grapesjs-data-source/strapi/.eslintrc +27 -0
  234. package/grapesjs-plugins/grapesjs-data-source/strapi/README.md +57 -0
  235. package/grapesjs-plugins/grapesjs-data-source/strapi/config/admin.js +13 -0
  236. package/grapesjs-plugins/grapesjs-data-source/strapi/config/api.js +7 -0
  237. package/grapesjs-plugins/grapesjs-data-source/strapi/config/database.js +92 -0
  238. package/grapesjs-plugins/grapesjs-data-source/strapi/config/middlewares.js +12 -0
  239. package/grapesjs-plugins/grapesjs-data-source/strapi/config/server.js +10 -0
  240. package/grapesjs-plugins/grapesjs-data-source/strapi/database/migrations/.gitkeep +0 -0
  241. package/grapesjs-plugins/grapesjs-data-source/strapi/favicon.png +0 -0
  242. package/grapesjs-plugins/grapesjs-data-source/strapi/jsconfig.json +8 -0
  243. package/grapesjs-plugins/grapesjs-data-source/strapi/package.json +31 -0
  244. package/grapesjs-plugins/grapesjs-data-source/strapi/public/robots.txt +3 -0
  245. package/grapesjs-plugins/grapesjs-data-source/strapi/public/uploads/.gitkeep +0 -0
  246. package/grapesjs-plugins/grapesjs-data-source/strapi/src/admin/app.example.js +39 -0
  247. package/grapesjs-plugins/grapesjs-data-source/strapi/src/admin/webpack.config.example.js +9 -0
  248. package/grapesjs-plugins/grapesjs-data-source/strapi/src/api/.gitkeep +0 -0
  249. package/grapesjs-plugins/grapesjs-data-source/strapi/src/api/post/content-types/post/schema.json +26 -0
  250. package/grapesjs-plugins/grapesjs-data-source/strapi/src/api/post/controllers/post.js +9 -0
  251. package/grapesjs-plugins/grapesjs-data-source/strapi/src/api/post/routes/post.js +9 -0
  252. package/grapesjs-plugins/grapesjs-data-source/strapi/src/api/post/services/post.js +9 -0
  253. package/grapesjs-plugins/grapesjs-data-source/strapi/src/extensions/.gitkeep +0 -0
  254. package/grapesjs-plugins/grapesjs-data-source/strapi/src/index.js +20 -0
  255. package/grapesjs-plugins/grapesjs-data-source/strapi/types/generated/components.d.ts +5 -0
  256. package/grapesjs-plugins/grapesjs-data-source/strapi/types/generated/contentTypes.d.ts +723 -0
  257. package/grapesjs-plugins/grapesjs-data-source/tmp/countries-lists.html +1 -0
  258. package/grapesjs-plugins/grapesjs-data-source/tsconfig.cjs.json +8 -0
  259. package/grapesjs-plugins/grapesjs-data-source/tsconfig.json +49 -0
  260. package/grapesjs-plugins/grapesjs-filter-styles/README.md +137 -0
  261. package/grapesjs-plugins/grapesjs-filter-styles/eslint.config.mjs +35 -0
  262. package/grapesjs-plugins/grapesjs-filter-styles/package-lock.json +8927 -0
  263. package/grapesjs-plugins/grapesjs-filter-styles/package.json +40 -0
  264. package/grapesjs-plugins/grapesjs-filter-styles/src/index.js +283 -0
  265. package/grapesjs-plugins/grapesjs-filter-styles/tsconfig.json +26 -0
  266. package/grapesjs-plugins/grapesjs-fonts/.eslintrc.json +31 -0
  267. package/grapesjs-plugins/grapesjs-fonts/LICENSE +9 -0
  268. package/grapesjs-plugins/grapesjs-fonts/README.md +231 -0
  269. package/grapesjs-plugins/grapesjs-fonts/_index.html +95 -0
  270. package/grapesjs-plugins/grapesjs-fonts/package-lock.json +9024 -0
  271. package/grapesjs-plugins/grapesjs-fonts/package.json +46 -0
  272. package/grapesjs-plugins/grapesjs-fonts/src/capabilities.js +61 -0
  273. package/grapesjs-plugins/grapesjs-fonts/src/commands.js +100 -0
  274. package/grapesjs-plugins/grapesjs-fonts/src/fonts.js +396 -0
  275. package/grapesjs-plugins/grapesjs-fonts/src/index.js +34 -0
  276. package/grapesjs-plugins/grapesjs-fonts/src/locale/en.js +19 -0
  277. package/grapesjs-plugins/grapesjs-fonts/src/locale/fr.js +21 -0
  278. package/grapesjs-plugins/grapesjs-fonts/src/locale/ptbr.js +18 -0
  279. package/grapesjs-plugins/grapesjs-fonts/tsconfig.json +29 -0
  280. package/grapesjs-plugins/grapesjs-keymaps-dialog/README.md +116 -0
  281. package/grapesjs-plugins/grapesjs-keymaps-dialog/package.json +46 -0
  282. package/grapesjs-plugins/grapesjs-keymaps-dialog/src/KeymapsDialog.ts +208 -0
  283. package/grapesjs-plugins/grapesjs-keymaps-dialog/src/KeymapsDialogManager.ts +78 -0
  284. package/grapesjs-plugins/grapesjs-keymaps-dialog/src/index.ts +70 -0
  285. package/grapesjs-plugins/grapesjs-keymaps-dialog/tsconfig.json +29 -0
  286. package/grapesjs-plugins/grapesjs-loading/.eslintrc.json +22 -0
  287. package/grapesjs-plugins/grapesjs-loading/README.md +140 -0
  288. package/grapesjs-plugins/grapesjs-loading/_index.html +90 -0
  289. package/grapesjs-plugins/grapesjs-loading/eslint.config.mjs +20 -0
  290. package/grapesjs-plugins/grapesjs-loading/grapesjs-loading.gif +0 -0
  291. package/grapesjs-plugins/grapesjs-loading/package.json +50 -0
  292. package/grapesjs-plugins/grapesjs-loading/src/index.ts +54 -0
  293. package/grapesjs-plugins/grapesjs-loading/tsconfig.json +20 -0
  294. package/grapesjs-plugins/grapesjs-notifications/LICENSE +661 -0
  295. package/grapesjs-plugins/grapesjs-notifications/README.md +295 -0
  296. package/grapesjs-plugins/grapesjs-notifications/_index.html +95 -0
  297. package/grapesjs-plugins/grapesjs-notifications/package-lock.json +8187 -0
  298. package/grapesjs-plugins/grapesjs-notifications/package.json +58 -0
  299. package/grapesjs-plugins/grapesjs-notifications/src/Notification.ts +117 -0
  300. package/grapesjs-plugins/grapesjs-notifications/src/NotificationManager.ts +93 -0
  301. package/grapesjs-plugins/grapesjs-notifications/src/Storage.ts +26 -0
  302. package/grapesjs-plugins/grapesjs-notifications/src/capabilities.ts +33 -0
  303. package/grapesjs-plugins/grapesjs-notifications/src/commands.ts +5 -0
  304. package/grapesjs-plugins/grapesjs-notifications/src/index.ts +126 -0
  305. package/grapesjs-plugins/grapesjs-notifications/src/locale/en.js +8 -0
  306. package/grapesjs-plugins/grapesjs-notifications/src/view.ts +127 -0
  307. package/grapesjs-plugins/grapesjs-notifications/tsconfig.json +30 -0
  308. package/grapesjs-plugins/grapesjs-storage-rate-limit/LICENSE +213 -0
  309. package/grapesjs-plugins/grapesjs-storage-rate-limit/README.md +119 -0
  310. package/grapesjs-plugins/grapesjs-storage-rate-limit/jest.config.js +197 -0
  311. package/grapesjs-plugins/grapesjs-storage-rate-limit/package-lock.json +10752 -0
  312. package/grapesjs-plugins/grapesjs-storage-rate-limit/package.json +44 -0
  313. package/grapesjs-plugins/grapesjs-storage-rate-limit/src/index.js +90 -0
  314. package/grapesjs-plugins/grapesjs-storage-rate-limit/src/index.test.js +122 -0
  315. package/grapesjs-plugins/grapesjs-symbols/.eslintrc.cjs +20 -0
  316. package/grapesjs-plugins/grapesjs-symbols/.husky/pre-commit +5 -0
  317. package/grapesjs-plugins/grapesjs-symbols/.nvmrc +1 -0
  318. package/grapesjs-plugins/grapesjs-symbols/LICENSE +661 -0
  319. package/grapesjs-plugins/grapesjs-symbols/README.md +228 -0
  320. package/grapesjs-plugins/grapesjs-symbols/_index.html +104 -0
  321. package/grapesjs-plugins/grapesjs-symbols/es5.html +119 -0
  322. package/grapesjs-plugins/grapesjs-symbols/es6.html +107 -0
  323. package/grapesjs-plugins/grapesjs-symbols/eslint.config.mjs +72 -0
  324. package/grapesjs-plugins/grapesjs-symbols/jest.config.js +12 -0
  325. package/grapesjs-plugins/grapesjs-symbols/package-lock.json +6867 -0
  326. package/grapesjs-plugins/grapesjs-symbols/package.json +73 -0
  327. package/grapesjs-plugins/grapesjs-symbols/rollup.config.mjs +26 -0
  328. package/grapesjs-plugins/grapesjs-symbols/src/SymbolsCommands.test.ts +147 -0
  329. package/grapesjs-plugins/grapesjs-symbols/src/SymbolsCommands.ts +144 -0
  330. package/grapesjs-plugins/grapesjs-symbols/src/capabilities.ts +50 -0
  331. package/grapesjs-plugins/grapesjs-symbols/src/events.ts +8 -0
  332. package/grapesjs-plugins/grapesjs-symbols/src/id-utils.ts +158 -0
  333. package/grapesjs-plugins/grapesjs-symbols/src/index.ts +46 -0
  334. package/grapesjs-plugins/grapesjs-symbols/src/test-utils.ts +51 -0
  335. package/grapesjs-plugins/grapesjs-symbols/src/utils.test.ts +118 -0
  336. package/grapesjs-plugins/grapesjs-symbols/src/utils.ts +90 -0
  337. package/grapesjs-plugins/grapesjs-symbols/src/view/SymbolsView.ts +251 -0
  338. package/grapesjs-plugins/grapesjs-symbols/src/view/traits.ts +101 -0
  339. package/grapesjs-plugins/grapesjs-symbols/tsconfig.json +35 -0
  340. package/grapesjs-plugins/grapesjs-symbols/tsconfig.test.json +12 -0
  341. package/grapesjs-plugins/grapesjs-version-flow/LICENSE +661 -0
  342. package/grapesjs-plugins/grapesjs-version-flow/README.md +422 -0
  343. package/grapesjs-plugins/grapesjs-version-flow/_index.html +494 -0
  344. package/grapesjs-plugins/grapesjs-version-flow/babel.config.js +9 -0
  345. package/grapesjs-plugins/grapesjs-version-flow/package-lock.json +11832 -0
  346. package/grapesjs-plugins/grapesjs-version-flow/package.json +77 -0
  347. package/grapesjs-plugins/grapesjs-version-flow/prompts/initial.txt +116 -0
  348. package/grapesjs-plugins/grapesjs-version-flow/src/event-system.js +48 -0
  349. package/grapesjs-plugins/grapesjs-version-flow/src/index.js +87 -0
  350. package/grapesjs-plugins/grapesjs-version-flow/src/locale/en.js +26 -0
  351. package/grapesjs-plugins/grapesjs-version-flow/src/locale/fr.js +26 -0
  352. package/grapesjs-plugins/grapesjs-version-flow/src/modal-ui.js +562 -0
  353. package/grapesjs-plugins/grapesjs-version-flow/src/style-manager.js +240 -0
  354. package/grapesjs-plugins/grapesjs-version-flow/src/upgrade-engine.js +237 -0
  355. package/grapesjs-plugins/grapesjs-version-flow/src/version-manager.js +117 -0
  356. package/grapesjs-plugins/grapesjs-version-flow/tests/index.test.js +241 -0
  357. package/grapesjs-plugins/grapesjs-version-flow/tests/integration.test.js +227 -0
  358. package/grapesjs-plugins/grapesjs-version-flow/tests/setup.js +67 -0
  359. package/grapesjs-plugins/grapesjs-version-flow/tests/upgrade-engine.test.js +360 -0
  360. package/grapesjs-plugins/grapesjs-version-flow/tests/version-manager.test.js +168 -0
  361. package/grapesjs-plugins/grapesjs-version-flow/tests/version-storage.test.js +203 -0
  362. package/grapesjs-plugins/grapesjs-version-flow/tsconfig.json +26 -0
  363. package/package.json +127 -159
  364. package/{src/ts/server → server}/api/api.ts +6 -6
  365. package/{src/ts/server → server}/api/connectorApi.ts +5 -5
  366. package/{src/ts/server → server}/api/publicationApi.ts +7 -7
  367. package/{src/ts/server → server}/api/websiteApi.ts +7 -8
  368. package/{src/ts/server → server}/config.ts +14 -12
  369. package/{src/ts/server → server}/connectors/FsHosting.ts +4 -4
  370. package/{src/ts/server → server}/connectors/FsStorage.test.ts +2 -2
  371. package/{src/ts/server → server}/connectors/FsStorage.ts +8 -8
  372. package/{src/ts/server → server}/connectors/connectors.ts +3 -3
  373. package/server/deploy/.nvmrc +1 -0
  374. package/server/deploy/.silex.js +220 -0
  375. package/server/deploy/client-config.js +17 -0
  376. package/server/deploy/client-plugins/.gitkeep +0 -0
  377. package/server/deploy/client-plugins/onboarding.js +67 -0
  378. package/server/deploy/example.env +25 -0
  379. package/server/deploy/onboarding.json +22 -0
  380. package/server/deploy/picto-silex@3x.png +0 -0
  381. package/server/deploy/server-plugins/dashboard.js +74 -0
  382. package/server/deploy/server-plugins/onboarding.js +212 -0
  383. package/server/deploy/silex-platform.yml +75 -0
  384. package/{src/ts/server → server}/events.ts +2 -2
  385. package/{src/ts/server → server}/expose.ts +1 -1
  386. package/{src/ts/server → server}/express.ts +2 -2
  387. package/{src/ts/server → server}/index.ts +7 -7
  388. package/{src/ts/server → server}/jobs.test.ts +1 -1
  389. package/{src/ts/server → server}/jobs.ts +1 -1
  390. package/server/plugins/DownloadConnector.publish.test.ts +32 -0
  391. package/server/plugins/DownloadConnector.test.ts +70 -0
  392. package/{src/ts/plugins/server → server/plugins}/DownloadConnector.ts +22 -10
  393. package/{src/ts/plugins/server → server/plugins}/FtpConnector.test.ts +3 -3
  394. package/{src/ts/plugins/server → server/plugins}/FtpConnector.ts +7 -7
  395. package/{src/ts/plugins/server → server/plugins}/GitlabConnector.ts +9 -26
  396. package/{src/ts/plugins/server → server/plugins}/GitlabHostingConnector.ts +5 -5
  397. package/{src/ts/plugins/server → server/plugins}/SslPlugin.ts +2 -2
  398. package/{src/ts/plugins/server → server/plugins}/StaticPlugin.ts +2 -2
  399. package/{src/ts/server → server}/utils/BackwardCompat.ts +1 -1
  400. package/{src/ts/server → server}/utils/websiteDataSerialization.test.ts +2 -2
  401. package/{src/ts/server → server}/utils/websiteDataSerialization.ts +3 -3
  402. package/.silex.js +0 -76
  403. package/dist/client/client/api.d.ts +0 -101
  404. package/dist/client/client/assetUrl.d.ts +0 -60
  405. package/dist/client/client/config.d.ts +0 -110
  406. package/dist/client/client/events.d.ts +0 -23
  407. package/dist/client/client/expose.d.ts +0 -10
  408. package/dist/client/client/grapesjs/LoginDialog.d.ts +0 -15
  409. package/dist/client/client/grapesjs/PublicationManager.d.ts +0 -117
  410. package/dist/client/client/grapesjs/PublicationUi.d.ts +0 -59
  411. package/dist/client/client/grapesjs/blocks.d.ts +0 -1
  412. package/dist/client/client/grapesjs/body-remap.d.ts +0 -15
  413. package/dist/client/client/grapesjs/breadcrumbs.d.ts +0 -1
  414. package/dist/client/client/grapesjs/cms/DataSource.d.ts +0 -43
  415. package/dist/client/client/grapesjs/cms/blocks.d.ts +0 -2
  416. package/dist/client/client/grapesjs/cms/buttons.d.ts +0 -2
  417. package/dist/client/client/grapesjs/cms/collection-pages.d.ts +0 -4
  418. package/dist/client/client/grapesjs/cms/config.d.ts +0 -9
  419. package/dist/client/client/grapesjs/cms/filters.d.ts +0 -3
  420. package/dist/client/client/grapesjs/cms/index.d.ts +0 -43
  421. package/dist/client/client/grapesjs/cms/liquid.d.ts +0 -73
  422. package/dist/client/client/grapesjs/cms/page-settings.d.ts +0 -6
  423. package/dist/client/client/grapesjs/cms/publication.d.ts +0 -60
  424. package/dist/client/client/grapesjs/cms/site-settings.d.ts +0 -3
  425. package/dist/client/client/grapesjs/cms/states.d.ts +0 -8
  426. package/dist/client/client/grapesjs/cms/traits.d.ts +0 -8
  427. package/dist/client/client/grapesjs/core-commands.d.ts +0 -3
  428. package/dist/client/client/grapesjs/css-props.d.ts +0 -6
  429. package/dist/client/client/grapesjs/flex.d.ts +0 -3
  430. package/dist/client/client/grapesjs/footer.d.ts +0 -2
  431. package/dist/client/client/grapesjs/img.d.ts +0 -6
  432. package/dist/client/client/grapesjs/index.d.ts +0 -9
  433. package/dist/client/client/grapesjs/internal-links.d.ts +0 -1
  434. package/dist/client/client/grapesjs/keymaps.d.ts +0 -123
  435. package/dist/client/client/grapesjs/li.d.ts +0 -7
  436. package/dist/client/client/grapesjs/new-page-dialog.d.ts +0 -2
  437. package/dist/client/client/grapesjs/openImport.d.ts +0 -9
  438. package/dist/client/client/grapesjs/page-panel.d.ts +0 -13
  439. package/dist/client/client/grapesjs/project-bar.d.ts +0 -21
  440. package/dist/client/client/grapesjs/resize-panel.d.ts +0 -1
  441. package/dist/client/client/grapesjs/rich-text.d.ts +0 -4
  442. package/dist/client/client/grapesjs/sectors.d.ts +0 -12
  443. package/dist/client/client/grapesjs/semantic.d.ts +0 -1
  444. package/dist/client/client/grapesjs/settings-sections.d.ts +0 -19
  445. package/dist/client/client/grapesjs/settings.d.ts +0 -16
  446. package/dist/client/client/grapesjs/storage.d.ts +0 -3
  447. package/dist/client/client/grapesjs/symbolDialogs.d.ts +0 -4
  448. package/dist/client/client/grapesjs/upload-progress.d.ts +0 -2
  449. package/dist/client/client/grapesjs/view-buttons.d.ts +0 -2
  450. package/dist/client/client/index.d.ts +0 -10
  451. package/dist/client/client/publication-transformers.d.ts +0 -42
  452. package/dist/client/client/publish-custom-code-block.d.ts +0 -4
  453. package/dist/client/client/publish-fonts.d.ts +0 -4
  454. package/dist/client/client/utils.d.ts +0 -23
  455. package/dist/client/constants.d.ts +0 -35
  456. package/dist/client/page.d.ts +0 -2
  457. package/dist/client/types.d.ts +0 -365
  458. package/dist/client/webfonts/fa-brands-400.ttf +0 -0
  459. package/dist/client/webfonts/fa-regular-400.ttf +0 -0
  460. package/dist/client/webfonts/fa-solid-900.ttf +0 -0
  461. package/dist/client/webfonts/fa-v4compatibility.ttf +0 -0
  462. package/dist/plugins/client/client/events.d.ts +0 -23
  463. package/dist/plugins/client/client/events.js +0 -43
  464. package/dist/plugins/client/client/events.js.map +0 -1
  465. package/dist/plugins/client/plugins/client/template.d.ts +0 -2
  466. package/dist/plugins/client/plugins/client/template.js +0 -234
  467. package/dist/plugins/client/plugins/client/template.js.map +0 -1
  468. package/dist/plugins/client/plugins/client/website-info.d.ts +0 -1
  469. package/dist/plugins/client/plugins/client/website-info.js +0 -72
  470. package/dist/plugins/client/plugins/client/website-info.js.map +0 -1
  471. package/dist/plugins/client/types.d.ts +0 -365
  472. package/dist/plugins/client/types.js +0 -83
  473. package/dist/plugins/client/types.js.map +0 -1
  474. package/dist/plugins/server/constants.d.ts +0 -35
  475. package/dist/plugins/server/constants.js +0 -79
  476. package/dist/plugins/server/constants.js.map +0 -1
  477. package/dist/plugins/server/page.d.ts +0 -2
  478. package/dist/plugins/server/page.js +0 -35
  479. package/dist/plugins/server/page.js.map +0 -1
  480. package/dist/plugins/server/plugins/server/Cache.d.ts +0 -2
  481. package/dist/plugins/server/plugins/server/Cache.js +0 -36
  482. package/dist/plugins/server/plugins/server/Cache.js.map +0 -1
  483. package/dist/plugins/server/plugins/server/DownloadConnector.d.ts +0 -29
  484. package/dist/plugins/server/plugins/server/DownloadConnector.js.map +0 -1
  485. package/dist/plugins/server/plugins/server/FtpConnector.d.ts +0 -86
  486. package/dist/plugins/server/plugins/server/FtpConnector.js.map +0 -1
  487. package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +0 -172
  488. package/dist/plugins/server/plugins/server/GitlabConnector.js.map +0 -1
  489. package/dist/plugins/server/plugins/server/GitlabHostingConnector.d.ts +0 -23
  490. package/dist/plugins/server/plugins/server/GitlabHostingConnector.js.map +0 -1
  491. package/dist/plugins/server/plugins/server/PublicationOptimizer.js +0 -14
  492. package/dist/plugins/server/plugins/server/PublicationOptimizer.js.map +0 -1
  493. package/dist/plugins/server/plugins/server/SslPlugin.d.ts +0 -1
  494. package/dist/plugins/server/plugins/server/SslPlugin.js.map +0 -1
  495. package/dist/plugins/server/plugins/server/StaticPlugin.d.ts +0 -8
  496. package/dist/plugins/server/plugins/server/StaticPlugin.js.map +0 -1
  497. package/dist/plugins/server/server/config.d.ts +0 -59
  498. package/dist/plugins/server/server/config.js +0 -181
  499. package/dist/plugins/server/server/config.js.map +0 -1
  500. package/dist/plugins/server/server/connectors/FsHosting.d.ts +0 -14
  501. package/dist/plugins/server/server/connectors/FsHosting.js +0 -66
  502. package/dist/plugins/server/server/connectors/FsHosting.js.map +0 -1
  503. package/dist/plugins/server/server/connectors/FsStorage.d.ts +0 -44
  504. package/dist/plugins/server/server/connectors/FsStorage.js +0 -303
  505. package/dist/plugins/server/server/connectors/FsStorage.js.map +0 -1
  506. package/dist/plugins/server/server/connectors/connectors.d.ts +0 -86
  507. package/dist/plugins/server/server/connectors/connectors.js +0 -126
  508. package/dist/plugins/server/server/connectors/connectors.js.map +0 -1
  509. package/dist/plugins/server/server/events.d.ts +0 -26
  510. package/dist/plugins/server/server/events.js +0 -31
  511. package/dist/plugins/server/server/events.js.map +0 -1
  512. package/dist/plugins/server/server/jobs.d.ts +0 -12
  513. package/dist/plugins/server/server/jobs.js +0 -79
  514. package/dist/plugins/server/server/jobs.js.map +0 -1
  515. package/dist/plugins/server/server/utils/validation.d.ts +0 -7
  516. package/dist/plugins/server/server/utils/validation.js +0 -37
  517. package/dist/plugins/server/server/utils/validation.js.map +0 -1
  518. package/dist/plugins/server/server/utils/websiteDataSerialization.d.ts +0 -24
  519. package/dist/plugins/server/server/utils/websiteDataSerialization.js +0 -136
  520. package/dist/plugins/server/server/utils/websiteDataSerialization.js.map +0 -1
  521. package/dist/plugins/server/types.d.ts +0 -365
  522. package/dist/plugins/server/types.js +0 -87
  523. package/dist/plugins/server/types.js.map +0 -1
  524. package/dist/server/server/cli.js +0 -71
  525. package/src/css/grapesjs-light.scss +0 -180
  526. package/src/ts/plugins/client/template.ts +0 -246
  527. package/src/ts/plugins/client/website-info.ts +0 -84
  528. package/src/ts/server/cli.ts +0 -67
  529. /package/{src/ts → common}/constants.ts +0 -0
  530. /package/{src/ts → common}/externs.ts +0 -0
  531. /package/{src/ts → common}/page.ts +0 -0
  532. /package/{src/ts → common}/types.ts +0 -0
  533. /package/dist/server/{constants.js → common/constants.js} +0 -0
  534. /package/dist/server/{page.js → common/page.js} +0 -0
  535. /package/dist/server/{types.js → common/types.js} +0 -0
  536. /package/dist/server/{plugins/server → server/plugins}/Cache.js +0 -0
  537. /package/{src → editor}/css/_mixins.scss +0 -0
  538. /package/{src → editor}/css/_variables.scss +0 -0
  539. /package/{src → editor}/css/dialog.scss +0 -0
  540. /package/{src → editor}/css/dialogs.scss +0 -0
  541. /package/{src → editor}/css/fonts.scss +0 -0
  542. /package/{src → editor}/css/footer.scss +0 -0
  543. /package/{src → editor}/css/grapesjs-plugins.scss +0 -0
  544. /package/{src → editor}/css/grapesjs.scss +0 -0
  545. /package/{src → editor}/css/loader.scss +0 -0
  546. /package/{src → editor}/css/page-panel.scss +0 -0
  547. /package/{src → editor}/css/panels.scss +0 -0
  548. /package/{src → editor}/css/silex.scss +0 -0
  549. /package/{src → editor}/css/theme-base.scss +0 -0
  550. /package/{src → editor}/css/website-info.scss +0 -0
  551. /package/{src/ts/client → editor}/events.ts +0 -0
  552. /package/{src/ts/client → editor}/grapesjs/blocks.ts +0 -0
  553. /package/{src/ts/client → editor}/grapesjs/body-remap.ts +0 -0
  554. /package/{src/ts/client → editor}/grapesjs/breadcrumbs.ts +0 -0
  555. /package/{src/ts/client → editor}/grapesjs/cms/DataSource.ts +0 -0
  556. /package/{src/ts/client → editor}/grapesjs/cms/blocks.ts +0 -0
  557. /package/{src/ts/client → editor}/grapesjs/cms/buttons.ts +0 -0
  558. /package/{src/ts/client → editor}/grapesjs/cms/collection-pages.ts +0 -0
  559. /package/{src/ts/client → editor}/grapesjs/cms/config.ts +0 -0
  560. /package/{src/ts/client → editor}/grapesjs/cms/filters.ts +0 -0
  561. /package/{src/ts/client → editor}/grapesjs/cms/liquid.mock.ts +0 -0
  562. /package/{src/ts/client → editor}/grapesjs/cms/liquid.test.ts +0 -0
  563. /package/{src/ts/client → editor}/grapesjs/cms/liquid.ts +0 -0
  564. /package/{src/ts/client → editor}/grapesjs/cms/publication.test.ts +0 -0
  565. /package/{src/ts/client → editor}/grapesjs/cms/site-settings.ts +0 -0
  566. /package/{src/ts/client → editor}/grapesjs/cms/states.ts +0 -0
  567. /package/{src/ts/client → editor}/grapesjs/cms/traits.ts +0 -0
  568. /package/{src/ts/client → editor}/grapesjs/core-commands.ts +0 -0
  569. /package/{src/ts/client → editor}/grapesjs/css-props.ts +0 -0
  570. /package/{src/ts/client → editor}/grapesjs/flex.ts +0 -0
  571. /package/{src/ts/client → editor}/grapesjs/footer.ts +0 -0
  572. /package/{src/ts/client → editor}/grapesjs/img.ts +0 -0
  573. /package/{src/ts/client → editor}/grapesjs/internal-links.test.ts +0 -0
  574. /package/{src/ts/client → editor}/grapesjs/keymaps.ts +0 -0
  575. /package/{src/ts/client → editor}/grapesjs/li.ts +0 -0
  576. /package/{src/ts/client → editor}/grapesjs/new-page-dialog.ts +0 -0
  577. /package/{src/ts/client → editor}/grapesjs/openImport.ts +0 -0
  578. /package/{src/ts/client → editor}/grapesjs/page-panel.ts +0 -0
  579. /package/{src/ts/client → editor}/grapesjs/project-bar.ts +0 -0
  580. /package/{src/ts/client → editor}/grapesjs/rich-text.ts +0 -0
  581. /package/{src/ts/client → editor}/grapesjs/sectors.ts +0 -0
  582. /package/{src/ts/client → editor}/grapesjs/semantic.ts +0 -0
  583. /package/{src/ts/client → editor}/grapesjs/static-plugins.ts +0 -0
  584. /package/{src/ts/client → editor}/grapesjs/symbolDialogs.ts +0 -0
  585. /package/{src/ts/client → editor}/grapesjs/upload-progress.ts +0 -0
  586. /package/{src/ts/client → editor}/grapesjs/view-buttons.ts +0 -0
  587. /package/{src → editor}/html/debug.pug +0 -0
  588. /package/{src → editor}/html/index.pug +0 -0
  589. /package/{src → editor}/html/templates/includes.pug +0 -0
  590. /package/{src → editor}/html/templates/workspace.pug +0 -0
  591. /package/{src/ts/client → editor}/publish-custom-code-block.ts +0 -0
  592. /package/{src/ts/client → editor}/utils.ts +0 -0
  593. /package/{dist/plugins/server/plugins/server/PublicationOptimizer.d.ts → grapesjs-plugins/expression-input/docs/.nojekyll} +0 -0
  594. /package/{src/ts/plugins/server → server/plugins}/Cache.ts +0 -0
  595. /package/{src/ts/plugins/server → server/plugins}/PublicationOptimizer.ts +0 -0
  596. /package/{src/ts/server → server}/utils/validation.ts +0 -0
@@ -24,16 +24,16 @@
24
24
  * @class default config for Silex server
25
25
  */
26
26
 
27
- import { Config, Plugin } from '@silexlabs/silex-plugins'
27
+ import { Config, Plugin } from '~/common/silex-plugins/index.js'
28
28
  import { join, resolve } from 'path'
29
- import { CLIENT_CONFIG_FILE_NAME } from '../constants'
29
+ import { CLIENT_CONFIG_FILE_NAME } from '~/common/constants.js'
30
30
  import { Application, Request, Response, Router } from 'express'
31
31
  import { readFile } from 'fs/promises'
32
- import { HostingConnector, StorageConnector, toConnectorEnum } from './connectors/connectors'
33
- import { FsStorage } from './connectors/FsStorage'
34
- import { Connector } from './connectors/connectors'
35
- import { ConnectorType } from '../types'
36
- import { FsHosting } from './connectors/FsHosting'
32
+ import { HostingConnector, StorageConnector, toConnectorEnum } from './connectors/connectors.js'
33
+ import { FsStorage } from './connectors/FsStorage.js'
34
+ import { Connector } from './connectors/connectors.js'
35
+ import { ConnectorType } from '~/common/types.js'
36
+ import { FsHosting } from './connectors/FsHosting.js'
37
37
 
38
38
  /**
39
39
  * Config types definitions
@@ -51,7 +51,7 @@ export class ServerConfig extends Config {
51
51
  public debug = process.env.SILEX_DEBUG === 'true'
52
52
  public url = process.env.SILEX_URL?.replace(/\/$/, '') ?? `${process.env.SILEX_PROTOCOL}://${process.env.SILEX_HOST}:${process.env.SILEX_PORT}`
53
53
  public userConfigPath: Plugin | undefined = process.env.SILEX_SERVER_CONFIG
54
- public configFilePath: Plugin = resolve(__dirname, '../../../.silex.js')
54
+ public configFilePath: Plugin = resolve(__dirname, '../../../server/deploy/.silex.js')
55
55
 
56
56
  // All connectors or just the storage or hosting connectors
57
57
  getConnectors(type: ConnectorType | string | null = null): Connector[] {
@@ -101,7 +101,9 @@ export class ServerConfig extends Config {
101
101
  * Add routes to serve the client config file
102
102
  */
103
103
  async addRoutes(app: Application) {
104
- const path = process.env.SILEX_CLIENT_CONFIG
104
+ // Default to the SaaS client config (onboarding plugin), so `pnpm start` matches
105
+ // the deployed SaaS without extra env. Override with SILEX_CLIENT_CONFIG.
106
+ const path = process.env.SILEX_CLIENT_CONFIG || resolve(__dirname, '../../../server/deploy/client-config.js')
105
107
  if (path) {
106
108
  console.info(`> Serving client side config ${path} at ${CLIENT_CONFIG_FILE_NAME}`)
107
109
  try {
@@ -121,7 +123,7 @@ export class ServerConfig extends Config {
121
123
  })
122
124
  } catch (e) {
123
125
  console.error(`Error loading client config file ${path}`, e)
124
- throw new Error(`Error loading client config file ${path}: ${e.message}`)
126
+ throw new Error(`Error loading client config file ${path}: ${e.message}`, { cause: e })
125
127
  }
126
128
  }
127
129
  }
@@ -148,7 +150,7 @@ export class ServerConfig extends Config {
148
150
  // Initiate the process with the config file which is just another plugin
149
151
  await this.addPlugin(this.userConfigPath, {})
150
152
  } catch (e) {
151
- throw new Error(`\nUser config file ${this.userConfigPath} error:\n\n\t${e.message}\n\n`)
153
+ throw new Error(`\nUser config file ${this.userConfigPath} error:\n\n\t${e.message}\n\n`, { cause: e })
152
154
  }
153
155
  }
154
156
  }
@@ -167,7 +169,7 @@ export class ServerConfig extends Config {
167
169
  if(e.code === 'MODULE_NOT_FOUND' && (!e.requireStack || !e.requireStack.find(path => path === this.configFilePath))) {
168
170
  console.info('> /!\\ Config file not found', this.configFilePath)
169
171
  } else {
170
- throw new Error(`Error in config file ${this.configFilePath}: ${e.message}`)
172
+ throw new Error(`Error in config file ${this.configFilePath}: ${e.message}`, { cause: e })
171
173
  }
172
174
  }
173
175
  }
@@ -16,11 +16,11 @@
16
16
  */
17
17
 
18
18
  import fs from 'fs/promises'
19
- import { ConnectorFile, StorageConnector, HostingConnector, StatusCallback, ConnectorSession, contentToString, toConnectorData, ConnectorFileContent} from './connectors'
19
+ import { ConnectorFile, StorageConnector, HostingConnector, StatusCallback, ConnectorSession, contentToString, toConnectorData, ConnectorFileContent} from './connectors.js'
20
20
  import { join } from 'path'
21
- import { FsStorage } from './FsStorage'
22
- import { ConnectorType, JobData, JobStatus, PublicationJobData, WebsiteId } from '../../types'
23
- import { JobManager } from '../jobs'
21
+ import { FsStorage } from './FsStorage.js'
22
+ import { ConnectorType, JobData, JobStatus, PublicationJobData, WebsiteId } from '~/common/types.js'
23
+ import { JobManager } from '../jobs.js'
24
24
 
25
25
  type FsSession = ConnectorSession
26
26
 
@@ -3,8 +3,8 @@ import { ServerConfig } from '../config'
3
3
  import { FsStorage } from './FsStorage'
4
4
  import { readFileSync, rmdirSync, statSync } from 'fs'
5
5
  import { join } from 'path'
6
- import { WEBSITE_DATA_FILE } from '../../constants'
7
- import { EMPTY_WEBSITE } from '../../types'
6
+ import { WEBSITE_DATA_FILE } from '~/common/constants'
7
+ import { EMPTY_WEBSITE } from '~/common/types'
8
8
 
9
9
  const storageRootPath = '/tmp/silex-tests'
10
10
  const assetsFolder = 'assets'
@@ -17,22 +17,22 @@
17
17
 
18
18
  import fs from 'fs/promises'
19
19
  import { createWriteStream } from 'fs'
20
- import { ConnectorFile, StorageConnector, StatusCallback, ConnectorSession, toConnectorData, ConnectorFileContent} from './connectors'
20
+ import { ConnectorFile, StorageConnector, StatusCallback, ConnectorSession, toConnectorData, ConnectorFileContent} from './connectors.js'
21
21
  import { dirname, join } from 'path'
22
- import { ConnectorUser, WebsiteMeta, JobStatus, WebsiteId, ConnectorType, WebsiteMetaFileContent, WebsiteData, EMPTY_WEBSITE, ConnectorOptions } from '../../types'
22
+ import { ConnectorUser, WebsiteMeta, JobStatus, WebsiteId, ConnectorType, WebsiteMetaFileContent, WebsiteData, EMPTY_WEBSITE, ConnectorOptions } from '~/common/types.js'
23
23
  import { userInfo } from 'os'
24
- import { requiredParam } from '../utils/validation'
25
- import { ServerConfig } from '../config'
26
- import { DEFAULT_WEBSITE_ID, WEBSITE_DATA_FILE, WEBSITE_META_DATA_FILE, LEGACY_WEBSITE_PAGES_FOLDER } from '../../constants'
24
+ import { requiredParam } from '../utils/validation.js'
25
+ import { ServerConfig } from '../config.js'
26
+ import { DEFAULT_WEBSITE_ID, WEBSITE_DATA_FILE, WEBSITE_META_DATA_FILE, LEGACY_WEBSITE_PAGES_FOLDER } from '~/common/constants.js'
27
27
  import { Readable } from 'stream'
28
28
  import { v4 as uuid } from 'uuid'
29
29
  import { fileURLToPath } from 'url'
30
- import { stringify, split, merge, getPagesFolder } from '../utils/websiteDataSerialization'
30
+ import { stringify, split, merge, getPagesFolder } from '../utils/websiteDataSerialization.js'
31
31
 
32
32
  // Variables needed for jest tests
33
33
  if(!globalThis.__dirname) {
34
34
  // @ts-ignore
35
- globalThis.__dirname = dirname(process.cwd() + '/src/ts/server/connectors/FsStorage.ts')
35
+ globalThis.__dirname = dirname(process.cwd() + '/server/connectors/FsStorage.ts')
36
36
  console.info('Redefining __dirname', globalThis.__dirname)
37
37
  }
38
38
 
@@ -249,7 +249,7 @@ export class FsStorage implements StorageConnector<FsSession> {
249
249
  async deleteWebsite(session: FsSession, websiteId: WebsiteId): Promise<void> {
250
250
  const id = requiredParam<WebsiteId>(websiteId, 'website id')
251
251
  const path = join(this.options.path, id)
252
- return fs.rmdir(path, { recursive: true })
252
+ return fs.rm(path, { recursive: true, force: true })
253
253
  }
254
254
 
255
255
  async duplicateWebsite(session: FsSession, websiteId: WebsiteId): Promise<void> {
@@ -16,9 +16,9 @@
16
16
  */
17
17
 
18
18
  import { Readable } from 'stream'
19
- import { ServerConfig } from '../config'
20
- import { JobStatus, JobData, ConnectorData, ConnectorId, WebsiteId, ConnectorType, ConnectorUser, WebsiteMeta, WebsiteMetaFileContent, WebsiteData, ConnectorOptions } from '../../types'
21
- import { JobManager } from '../jobs'
19
+ import { ServerConfig } from '../config.js'
20
+ import { JobStatus, JobData, ConnectorData, ConnectorId, WebsiteId, ConnectorType, ConnectorUser, WebsiteMeta, WebsiteMetaFileContent, WebsiteData, ConnectorOptions } from '~/common/types.js'
21
+ import { JobManager } from '../jobs.js'
22
22
 
23
23
  /**
24
24
  * @fileoverview define types for Silex connectors
@@ -0,0 +1 @@
1
+ 20
@@ -0,0 +1,220 @@
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
+
18
+ /**
19
+ * @fileoverview Default Silex server config = the full SaaS (the v3.silex.me / canary setup).
20
+ * Serves the editor (StaticPlugin), the multi-site dashboard, the onboarding email backend,
21
+ * and the storage/hosting connectors selected by env vars. Loaded by default at startup
22
+ * (see server/config.ts: configFilePath). Runtime paths target the monorepo dist.
23
+ */
24
+ const { join } = require('path')
25
+ const nodeModules = require('node_modules-path')
26
+
27
+ const SslPlugin = require('../../dist/server/server/plugins/SslPlugin').default
28
+ const StaticPlugin = require('../../dist/server/server/plugins/StaticPlugin').default
29
+ const { ConnectorType } = require('../../dist/server/common/types')
30
+ const FtpConnector = require('../../dist/server/server/plugins/FtpConnector').default
31
+ const DownloadConnector = require('../../dist/server/server/plugins/DownloadConnector').default
32
+ const GitlabConnector = require('../../dist/server/server/plugins/GitlabConnector').default
33
+ const GitlabHostingConnector = require('../../dist/server/server/plugins/GitlabHostingConnector').default
34
+ const { FsStorage } = require('../../dist/server/server/connectors/FsStorage')
35
+ const { FsHosting } = require('../../dist/server/server/connectors/FsHosting')
36
+ const dashboard = require('./server-plugins/dashboard.js')
37
+ const onboarding = require('./server-plugins/onboarding.js')
38
+
39
+ // Load .env file
40
+ require('dotenv').config()
41
+
42
+ const env = {
43
+ STORAGE_CONNECTORS: process.env.STORAGE_CONNECTORS || 'ftp',
44
+ HOSTING_CONNECTORS: process.env.HOSTING_CONNECTORS || 'ftp,download',
45
+ SILEX_FS_ROOT: process.env.SILEX_FS_ROOT || join(process.cwd(), '/silex/storage'),
46
+ SILEX_FS_HOSTING_ROOT: process.env.SILEX_FS_HOSTING_ROOT || join(process.cwd(), '/silex/hosting'),
47
+ GITLAB_DISPLAY_NAME: process.env.GITLAB_DISPLAY_NAME || 'Gitlab',
48
+ GITLAB_CLIENT_ID: process.env.GITLAB_CLIENT_ID,
49
+ GITLAB_CLIENT_SECRET: process.env.GITLAB_CLIENT_SECRET,
50
+ GITLAB_DOMAIN: process.env.GITLAB_DOMAIN,
51
+ GITLAB2_DISPLAY_NAME: process.env.GITLAB2_DISPLAY_NAME || 'Gitlab',
52
+ GITLAB2_CLIENT_ID: process.env.GITLAB2_CLIENT_ID,
53
+ GITLAB2_CLIENT_SECRET: process.env.GITLAB2_CLIENT_SECRET,
54
+ GITLAB2_DOMAIN: process.env.GITLAB2_DOMAIN,
55
+ FTP_STORAGE_PATH: process.env.FTP_STORAGE_PATH || '',
56
+ FTP_HOSTING_PATH: process.env.FTP_HOSTING_PATH || '',
57
+ }
58
+
59
+ // Create alternate versions of the the Gitlab connector
60
+ class GitlabConnector1 extends GitlabConnector {
61
+ displayName = env.GITLAB_DISPLAY_NAME
62
+ constructor(config, options) {
63
+ super(config, options)
64
+ }
65
+ }
66
+
67
+ class GitlabConnector2 extends GitlabConnector {
68
+ connectorId = 'gitlab2'
69
+ displayName = env.GITLAB2_DISPLAY_NAME
70
+ constructor(config, options) {
71
+ super(config, options)
72
+ }
73
+ }
74
+
75
+ class GitlabHostingConnector1 extends GitlabHostingConnector {
76
+ displayName = env.GITLAB_DISPLAY_NAME
77
+ constructor(config, options) {
78
+ super(config, options)
79
+ }
80
+ }
81
+
82
+ class GitlabHostingConnector2 extends GitlabHostingConnector {
83
+ connectorId = 'gitlab2'
84
+ displayName = env.GITLAB2_DISPLAY_NAME
85
+ constructor(config, options) {
86
+ super(config, options)
87
+ }
88
+ }
89
+
90
+ function initConnectors(config) {
91
+ // Add storage and hosting connectors from env vars
92
+ if (env.STORAGE_CONNECTORS) {
93
+ config.setStorageConnectors([])
94
+ const connectors = env.STORAGE_CONNECTORS.split(',')
95
+ connectors.forEach((connector) => {
96
+ console.info('> Add storage connector from env var:', connector)
97
+ switch (connector) {
98
+ case 'fs':
99
+ config.addStorageConnector(new FsStorage(config, {
100
+ path: env.SILEX_FS_ROOT,
101
+ }))
102
+ break
103
+ case 'gitlab':
104
+ config.addStorageConnector(new GitlabConnector1(config, {
105
+ clientId: env.GITLAB_CLIENT_ID,
106
+ clientSecret: env.GITLAB_CLIENT_SECRET,
107
+ domain: env.GITLAB_DOMAIN,
108
+ }))
109
+ break
110
+ case 'gitlab2':
111
+ config.addStorageConnector(new GitlabConnector2(config, {
112
+ clientId: env.GITLAB2_CLIENT_ID,
113
+ clientSecret: env.GITLAB2_CLIENT_SECRET,
114
+ domain: env.GITLAB2_DOMAIN,
115
+ }))
116
+ break
117
+ case 'ftp':
118
+ config.addStorageConnector(new FtpConnector(config, {
119
+ type: ConnectorType.STORAGE,
120
+ path: env.FTP_STORAGE_PATH,
121
+ }))
122
+ break
123
+ default:
124
+ console.error('Unknown storage connector', connector)
125
+ throw new Error(`Unknown storage connector ${connector}`)
126
+ }
127
+ })
128
+ }
129
+
130
+ if (env.HOSTING_CONNECTORS) {
131
+ config.setHostingConnectors([])
132
+ const connectors = env.HOSTING_CONNECTORS.split(',')
133
+ connectors.forEach((connector) => {
134
+ console.info('> Add hosting connector from env var:', connector)
135
+ switch (connector) {
136
+ case 'fs':
137
+ config.addHostingConnector(new FsHosting(config, {
138
+ path: env.SILEX_FS_HOSTING_ROOT,
139
+ }))
140
+ break
141
+ case 'gitlab':
142
+ config.addHostingConnector(new GitlabHostingConnector1(config, {
143
+ clientId: env.GITLAB_CLIENT_ID,
144
+ clientSecret: env.GITLAB_CLIENT_SECRET,
145
+ domain: env.GITLAB_DOMAIN,
146
+ }))
147
+ break
148
+ case 'gitlab2':
149
+ config.addHostingConnector(new GitlabHostingConnector2(config, {
150
+ clientId: env.GITLAB2_CLIENT_ID,
151
+ clientSecret: env.GITLAB2_CLIENT_SECRET,
152
+ domain: env.GITLAB2_DOMAIN,
153
+ }))
154
+ break
155
+ case 'ftp':
156
+ config.addHostingConnector(new FtpConnector(config, {
157
+ type: ConnectorType.HOSTING,
158
+ path: env.FTP_HOSTING_PATH,
159
+ }))
160
+ break
161
+ case 'download':
162
+ config.addHostingConnector(new DownloadConnector(config))
163
+ break
164
+ default:
165
+ console.error('Unknown hosting connector', connector)
166
+ throw new Error(`Unknown hosting connector ${connector}`)
167
+ }
168
+ })
169
+ }
170
+ }
171
+
172
+ module.exports = async function(config) {
173
+ // SaaS multi-site dashboard FIRST: its "/" handler redirects to the localized
174
+ // dashboard before StaticPlugin can serve the editor's index.html at "/".
175
+ // (STARTUP_START handlers run in addPlugin order → dashboard routes mount first.)
176
+ await config.addPlugin(dashboard, {})
177
+
178
+ try {
179
+ // Core: serve the editor client, fonts and public assets
180
+ await config.addPlugin([
181
+ SslPlugin,
182
+ StaticPlugin,
183
+ ], {
184
+ [StaticPlugin]: {
185
+ routes: [
186
+ {
187
+ route: '/',
188
+ path: join(__dirname, '../../public'),
189
+ }, {
190
+ route: '/css/',
191
+ path: nodeModules('@fortawesome/fontawesome-free') + '/@fortawesome/fontawesome-free/css/',
192
+ }, {
193
+ route: '/webfonts/',
194
+ path: nodeModules('@fortawesome/fontawesome-free') + '/@fortawesome/fontawesome-free/webfonts/',
195
+ }, {
196
+ route: '/css/files/',
197
+ path: nodeModules('@fontsource/ubuntu') + '/@fontsource/ubuntu/files/',
198
+ }, {
199
+ route: '/',
200
+ path: join(__dirname, '../../dist/client'),
201
+ }, {
202
+ // SaaS client plugins (e.g. onboarding) imported by ./client-config.js
203
+ route: '/js/client-plugins/',
204
+ path: join(__dirname, 'client-plugins'),
205
+ },
206
+ ],
207
+ },
208
+ })
209
+ } catch (e) {
210
+ console.error(e)
211
+ }
212
+
213
+ // SaaS: onboarding email backend
214
+ await config.addPlugin(onboarding, {})
215
+
216
+ // Storage and hosting connectors selected by env vars
217
+ initConnectors(config)
218
+
219
+ return {}
220
+ }
@@ -0,0 +1,17 @@
1
+ // This file is loaded by Silex when the user opens the editor (SaaS only).
2
+ // Its path is set in the environment variable SILEX_CLIENT_CONFIG.
3
+ import onboarding from './js/client-plugins/onboarding.js'
4
+
5
+ export default async function (config) {
6
+ config.addPlugin(onboarding, {})
7
+ config.addPublicationTransformers({
8
+ transformPermalink: (path, type) => {
9
+ // Replace /index.html with /
10
+ return type === 'html' && path.endsWith('/index.html') ? path.replace(/index\.html$/, '') : path
11
+ },
12
+ })
13
+ // CMS is now built into silex-lib and enabled by default
14
+ // To configure CMS options, use: config.cmsConfig = { ... }
15
+ // To disable CMS, use: config.cmsConfig = { enabled: false }
16
+ return {}
17
+ }
File without changes
@@ -0,0 +1,67 @@
1
+ const apiUrl = '/api/onboarding'
2
+
3
+ async function hook(type, lang, rgpdAllowFeedback, rgpdAllowNewsletter) {
4
+ const response = await fetch(apiUrl, {
5
+ method: 'POST',
6
+ headers: {
7
+ 'Content-Type': 'application/json',
8
+ 'Accept-Language': lang,
9
+ },
10
+ body: JSON.stringify({
11
+ type,
12
+ lang,
13
+ rgpdAllowFeedback,
14
+ rgpdAllowNewsletter,
15
+ })
16
+ })
17
+ if(response.status < 400) {
18
+ const responseData = await response.json()
19
+ return responseData.onboarding
20
+ } else {
21
+ console.error('Error while fetching user from brevo', response.statusText, response.status)
22
+ return null
23
+ }
24
+ }
25
+
26
+ function notify(editor, onboarding) {
27
+ if(!onboarding) return
28
+ const { title, content } = onboarding
29
+ editor.runCommand("notifications:add", {
30
+ type: 'info',
31
+ message: `
32
+ <marquee
33
+ style="width: calc(100% - 25px);"
34
+ >${title}</marquee>
35
+ <p>${content}</p>
36
+ `,
37
+ })
38
+ }
39
+
40
+ export default async (config) => {
41
+ // After init
42
+ const { rgpdAllowFeedback, rgpdAllowNewsletter } = getRgpdValues()
43
+ config.on('silex:grapesjs:end', async ({ editor }) => {
44
+ notify(editor, await hook('STORAGE', config.lang, rgpdAllowFeedback, rgpdAllowNewsletter))
45
+ editor.on('silex:publish:end', async ({success}) => {
46
+ if(success) {
47
+ notify(editor, await hook('HOSTING', config.lang, rgpdAllowFeedback, rgpdAllowNewsletter))
48
+ }
49
+ })
50
+ })
51
+ }
52
+
53
+ function getRgpdValues() {
54
+ try {
55
+ const rgpdAllowFeedback = localStorage.getItem('feedback') ?? 'false'
56
+ const rgpdAllowNewsletter = localStorage.getItem('nl') ?? 'false'
57
+ return {
58
+ rgpdAllowFeedback: rgpdAllowFeedback === 'true',
59
+ rgpdAllowNewsletter: rgpdAllowNewsletter === 'true',
60
+ }
61
+ } catch(e) {
62
+ return {
63
+ rgpdAllowFeedback: false,
64
+ rgpdAllowNewsletter: false,
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,25 @@
1
+ SILEX_SESSION_NAME=change_me
2
+ SILEX_SESSION_SECRET=change_me
3
+ SILEX_URL=https://v3.silex.me
4
+ SILEX_EXPRESS_JSON_LIMIT=1mb
5
+ SILEX_EXPRESS_TEXT_LIMIT=10mb
6
+ SILEX_EXPRESS_URLENCODED_LIMIT=1mb
7
+
8
+ STORAGE_CONNECTORS=ftp,gitlab,gitlab2
9
+ HOSTING_CONNECTORS=ftp,gitlab,gitlab2,download
10
+ SILEX_FS_ROOT=
11
+ SILEX_FS_HOSTING_ROOT=
12
+ FTP_STORAGE_PATH=
13
+ FTP_HOSTING_PATH=
14
+ GITLAB_DISPLAY_NAME=
15
+ GITLAB_DOMAIN=
16
+ GITLAB_CLIENT_ID=
17
+ GITLAB_CLIENT_SECRET=
18
+ GITLAB2_DISPLAY_NAME=
19
+ GITLAB2_DOMAIN=
20
+ GITLAB2_CLIENT_ID=
21
+ GITLAB2_CLIENT_SECRET=
22
+
23
+ NOCO_URL=
24
+ NOCO_API_KEY=
25
+ NOCO_TABLE=
@@ -0,0 +1,22 @@
1
+ {
2
+ "en": {
3
+ "STORAGE": {
4
+ "title": "Welcome to Silex",
5
+ "content": "The first step is to play with the interface, and maybe check <a href='https://docs.silex.me'>the documetation</a>, <a href='https://video.silex.me/'>the video tutorials</a> and in particular <a href='https://video.silex.me/w/p/17h3h3PyjdT9XBKhR5ijNb?playlistPosition=4&resume=true'>this video to learn how to publish your website live</a>."
6
+ },
7
+ "HOSTING": {
8
+ "title": "Your website is live? What's next?",
9
+ "content": "Please take a moment to <a href='mailto:contact@silex.me'>email me and share your website</a>, <a href='https://www.g2.com/products/silex-website-builder/reviews'>give Silex a 5 stars review</a>. And if you want to <a href='https://opencollective.com/silex'>support the project on Open Collective.</a>."
10
+ }
11
+ },
12
+ "fr": {
13
+ "STORAGE": {
14
+ "title": "Bienvenue sur Silex",
15
+ "content": "Le premier pas est de jouer avec l'interface, et peut-être de consulter <a href='https://docs.silex.me'>la documentation</a>, <a href='https://video.silex.me/'>les tutoriels vidéo</a> et en particulier <a href='https://video.silex.me/w/p/17h3h3PyjdT9XBKhR5ijNb?playlistPosition=4&resume=true'>cette vidéo pour apprendre à publier votre site web en ligne</a>."
16
+ },
17
+ "HOSTING": {
18
+ "title": "Votre site web est en ligne? Et après?",
19
+ "content": "Prenez un moment pour <a href='mailto:contact@silex.me'>m'envoyer un email et partager votre site web</a>, <a href='https://www.g2.com/products/silex-website-builder/reviews'>donnez 5 étoiles à Silex</a>. Et si vous voulez <a href='https://opencollective.com/silex'>soutenir le projet sur Open Collective.</a>."
20
+ }
21
+ }
22
+ }
Binary file
@@ -0,0 +1,74 @@
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
+
18
+ /**
19
+ * @fileoverview SaaS multi-site dashboard plugin (monorepo glue).
20
+ * Serves the pre-built dashboard SPA (the `silex-dashboard` submodule `_site`) at "/",
21
+ * detects the browser language, and redirects "/" to the localized dashboard unless an
22
+ * editor `?id` is present (in which case it falls through to the editor served by
23
+ * StaticPlugin). Re-implemented against the monorepo dist so the silex-dashboard
24
+ * submodule stays pure content (no stale `@silexlabs/silex/dist/...` requires).
25
+ */
26
+ const fs = require('node:fs/promises')
27
+ const { join } = require('node:path')
28
+ const express = require('express')
29
+ const serveStatic = require('serve-static')
30
+ const locale = require('locale')
31
+ const { withCache } = require('../../../dist/server/server/plugins/Cache')
32
+ const { ServerEvent } = require('../../../dist/server/server/events')
33
+
34
+ const DASHBOARD_ROOT = join(__dirname, '../../../silex-dashboard')
35
+
36
+ module.exports = async function(config, options) {
37
+ console.log('> Silex dashboard plugin starting', { options })
38
+
39
+ const opts = {
40
+ defaultLanguage: 'en',
41
+ rootPath: join(DASHBOARD_ROOT, '_site'),
42
+ ...options,
43
+ }
44
+
45
+ // List of languages from silex-dashboard/collections/languages/*.json
46
+ const languages = []
47
+ const langDir = join(DASHBOARD_ROOT, 'collections/languages')
48
+ for (const file of await fs.readdir(langDir)) {
49
+ languages.push(JSON.parse(await fs.readFile(join(langDir, file))))
50
+ }
51
+
52
+ // Serve the dashboard and let the editor through when a website ?id is present
53
+ config.on(ServerEvent.STARTUP_START, ({ app }) => {
54
+ const router = express.Router()
55
+ app.use(router)
56
+
57
+ // Use cache
58
+ router.use(withCache)
59
+
60
+ // Localization: populate req.locale
61
+ router.use(locale(languages.map(l => l.code), opts.defaultLanguage))
62
+
63
+ // Serve the dashboard SPA
64
+ router.use('/', serveStatic(opts.rootPath))
65
+
66
+ // Redirect "/" to the localized dashboard unless the editor is requested (?id=...)
67
+ const editorRouter = express.Router()
68
+ editorRouter.use('/', (req, res, next) => {
69
+ if (req.path === '/' && !req.query.id) res.redirect(`/${req.locale}/`)
70
+ else next()
71
+ })
72
+ app.use(editorRouter)
73
+ })
74
+ }