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.
Files changed (144) hide show
  1. package/.github/workflows/release.cd.yml +1 -2
  2. package/CHANGELOG.md +351 -1
  3. package/CLI-HELP.md +40 -13
  4. package/Dockerfile +0 -4
  5. package/README.md +4 -4
  6. package/bin/build.js +14 -5
  7. package/bin/deploy.js +570 -1
  8. package/bin/file.js +6 -0
  9. package/conf.js +11 -2
  10. package/jsconfig.json +1 -1
  11. package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +2 -2
  12. package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +2 -2
  13. package/manifests/deployment/dd-default-development/deployment.yaml +2 -6
  14. package/manifests/deployment/dd-test-development/deployment.yaml +136 -66
  15. package/manifests/deployment/dd-test-development/proxy.yaml +41 -5
  16. package/package.json +24 -15
  17. package/scripts/k3s-node-setup.sh +2 -2
  18. package/scripts/nat-iptables.sh +103 -18
  19. package/src/api/core/core.controller.js +10 -10
  20. package/src/api/core/core.service.js +10 -10
  21. package/src/api/default/default.controller.js +10 -10
  22. package/src/api/default/default.service.js +10 -10
  23. package/src/api/document/document.controller.js +12 -12
  24. package/src/api/document/document.model.js +10 -16
  25. package/src/api/file/file.controller.js +8 -8
  26. package/src/api/file/file.model.js +10 -10
  27. package/src/api/file/file.service.js +36 -36
  28. package/src/api/test/test.controller.js +8 -8
  29. package/src/api/test/test.service.js +8 -8
  30. package/src/api/user/guest.service.js +99 -0
  31. package/src/api/user/user.controller.js +6 -6
  32. package/src/api/user/user.model.js +8 -13
  33. package/src/api/user/user.service.js +3 -20
  34. package/src/cli/cluster.js +61 -14
  35. package/src/cli/db.js +47 -2
  36. package/src/cli/deploy.js +67 -35
  37. package/src/cli/fs.js +79 -8
  38. package/src/cli/image.js +43 -1
  39. package/src/cli/index.js +26 -1
  40. package/src/cli/release.js +57 -1
  41. package/src/cli/repository.js +69 -31
  42. package/src/cli/run.js +415 -36
  43. package/src/cli/ssh.js +1 -1
  44. package/src/cli/static.js +43 -115
  45. package/src/client/Default.index.js +21 -33
  46. package/src/client/components/core/404.js +4 -4
  47. package/src/client/components/core/500.js +4 -4
  48. package/src/client/components/core/Account.js +73 -60
  49. package/src/client/components/core/AgGrid.js +23 -33
  50. package/src/client/components/core/Alert.js +12 -13
  51. package/src/client/components/core/AppStore.js +1 -1
  52. package/src/client/components/core/Auth.js +35 -37
  53. package/src/client/components/core/Badge.js +7 -13
  54. package/src/client/components/core/BtnIcon.js +15 -17
  55. package/src/client/components/core/CalendarCore.js +42 -63
  56. package/src/client/components/core/Chat.js +13 -15
  57. package/src/client/components/core/ClientEvents.js +87 -0
  58. package/src/client/components/core/ColorPaletteElement.js +309 -0
  59. package/src/client/components/core/Content.js +17 -14
  60. package/src/client/components/core/Css.js +15 -71
  61. package/src/client/components/core/CssCore.js +12 -16
  62. package/src/client/components/core/D3Chart.js +4 -4
  63. package/src/client/components/core/Docs.js +64 -91
  64. package/src/client/components/core/DropDown.js +69 -91
  65. package/src/client/components/core/EventBus.js +92 -0
  66. package/src/client/components/core/EventsUI.js +14 -17
  67. package/src/client/components/core/FileExplorer.js +96 -228
  68. package/src/client/components/core/FullScreen.js +47 -75
  69. package/src/client/components/core/Input.js +24 -69
  70. package/src/client/components/core/Keyboard.js +25 -18
  71. package/src/client/components/core/KeyboardAvoidance.js +145 -0
  72. package/src/client/components/core/LoadingAnimation.js +25 -31
  73. package/src/client/components/core/LogIn.js +41 -41
  74. package/src/client/components/core/LogOut.js +23 -14
  75. package/src/client/components/core/Modal.js +462 -178
  76. package/src/client/components/core/NotificationManager.js +14 -18
  77. package/src/client/components/core/Panel.js +54 -50
  78. package/src/client/components/core/PanelForm.js +25 -125
  79. package/src/client/components/core/Polyhedron.js +110 -214
  80. package/src/client/components/core/PublicProfile.js +39 -32
  81. package/src/client/components/core/Recover.js +48 -44
  82. package/src/client/components/core/Responsive.js +88 -32
  83. package/src/client/components/core/RichText.js +9 -18
  84. package/src/client/components/core/Router.js +24 -3
  85. package/src/client/components/core/SearchBox.js +37 -37
  86. package/src/client/components/core/SignUp.js +39 -30
  87. package/src/client/components/core/SocketIo.js +31 -2
  88. package/src/client/components/core/SocketIoHandler.js +6 -6
  89. package/src/client/components/core/ToggleSwitch.js +8 -20
  90. package/src/client/components/core/ToolTip.js +5 -17
  91. package/src/client/components/core/Translate.js +56 -59
  92. package/src/client/components/core/Validator.js +26 -16
  93. package/src/client/components/core/Wallet.js +15 -26
  94. package/src/client/components/core/Worker.js +163 -27
  95. package/src/client/components/core/windowGetDimensions.js +7 -7
  96. package/src/client/components/default/{MenuDefault.js → AppShellDefault.js} +87 -87
  97. package/src/client/components/default/CssDefault.js +12 -12
  98. package/src/client/components/default/LogInDefault.js +6 -4
  99. package/src/client/components/default/LogOutDefault.js +6 -4
  100. package/src/client/components/default/RouterDefault.js +47 -0
  101. package/src/client/components/default/SettingsDefault.js +4 -4
  102. package/src/client/components/default/SignUpDefault.js +6 -4
  103. package/src/client/components/default/TranslateDefault.js +3 -3
  104. package/src/client/services/core/core.service.js +17 -49
  105. package/src/client/services/default/default.management.js +159 -267
  106. package/src/client/services/default/default.service.js +10 -16
  107. package/src/client/services/document/document.service.js +14 -19
  108. package/src/client/services/file/file.service.js +8 -13
  109. package/src/client/services/test/test.service.js +8 -13
  110. package/src/client/services/user/guest.service.js +86 -0
  111. package/src/client/services/user/user.management.js +5 -5
  112. package/src/client/services/user/user.service.js +14 -20
  113. package/src/client/ssr/body/404.js +3 -3
  114. package/src/client/ssr/body/500.js +3 -3
  115. package/src/client/ssr/body/CacheControl.js +5 -2
  116. package/src/client/ssr/body/DefaultSplashScreen.js +19 -12
  117. package/src/client/ssr/mailer/DefaultRecoverEmail.js +19 -20
  118. package/src/client/ssr/mailer/DefaultVerifyEmail.js +15 -16
  119. package/src/client/ssr/offline/Maintenance.js +12 -11
  120. package/src/client/ssr/offline/NoNetworkConnection.js +3 -3
  121. package/src/client/ssr/pages/Test.js +2 -2
  122. package/src/client/sw/core.sw.js +212 -0
  123. package/src/index.js +1 -1
  124. package/src/runtime/express/Dockerfile +4 -4
  125. package/src/runtime/lampp/Dockerfile +8 -7
  126. package/src/runtime/wp/Dockerfile +11 -17
  127. package/src/server/client-build-docs.js +45 -46
  128. package/src/server/client-build.js +334 -60
  129. package/src/server/client-formatted.js +47 -16
  130. package/src/server/conf.js +5 -4
  131. package/src/server/data-query.js +32 -20
  132. package/src/server/dns.js +22 -0
  133. package/src/server/ipfs-client.js +232 -91
  134. package/src/server/process.js +13 -27
  135. package/src/server/start.js +17 -3
  136. package/src/server/valkey.js +141 -235
  137. package/tsconfig.docs.json +15 -0
  138. package/typedoc.json +29 -0
  139. package/jsdoc.json +0 -52
  140. package/src/client/components/core/ColorPalette.js +0 -5267
  141. package/src/client/components/core/JoyStick.js +0 -80
  142. package/src/client/components/default/RoutesDefault.js +0 -49
  143. package/src/client/sw/default.sw.js +0 -127
  144. package/src/client/sw/template.sw.js +0 -84
@@ -5,7 +5,16 @@
5
5
  * @namespace DataQuery
6
6
  */
7
7
 
8
- export const DataQuery = {
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: (params = {}) => {
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: (sortModel, sortParam, asc, order) => {
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: (filterModel, defaultQuery) => {
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: (field, filter) => {
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: (field, filter) => {
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: (field, filter) => {
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: (field, filter) => {
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: (field, filter) => {
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: (field, filter) => {
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();