underpost 3.2.5 → 3.2.9
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/.github/workflows/release.cd.yml +1 -2
- package/CHANGELOG.md +351 -1
- package/CLI-HELP.md +40 -13
- package/Dockerfile +0 -4
- package/README.md +4 -4
- package/bin/build.js +14 -5
- package/bin/deploy.js +570 -1
- package/bin/file.js +6 -0
- package/conf.js +11 -2
- package/jsconfig.json +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
- package/manifests/deployment/dd-test-development/deployment.yaml +136 -66
- package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
- package/package.json +24 -15
- package/scripts/k3s-node-setup.sh +2 -2
- package/scripts/nat-iptables.sh +103 -18
- package/src/api/core/core.controller.js +10 -10
- package/src/api/core/core.service.js +10 -10
- package/src/api/default/default.controller.js +10 -10
- package/src/api/default/default.service.js +10 -10
- package/src/api/document/document.controller.js +12 -12
- package/src/api/document/document.model.js +10 -16
- package/src/api/file/file.controller.js +8 -8
- package/src/api/file/file.model.js +10 -10
- package/src/api/file/file.service.js +36 -36
- package/src/api/test/test.controller.js +8 -8
- package/src/api/test/test.service.js +8 -8
- package/src/api/user/guest.service.js +99 -0
- package/src/api/user/user.controller.js +6 -6
- package/src/api/user/user.model.js +8 -13
- package/src/api/user/user.service.js +3 -20
- package/src/cli/cluster.js +61 -14
- package/src/cli/db.js +47 -2
- package/src/cli/deploy.js +67 -35
- package/src/cli/fs.js +79 -8
- package/src/cli/image.js +43 -1
- package/src/cli/index.js +26 -1
- package/src/cli/release.js +57 -1
- package/src/cli/repository.js +69 -31
- package/src/cli/run.js +415 -36
- package/src/cli/ssh.js +1 -1
- package/src/cli/static.js +43 -115
- package/src/client/Default.index.js +21 -33
- package/src/client/components/core/404.js +4 -4
- package/src/client/components/core/500.js +4 -4
- package/src/client/components/core/Account.js +73 -60
- package/src/client/components/core/AgGrid.js +23 -33
- package/src/client/components/core/Alert.js +12 -13
- package/src/client/components/core/AppStore.js +1 -1
- package/src/client/components/core/Auth.js +35 -37
- package/src/client/components/core/Badge.js +7 -13
- package/src/client/components/core/BtnIcon.js +15 -17
- package/src/client/components/core/CalendarCore.js +42 -63
- package/src/client/components/core/Chat.js +13 -15
- package/src/client/components/core/ClientEvents.js +87 -0
- package/src/client/components/core/ColorPaletteElement.js +309 -0
- package/src/client/components/core/Content.js +17 -14
- package/src/client/components/core/Css.js +15 -71
- package/src/client/components/core/CssCore.js +12 -16
- package/src/client/components/core/D3Chart.js +4 -4
- package/src/client/components/core/Docs.js +64 -91
- package/src/client/components/core/DropDown.js +69 -91
- package/src/client/components/core/EventBus.js +92 -0
- package/src/client/components/core/EventsUI.js +14 -17
- package/src/client/components/core/FileExplorer.js +96 -228
- package/src/client/components/core/FullScreen.js +47 -75
- package/src/client/components/core/Input.js +24 -69
- package/src/client/components/core/Keyboard.js +25 -18
- package/src/client/components/core/KeyboardAvoidance.js +145 -0
- package/src/client/components/core/LoadingAnimation.js +25 -31
- package/src/client/components/core/LogIn.js +41 -41
- package/src/client/components/core/LogOut.js +23 -14
- package/src/client/components/core/Modal.js +462 -178
- package/src/client/components/core/NotificationManager.js +14 -18
- package/src/client/components/core/Panel.js +54 -50
- package/src/client/components/core/PanelForm.js +25 -125
- package/src/client/components/core/Polyhedron.js +110 -214
- package/src/client/components/core/PublicProfile.js +39 -32
- package/src/client/components/core/Recover.js +48 -44
- package/src/client/components/core/Responsive.js +88 -32
- package/src/client/components/core/RichText.js +9 -18
- package/src/client/components/core/Router.js +24 -3
- package/src/client/components/core/SearchBox.js +37 -37
- package/src/client/components/core/SignUp.js +39 -30
- package/src/client/components/core/SocketIo.js +31 -2
- package/src/client/components/core/SocketIoHandler.js +6 -6
- package/src/client/components/core/ToggleSwitch.js +8 -20
- package/src/client/components/core/ToolTip.js +5 -17
- package/src/client/components/core/Translate.js +56 -59
- package/src/client/components/core/Validator.js +26 -16
- package/src/client/components/core/Wallet.js +15 -26
- package/src/client/components/core/Worker.js +163 -27
- package/src/client/components/core/windowGetDimensions.js +7 -7
- package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
- package/src/client/components/default/CssDefault.js +12 -12
- package/src/client/components/default/LogInDefault.js +6 -4
- package/src/client/components/default/LogOutDefault.js +6 -4
- package/src/client/components/default/RouterDefault.js +47 -0
- package/src/client/components/default/SettingsDefault.js +4 -4
- package/src/client/components/default/SignUpDefault.js +6 -4
- package/src/client/components/default/TranslateDefault.js +3 -3
- package/src/client/services/core/core.service.js +17 -49
- package/src/client/services/default/default.management.js +159 -267
- package/src/client/services/default/default.service.js +10 -16
- package/src/client/services/document/document.service.js +14 -19
- package/src/client/services/file/file.service.js +8 -13
- package/src/client/services/test/test.service.js +8 -13
- package/src/client/services/user/guest.service.js +86 -0
- package/src/client/services/user/user.management.js +5 -5
- package/src/client/services/user/user.service.js +14 -20
- package/src/client/ssr/body/404.js +3 -3
- package/src/client/ssr/body/500.js +3 -3
- package/src/client/ssr/body/CacheControl.js +5 -2
- package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
- package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
- package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
- package/src/client/ssr/offline/Maintenance.js +12 -11
- package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
- package/src/client/ssr/pages/Test.js +2 -2
- package/src/client/sw/core.sw.js +212 -0
- package/src/index.js +1 -1
- package/src/runtime/express/Dockerfile +4 -4
- package/src/runtime/lampp/Dockerfile +8 -7
- package/src/runtime/wp/Dockerfile +11 -17
- package/src/server/client-build-docs.js +45 -46
- package/src/server/client-build.js +334 -60
- package/src/server/client-formatted.js +47 -16
- package/src/server/conf.js +5 -4
- package/src/server/data-query.js +32 -20
- package/src/server/dns.js +22 -0
- package/src/server/ipfs-client.js +232 -91
- package/src/server/process.js +13 -27
- package/src/server/start.js +17 -3
- package/src/server/valkey.js +141 -235
- package/tsconfig.docs.json +15 -0
- package/typedoc.json +29 -0
- package/jsdoc.json +0 -52
- package/src/client/components/core/ColorPalette.js +0 -5267
- package/src/client/components/core/JoyStick.js +0 -80
- package/src/client/components/default/RoutesDefault.js +0 -49
- package/src/client/sw/default.sw.js +0 -127
- package/src/client/sw/template.sw.js +0 -84
package/src/server/data-query.js
CHANGED
|
@@ -5,7 +5,16 @@
|
|
|
5
5
|
* @namespace DataQuery
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @class DataQuery
|
|
10
|
+
* @description Utility class for parsing request query parameters into Mongoose query options,
|
|
11
|
+
* including support for AG Grid filterModel and sortModel. Provides a static `parse`
|
|
12
|
+
* method that takes in request query parameters and returns an object containing the MongoDB
|
|
13
|
+
* query, sort options, pagination skip/limit, and page number. Designed to be used in API
|
|
14
|
+
* controllers to handle complex querying needs from the frontend.
|
|
15
|
+
* @memberof DataQuery
|
|
16
|
+
*/
|
|
17
|
+
class DataQuery {
|
|
9
18
|
/**
|
|
10
19
|
* Parse request query parameters into Mongoose query options
|
|
11
20
|
* @param {Object} params - The request query parameters (req.query)
|
|
@@ -20,7 +29,7 @@ export const DataQuery = {
|
|
|
20
29
|
* @memberof DataQuery
|
|
21
30
|
* @returns {Object} { query, sort, skip, limit, page }
|
|
22
31
|
*/
|
|
23
|
-
parse
|
|
32
|
+
static parse(params = {}) {
|
|
24
33
|
let { filterModel, sortModel, page, limit, sort: sortParam, asc, order, query: defaultQuery } = params;
|
|
25
34
|
|
|
26
35
|
// === 1. Pagination ===
|
|
@@ -35,7 +44,7 @@ export const DataQuery = {
|
|
|
35
44
|
const query = DataQuery._parseFilter(filterModel, defaultQuery);
|
|
36
45
|
|
|
37
46
|
return { query, sort, skip, limit, page };
|
|
38
|
-
}
|
|
47
|
+
}
|
|
39
48
|
|
|
40
49
|
/**
|
|
41
50
|
* Parse sort parameters from AG Grid sortModel or simple sort params
|
|
@@ -47,7 +56,7 @@ export const DataQuery = {
|
|
|
47
56
|
* @return {Object} sort object for Mongoose
|
|
48
57
|
* @memberof DataQuery
|
|
49
58
|
*/
|
|
50
|
-
_parseSort
|
|
59
|
+
static _parseSort(sortModel, sortParam, asc, order) {
|
|
51
60
|
const sort = {};
|
|
52
61
|
|
|
53
62
|
// Parse sortModel from string if needed
|
|
@@ -90,7 +99,7 @@ export const DataQuery = {
|
|
|
90
99
|
}
|
|
91
100
|
|
|
92
101
|
return sort;
|
|
93
|
-
}
|
|
102
|
+
}
|
|
94
103
|
|
|
95
104
|
/**
|
|
96
105
|
* Parse filter parameters from AG Grid filterModel
|
|
@@ -100,7 +109,7 @@ export const DataQuery = {
|
|
|
100
109
|
* @return {Object} query object for Mongoose
|
|
101
110
|
* @memberof DataQuery
|
|
102
111
|
*/
|
|
103
|
-
_parseFilter
|
|
112
|
+
static _parseFilter(filterModel, defaultQuery) {
|
|
104
113
|
let query = defaultQuery ? { ...defaultQuery } : {};
|
|
105
114
|
|
|
106
115
|
// Parse filterModel from string if needed
|
|
@@ -127,7 +136,7 @@ export const DataQuery = {
|
|
|
127
136
|
});
|
|
128
137
|
|
|
129
138
|
return query;
|
|
130
|
-
}
|
|
139
|
+
}
|
|
131
140
|
|
|
132
141
|
/**
|
|
133
142
|
* Parse a single field filter
|
|
@@ -137,7 +146,7 @@ export const DataQuery = {
|
|
|
137
146
|
* @return {Object|null} query condition for the field or null if invalid
|
|
138
147
|
* @memberof DataQuery
|
|
139
148
|
*/
|
|
140
|
-
_parseFieldFilter
|
|
149
|
+
static _parseFieldFilter(field, filter) {
|
|
141
150
|
if (!filter || !filter.filterType) {
|
|
142
151
|
return null;
|
|
143
152
|
}
|
|
@@ -158,7 +167,7 @@ export const DataQuery = {
|
|
|
158
167
|
default:
|
|
159
168
|
return null;
|
|
160
169
|
}
|
|
161
|
-
}
|
|
170
|
+
}
|
|
162
171
|
|
|
163
172
|
/**
|
|
164
173
|
* Parse text filter
|
|
@@ -168,7 +177,7 @@ export const DataQuery = {
|
|
|
168
177
|
* @return {Object|null} query condition for the text field or null if invalid
|
|
169
178
|
* @memberof DataQuery
|
|
170
179
|
*/
|
|
171
|
-
_parseTextFilter
|
|
180
|
+
static _parseTextFilter(field, filter) {
|
|
172
181
|
const { type, filter: filterValue } = filter;
|
|
173
182
|
|
|
174
183
|
if (filterValue === null || filterValue === undefined || filterValue === '') {
|
|
@@ -219,7 +228,7 @@ export const DataQuery = {
|
|
|
219
228
|
}
|
|
220
229
|
|
|
221
230
|
return query;
|
|
222
|
-
}
|
|
231
|
+
}
|
|
223
232
|
|
|
224
233
|
/**
|
|
225
234
|
* Parse number filter
|
|
@@ -229,7 +238,7 @@ export const DataQuery = {
|
|
|
229
238
|
* @return {Object|null} query condition for the number field or null if invalid
|
|
230
239
|
* @memberof DataQuery
|
|
231
240
|
*/
|
|
232
|
-
_parseNumberFilter
|
|
241
|
+
static _parseNumberFilter(field, filter) {
|
|
233
242
|
const { type, filter: filterValue, filterTo } = filter;
|
|
234
243
|
|
|
235
244
|
if (filterValue === null || filterValue === undefined) {
|
|
@@ -281,7 +290,7 @@ export const DataQuery = {
|
|
|
281
290
|
}
|
|
282
291
|
|
|
283
292
|
return query;
|
|
284
|
-
}
|
|
293
|
+
}
|
|
285
294
|
|
|
286
295
|
/**
|
|
287
296
|
* Parse date filter
|
|
@@ -291,7 +300,7 @@ export const DataQuery = {
|
|
|
291
300
|
* @return {Object|null} query condition for the date field or null if invalid
|
|
292
301
|
* @memberof DataQuery
|
|
293
302
|
*/
|
|
294
|
-
_parseDateFilter
|
|
303
|
+
static _parseDateFilter(field, filter) {
|
|
295
304
|
const { type, dateFrom, dateTo } = filter;
|
|
296
305
|
|
|
297
306
|
// Handle blank/notBlank without dates
|
|
@@ -391,7 +400,7 @@ export const DataQuery = {
|
|
|
391
400
|
}
|
|
392
401
|
|
|
393
402
|
return query;
|
|
394
|
-
}
|
|
403
|
+
}
|
|
395
404
|
|
|
396
405
|
/**
|
|
397
406
|
* Parse set filter
|
|
@@ -401,7 +410,7 @@ export const DataQuery = {
|
|
|
401
410
|
* @return {Object|null} query condition for the set field or null if invalid
|
|
402
411
|
* @memberof DataQuery
|
|
403
412
|
*/
|
|
404
|
-
_parseSetFilter
|
|
413
|
+
static _parseSetFilter(field, filter) {
|
|
405
414
|
const { values } = filter;
|
|
406
415
|
|
|
407
416
|
if (!Array.isArray(values) || values.length === 0) {
|
|
@@ -409,7 +418,7 @@ export const DataQuery = {
|
|
|
409
418
|
}
|
|
410
419
|
|
|
411
420
|
return { [field]: { $in: values } };
|
|
412
|
-
}
|
|
421
|
+
}
|
|
413
422
|
|
|
414
423
|
/**
|
|
415
424
|
* Parse multi filter (combines multiple filters with AND/OR)
|
|
@@ -419,7 +428,7 @@ export const DataQuery = {
|
|
|
419
428
|
* @return {Object|null} query condition for the multi filter or null if invalid
|
|
420
429
|
* @memberof DataQuery
|
|
421
430
|
*/
|
|
422
|
-
_parseMultiFilter
|
|
431
|
+
static _parseMultiFilter(field, filter) {
|
|
423
432
|
const { filterModels, operator } = filter;
|
|
424
433
|
|
|
425
434
|
if (!Array.isArray(filterModels) || filterModels.length === 0) {
|
|
@@ -445,5 +454,8 @@ export const DataQuery = {
|
|
|
445
454
|
// AND operator (default)
|
|
446
455
|
return { $and: conditions };
|
|
447
456
|
}
|
|
448
|
-
}
|
|
449
|
-
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
export { DataQuery };
|
|
461
|
+
export default DataQuery;
|
package/src/server/dns.js
CHANGED
|
@@ -101,6 +101,22 @@ class Dns {
|
|
|
101
101
|
return ipv4.address;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Gets the MAC address of the main (default route) network interface.
|
|
106
|
+
* @static
|
|
107
|
+
* @memberof UnderpostDns
|
|
108
|
+
* @returns {string|null} The MAC address, or null if not found.
|
|
109
|
+
*/
|
|
110
|
+
static getMainInterfaceMac() {
|
|
111
|
+
const interfaceName = Dns.getDefaultNetworkInterface();
|
|
112
|
+
const networkInfo = os.networkInterfaces()[interfaceName];
|
|
113
|
+
if (!networkInfo || networkInfo.length === 0) {
|
|
114
|
+
logger.error(`Could not find network interface: ${interfaceName}`);
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return networkInfo[0].mac;
|
|
118
|
+
}
|
|
119
|
+
|
|
104
120
|
/**
|
|
105
121
|
* Setup nftables tables and chains if they don't exist.
|
|
106
122
|
* @static
|
|
@@ -491,6 +507,12 @@ class Dns {
|
|
|
491
507
|
});
|
|
492
508
|
}
|
|
493
509
|
|
|
510
|
+
if (options.mac) {
|
|
511
|
+
const mac = Dns.getMainInterfaceMac();
|
|
512
|
+
console.log(mac);
|
|
513
|
+
return mac;
|
|
514
|
+
}
|
|
515
|
+
|
|
494
516
|
let ip;
|
|
495
517
|
if (options.dhcp) ip = Dns.getLocalIPv4Address();
|
|
496
518
|
else ip = await Dns.getPublicIp();
|