@silexlabs/silex 3.9.0 → 3.10.0-canary.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.env.default +9 -1
  2. package/README.md +17 -7
  3. package/common/types.ts +2 -1
  4. package/dist/client/index.html +1 -1
  5. package/dist/client/js/main.a79b96db.js +3922 -0
  6. package/dist/client/js/main.js +236 -238
  7. package/dist/client/js/main.js.LICENSE.txt +1 -1
  8. package/dist/server/server/plugins/GitlabConnector.js +23 -15
  9. package/editor/api.ts +1 -1
  10. package/editor/grapesjs/PublicationManager.ts +17 -4
  11. package/editor/grapesjs/cms/publication.test.ts +186 -292
  12. package/editor/grapesjs/core-commands.ts +0 -67
  13. package/editor/grapesjs/storage.ts +3 -1
  14. package/grapesjs-plugins/grapesjs-advanced-selector/src/capabilities.ts +27 -6
  15. package/grapesjs-plugins/grapesjs-advanced-selector/src/commands.ts +49 -11
  16. package/grapesjs-plugins/grapesjs-advanced-selector/src/model/GrapesJsSelectors.ts +6 -3
  17. package/grapesjs-plugins/grapesjs-data-source/src/datasources/GraphQL.ts +85 -4
  18. package/grapesjs-plugins/grapesjs-data-source/src/datasources/graphql.test.ts +22 -2
  19. package/grapesjs-plugins/grapesjs-data-source/src/filters/liquid.test.ts +38 -0
  20. package/grapesjs-plugins/grapesjs-data-source/src/filters/liquid.ts +14 -10
  21. package/grapesjs-plugins/grapesjs-data-source/src/model/ExpressionTree.test.ts +108 -0
  22. package/grapesjs-plugins/grapesjs-data-source/src/model/ExpressionTree.ts +9 -2
  23. package/grapesjs-plugins/grapesjs-data-source/src/model/expressionEvaluator.ts +14 -6
  24. package/grapesjs-plugins/grapesjs-data-source/src/model/queryBuilder.ts +11 -13
  25. package/grapesjs-plugins/grapesjs-data-source/src/types.ts +7 -0
  26. package/grapesjs-plugins/grapesjs-data-source/src/utils.test.ts +30 -1
  27. package/grapesjs-plugins/grapesjs-data-source/src/utils.ts +32 -1
  28. package/grapesjs-plugins/grapesjs-data-source/src/view/state-editor.ts +49 -8
  29. package/package.json +1 -1
  30. package/server/config.test.ts +54 -0
  31. package/server/plugins/GitlabConnector.ts +37 -17
  32. package/dist/client/js/main.ff61116f.js +0 -3924
  33. package/grapesjs-plugins/grapesjs-advanced-selector/package-lock.json +0 -12500
  34. package/grapesjs-plugins/grapesjs-ai-capabilities/package-lock.json +0 -9023
  35. package/grapesjs-plugins/grapesjs-css-variables/package-lock.json +0 -9020
  36. package/grapesjs-plugins/grapesjs-data-source/package-lock.json +0 -13182
  37. package/grapesjs-plugins/grapesjs-filter-styles/package-lock.json +0 -8927
  38. package/grapesjs-plugins/grapesjs-fonts/package-lock.json +0 -9024
  39. package/grapesjs-plugins/grapesjs-notifications/package-lock.json +0 -8187
  40. package/grapesjs-plugins/grapesjs-storage-rate-limit/package-lock.json +0 -10752
  41. package/grapesjs-plugins/grapesjs-symbols/package-lock.json +0 -6867
  42. package/grapesjs-plugins/grapesjs-version-flow/package-lock.json +0 -11832
  43. /package/dist/client/js/{main.ff61116f.js.LICENSE.txt → main.a79b96db.js.LICENSE.txt} +0 -0
package/.env.default CHANGED
@@ -1,4 +1,3 @@
1
- SILEX_URL=http://localhost:6805
2
1
  SILEX_EXPRESS_JSON_LIMIT=100mb
3
2
  SILEX_EXPRESS_TEXT_LIMIT=100mb
4
3
  SILEX_EXPRESS_URLENCODED_LIMIT=100mb
@@ -18,3 +17,12 @@ SILEX_CORS_URL=
18
17
  SILEX_CLIENT_CONFIG=
19
18
  SILEX_FS_ROOT=
20
19
  SILEX_FS_HOSTING_ROOT=
20
+
21
+ # Connectors — comma-separated ids. Storage = open/save projects, hosting = publish.
22
+ # Available ids: gitlab, gitlab2, ftp, download (see examples/server-config-connectors.js).
23
+ STORAGE_CONNECTORS=
24
+ HOSTING_CONNECTORS=
25
+ # GitLab OAuth app (gitlab.com > Settings > Applications, callback /api/connector/login/callback)
26
+ GITLAB_CLIENT_ID=
27
+ GITLAB_CLIENT_SECRET=
28
+ GITLAB_DOMAIN=https://gitlab.com
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  The web belongs to everyone. Silex is a free/libre visual website builder — no lock-in, no subscription, no tracking. Design visually, export clean HTML/CSS, host anywhere.
9
9
 
10
- **[Try Silex online](https://v3.silex.me/)** | **[Documentation](https://docs.silex.me)** | **[Desktop app — coming soon](https://roadmap.silex.me/posts/3/silex-desktop)** | **[Manifesto](https://www.silex.me/manifesto/)**
10
+ **[Try Silex online](https://v3.silex.me/)** | **[Documentation](https://docs.silex.me)** | **[Download the desktop app](https://www.silex.me/download/)** | **[Manifesto](https://www.silex.me/manifesto/)**
11
11
 
12
12
  ![Silex UI](https://www.silex.me/img/HJKUdOfC5N-2400.webp)
13
13
 
@@ -35,7 +35,7 @@ Most no-code tools lock you in: proprietary formats, forced hosting, subscriptio
35
35
  - **Static HTML output** — fast, secure, easy to host anywhere
36
36
  - **CMS integration** — bind components to WordPress, Strapi, Squidex, or any GraphQL API
37
37
  - **[11ty](https://www.11ty.dev/) compatible** — generate static sites from Silex templates, deploy with CI/CD
38
- - **Desktop app (coming soon)** — work offline, no account needed, AI-ready with built-in [MCP server](#ai--vibe-coding). Built with [Tauri](https://tauri.app/) for Windows, macOS, Linux. [Follow progress](https://roadmap.silex.me/posts/3/silex-desktop).
38
+ - **Desktop app (alpha)** — work offline, no account needed, AI-ready with built-in [MCP server](#ai--vibe-coding). Built with [Tauri](https://tauri.app/) for Windows, macOS, Linux. [Download it](https://www.silex.me/download/) or [follow progress](https://roadmap.silex.me/posts/3/silex-desktop).
39
39
  - **Plugin system** — extend with server and client plugins in JS/TS
40
40
  - **SEO tools** — meta tags, Open Graph, per-page settings
41
41
  - **Self-hosting** — Docker, Node.js, or one-click deploy on [CapRover](https://caprover.com/)
@@ -44,7 +44,7 @@ Most no-code tools lock you in: proprietary formats, forced hosting, subscriptio
44
44
 
45
45
  **Use it online** — **[v3.silex.me](https://v3.silex.me/)** (free, requires a GitLab account for storage)
46
46
 
47
- **Desktop app (alpha)** — [download for Windows, macOS or Linux](https://github.com/silexlabs/Silex/releases/latest). Work offline, no account needed.
47
+ **Desktop app (alpha)** — [download for Windows, macOS or Linux](https://www.silex.me/download/). Work offline, no account needed.
48
48
 
49
49
  ## Contribute
50
50
 
@@ -97,9 +97,9 @@ Silex is the work of contributors from all over the world. This project is maint
97
97
 
98
98
  <!-- Auto generated contributors -->
99
99
 
100
- **2026** — [Alex Hoyau](https://github.com/lexoyo), [Ola Mohamed](https://github.com/ola-a11y), [Syed Ishmum Ahnaf](https://github.com/SyedIshmumAhnaf), [Safal2004](https://github.com/Safal2004), [Wassim Triki](https://github.com/wassim-triki)
100
+ **2026** — [Alex Hoyau](https://github.com/lexoyo), [Aysajan Eziz](https://github.com/AysajanE), [JE4NVRG](https://github.com/JE4NVRG), [KozakLordOfMatrix](https://github.com/MatrixNeoKozak), [pupuking723](https://github.com/pupuking723), [Ola Mohamed](https://github.com/ola-a11y), [Syed Ishmum Ahnaf](https://github.com/SyedIshmumAhnaf), [Wassim Triki](https://github.com/wassim-triki)
101
101
 
102
- **2025** — [Alex Hoyau](https://github.com/lexoyo), [ceubri](https://github.com/ceubri), [Mazen Kamal](https://github.com/Mazen050), Piotr Golebiewski, [oliviermgx](https://github.com/oliviermgx)
102
+ **2025** — [Alex Hoyau](https://github.com/lexoyo), [Mazen Kamal](https://github.com/Mazen050), Piotr Golebiewski, [ioleo](https://github.com/ioleo), [oliviermgx](https://github.com/oliviermgx)
103
103
 
104
104
  **2024** — [Alex Hoyau](https://github.com/lexoyo), [oliviermgx](https://github.com/oliviermgx), [JeremyZXi](https://github.com/JeremyZXi), [SuperDelphi](https://github.com/SuperDelphi)
105
105
 
@@ -119,16 +119,25 @@ Silex is the work of contributors from all over the world. This project is maint
119
119
 
120
120
  **2016** — [Alex Hoyau](https://github.com/lexoyo), [singchan](https://github.com/singchan), [Pierre Ozoux](https://github.com/pierreozoux)
121
121
 
122
- **2015** — [Alex Hoyau](https://github.com/lexoyo), [singchan](https://github.com/singchan), [Christophe](https://github.com/ondrejec), [Pierre Ozoux](https://github.com/pierreozoux), [René Föhring](https://github.com/rrrene), [christian-bromann](https://github.com/christian-bromann)
122
+ **2015** — [Alex Hoyau](https://github.com/lexoyo), [singchan](https://github.com/singchan), Christophe, [Pierre Ozoux](https://github.com/pierreozoux), [René Föhring](https://github.com/rrrene), [christian-bromann](https://github.com/christian-bromann)
123
123
 
124
124
  **2014** — [Alex Hoyau](https://github.com/lexoyo), [Camille Gérard-Hirne](https://github.com/camcrock), [neocorp64](https://github.com/NeoCorp), Michele Martone, [peoslaap](https://github.com/peoslaap)
125
125
 
126
- **2013** — [Alex Hoyau](https://github.com/lexoyo), Yann Le Scouarnec, TheCause, yanhick, Thomas Fetiveau
126
+ **2013** — [Alex Hoyau](https://github.com/lexoyo), Yann Le Scouarnec, [TheCause](https://github.com/TheCause), [yanhick](https://github.com/yanhick), Alexandre Hoyau, [Thomas Fetiveau](https://github.com/zabojad)
127
127
 
128
128
 
129
129
 
130
130
  <!-- Auto generated contributors -->
131
131
 
132
+ The list above is generated from the git history of this repository, so it only covers code. Silex
133
+ owes just as much to people whose work lives elsewhere:
134
+
135
+ - **Brice Martin** ([ceubri](https://github.com/ceubri)) — templates, brand assets and design
136
+ - **Jonas Moreau** ([MoreauJonas](https://github.com/MoreauJonas)) — detailed bug reports and feedback from real world use
137
+ - [**BaguetteAgile**](https://github.com/BaguetteAgile) — years of bug reports and integration requests, from GitLab publishing to AI agents
138
+ - [**sidmint**](https://github.com/sidmint) — precise usability feedback on the editor and the desktop app
139
+ - **Likha Studios** ([GetLikha](https://github.com/GetLikha)) — reproducible bug reports on Silex v3
140
+
132
141
  ## Links
133
142
 
134
143
  - [Official website](https://www.silex.me/)
@@ -138,6 +147,7 @@ Silex is the work of contributors from all over the world. This project is maint
138
147
  - [Road map](https://roadmap.silex.me) — help define tasks and priorities
139
148
  - [Community forums](https://community.silex.me)
140
149
  - [Newsletter (EN)](https://short.silex.me/news_en) | [(FR)](https://short.silex.me/news_fr)
150
+ - [Release announcements](https://fosstodon.org/@silex/tagged/SilexRelease) — every stable release, also available as an [RSS feed](https://fosstodon.org/@silex/tagged/SilexRelease.rss)
141
151
  - [OpenCollective](https://opencollective.com/silex) — financial contributions
142
152
 
143
153
  ## Built on
package/common/types.ts CHANGED
@@ -46,7 +46,8 @@ export class ApiError extends Error {
46
46
  export type ApiResponseError = { message: string }
47
47
  export type ApiPublicationPublishBody = WebsiteData // this contains the connectorId
48
48
  export type ApiPublicationPublishQuery = { websiteId: WebsiteId, hostingId: ConnectorId, storageId: ConnectorId, options: ConnectorOptions}
49
- export type ApiPublicationPublishResponse = { url: string, job: PublicationJobData }
49
+ // A server which publishes synchronously answers no job, and no url until something serves the files
50
+ export type ApiPublicationPublishResponse = { url: string | null, job?: PublicationJobData }
50
51
  export type ApiPublicationStatusQuery = { jobId: JobId }
51
52
  export type ApiPublicationStatusResponse = PublicationJobData
52
53
  export type ApiWebsiteReadQuery = { websiteId: WebsiteId, connectorId?: ConnectorId }
@@ -5,5 +5,5 @@
5
5
  .silex-loader {
6
6
  opacity: 0;
7
7
  transition: opacity 0.25s 0.25s ease-in-out;
8
- }</style></head><body class="silex-loading"><div class="silex-loader silex-dialog" role="status" aria-live="polite" aria-busy="true">Loading</div><link rel="stylesheet" href="css/admin.19216e47.css"><main class="silex-workspace"><div class="silex-main silex-dialog-hide silex-ui-full" id="gjs"></div></main><script src="js/main.ff61116f.js"></script><script>silex.start()
8
+ }</style></head><body class="silex-loading"><div class="silex-loader silex-dialog" role="status" aria-live="polite" aria-busy="true">Loading</div><link rel="stylesheet" href="css/admin.19216e47.css"><main class="silex-workspace"><div class="silex-main silex-dialog-hide silex-ui-full" id="gjs"></div></main><script src="js/main.a79b96db.js"></script><script>silex.start()
9
9
  // From here silex.config is available and Silex is getting started</script></body></html>