discos 1.1.5 → 2.0.0

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 (106) hide show
  1. package/.github/PRIVACY_POLICY.md +3 -1
  2. package/.github/TERMS_OF_SERVICE.md +1 -0
  3. package/README.md +4 -4
  4. package/dist/common.d.ts +64 -40
  5. package/dist/common.d.ts.map +1 -1
  6. package/dist/common.js +95 -43
  7. package/dist/common.js.map +1 -1
  8. package/dist/{config.d.ts → config/config.d.ts} +2 -1
  9. package/dist/config/config.d.ts.map +1 -0
  10. package/dist/{config.js → config/config.js} +1 -0
  11. package/dist/config/config.js.map +1 -0
  12. package/dist/config/validateDb.d.ts +3 -0
  13. package/dist/config/validateDb.d.ts.map +1 -0
  14. package/dist/{tools → config}/validateDb.js +16 -15
  15. package/dist/config/validateDb.js.map +1 -0
  16. package/dist/config/validateDotenv.d.ts.map +1 -0
  17. package/dist/{tools → config}/validateDotenv.js +27 -19
  18. package/dist/config/validateDotenv.js.map +1 -0
  19. package/dist/{tools → exec}/backend.d.ts +4 -3
  20. package/dist/exec/backend.d.ts.map +1 -0
  21. package/dist/exec/backend.js +131 -0
  22. package/dist/exec/backend.js.map +1 -0
  23. package/dist/exec/terminal-manager.d.ts +9 -0
  24. package/dist/exec/terminal-manager.d.ts.map +1 -0
  25. package/dist/exec/terminal-manager.js +113 -0
  26. package/dist/exec/terminal-manager.js.map +1 -0
  27. package/dist/exec/username.d.ts +4 -0
  28. package/dist/exec/username.d.ts.map +1 -0
  29. package/dist/exec/username.js +25 -0
  30. package/dist/exec/username.js.map +1 -0
  31. package/dist/interfaces/queues.d.ts.map +1 -0
  32. package/dist/{types → interfaces}/queues.js.map +1 -1
  33. package/dist/logging/logger.d.ts +4 -0
  34. package/dist/logging/logger.d.ts.map +1 -0
  35. package/dist/logging/logger.js +22 -0
  36. package/dist/logging/logger.js.map +1 -0
  37. package/dist/models/user.d.ts +14 -0
  38. package/dist/models/user.d.ts.map +1 -0
  39. package/dist/models/user.js +59 -0
  40. package/dist/models/user.js.map +1 -0
  41. package/dist/modules/admin.d.ts +1 -1
  42. package/dist/modules/admin.d.ts.map +1 -1
  43. package/dist/modules/admin.js +56 -31
  44. package/dist/modules/admin.js.map +1 -1
  45. package/dist/modules/clear.d.ts.map +1 -1
  46. package/dist/modules/clear.js +7 -8
  47. package/dist/modules/clear.js.map +1 -1
  48. package/dist/modules/command.d.ts +1 -1
  49. package/dist/modules/command.d.ts.map +1 -1
  50. package/dist/modules/command.js +5 -5
  51. package/dist/modules/command.js.map +1 -1
  52. package/dist/modules/debug.d.ts +1 -1
  53. package/dist/modules/debug.d.ts.map +1 -1
  54. package/dist/modules/debug.js +3 -2
  55. package/dist/modules/debug.js.map +1 -1
  56. package/dist/modules/file.d.ts +3 -2
  57. package/dist/modules/file.d.ts.map +1 -1
  58. package/dist/modules/file.js +36 -13
  59. package/dist/modules/file.js.map +1 -1
  60. package/dist/modules/watch.d.ts +1 -1
  61. package/dist/modules/watch.d.ts.map +1 -1
  62. package/dist/modules/watch.js +4 -3
  63. package/dist/modules/watch.js.map +1 -1
  64. package/dist/security/ipcServer.d.ts +4 -0
  65. package/dist/security/ipcServer.d.ts.map +1 -0
  66. package/dist/{tools → security}/ipcServer.js +6 -5
  67. package/dist/security/ipcServer.js.map +1 -0
  68. package/dist/{tools → security}/queue-utils.d.ts +2 -1
  69. package/dist/security/queue-utils.d.ts.map +1 -0
  70. package/dist/{tools → security}/queue-utils.js +4 -1
  71. package/dist/security/queue-utils.js.map +1 -0
  72. package/dist/shared/consts.d.ts +7 -0
  73. package/dist/shared/consts.d.ts.map +1 -1
  74. package/dist/shared/consts.js +8 -1
  75. package/dist/shared/consts.js.map +1 -1
  76. package/dist/shared/interfaces.d.ts +1 -0
  77. package/dist/shared/interfaces.d.ts.map +1 -1
  78. package/dist/shared/types.d.ts.map +1 -1
  79. package/dist/slash-commands.d.ts.map +1 -1
  80. package/dist/slash-commands.js +14 -7
  81. package/dist/slash-commands.js.map +1 -1
  82. package/dist/startup.d.ts +1 -1
  83. package/dist/startup.d.ts.map +1 -1
  84. package/dist/startup.js +51 -31
  85. package/dist/startup.js.map +1 -1
  86. package/package.json +18 -15
  87. package/setup/install.sh +13 -43
  88. package/dist/config.d.ts.map +0 -1
  89. package/dist/config.js.map +0 -1
  90. package/dist/tools/backend.d.ts.map +0 -1
  91. package/dist/tools/backend.js +0 -161
  92. package/dist/tools/backend.js.map +0 -1
  93. package/dist/tools/ipcServer.d.ts +0 -4
  94. package/dist/tools/ipcServer.d.ts.map +0 -1
  95. package/dist/tools/ipcServer.js.map +0 -1
  96. package/dist/tools/queue-utils.d.ts.map +0 -1
  97. package/dist/tools/queue-utils.js.map +0 -1
  98. package/dist/tools/validateDb.d.ts +0 -3
  99. package/dist/tools/validateDb.d.ts.map +0 -1
  100. package/dist/tools/validateDb.js.map +0 -1
  101. package/dist/tools/validateDotenv.d.ts.map +0 -1
  102. package/dist/tools/validateDotenv.js.map +0 -1
  103. package/dist/types/queues.d.ts.map +0 -1
  104. /package/dist/{tools → config}/validateDotenv.d.ts +0 -0
  105. /package/dist/{types → interfaces}/queues.d.ts +0 -0
  106. /package/dist/{types → interfaces}/queues.js +0 -0
package/dist/startup.js CHANGED
@@ -1,22 +1,28 @@
1
1
  import { Client, GatewayIntentBits, Events } from 'discord.js';
2
- import { validateDotenv } from './tools/validateDotenv.js';
3
- import { validateDb } from './tools/validateDb.js';
4
- import { startIPCServer } from './tools/ipcServer.js';
5
- import * as queueUtils from './tools/queue-utils.js';
6
- import { ping } from './tools/backend.js';
7
- import { Config } from './config.js';
2
+ import { validateDotenv } from './config/validateDotenv.js';
3
+ import { validateDb } from './config/validateDb.js';
4
+ import { Config } from './config/config.js';
5
+ import { startIPCServer } from './security/ipcServer.js';
6
+ import * as queueUtils from './security/queue-utils.js';
7
+ import { ping } from './exec/backend.js';
8
+ import { discordUsername } from './exec/username.js';
9
+ import { destroyTerminalForUser, initTerminalsFromConfig } from './exec/terminal-manager.js';
10
+ import logger from './logging/logger.js';
8
11
  import * as COMMON from './common.js';
9
12
  import { registerSlashCommands } from './slash-commands.js';
10
13
  import { execCommand } from './modules/command.js';
11
14
  import { clearHistory } from './modules/clear.js';
12
- import { read, write, absPath, pathAutocomplete } from './modules/file.js';
15
+ import { read, write, absPath, pathAutocomplete, cwdPath } from './modules/file.js';
13
16
  import { watch } from './modules/watch.js';
14
17
  import { debug } from './modules/debug.js';
15
18
  import { handleAdmin, localUserAutocomplete } from './modules/admin.js';
16
- import { fileURLToPath } from 'url';
17
- export function startDiscOS() {
19
+ import { fileURLToPath } from 'node:url';
20
+ import dns from 'node:dns';
21
+ dns.setDefaultResultOrder('ipv4first');
22
+ dns.setServers(['1.1.1.1', '8.8.8.8', '1.0.0.1', '8.8.4.4']);
23
+ export async function startDiscOS() {
18
24
  if (process.platform !== 'linux') {
19
- console.error(COMMON.PLATFORM_ERR);
25
+ logger.error(COMMON.PLATFORM_ERR);
20
26
  process.exit(1);
21
27
  }
22
28
  if (!validateDotenv()) {
@@ -26,21 +32,22 @@ export function startDiscOS() {
26
32
  validationQueue: [],
27
33
  duplicateQueue: [],
28
34
  };
29
- if (!validateDb(queues)) {
35
+ if (!validateDb(queues))
30
36
  process.exit(1);
31
- }
37
+ if (Config.standalone)
38
+ await initTerminalsFromConfig(queues);
39
+ if (process.env.PTY_TEST_MODE)
40
+ logger.warn(COMMON.PTY_TEST_MODE_WARN);
32
41
  Config.ipcServer = Config.standalone ? null : startIPCServer(queues);
33
42
  const client = new Client({
34
43
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent],
35
44
  });
36
- if (!Config.standalone) {
45
+ if (!Config.standalone)
37
46
  void ping();
38
- }
39
47
  client.on(Events.InteractionCreate, async (interaction) => {
40
48
  if (interaction.isAutocomplete()) {
41
49
  const subcommand = interaction.options.getSubcommand();
42
- if ((interaction.commandName === COMMON.DCOS || interaction.commandName === COMMON.ADMOS) &&
43
- (subcommand === COMMON.READ || subcommand === COMMON.WRITE)) {
50
+ if (interaction.commandName === COMMON.DCOS && (subcommand === COMMON.READ || subcommand === COMMON.WRITE)) {
44
51
  return pathAutocomplete(interaction, queues);
45
52
  }
46
53
  else if ((interaction.commandName === COMMON.DCOS || interaction.commandName === COMMON.ADMOS) && subcommand === COMMON.USER_MGMT) {
@@ -63,15 +70,17 @@ export function startDiscOS() {
63
70
  await interaction.reply({ content: COMMON.USER_ERR, flags: 64 });
64
71
  return;
65
72
  }
73
+ if (queueUtils.countUserCommandsInQueue(queues.duplicateQueue, interaction.user.id) >= Config.userRateLimit) {
74
+ await interaction.reply({ content: COMMON.USER_RATE_LIMIT, flags: 64 });
75
+ return;
76
+ }
66
77
  if (queues.duplicateQueue.length >= Number(Config.cmdQueueMaxSize)) {
67
78
  await interaction.reply({ content: COMMON.DISCOS_OVERLOADED, flags: 64 });
68
79
  return;
69
80
  }
70
81
  const subcommand = interaction.options.getSubcommand();
71
82
  const userId = interaction.user.id;
72
- const username = interaction.member && 'nickname' in interaction.member
73
- ? (interaction.member.nickname ?? interaction.user.username)
74
- : (interaction.user.displayName ?? interaction.user.username);
83
+ const username = discordUsername(interaction);
75
84
  const isAdminUser = Config.adminUsers.includes(userId);
76
85
  if (Config.lockdown && !isAdminUser) {
77
86
  await interaction.reply({ content: COMMON.LOCKDOWN_ERR, flags: 64 });
@@ -79,10 +88,7 @@ export function startDiscOS() {
79
88
  }
80
89
  if (interaction.commandName === COMMON.ADMOS) {
81
90
  if (!isAdminUser) {
82
- await interaction.reply({
83
- content: COMMON.DISCOS_NON_ADMIN,
84
- flags: 64,
85
- });
91
+ await interaction.reply({ content: COMMON.DISCOS_NON_ADMIN, flags: 64 });
86
92
  return;
87
93
  }
88
94
  await handleAdmin(interaction, subcommand, username, queues, client);
@@ -98,7 +104,7 @@ export function startDiscOS() {
98
104
  let sendSuccessMsg = COMMON.DEFAULT_DEBUG_VERBOSE;
99
105
  switch (subcommand) {
100
106
  case COMMON.EXEC: {
101
- const linuxCmd = interaction.options.getString(COMMON.CMD, true)?.trim() || COMMON.FALLBACK_CMD;
107
+ const linuxCmd = interaction.options.getString(COMMON.CMD, false)?.trim() || '';
102
108
  queuedCmd = linuxCmd;
103
109
  break;
104
110
  }
@@ -115,7 +121,7 @@ export function startDiscOS() {
115
121
  }
116
122
  case COMMON.WRITE: {
117
123
  file = interaction.options.getAttachment(COMMON.FILE, true);
118
- path = await absPath(interaction.options.getString(COMMON.PATH, false) ?? file.name, userId, queues);
124
+ path = await absPath(file.name, interaction.options.getString(COMMON.PATH, false) ?? (await cwdPath(file.name, userId, queues)), userId, queues);
119
125
  queuedCmd = `dcos write to ${path}`;
120
126
  break;
121
127
  }
@@ -123,23 +129,26 @@ export function startDiscOS() {
123
129
  path = interaction.options.getString(COMMON.TARGET, true);
124
130
  interval = interaction.options.getInteger(COMMON.INTERVAL, false) ?? interval;
125
131
  repeat = interaction.options.getInteger(COMMON.REPEAT, false) ?? repeat;
126
- queuedCmd = `dcos watch ${path} ${userId}`;
132
+ queuedCmd = `dcos watch ${userId}`;
127
133
  break;
128
134
  }
129
135
  case COMMON.DEBUG: {
130
136
  queuedCmd = 'dcos debug';
131
137
  break;
132
138
  }
139
+ case COMMON.RESET: {
140
+ queuedCmd = 'dcos reset';
141
+ break;
142
+ }
133
143
  case COMMON.HELP: {
134
144
  queuedCmd = 'dcos help';
135
145
  break;
136
146
  }
137
147
  }
138
- if (await queueUtils.handleDuplicate(interaction, username, queues.duplicateQueue, { user: userId, cmd: queuedCmd })) {
148
+ const payload = { user: userId, username: discordUsername(interaction), cmd: queuedCmd };
149
+ if (await queueUtils.handleDuplicate(interaction, username, queues.duplicateQueue, payload))
139
150
  return;
140
- }
141
151
  await interaction.deferReply({ flags: hideReply ? 64 : undefined });
142
- const payload = { user: userId, cmd: queuedCmd };
143
152
  queueUtils.addToAll(queues, payload);
144
153
  try {
145
154
  switch (subcommand) {
@@ -167,6 +176,11 @@ export function startDiscOS() {
167
176
  await debug(interaction, username, userId, queues, client);
168
177
  break;
169
178
  }
179
+ case COMMON.RESET: {
180
+ destroyTerminalForUser(interaction.user.id);
181
+ await interaction.editReply({ content: COMMON.PTY_RESET_SUCCESS });
182
+ break;
183
+ }
170
184
  case COMMON.HELP: {
171
185
  await interaction.editReply({ content: COMMON.HELP_USER });
172
186
  break;
@@ -181,12 +195,18 @@ export function startDiscOS() {
181
195
  }
182
196
  });
183
197
  void client.login(process.env.BOT_TOKEN).catch((err) => {
184
- console.error(COMMON.DISCOS_CONN_FAIL, err);
198
+ logger.error(COMMON.DISCOS_CONN_FAIL, err);
185
199
  process.exit(1);
186
200
  });
201
+ client.on(Events.Error, (err) => {
202
+ logger.error(COMMON.DISCOS_CLIENT_ERR, err);
203
+ });
187
204
  }
188
205
  if (process.argv[1] === fileURLToPath(import.meta.url)) {
189
206
  registerSlashCommands();
190
- startDiscOS();
207
+ startDiscOS().catch(() => {
208
+ logger.error(COMMON.DISCOS_STARTUP_ERR);
209
+ process.exit(1);
210
+ });
191
211
  }
192
212
  //# sourceMappingURL=startup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discos",
3
- "version": "1.1.5",
3
+ "version": "2.0.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -19,7 +19,7 @@
19
19
  "pack": "rm -rf dist && rm -f tsconfig.tsbuildinfo && npm run build && npm pack",
20
20
  "format": "prettier --write \"**/*.{ts,json,md}\" --log-level silent",
21
21
  "lint": "eslint . --ext .ts --cache",
22
- "postinstall": "node -e \"if (process.env.NODE_ENV !== 'production') require('child_process').execSync('git config core.hooksPath .husky')\"",
22
+ "safe": "git config core.hooksPath .husky",
23
23
  "unsafe": "git config --unset core.hooksPath",
24
24
  "test": "echo \"No tests specified.\" && exit 0"
25
25
  },
@@ -54,26 +54,29 @@
54
54
  "node": ">=20.0.0"
55
55
  },
56
56
  "dependencies": {
57
- "axios": "^1.11.0",
58
- "discord.js": "^14.22.1",
59
- "dotenv": "^17.2.1",
60
- "file-type": "^21.0.0",
61
- "shell-escape": "^0.2.0"
57
+ "axios": "^1.13.2",
58
+ "discord.js": "^14.25.1",
59
+ "dotenv": "^17.2.3",
60
+ "file-type": "^21.1.1",
61
+ "node-pty": "^1.1.0-beta43",
62
+ "shell-escape": "^0.2.0",
63
+ "strip-ansi": "^7.1.2",
64
+ "winston": "^3.19.0"
62
65
  },
63
66
  "devDependencies": {
64
- "@eslint/js": "^9.33.0",
65
- "@types/node": "^24.3.0",
67
+ "@eslint/js": "^9.39.2",
68
+ "@types/node": "^25.0.3",
66
69
  "@types/shell-escape": "^0.2.3",
67
- "eslint": "^9.33.0",
70
+ "eslint": "^9.39.2",
68
71
  "eslint-config-prettier": "^10.1.8",
69
72
  "eslint-plugin-node": "^11.1.0",
70
- "eslint-plugin-prettier": "^5.5.3",
73
+ "eslint-plugin-prettier": "^5.5.4",
71
74
  "husky": "^9.1.7",
72
- "jiti": "^2.5.1",
73
- "prettier": "^3.6.2",
75
+ "jiti": "^2.6.1",
76
+ "prettier": "^3.7.4",
74
77
  "ts-node": "^10.9.2",
75
- "typescript": "^5.8.3",
76
- "typescript-eslint": "^8.41.0"
78
+ "typescript": "^5.9.3",
79
+ "typescript-eslint": "^8.50.0"
77
80
  },
78
81
  "files": [
79
82
  "dist",
package/setup/install.sh CHANGED
@@ -69,9 +69,9 @@ echo -e "\nInstalling dependencies..."
69
69
  # Install deps for this script
70
70
  need sed
71
71
  need awk
72
- need grep
72
+ need grep # DiscOS deps as well
73
73
  need git
74
- need curl
74
+ need curl # DiscOS deps as well
75
75
  need tee
76
76
  need tail
77
77
 
@@ -81,7 +81,6 @@ need base64
81
81
  need dos2unix
82
82
  need realpath
83
83
  need head
84
- need grep # installed as script deps as well
85
84
 
86
85
  echo -e "All dependencies installed."
87
86
 
@@ -166,6 +165,10 @@ setup_db() {
166
165
  read -rp "Enter the local username that you want to use as the given Discord user: " LOCAL_USERNAME
167
166
  read -rp "Enter a single channel ID which DiscOS has already joined: " CHANNEL_ID
168
167
 
168
+ # Disable standalone mode by default for Docker releases
169
+ echo -e "\nIf you plan to run DiscOS in a Docker container in EB mode, modify the DB, so that the container is started in standalone mode!"
170
+ echo "Otherwise, if the prevoiusly set local user does not exist, DiscOS will fail to start."
171
+
169
172
  DB="$TEMP_DIR/setup/db.json"
170
173
 
171
174
  sed -i "s/DC_UID/$DISCORD_UID/g" "$DB"
@@ -255,7 +258,7 @@ setup_node_updater() {
255
258
  setup_compose() {
256
259
  echo -e "\nSetting up compose file...\n"
257
260
 
258
- echo "The latest DiscOS image will be used. Feel free to pin to a specific version if you want manual updates."
261
+ echo "The latest DiscOS image will be used. In case of an update, be sure to manually pull the new image."
259
262
 
260
263
  read -rp "Container name (default DiscOS): " CONTAINER_NAME
261
264
  sed -i "s/SERVICE_NAME/${CONTAINER_NAME:-DiscOS}/g" "$COMPOSE_FILE"
@@ -271,41 +274,13 @@ setup_compose() {
271
274
  }
272
275
 
273
276
 
274
- ############### cmdex setup ###############
275
-
276
- setup_cmdex() {
277
- echo -e "\nSetting up command executor..."
278
-
279
- echo -e "\nYou can specify one user that is allowed to use command executor. This is the user as which your external backend (if used) or parent process (if npm install) will run."
280
- read -rp "Enter the local username (default: root): " CMD_USER
281
- CMD_USER=${CMD_USER:-root}
282
- echo
283
-
284
- cp "$TEMP_DIR/src/.sh/cmd-executor.sh" "/usr/local/bin/cmdex.sh"
285
- chown discos:"$CMD_USER" "/usr/local/bin/cmdex.sh" || chown discos:discos "/usr/local/bin/cmdex.sh" || chown root:root "/usr/local/bin/cmdex.sh"
286
- chmod 770 "/usr/local/bin/cmdex.sh"
287
- ln -s "/usr/local/bin/cmdex.sh" "/usr/local/bin/cmdex" >/dev/null 2>&1 || echo "Symlink for cmdex already exists."
288
-
289
- # Sudoers change
290
- echo "discos ALL=(ALL) NOPASSWD: /usr/local/bin/cmdex.sh, /usr/local/bin/cmdex" | tee /etc/sudoers.d/cmdex >/dev/null
291
- chmod 440 /etc/sudoers.d/cmdex
292
-
293
- if [[ "$CMD_USER" != "root" && $(id -u "$CMD_USER" >/dev/null 2>&1; echo $?) -eq 0 ]]; then
294
- echo "$CMD_USER ALL=(ALL) NOPASSWD: /usr/local/bin/cmdex.sh, /usr/local/bin/cmdex" | tee /etc/sudoers.d/cmdex-user-"$CMD_USER" >/dev/null
295
- chmod 440 /etc/sudoers.d/cmdex-user-"$CMD_USER"
296
- fi
297
-
298
- echo -e "Command executor setup completed."
299
- }
300
-
301
-
302
277
  ############### Systemd release ###############
303
278
  install_systemd() {
304
279
  echo -e "\nStarting Systemd release installation..."
305
280
 
306
281
  if ! id -u discos &>/dev/null; then
307
282
  useradd --system -m -s "$(command -v nologin)" discos
308
- echo "Created system user: discos."
283
+ echo "Created system user: discos. DiscoS will run as root but use this user for storage and Node.js installation."
309
284
  fi
310
285
 
311
286
  DISCOS_HOME=$(getent passwd discos | cut -d: -f6)
@@ -344,8 +319,9 @@ install_systemd() {
344
319
  # DB setup
345
320
  setup_db "write"
346
321
 
347
- # Command executor setup
348
- setup_cmdex
322
+ # Set up ownership and permissions
323
+ chown -R root:discos "$DISCOS_DIR"
324
+ chmod -R 770 "$DISCOS_DIR"
349
325
  else
350
326
  # Stop the service for before the update process
351
327
  systemctl stop discos.service || echo "DiscOS service could not be stopped."
@@ -367,7 +343,7 @@ install_systemd() {
367
343
  cd \"\$TEMP_DIR\" || { echo 'Failed to enter temp download directory.'; exit 1; }
368
344
  echo \"CWD: \$TEMP_DIR\"
369
345
  echo 'Installing dependencies...'
370
- npm ci --silent --ignore-scripts
346
+ npm ci --omit=optional --silent
371
347
  npm run build
372
348
 
373
349
  # Copy dist and install only prod deps
@@ -433,7 +409,7 @@ install_npm() {
433
409
  if [[ "$IN_DOCKER" = "y" || "$IN_DOCKER" = "Y" ]]; then
434
410
  COMPOSE_FILE="$TEMP_DIR/setup/docker-compose.yaml"
435
411
  setup_compose
436
- echo -e "Compose file will be displayed below. Now rewrite it according to your needs but make sure mounts and env var settings are kept.\n"
412
+ echo -e "Compose file will be displayed below. Now, rewrite it according to your needs but make sure mounts and env var settings are kept.\n"
437
413
  cat "$COMPOSE_FILE"
438
414
  echo
439
415
  else
@@ -450,9 +426,6 @@ install_npm() {
450
426
  read -rp "Press any key to continue with database generation. It will only be displayed, copy it where needed."
451
427
  setup_db "disp"
452
428
 
453
- # Command executor setup
454
- setup_cmdex
455
-
456
429
  echo -e "\nnpm release installation process completed."
457
430
  }
458
431
 
@@ -496,9 +469,6 @@ install_docker() {
496
469
  read -rp "Press any key to continue with database generation. It will be located in the compose file dir."
497
470
  setup_db "$COMPOSE_PATH"
498
471
 
499
- # Command executor setup
500
- setup_cmdex
501
-
502
472
  echo -e "\nDocker release installation process completed."
503
473
  }
504
474
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,eAAO,MAAM,MAAM,EAAE;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAgBnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAef;IACF,eAAe,EAAE,CAAC;IAClB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,EAAE;IACb,kBAAkB,EAAE,IAAI;IACxB,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,EAAE;IACd,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;CAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/tools/backend.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGpF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAS7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAgHzD,wBAAsB,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAe3G;AAED,wBAAsB,GAAG,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAgBlF;AAGD,wBAAsB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CA4B5C;AAGD,wBAAsB,6BAA6B,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBtG"}
@@ -1,161 +0,0 @@
1
- import axios from 'axios';
2
- import { Config } from '../config.js';
3
- import { DB_UPDATE } from '../shared/consts.js';
4
- import * as COMMON from '../common.js';
5
- import { ROOT_UID, PING_RESPONSE } from '../shared/consts.js';
6
- const WRITE_OP_SUCCESS = '';
7
- import * as queueUtils from '../tools/queue-utils.js';
8
- import shellEscape from 'shell-escape';
9
- import { exec } from 'child_process';
10
- import { promisify } from 'util';
11
- import { readFile } from 'fs/promises';
12
- const execAsync = promisify(exec);
13
- async function localUser(user) {
14
- if (user === ROOT_UID) {
15
- return 'root';
16
- }
17
- const dbContent = await readFile(Config.databasePath, 'utf-8');
18
- const dbParsed = JSON.parse(dbContent);
19
- const serverUser = dbParsed.users[user];
20
- return shellEscape([serverUser]);
21
- }
22
- function internalAxiosResponse(data, status) {
23
- return {
24
- data: data,
25
- status: status,
26
- statusText: '',
27
- headers: {},
28
- config: {
29
- headers: {},
30
- },
31
- };
32
- }
33
- async function spawnChild(user, command) {
34
- try {
35
- const cmd = shellEscape([command]);
36
- const serverUser = await localUser(user);
37
- const { stdout } = await execAsync(`sudo /usr/local/bin/cmdex ${serverUser} ${cmd}`, {
38
- encoding: 'buffer',
39
- maxBuffer: 1000 * 1000 * Config.fileMaxSize * 1.34,
40
- });
41
- return stdout;
42
- }
43
- catch {
44
- return Buffer.from(COMMON.SPAWN_ERR);
45
- }
46
- }
47
- async function fileWrite(url, path, payload) {
48
- const escapedPath = shellEscape([path]);
49
- const safeUrl = shellEscape([url]);
50
- try {
51
- const { stdout } = await execAsync(`sudo /usr/local/bin/cmdex root whoami`);
52
- if (stdout.trim() !== 'root') {
53
- return COMMON.SPAWN_ERR;
54
- }
55
- }
56
- catch {
57
- return COMMON.SPAWN_ERR;
58
- }
59
- const serverUser = await localUser(payload.user);
60
- const isDirCmd = shellEscape([`[ -d ${escapedPath} ] && echo 1 || echo 0`]);
61
- let { stdout } = await execAsync(`sudo /usr/local/bin/cmdex ${serverUser} ${isDirCmd}`);
62
- if (stdout.trim() === '1') {
63
- return COMMON.DIR_ERR;
64
- }
65
- const testPermissionCmd = shellEscape([`mkdir -p "$(dirname ${escapedPath})" && echo > ${escapedPath} && rm -f ${escapedPath}`]);
66
- ({ stdout } = await execAsync(`sudo /usr/local/bin/cmdex ${serverUser} ${testPermissionCmd}`));
67
- if (stdout.trim() !== '') {
68
- return COMMON.PERM_ERR;
69
- }
70
- const curlCmd = shellEscape([`curl -fsSL ${safeUrl} -o ${escapedPath}`]);
71
- ({ stdout } = await execAsync(`sudo /usr/local/bin/cmdex ${serverUser} ${curlCmd}`));
72
- if (stdout.trim() !== '') {
73
- return COMMON.DOWNLOAD_ERR;
74
- }
75
- const getHomeCmd = shellEscape(['echo $HOME']);
76
- ({ stdout } = await execAsync(`sudo /usr/local/bin/cmdex ${serverUser} ${getHomeCmd}`));
77
- const userHomeDir = stdout.trim();
78
- const permCmd = shellEscape([`cd ${userHomeDir} && chown ${serverUser}:${serverUser} ${escapedPath} && chmod 644 ${escapedPath}`]);
79
- ({ stdout } = await execAsync(`sudo /usr/local/bin/cmdex root ${permCmd}`));
80
- if (stdout.trim() !== '') {
81
- return COMMON.SET_PERM_ERR;
82
- }
83
- return WRITE_OP_SUCCESS;
84
- }
85
- export async function post(payload, b64decode) {
86
- let res;
87
- if (Config.standalone) {
88
- const output = await spawnChild(payload.user, payload.cmd);
89
- res = internalAxiosResponse(b64decode ? Buffer.from(output.toString(), 'base64') : output, 200);
90
- }
91
- else {
92
- res = await axios.post(Config.backend, payload, {
93
- responseType: 'text',
94
- validateStatus: (status) => status <= 500,
95
- });
96
- if (b64decode)
97
- res.data = Buffer.from(res.data, 'base64');
98
- }
99
- return res;
100
- }
101
- export async function put(req) {
102
- let res;
103
- if (Config.standalone) {
104
- const internalResponse = await fileWrite(req.url, req.path, req.payload);
105
- return internalAxiosResponse(internalResponse, internalResponse === WRITE_OP_SUCCESS ? 200 : 500);
106
- }
107
- else {
108
- res = await axios.put(Config.backend, req, {
109
- headers: {
110
- 'Content-Type': 'application/json',
111
- },
112
- validateStatus: (status) => status <= 500,
113
- });
114
- }
115
- return res;
116
- }
117
- export async function ping() {
118
- const controller = new AbortController();
119
- const timeout = setTimeout(() => controller.abort(), 5000);
120
- try {
121
- const res = await axios.get(Config.backend, {
122
- responseType: 'text',
123
- validateStatus: (status) => status >= 200 && status < 300,
124
- signal: controller.signal,
125
- });
126
- if (res.data.trim() !== PING_RESPONSE) {
127
- throw new Error(COMMON.EXTERNAL_NORESPONSE);
128
- }
129
- console.log(COMMON.EXTERNAL_OK);
130
- return COMMON.EXTERNAL_OK;
131
- }
132
- catch (err) {
133
- if (err instanceof Error) {
134
- console.warn(err.message);
135
- }
136
- else {
137
- console.warn(String(err));
138
- }
139
- return COMMON.EXTERNAL_NORESPONSE;
140
- }
141
- finally {
142
- clearTimeout(timeout);
143
- }
144
- }
145
- export async function updateExternalBackendDatabase(database, queues) {
146
- const validationPayload = { user: ROOT_UID, cmd: DB_UPDATE };
147
- queueUtils.addToAll(queues, validationPayload);
148
- try {
149
- await axios.put(Config.backend + '/' + DB_UPDATE, database, {
150
- headers: {
151
- 'Content-Type': 'application/json',
152
- },
153
- validateStatus: (status) => status <= 500,
154
- });
155
- }
156
- catch {
157
- console.error(COMMON.NETWORK_ERR);
158
- }
159
- queueUtils.tryRemoveInQueue(queues.validationQueue, validationPayload);
160
- }
161
- //# sourceMappingURL=backend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../../src/tools/backend.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import net from 'net';
2
- import type { CommandQueues } from '../types/queues.js';
3
- export declare function startIPCServer(cmdQueues: CommandQueues): net.Server;
4
- //# sourceMappingURL=ipcServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipcServer.d.ts","sourceRoot":"","sources":["../../src/tools/ipcServer.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AAMtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,CA+CnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipcServer.js","sourceRoot":"","sources":["../../src/tools/ipcServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,yBAAyB,CAAC;AAEtD,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,UAAU,cAAc,CAAC,SAAwB;IAErD,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAEzB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YAGD,IAAI,GAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAsB,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,GAAG,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAGD,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzD,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;gBAE5D,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE;QAI9B,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue-utils.d.ts","sourceRoot":"","sources":["../../src/tools/queue-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAG5E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAGjF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,iBAAiB,GAAG,IAAI,CAKzF;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAErF;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,2BAA2B,CAAC,SAAS,CAAC,EACnD,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,iBAAiB,EAAE,EAC1B,UAAU,EAAE,iBAAiB,EAC7B,kBAAkB,UAAQ,GACzB,OAAO,CAAC,OAAO,CAAC,CAYlB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue-utils.js","sourceRoot":"","sources":["../../src/tools/queue-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAIvC,MAAM,UAAU,QAAQ,CAAC,MAAqB,EAAE,GAAsB;IACpE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAqB,EAAE,GAAsB;IACzE,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC9C,gBAAgB,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA0B,EAAE,GAAsB;IACjF,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IACxF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAA0B,EAAE,GAAsB;IAC1E,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmD,EACnD,QAAgB,EAChB,KAA0B,EAC1B,UAA6B,EAC7B,kBAAkB,GAAG,KAAK;IAE1B,MAAM,KAAK,GAAG,kBAAkB;QAC9B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC;QACzF,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5F,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,WAAW,CAAC,KAAK,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC,aAAa,GAAG,QAAQ,GAAG,GAAG;YAC9C,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { CommandQueues } from 'src/types/queues.js';
2
- export declare function validateDb(queues: CommandQueues): boolean;
3
- //# sourceMappingURL=validateDb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateDb.d.ts","sourceRoot":"","sources":["../../src/tools/validateDb.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAsFzD"}