boomack 0.14.10 → 0.15.0-preview6
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/README.md +1 -1
- package/client/public/css/main.css +7 -0
- package/client/views/login.ejs +1 -1
- package/client/views/parts/client-resources.ejs +2 -2
- package/client/views/parts/document-layout.ejs +1 -0
- package/client/views/parts/grid-layout.ejs +1 -0
- package/client/views/parts/home-head.ejs +1 -1
- package/client/views/parts/panel-customization.ejs +40 -1
- package/client/views/parts/panel-head.ejs +1 -1
- package/client/views/parts/slot.ejs +1 -0
- package/package.json +49 -47
- package/server-build/index.js +467 -481
- package/server-build/middleware/basic-auth.js +16 -14
- package/server-build/middleware/data-parser.js +151 -149
- package/server-build/middleware/standard-auth.js +63 -61
- package/server-build/middleware/token-auth.js +51 -50
- package/server-build/model/action.js +30 -28
- package/server-build/model/action.test.js +31 -27
- package/server-build/model/display-request.js +170 -158
- package/server-build/model/display-request.test.js +237 -238
- package/server-build/model/layout.js +324 -283
- package/server-build/model/layout.test.js +341 -330
- package/server-build/pipeline/format.js +144 -139
- package/server-build/pipeline/format.test.js +362 -365
- package/server-build/pipeline/load.js +280 -277
- package/server-build/pipeline/load.test.js +319 -318
- package/server-build/pipeline/render.js +159 -156
- package/server-build/pipeline/render.test.js +114 -115
- package/server-build/pipeline/store.js +186 -183
- package/server-build/pipeline/store.test.js +183 -181
- package/server-build/pipeline/transform.js +75 -72
- package/server-build/pipeline/transform.test.js +79 -81
- package/server-build/pipeline.js +617 -610
- package/server-build/pipeline.test.js +415 -417
- package/server-build/plugins/client-resources/tablesort.js +109 -109
- package/server-build/plugins/csv.js +158 -156
- package/server-build/plugins/generic.js +27 -26
- package/server-build/plugins/highlight.js +63 -61
- package/server-build/plugins/highlight.types.js +123 -124
- package/server-build/plugins/http.js +138 -135
- package/server-build/plugins/markdown.js +106 -100
- package/server-build/plugins/media.js +100 -99
- package/server-build/plugins/shell.js +220 -223
- package/server-build/plugins/shell.test.js +293 -294
- package/server-build/plugins/tcp.js +142 -141
- package/server-build/plugins/text.js +71 -70
- package/server-build/plugins/udp.js +83 -82
- package/server-build/routes/actions.js +116 -117
- package/server-build/routes/display-requests.js +329 -330
- package/server-build/routes/eval-requests.js +143 -147
- package/server-build/routes/export.js +575 -574
- package/server-build/routes/media-types.js +101 -102
- package/server-build/routes/panels.js +215 -211
- package/server-build/routes/presets.js +88 -89
- package/server-build/routes/resources.js +66 -61
- package/server-build/routes/web-client.js +725 -668
- package/server-build/service/actions.js +162 -153
- package/server-build/service/actions.test.js +46 -47
- package/server-build/service/char-encoding.js +72 -67
- package/server-build/service/char-encoding.test.js +56 -57
- package/server-build/service/cli-args.js +89 -85
- package/server-build/service/cli-args.test.js +7 -8
- package/server-build/service/client-resources.js +28 -29
- package/server-build/service/config-check.js +97 -98
- package/server-build/service/config.js +465 -448
- package/server-build/service/config.test.js +247 -246
- package/server-build/service/display-task-helper.js +59 -53
- package/server-build/service/highlight.js +65 -62
- package/server-build/service/html.js +61 -53
- package/server-build/service/html.test.js +66 -67
- package/server-build/service/logging.js +72 -74
- package/server-build/service/media-types.js +112 -103
- package/server-build/service/media-types.test.js +43 -44
- package/server-build/service/micro-markdown.js +70 -67
- package/server-build/service/micro-markdown.test.js +26 -27
- package/server-build/service/mime-type.js +72 -69
- package/server-build/service/mime-type.test.js +65 -66
- package/server-build/service/panels.js +598 -580
- package/server-build/service/panels.test.js +737 -763
- package/server-build/service/payload-encoding.js +29 -29
- package/server-build/service/persistence.js +146 -147
- package/server-build/service/plugins.js +339 -254
- package/server-build/service/plugins.test.js +135 -109
- package/server-build/service/presets.js +130 -122
- package/server-build/service/presets.test.js +128 -129
- package/server-build/service/rbac.js +129 -125
- package/server-build/service/render.js +64 -57
- package/server-build/service/render.test.js +168 -169
- package/server-build/service/resources.js +434 -399
- package/server-build/service/resources.test.js +385 -376
- package/server-build/service/response-messages.js +88 -89
- package/server-build/service/themes.js +122 -115
- package/server-build/service/transform.js +76 -69
- package/server-build/service/transform.test.js +167 -168
- package/server-build/service/web-ui-paths.js +58 -51
- package/server-build/service/web-user.js +29 -27
- package/server-build/typedefs.js +552 -528
- package/server-build/utils.js +554 -472
- package/server-build/utils.test.js +398 -400
- package/server-build/cli.js +0 -3
package/README.md
CHANGED
|
@@ -236,6 +236,10 @@ header.home-header {
|
|
|
236
236
|
box-shadow: none;
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
+
.slot.click-through {
|
|
240
|
+
pointer-events: none;
|
|
241
|
+
}
|
|
242
|
+
|
|
239
243
|
.slot.maximized {
|
|
240
244
|
grid-column: 1 / -1 !important;
|
|
241
245
|
grid-row: 1 / -1 !important;
|
|
@@ -292,6 +296,9 @@ header.home-header {
|
|
|
292
296
|
}
|
|
293
297
|
}
|
|
294
298
|
|
|
299
|
+
.slot-toolbar {
|
|
300
|
+
pointer-events: all;
|
|
301
|
+
}
|
|
295
302
|
.slot-toolbar.ui.top {
|
|
296
303
|
z-index: 2;
|
|
297
304
|
}
|
package/client/views/login.ejs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<%
|
|
2
2
|
if (!offline) {
|
|
3
|
-
%> <script
|
|
3
|
+
%> <script>
|
|
4
4
|
<%
|
|
5
5
|
_.forEach(clientResGroups, function (rg, id) {
|
|
6
6
|
%> window.boomack.registerClientResourceGroup("<%= id %>", <%- JSON.stringify(rg) %>);
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
%> <link rel="stylesheet" type="text/css" href="<%- basePath + 'plugins/styles/' + groupId + '/' + i %>" />
|
|
21
21
|
<% }
|
|
22
22
|
for (let i = 0; i < group.scriptsCount; i++) {
|
|
23
|
-
%> <script
|
|
23
|
+
%> <script src="<%- basePath + 'plugins/scripts/' + groupId + '/' + i %>"></script>
|
|
24
24
|
<% }
|
|
25
25
|
});
|
|
26
26
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<link rel="stylesheet" type="text/css" href="<%- basePath %>css/panel-list.css">
|
|
2
2
|
<% if (!offline) { %> <script src="<%- basePath %>socket.io/socket.io.js"></script><% } %>
|
|
3
3
|
<script src="<%- basePath %>js/home.js"></script>
|
|
4
|
-
<script
|
|
4
|
+
<script>
|
|
5
5
|
window.boomack = window.boomack || {};
|
|
6
6
|
window.boomack.pathPrefix = "<%- basePath %>";
|
|
7
7
|
window.boomack.offline = <%- offline %>;
|
|
@@ -7,6 +7,45 @@ if (panel.layout.style) {
|
|
|
7
7
|
%> <style type="text/css"><%- replaceThemePropsInStr(panel.layout.style) %></style>
|
|
8
8
|
<% }
|
|
9
9
|
if (panel.layout.script) {
|
|
10
|
-
%> <script
|
|
10
|
+
%> <script><%- panel.layout.script %></script>
|
|
11
|
+
<% }
|
|
12
|
+
const esModules = [];
|
|
13
|
+
const importMap = {}
|
|
14
|
+
// PlugIn ES modules
|
|
15
|
+
for (const esModuleName in modules) {
|
|
16
|
+
const esModule = {
|
|
17
|
+
...modules[esModuleName],
|
|
18
|
+
name: esModuleName,
|
|
19
|
+
href: uiPaths.plugInESModule(esModuleName),
|
|
20
|
+
};
|
|
21
|
+
esModules.push(esModule);
|
|
22
|
+
importMap[esModuleName] = esModule.href;
|
|
23
|
+
}
|
|
24
|
+
// Panel ES modules
|
|
25
|
+
for (const esModuleName in panel.layout.modules) {
|
|
26
|
+
const esModule = {
|
|
27
|
+
...panel.layout.modules[esModuleName],
|
|
28
|
+
name: esModuleName,
|
|
29
|
+
};
|
|
30
|
+
if (esModule.source) {
|
|
31
|
+
esModule.href = uiPaths.panelEsModule(panel.id, esModuleName);
|
|
32
|
+
}
|
|
33
|
+
esModules.push(esModule);
|
|
34
|
+
importMap[esModuleName] = esModule.href;
|
|
35
|
+
}
|
|
36
|
+
if (esModules.length > 0) {
|
|
37
|
+
%> <script type="importmap">
|
|
38
|
+
<%- JSON.stringify({ imports: importMap }, null, ' ') %>
|
|
39
|
+
</script>
|
|
40
|
+
<% }
|
|
41
|
+
for (const esModule of esModules) {
|
|
42
|
+
if (esModule.preload) {
|
|
43
|
+
%> <link rel="modulepreload" href="<%- esModule.href %>">
|
|
44
|
+
<% }
|
|
45
|
+
}
|
|
46
|
+
if (panel.layout.mainModule) {
|
|
47
|
+
%> <script type="module">
|
|
48
|
+
<%- panel.layout.mainModule %>
|
|
49
|
+
</script>
|
|
11
50
|
<% }
|
|
12
51
|
%>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<% if (!offline) { %> <script src="<%- basePath %>socket.io/socket.io.js"></script><% } %>
|
|
2
2
|
<script src="<%- basePath %>js/ResizeSensor.js"></script>
|
|
3
3
|
<script src="<%- basePath %>js/client.js"></script>
|
|
4
|
-
<script
|
|
4
|
+
<script>
|
|
5
5
|
window.boomack = window.boomack || {};
|
|
6
6
|
window.boomack.pathPrefix = "<%- basePath %>";
|
|
7
7
|
window.boomack.panelId = <%- panelId ? '"' + panelId + '"' : 'null' %>;
|
|
@@ -50,6 +50,7 @@ function replaceThemePropsInStr(s) {
|
|
|
50
50
|
%><%= contentScale ? ' content-scale ' + contentScale : '' %><%
|
|
51
51
|
%><%= contentAlign ? ' content-align ' + contentAlign : '' %><%
|
|
52
52
|
%><%= slot.zoom !== 1.0 && !contentScale ? ' zoom' : '' %><%
|
|
53
|
+
%><%= slot.clickThrough ? ' click-through' : '' %><%
|
|
53
54
|
%>"
|
|
54
55
|
style="<%
|
|
55
56
|
if (!singled && panel.layout.type === 'grid') {
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "boomack",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0-preview6",
|
|
4
4
|
"description": "web app for displaying hyper-media items in concert with e.g. an IDE",
|
|
5
5
|
"author": "Tobias Kiertscher <dev@mastersign.de>",
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"type": "module",
|
|
7
8
|
"bin": {
|
|
8
|
-
"boomack": "
|
|
9
|
+
"boomack": "server-build/cli.mjs"
|
|
9
10
|
},
|
|
10
11
|
"files": [
|
|
11
12
|
"LICENSE.md",
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
"scripts": {
|
|
17
18
|
"build": "tsc",
|
|
18
19
|
"watch": "tsc --watch",
|
|
19
|
-
"start": "node server-build/
|
|
20
|
+
"start": "node server-build/cli.mjs",
|
|
20
21
|
"test": "mocha server-build/**/*.test.js",
|
|
21
22
|
"test-watch": "mocha -R min --watch server-build/**/*.test.js",
|
|
22
23
|
"docs": "cd docs && jsdoc -c jsdoc.json ../server-build/",
|
|
@@ -27,61 +28,62 @@
|
|
|
27
28
|
"url": "https://git.mastersign.de/tk-software/boomack.git"
|
|
28
29
|
},
|
|
29
30
|
"engines": {
|
|
30
|
-
"node": ">=
|
|
31
|
+
"node": ">= 18.0.0"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
|
-
"archiver": "
|
|
34
|
-
"async": "
|
|
35
|
-
"chalk": "
|
|
36
|
-
"chardet": "
|
|
37
|
-
"commonmark": "
|
|
38
|
-
"cookie-parser": "
|
|
39
|
-
"cors": "
|
|
40
|
-
"csv-parse": "
|
|
41
|
-
"ejs": "
|
|
42
|
-
"express": "
|
|
43
|
-
"express-basic-auth": "
|
|
44
|
-
"got": "
|
|
45
|
-
"iconv-lite": "
|
|
46
|
-
"ip-address": "
|
|
47
|
-
"lodash": "
|
|
48
|
-
"markdown-it": "
|
|
49
|
-
"markdown-it-container": "
|
|
50
|
-
"markdown-it-emoji": "
|
|
51
|
-
"markdown-it-ins": "
|
|
52
|
-
"markdown-it-mark": "
|
|
53
|
-
"markdown-it-sub": "
|
|
54
|
-
"markdown-it-sup": "
|
|
55
|
-
"moment": "
|
|
56
|
-
"ncp": "
|
|
57
|
-
"nocache": "
|
|
58
|
-
"on-finished": "
|
|
59
|
-
"open": "
|
|
60
|
-
"prismjs": "
|
|
61
|
-
"raw-body": "
|
|
62
|
-
"rimraf": "
|
|
63
|
-
"secure-random-string": "
|
|
64
|
-
"socket.io": "
|
|
65
|
-
"uuid": "
|
|
66
|
-
"winston": "
|
|
67
|
-
"yaml": "
|
|
68
|
-
"yargs": "
|
|
34
|
+
"archiver": "7.0.1",
|
|
35
|
+
"async": "3.2.6",
|
|
36
|
+
"chalk": "5.6.2",
|
|
37
|
+
"chardet": "2.1.0",
|
|
38
|
+
"commonmark": "0.31.2",
|
|
39
|
+
"cookie-parser": "1.4.7",
|
|
40
|
+
"cors": "2.8.5",
|
|
41
|
+
"csv-parse": "6.1.0",
|
|
42
|
+
"ejs": "3.1.10",
|
|
43
|
+
"express": "5.1.0",
|
|
44
|
+
"express-basic-auth": "1.2.1",
|
|
45
|
+
"got": "13.0.0",
|
|
46
|
+
"iconv-lite": "0.7.0",
|
|
47
|
+
"ip-address": "10.0.1",
|
|
48
|
+
"lodash": "4.17.21",
|
|
49
|
+
"markdown-it": "14.1.0",
|
|
50
|
+
"markdown-it-container": "4.0.0",
|
|
51
|
+
"markdown-it-emoji": "3.0.0",
|
|
52
|
+
"markdown-it-ins": "4.0.0",
|
|
53
|
+
"markdown-it-mark": "4.0.0",
|
|
54
|
+
"markdown-it-sub": "2.0.0",
|
|
55
|
+
"markdown-it-sup": "2.0.0",
|
|
56
|
+
"moment": "2.30.1",
|
|
57
|
+
"ncp": "2.0.0",
|
|
58
|
+
"nocache": "4.0.0",
|
|
59
|
+
"on-finished": "2.4.1",
|
|
60
|
+
"open": "10.2.0",
|
|
61
|
+
"prismjs": "1.30.0",
|
|
62
|
+
"raw-body": "3.0.1",
|
|
63
|
+
"rimraf": "5.0.10",
|
|
64
|
+
"secure-random-string": "1.1.4",
|
|
65
|
+
"socket.io": "4.8.1",
|
|
66
|
+
"uuid": "13.0.0",
|
|
67
|
+
"winston": "3.18.3",
|
|
68
|
+
"yaml": "2.8.1",
|
|
69
|
+
"yargs": "17.7.2"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@types/express": "^4.17.13",
|
|
72
73
|
"@types/jsbn": "^1.2.30",
|
|
73
74
|
"@types/lodash": "^4.17.5",
|
|
74
75
|
"@types/markdown-it": "^14.1.1",
|
|
76
|
+
"@types/node": "^18.0.0",
|
|
75
77
|
"@types/rimraf": "^3.0.0",
|
|
76
|
-
"chai": "^
|
|
78
|
+
"chai": "^6.2.0",
|
|
77
79
|
"css-element-queries": "1.2.3",
|
|
78
|
-
"jquery": "^3.
|
|
79
|
-
"jsdoc": "^
|
|
80
|
-
"mocha": "^
|
|
81
|
-
"nock": "^
|
|
82
|
-
"typescript": "^
|
|
80
|
+
"jquery": "^3.7.1",
|
|
81
|
+
"jsdoc": "^4.0.4",
|
|
82
|
+
"mocha": "^11.7.3",
|
|
83
|
+
"nock": "^14.0.10",
|
|
84
|
+
"typescript": "^5.9.3"
|
|
83
85
|
},
|
|
84
86
|
"jshintConfig": {
|
|
85
|
-
"esversion": "
|
|
87
|
+
"esversion": "ES2020"
|
|
86
88
|
}
|
|
87
89
|
}
|