@silexlabs/silex 3.0.0-alpha.47 → 3.0.0-alpha.49
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.
- package/.env.default +1 -1
- package/dist/client/client/api.d.ts +1 -1
- package/dist/client/client/config.d.ts +2 -0
- package/dist/client/css/admin.css +15 -0
- package/dist/client/js/main.js +3 -3
- package/dist/client/types.d.ts +1 -1
- package/dist/plugins/client/plugins/client/website-info.d.ts +1 -0
- package/dist/plugins/client/plugins/client/website-info.js +55 -0
- package/dist/plugins/client/plugins/client/website-info.js.map +1 -0
- package/dist/plugins/client/types.d.ts +1 -1
- package/dist/plugins/server/plugins/server/GitlabConnector.d.ts +11 -0
- package/dist/plugins/server/plugins/server/GitlabConnector.js +143 -33
- package/dist/plugins/server/plugins/server/GitlabConnector.js.map +1 -1
- package/dist/plugins/server/plugins/server/SslPlugin.js +5 -5
- package/dist/plugins/server/plugins/server/SslPlugin.js.map +1 -1
- package/dist/plugins/server/plugins/server/StaticPlugin.js +4 -0
- package/dist/plugins/server/plugins/server/StaticPlugin.js.map +1 -1
- package/dist/plugins/server/server/config.js +4 -5
- package/dist/plugins/server/server/config.js.map +1 -1
- package/dist/plugins/server/server/connectors/FsStorage.js +1 -1
- package/dist/plugins/server/server/connectors/FsStorage.js.map +1 -1
- package/dist/plugins/server/types.d.ts +1 -1
- package/dist/server/server/config.js +4 -5
- package/dist/server/server/connectors/FsStorage.js +1 -1
- package/dist/server/server/express.js +2 -2
- package/package.json +1 -1
- package/public/silex.js +5 -0
- package/src/css/grapesjs.scss +1 -0
- package/src/css/index.scss +1 -0
- package/src/css/website-info.scss +13 -0
- package/src/ts/client/api.ts +2 -2
- package/src/ts/client/config.ts +3 -0
- package/src/ts/client/grapesjs/LoginDialog.ts +0 -1
- package/src/ts/client/grapesjs/settings.ts +1 -1
- package/src/ts/client/grapesjs/storage.ts +0 -1
- package/src/ts/client/index.ts +1 -3
- package/src/ts/plugins/client/website-info.ts +63 -0
- package/src/ts/plugins/server/GitlabConnector.ts +154 -34
- package/src/ts/plugins/server/SslPlugin.ts +5 -5
- package/src/ts/plugins/server/StaticPlugin.ts +4 -0
- package/src/ts/server/config.ts +4 -5
- package/src/ts/server/connectors/FsStorage.ts +1 -1
- package/src/ts/server/express.ts +2 -2
- package/src/ts/types.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FsStorage.js","sourceRoot":"","sources":["../../../../../src/ts/server/connectors/FsStorage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wDAAsC;AACtC,2BAAsC;AACtC,6CAAsI;AACtI,+BAAoC;AACpC,uCAAwK;AACxK,2BAA6B;AAC7B,oDAAmD;AAEnD,+CAA+F;AAC/F,mCAAiC;AACjC,+BAAiC;AAGjC,kCAAkC;AAClC,IAAG,CAAC,UAAU,CAAC,SAAS,EAAE;IACxB,aAAa;IACb,UAAU,CAAC,SAAS,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,GAAG,EAAE,GAAG,wCAAwC,CAAC,CAAA;IACxF,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"FsStorage.js","sourceRoot":"","sources":["../../../../../src/ts/server/connectors/FsStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,7 +67,7 @@ export type ApiWebsiteMetaReadQuery = {
|
|
|
67
67
|
websiteId: WebsiteId;
|
|
68
68
|
connectorId?: ConnectorId;
|
|
69
69
|
};
|
|
70
|
-
export type ApiWebsiteMetaReadResponse =
|
|
70
|
+
export type ApiWebsiteMetaReadResponse = WebsiteMeta;
|
|
71
71
|
export type ApiWebsiteMetaWriteQuery = {
|
|
72
72
|
websiteId: WebsiteId;
|
|
73
73
|
connectorId?: ConnectorId;
|
|
@@ -56,12 +56,12 @@ class ServerConfig extends silex_plugins_1.Config {
|
|
|
56
56
|
async addRoutes(app) {
|
|
57
57
|
const path = process.env.SILEX_CLIENT_CONFIG;
|
|
58
58
|
if (path) {
|
|
59
|
-
console.
|
|
59
|
+
console.info(`> Serving client side config ${path} at ${constants_1.CLIENT_CONFIG_FILE_NAME}`);
|
|
60
60
|
try {
|
|
61
61
|
let clientConfig = (await (0, promises_1.readFile)(path)).toString();
|
|
62
62
|
app.get(`/${constants_1.CLIENT_CONFIG_FILE_NAME}`, async (req, res) => {
|
|
63
63
|
if (this.debug) {
|
|
64
|
-
console.
|
|
64
|
+
console.info('[Debug mode] Reloading config file', path);
|
|
65
65
|
clientConfig = (await (0, promises_1.readFile)(path)).toString();
|
|
66
66
|
}
|
|
67
67
|
res
|
|
@@ -81,7 +81,7 @@ class ServerConfig extends silex_plugins_1.Config {
|
|
|
81
81
|
}
|
|
82
82
|
async loadUserConfig() {
|
|
83
83
|
if (this.userConfigPath) {
|
|
84
|
-
console.
|
|
84
|
+
console.info('> Loading user config', this.userConfigPath);
|
|
85
85
|
try {
|
|
86
86
|
await this.addPlugin(this.userConfigPath, {});
|
|
87
87
|
}
|
|
@@ -91,12 +91,11 @@ class ServerConfig extends silex_plugins_1.Config {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
async loadSilexConfig() {
|
|
94
|
-
console.
|
|
94
|
+
console.info('> Loading config', this.configFilePath);
|
|
95
95
|
try {
|
|
96
96
|
await this.addPlugin(this.configFilePath, {});
|
|
97
97
|
}
|
|
98
98
|
catch (e) {
|
|
99
|
-
console.log(e.requireStack[0]);
|
|
100
99
|
if (e.code === 'MODULE_NOT_FOUND' && (!e.requireStack || !e.requireStack.find(path => path === this.configFilePath))) {
|
|
101
100
|
console.info('> /!\\ Config file not found', this.configFilePath);
|
|
102
101
|
}
|
|
@@ -36,7 +36,7 @@ const stream_1 = require("stream");
|
|
|
36
36
|
const uuid_1 = require("uuid");
|
|
37
37
|
if (!globalThis.__dirname) {
|
|
38
38
|
globalThis.__dirname = (0, path_1.dirname)(process.cwd() + '/src/ts/server/connectors/FsStorage.ts');
|
|
39
|
-
console.
|
|
39
|
+
console.info('Redefining __dirname', globalThis.__dirname);
|
|
40
40
|
}
|
|
41
41
|
const USER_ICON = 'data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' height=\'1em\' viewBox=\'0 0 448 512\'%3E%3Cpath d=\'M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464H398.7c-8.9-63.3-63.3-112-129-112H178.3c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3z\'/%3E%3C/svg%3E';
|
|
42
42
|
const FILE_ICON = 'data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22currentColor%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202L6%2022%2018%2022%2018%207%2012%202%206%202Z%22%3E%3C%2Fpath%3E%3Cpath%20d%3D%22M18%202L12%202%2012%208%2018%208%2018%202Z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E';
|
|
@@ -16,7 +16,7 @@ function create(config) {
|
|
|
16
16
|
app.set('config', config);
|
|
17
17
|
const options = config.expressOptions;
|
|
18
18
|
if (options.cors) {
|
|
19
|
-
console.
|
|
19
|
+
console.info('> CORS are ENABLED:', options.cors);
|
|
20
20
|
app.use((0, cors_1.default)({
|
|
21
21
|
origin: options.cors,
|
|
22
22
|
}));
|
|
@@ -25,7 +25,7 @@ function create(config) {
|
|
|
25
25
|
app.use(body_parser_1.default.json({ limit: options.jsonLimit }));
|
|
26
26
|
app.use(body_parser_1.default.text({ limit: options.textLimit }));
|
|
27
27
|
app.use(body_parser_1.default.urlencoded({ limit: options.urlencodedLimit }));
|
|
28
|
-
console.
|
|
28
|
+
console.info('> Session name:', options.sessionName);
|
|
29
29
|
app.use((0, cookie_parser_1.default)());
|
|
30
30
|
app.use((0, cookie_session_1.default)({
|
|
31
31
|
name: options.sessionName,
|
package/package.json
CHANGED
package/public/silex.js
CHANGED
|
@@ -15,9 +15,14 @@
|
|
|
15
15
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
+
import websiteInfoPlugin from './plugins/client/website-info.js'
|
|
19
|
+
|
|
18
20
|
// This file is loaded by Silex when the user opens the editor
|
|
19
21
|
// Unless you override the default config with the environment variable SILEX_CLIENT_CONFIG or the CLI option --client-config
|
|
20
22
|
export default async function (config) {
|
|
23
|
+
// Add plugins
|
|
24
|
+
config.addPlugin(websiteInfoPlugin, {})
|
|
25
|
+
|
|
21
26
|
// // For example add a GrapesJs plugin like this
|
|
22
27
|
// config.editor.plugins.push(plugin)
|
|
23
28
|
// config.editor.pluginsOpts[plugin] = {
|
package/src/css/grapesjs.scss
CHANGED
package/src/css/index.scss
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@use "variables" as *;
|
|
2
|
+
|
|
3
|
+
.gjs-website-meta {
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
margin-left: 10px;
|
|
8
|
+
margin-right: 10px;
|
|
9
|
+
line-height: 2;
|
|
10
|
+
min-width: 100px;
|
|
11
|
+
border: 1px solid $lighterPrimaryColor;
|
|
12
|
+
background-color: $darkerPrimaryColor;
|
|
13
|
+
}
|
package/src/ts/client/api.ts
CHANGED
|
@@ -95,8 +95,8 @@ export async function websiteMetaWrite({websiteId, data, connectorId}: {websiteI
|
|
|
95
95
|
await api<ApiWebsiteMetaWriteQuery, ApiWebsiteMetaWriteBody, ApiWebsiteMetaWriteResponse>(ApiRoute.WEBSITE_META_WRITE, 'POST', { websiteId, connectorId: connectorId }, data)
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
export async function websiteMetaRead({websiteId, connectorId}: {websiteId: WebsiteId, connectorId?: ConnectorId}): Promise<
|
|
99
|
-
|
|
98
|
+
export async function websiteMetaRead({websiteId, connectorId}: {websiteId: WebsiteId, connectorId?: ConnectorId}): Promise<WebsiteMeta> {
|
|
99
|
+
return api<ApiWebsiteMetaReadQuery, null, ApiWebsiteMetaReadResponse>(ApiRoute.WEBSITE_META_WRITE, 'GET', { websiteId, connectorId })
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
export async function websiteAssetsLoad({path, websiteId, connectorId}: {path: string, websiteId: WebsiteId, connectorId: ConnectorId}): Promise<string> {
|
package/src/ts/client/config.ts
CHANGED
|
@@ -20,12 +20,15 @@ import { getEditorConfig } from './grapesjs'
|
|
|
20
20
|
import { CLIENT_CONFIG_FILE_NAME, DEFAULT_LANGUAGE, DEFAULT_WEBSITE_ID } from '../constants'
|
|
21
21
|
import { ConnectorId, WebsiteId } from '../types'
|
|
22
22
|
import { EditorConfig } from 'grapesjs'
|
|
23
|
+
import * as api from './api'
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* @fileoverview Silex client side config
|
|
26
27
|
*/
|
|
27
28
|
|
|
28
29
|
export class ClientConfig extends Config {
|
|
30
|
+
api = api
|
|
31
|
+
|
|
29
32
|
/**
|
|
30
33
|
* The website to load
|
|
31
34
|
* This is the id of the website in the storage connector
|
|
@@ -21,7 +21,6 @@ export async function getCurrentUser(editor: Editor): Promise<ConnectorUser> {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export async function updateUser(editor: Editor, type: ConnectorType, connectorId?: ConnectorId): Promise<ConnectorUser> {
|
|
24
|
-
console.log('updateUser', type, connectorId)
|
|
25
24
|
const user = await getUser({type, connectorId})
|
|
26
25
|
editor.getModel().set('user', user)
|
|
27
26
|
return user
|
|
@@ -38,7 +38,7 @@ export const settingsDialog = grapesjs.plugins.add(pluginName, (editor, opts) =>
|
|
|
38
38
|
} catch (error) {
|
|
39
39
|
// Cannot get version from webpack (see plugin in webpack.config.js)
|
|
40
40
|
}
|
|
41
|
-
console.
|
|
41
|
+
console.info('Silex version:', version)
|
|
42
42
|
editor.Commands.add(cmdOpenSettings, {
|
|
43
43
|
run: (_, sender, {page}) => {
|
|
44
44
|
modal = editor.Modal.open({
|
|
@@ -28,7 +28,6 @@ export const storagePlugin = (editor) => {
|
|
|
28
28
|
editor.Storage.add('connector', {
|
|
29
29
|
async load(options: { id: WebsiteId, connectorId: ConnectorId }): Promise<WebsiteData> {
|
|
30
30
|
try {
|
|
31
|
-
console.log('storage get user')
|
|
32
31
|
const user: ConnectorUser = await getCurrentUser(editor) ?? await updateUser(editor, ConnectorType.STORAGE, options.connectorId)
|
|
33
32
|
if(user) {
|
|
34
33
|
const data = await websiteLoad({websiteId: options.id, connectorId: user.storage.connectorId})
|
package/src/ts/client/index.ts
CHANGED
|
@@ -50,6 +50,7 @@ export async function start(options = {}) {
|
|
|
50
50
|
config.initGrapesConfig()
|
|
51
51
|
|
|
52
52
|
// Start grapesjs
|
|
53
|
+
config.emit(ClientEvent.GRAPESJS_START)
|
|
53
54
|
try{
|
|
54
55
|
await initEditor(config.grapesJsConfig)
|
|
55
56
|
} catch(e) {
|
|
@@ -57,7 +58,6 @@ export async function start(options = {}) {
|
|
|
57
58
|
throw e
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
config.emit(ClientEvent.GRAPESJS_START)
|
|
61
61
|
const editor = getEditor()
|
|
62
62
|
config.emit(ClientEvent.GRAPESJS_END, { editor })
|
|
63
63
|
|
|
@@ -66,7 +66,6 @@ export async function start(options = {}) {
|
|
|
66
66
|
|
|
67
67
|
// Load the site
|
|
68
68
|
editor.StorageManager.setAutosave(false)
|
|
69
|
-
console.log('before load')
|
|
70
69
|
try {
|
|
71
70
|
await editor.load(null)
|
|
72
71
|
} catch(e) {
|
|
@@ -76,7 +75,6 @@ export async function start(options = {}) {
|
|
|
76
75
|
// Will display an error message, see in storage.ts
|
|
77
76
|
}
|
|
78
77
|
} finally {
|
|
79
|
-
console.log('after load')
|
|
80
78
|
setTimeout(() => {
|
|
81
79
|
// This needs time for grapesjs
|
|
82
80
|
editor.editor.set('changesCount', 0)
|
|
@@ -0,0 +1,63 @@
|
|
|
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
|
+
import { ClientEvent } from '../../client/events.js'
|
|
19
|
+
|
|
20
|
+
interface WebsiteInfoOptions {
|
|
21
|
+
websiteId: string
|
|
22
|
+
connectorId: string
|
|
23
|
+
appendTo: 'commands' | 'options' | 'views' | 'project-bar-container' | 'project-bar-panel' | 'views-container'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export default async function(config) {
|
|
27
|
+
config.on(ClientEvent.GRAPESJS_START, async () => {
|
|
28
|
+
const grapesPlugin = (editor, opts: Partial<WebsiteInfoOptions>) => {
|
|
29
|
+
const options = {
|
|
30
|
+
appendTo: 'commands',
|
|
31
|
+
...opts,
|
|
32
|
+
} as WebsiteInfoOptions
|
|
33
|
+
editor.on('storage:end:load', async () => {
|
|
34
|
+
// Get website meta data
|
|
35
|
+
const { websiteId, connectorId } = options
|
|
36
|
+
// Get the website meta data
|
|
37
|
+
const websiteMeta = await config.api.websiteMetaRead({ websiteId, connectorId })
|
|
38
|
+
displayWebsiteMeta(websiteMeta)
|
|
39
|
+
})
|
|
40
|
+
return {}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
config.grapesJsConfig.plugins.push(grapesPlugin)
|
|
44
|
+
config.grapesJsConfig.pluginsOpts[grapesPlugin.toString()] = {
|
|
45
|
+
websiteId: config.websiteId,
|
|
46
|
+
connectorId: config.storageId,
|
|
47
|
+
}
|
|
48
|
+
function displayWebsiteMeta(websiteMeta) {
|
|
49
|
+
// Create the container
|
|
50
|
+
const container = document.createElement('div')
|
|
51
|
+
container.classList.add('gjs-website-meta')
|
|
52
|
+
// Add the container to the UI
|
|
53
|
+
// Add the name of the website in the top bar
|
|
54
|
+
const topBar = document.querySelector('.gjs-pn-devices-c')
|
|
55
|
+
topBar?.appendChild(container)
|
|
56
|
+
// Display the website meta data
|
|
57
|
+
container.innerHTML = `
|
|
58
|
+
<div class="gjs-website-meta-image" style="background: url(${websiteMeta.imageUrl});"></div>
|
|
59
|
+
<div class="gjs-website-meta-name">${websiteMeta.name}</div>
|
|
60
|
+
`
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
}
|