@reliverse/dler 2.2.5 → 2.2.10

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 (56) hide show
  1. package/README.md +14 -14
  2. package/dist/cli.js +1 -1
  3. package/dist/cmds/biome/cmd.js +58 -0
  4. package/dist/cmds/biome/impl.d.ts +26 -0
  5. package/dist/cmds/biome/impl.js +272 -0
  6. package/dist/cmds/build/cmd.js +18 -10
  7. package/dist/cmds/clean/cmd.js +6 -6
  8. package/dist/cmds/clean/impl.js +16 -12
  9. package/dist/cmds/clean/presets.js +2 -2
  10. package/dist/cmds/publish/cmd.js +7 -7
  11. package/dist/cmds/senv/cmd.js +13 -15
  12. package/dist/cmds/tsc/cache.js +1 -1
  13. package/dist/cmds/tsc/cmd.js +11 -8
  14. package/dist/cmds/tsc/impl.js +132 -17
  15. package/dist/cmds/update/cmd.js +11 -10
  16. package/dist/cmds/update/impl.d.ts +4 -4
  17. package/dist/cmds/update/impl.js +10 -11
  18. package/dist/cmds/update/utils.d.ts +23 -4
  19. package/dist/cmds/update/utils.js +22 -16
  20. package/package.json +16 -13
  21. package/dist/cmds/perf/analysis/bundle.d.ts +0 -20
  22. package/dist/cmds/perf/analysis/bundle.js +0 -225
  23. package/dist/cmds/perf/analysis/filesystem.d.ts +0 -27
  24. package/dist/cmds/perf/analysis/filesystem.js +0 -245
  25. package/dist/cmds/perf/analysis/monorepo.d.ts +0 -30
  26. package/dist/cmds/perf/analysis/monorepo.js +0 -345
  27. package/dist/cmds/perf/benchmarks/command.d.ts +0 -21
  28. package/dist/cmds/perf/benchmarks/command.js +0 -162
  29. package/dist/cmds/perf/benchmarks/memory.d.ts +0 -41
  30. package/dist/cmds/perf/benchmarks/memory.js +0 -169
  31. package/dist/cmds/perf/benchmarks/runner.d.ts +0 -22
  32. package/dist/cmds/perf/benchmarks/runner.js +0 -157
  33. package/dist/cmds/perf/cmd.js +0 -240
  34. package/dist/cmds/perf/impl.d.ts +0 -24
  35. package/dist/cmds/perf/impl.js +0 -297
  36. package/dist/cmds/perf/reporters/console.d.ts +0 -12
  37. package/dist/cmds/perf/reporters/console.js +0 -257
  38. package/dist/cmds/perf/reporters/html.d.ts +0 -27
  39. package/dist/cmds/perf/reporters/html.js +0 -881
  40. package/dist/cmds/perf/reporters/json.d.ts +0 -9
  41. package/dist/cmds/perf/reporters/json.js +0 -32
  42. package/dist/cmds/perf/types.d.ts +0 -184
  43. package/dist/cmds/perf/types.js +0 -0
  44. package/dist/cmds/perf/utils/cache.d.ts +0 -23
  45. package/dist/cmds/perf/utils/cache.js +0 -172
  46. package/dist/cmds/perf/utils/formatter.d.ts +0 -17
  47. package/dist/cmds/perf/utils/formatter.js +0 -134
  48. package/dist/cmds/perf/utils/stats.d.ts +0 -15
  49. package/dist/cmds/perf/utils/stats.js +0 -101
  50. package/dist/cmds/port/cmd.d.ts +0 -2
  51. package/dist/cmds/port/cmd.js +0 -58
  52. package/dist/cmds/port/impl.d.ts +0 -5
  53. package/dist/cmds/port/impl.js +0 -280
  54. package/dist/cmds/shell/cmd.d.ts +0 -2
  55. package/dist/cmds/shell/cmd.js +0 -46
  56. /package/dist/cmds/{perf → biome}/cmd.d.ts +0 -0
@@ -1,58 +0,0 @@
1
- import { defineArgs, defineCommand } from "@reliverse/dler-launcher";
2
- import { logger } from "@reliverse/dler-logger";
3
- import { killPort } from "./impl.js";
4
- export default defineCommand({
5
- meta: {
6
- name: "port",
7
- description: "Manage processes on ports. Kill processes using a specific port or check port status.",
8
- examples: [
9
- "dler port --port 3000",
10
- "dler port --port 3000 --action kill",
11
- "dler port --port 8080 --action check",
12
- "dler port --port 1420"
13
- ]
14
- },
15
- args: defineArgs({
16
- port: {
17
- type: "number",
18
- description: "The port number to operate on (1-65535)"
19
- },
20
- action: {
21
- type: "string",
22
- description: "Action to perform: kill or check",
23
- default: "kill"
24
- }
25
- }),
26
- run: async ({ args }) => {
27
- try {
28
- if (typeof process.versions.bun === "undefined") {
29
- logger.error("\u274C This command requires Bun runtime. Sorry.");
30
- process.exit(1);
31
- }
32
- if (!args.port || args.port < 1 || args.port > 65535) {
33
- logger.error(
34
- "\u274C Invalid port number. Please provide a valid port number (1-65535)"
35
- );
36
- process.exit(1);
37
- }
38
- const action = args.action || "kill";
39
- switch (action) {
40
- case "kill":
41
- await killPort(args.port);
42
- break;
43
- case "check":
44
- logger.info("Port check functionality coming soon!");
45
- break;
46
- default:
47
- console.log("Usage: dler port --port <port> --action <action>");
48
- console.log("Example: dler port --port 3000 --action kill");
49
- break;
50
- }
51
- } catch (error) {
52
- logger.error(
53
- `\u274C Port command failed: ${error instanceof Error ? error.message : String(error)}`
54
- );
55
- process.exit(1);
56
- }
57
- }
58
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * Kills processes running on the specified port
3
- * @param port - The port number to kill processes on
4
- */
5
- export declare function killPort(port: number): Promise<void>;
@@ -1,280 +0,0 @@
1
- import { platform } from "node:os";
2
- import { logger } from "@reliverse/dler-logger";
3
- import { $ } from "bun";
4
- export async function killPort(port) {
5
- const portStr = port.toString();
6
- try {
7
- if (platform() === "win32") {
8
- logger.info(`\u{1F50D} Finding processes using port ${port}...`);
9
- let tcpOutput = "";
10
- let udpOutput = "";
11
- try {
12
- const tcpResult = await $`netstat -ano | findstr :${portStr}`.nothrow();
13
- const udpResult = await $`netstat -ano | findstr UDP | findstr :${portStr}`.nothrow();
14
- tcpOutput = tcpResult.stdout.toString();
15
- udpOutput = udpResult.stdout.toString();
16
- const processOutput = tcpOutput + udpOutput;
17
- if (!processOutput.trim()) {
18
- logger.success(`\u2705 No processes found using port ${port}`);
19
- return;
20
- }
21
- const hasTcp = tcpOutput.trim().length > 0;
22
- const hasUdp = udpOutput.trim().length > 0;
23
- logger.info(`\u{1F4CB} Processes using port ${port}:`);
24
- if (hasTcp) {
25
- logger.info(` TCP:`);
26
- logger.info(tcpOutput);
27
- }
28
- if (hasUdp) {
29
- logger.info(` UDP:`);
30
- logger.info(udpOutput);
31
- logger.info(`
32
- \u26A0\uFE0F UDP Port Detection - Important Information:`);
33
- logger.info(` \u2022 UDP ports are connectionless and harder to detect`);
34
- logger.info(` \u2022 Some UDP processes may not show up in netstat`);
35
- logger.info(
36
- ` \u2022 UDP processes are often system services or drivers`
37
- );
38
- logger.info(
39
- ` \u2022 Killing UDP processes may require elevated privileges`
40
- );
41
- logger.info(` \u2022 Some UDP processes restart automatically`);
42
- logger.info(`
43
- \u{1F4A1} If you're having trouble with UDP port ${port}:`);
44
- logger.info(` 1. Try running as Administrator`);
45
- logger.info(` 2. Check if it's a system service: services.msc`);
46
- logger.info(` 3. Use Task Manager to find the process by name`);
47
- logger.info(
48
- ` 4. Restart the application that should use this port`
49
- );
50
- logger.info(` 5. Check Windows Firewall settings`);
51
- }
52
- const allLines = (tcpOutput + udpOutput).trim().split("\n");
53
- const pids = /* @__PURE__ */ new Set();
54
- for (const line of allLines) {
55
- const parts = line.trim().split(/\s+/);
56
- if (parts.length >= 4) {
57
- const pid = parts[parts.length - 1];
58
- if (pid && !Number.isNaN(Number(pid))) {
59
- pids.add(pid);
60
- }
61
- }
62
- }
63
- if (pids.size === 0) {
64
- logger.warn(`\u26A0\uFE0F No valid PIDs found for port ${port}`);
65
- if (hasUdp) {
66
- logger.info(`
67
- \u{1F50D} UDP Port Troubleshooting:`);
68
- logger.info(` This might be a UDP-only port. Try these steps:`);
69
- logger.info(` 1. Check if any applications are using this port`);
70
- logger.info(` 2. Look for processes in Task Manager`);
71
- logger.info(` 3. Try restarting your application`);
72
- logger.info(` 4. Check Windows Defender or antivirus software`);
73
- }
74
- return;
75
- }
76
- for (const pid of pids) {
77
- try {
78
- logger.info(`\u{1F480} Killing process ${pid}...`);
79
- await $`taskkill /PID ${pid} /F`;
80
- logger.success(`\u2705 Successfully killed process ${pid}`);
81
- } catch (error) {
82
- logger.error(
83
- `\u274C Failed to kill process ${pid}:`,
84
- error instanceof Error ? error.message : String(error)
85
- );
86
- if (hasUdp) {
87
- logger.info(
88
- ` \u{1F4A1} This might be a system process or require elevated privileges`
89
- );
90
- }
91
- }
92
- }
93
- logger.success(`\u{1F389} Finished killing processes on port ${port}`);
94
- return;
95
- } catch (error) {
96
- try {
97
- const tcpPsResult = await $`powershell -Command "Get-NetTCPConnection -LocalPort ${portStr} -ErrorAction SilentlyContinue | Select-Object OwningProcess"`.nothrow();
98
- const udpPsResult = await $`powershell -Command "Get-NetUDPEndpoint -LocalPort ${portStr} -ErrorAction SilentlyContinue | Select-Object OwningProcess"`.nothrow();
99
- const tcpLines = tcpPsResult.stdout.toString().trim().split("\n").filter((line) => line.trim() && !line.includes("OwningProcess"));
100
- const udpLines = udpPsResult.stdout.toString().trim().split("\n").filter((line) => line.trim() && !line.includes("OwningProcess"));
101
- if (tcpLines.length === 0 && udpLines.length === 0) {
102
- logger.success(`\u2705 No processes found using port ${port}`);
103
- return;
104
- }
105
- logger.info(`\u{1F4CB} Processes using port ${port} (PowerShell):`);
106
- const pids = /* @__PURE__ */ new Set();
107
- if (tcpLines.length > 0) {
108
- logger.info(` TCP:`);
109
- for (const line of tcpLines) {
110
- const pid = line.trim();
111
- if (pid && !Number.isNaN(Number(pid))) {
112
- pids.add(pid);
113
- logger.info(` PID: ${pid}`);
114
- }
115
- }
116
- }
117
- if (udpLines.length > 0) {
118
- logger.info(` UDP:`);
119
- for (const line of udpLines) {
120
- const pid = line.trim();
121
- if (pid && !Number.isNaN(Number(pid))) {
122
- pids.add(pid);
123
- logger.info(` PID: ${pid}`);
124
- }
125
- }
126
- logger.info(`
127
- \u26A0\uFE0F UDP Port Detection - Important Information:`);
128
- logger.info(
129
- ` \u2022 UDP ports are connectionless and harder to detect`
130
- );
131
- logger.info(` \u2022 Some UDP processes may not show up in netstat`);
132
- logger.info(
133
- ` \u2022 UDP processes are often system services or drivers`
134
- );
135
- logger.info(
136
- ` \u2022 Killing UDP processes may require elevated privileges`
137
- );
138
- logger.info(` \u2022 Some UDP processes restart automatically`);
139
- logger.info(`
140
- \u{1F4A1} If you're having trouble with UDP port ${port}:`);
141
- logger.info(` 1. Try running as Administrator`);
142
- logger.info(` 2. Check if it's a system service: services.msc`);
143
- logger.info(` 3. Use Task Manager to find the process by name`);
144
- logger.info(
145
- ` 4. Restart the application that should use this port`
146
- );
147
- logger.info(` 5. Check Windows Firewall settings`);
148
- }
149
- if (pids.size === 0) {
150
- logger.warn(`\u26A0\uFE0F No valid PIDs found for port ${port}`);
151
- if (udpLines.length > 0) {
152
- logger.info(`
153
- \u{1F50D} UDP Port Troubleshooting:`);
154
- logger.info(` This might be a UDP-only port. Try these steps:`);
155
- logger.info(
156
- ` 1. Check if any applications are using this port`
157
- );
158
- logger.info(` 2. Look for processes in Task Manager`);
159
- logger.info(` 3. Try restarting your application`);
160
- logger.info(` 4. Check Windows Defender or antivirus software`);
161
- }
162
- return;
163
- }
164
- for (const pid of pids) {
165
- try {
166
- logger.info(`\u{1F480} Killing process ${pid}...`);
167
- await $`taskkill /PID ${pid} /F`;
168
- logger.success(`\u2705 Successfully killed process ${pid}`);
169
- } catch (killError) {
170
- logger.error(
171
- `\u274C Failed to kill process ${pid}:`,
172
- killError instanceof Error ? killError.message : String(killError)
173
- );
174
- if (udpLines.length > 0) {
175
- logger.info(
176
- ` \u{1F4A1} This might be a system process or require elevated privileges`
177
- );
178
- }
179
- }
180
- }
181
- logger.success(`\u{1F389} Finished killing processes on port ${port}`);
182
- return;
183
- } catch (psError) {
184
- const errorOutput = psError instanceof Error && "stderr" in psError ? psError.stderr : "";
185
- if (errorOutput.includes("No MSFT_NetTCPConnection objects found") || errorOutput.includes("No MSFT_NetUDPEndpoint objects found") || errorOutput.includes("ObjectNotFound")) {
186
- logger.success(`\u2705 No processes found using port ${port}`);
187
- return;
188
- }
189
- logger.error(
190
- `\u274C Both netstat and PowerShell failed:`,
191
- psError instanceof Error ? psError.message : String(psError)
192
- );
193
- process.exit(1);
194
- }
195
- }
196
- } else {
197
- logger.info(`\u{1F50D} Finding processes using port ${port}...`);
198
- try {
199
- const tcpResult = await $`lsof -ti:${portStr}`.nothrow();
200
- const udpResult = await $`lsof -ti:UDP:${portStr}`.nothrow();
201
- const tcpPids = tcpResult.stdout.toString().trim();
202
- const udpPids = udpResult.stdout.toString().trim();
203
- if (!tcpPids && !udpPids) {
204
- logger.success(`\u2705 No processes found using port ${port}`);
205
- return;
206
- }
207
- logger.info(`\u{1F4CB} Processes using port ${port}:`);
208
- const allPids = /* @__PURE__ */ new Set();
209
- if (tcpPids) {
210
- logger.info(` TCP:`);
211
- const tcpPidList = tcpPids.split("\n").filter((pid) => pid.trim());
212
- for (const pid of tcpPidList) {
213
- allPids.add(pid);
214
- logger.info(` PID: ${pid}`);
215
- }
216
- }
217
- if (udpPids) {
218
- logger.info(` UDP:`);
219
- const udpPidList = udpPids.split("\n").filter((pid) => pid.trim());
220
- for (const pid of udpPidList) {
221
- allPids.add(pid);
222
- logger.info(` PID: ${pid}`);
223
- }
224
- logger.info(`
225
- \u26A0\uFE0F UDP Port Detection - Important Information:`);
226
- logger.info(` \u2022 UDP ports are connectionless and harder to detect`);
227
- logger.info(` \u2022 Some UDP processes may not show up in lsof`);
228
- logger.info(
229
- ` \u2022 UDP processes are often system services or daemons`
230
- );
231
- logger.info(` \u2022 Killing UDP processes may require sudo privileges`);
232
- logger.info(` \u2022 Some UDP processes restart automatically`);
233
- logger.info(`
234
- \u{1F4A1} If you're having trouble with UDP port ${port}:`);
235
- logger.info(
236
- ` 1. Try running with sudo: sudo bun dler port kill --port ${port}`
237
- );
238
- logger.info(
239
- ` 2. Check if it's a system service: systemctl status <service>`
240
- );
241
- logger.info(` 3. Use ps aux | grep <port> to find the process`);
242
- logger.info(
243
- ` 4. Restart the application that should use this port`
244
- );
245
- logger.info(
246
- ` 5. Check firewall settings: ufw status or iptables -L`
247
- );
248
- }
249
- const pidList = Array.from(allPids);
250
- for (const pid of pidList) {
251
- try {
252
- logger.info(`\u{1F480} Killing process ${pid}...`);
253
- await $`kill -9 ${pid}`;
254
- logger.success(`\u2705 Successfully killed process ${pid}`);
255
- } catch (error) {
256
- logger.error(
257
- `\u274C Failed to kill process ${pid}:`,
258
- error instanceof Error ? error.message : String(error)
259
- );
260
- if (udpPids) {
261
- logger.info(
262
- ` \u{1F4A1} This might be a system process or require sudo privileges`
263
- );
264
- }
265
- }
266
- }
267
- } catch (error) {
268
- logger.success(`\u2705 No processes found using port ${port}`);
269
- return;
270
- }
271
- }
272
- logger.success(`\u{1F389} Finished killing processes on port ${port}`);
273
- } catch (error) {
274
- logger.error(
275
- `\u274C Error killing processes on port ${port}:`,
276
- error instanceof Error ? error.message : String(error)
277
- );
278
- process.exit(1);
279
- }
280
- }
@@ -1,2 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
@@ -1,46 +0,0 @@
1
- import { defineArgs, defineCommand } from "@reliverse/dler-launcher";
2
- import { logger } from "@reliverse/dler-logger";
3
- import { $ } from "bun";
4
- export default defineCommand({
5
- meta: {
6
- name: "shell",
7
- description: "Execute shell commands using Bun Shell API",
8
- examples: [
9
- 'dler shell --x "echo Hello World"',
10
- 'dler shell --x "ls -la"',
11
- 'dler shell --x "cat package.json | grep name"'
12
- ]
13
- },
14
- args: defineArgs({
15
- x: {
16
- type: "string",
17
- required: true,
18
- description: "Shell command to execute"
19
- }
20
- }),
21
- run: async ({ args }) => {
22
- try {
23
- const commandParts = args.x.split(/\s+/);
24
- const [command, ...commandArgs] = commandParts;
25
- await $`${command} ${commandArgs.join(" ")}`;
26
- } catch (error) {
27
- logger.error("\n\u274C Command failed:");
28
- if (error instanceof Error) {
29
- if ("exitCode" in error) {
30
- logger.error(`Exit code: ${error.exitCode}`);
31
- if (error.stdout) {
32
- logger.error(`STDOUT: ${error.stdout.toString()}`);
33
- }
34
- if (error.stderr) {
35
- logger.error(`STDERR: ${error.stderr.toString()}`);
36
- }
37
- } else {
38
- logger.error(error.message);
39
- }
40
- } else {
41
- logger.error(String(error));
42
- }
43
- process.exit(1);
44
- }
45
- }
46
- });
File without changes