bunqueue 1.0.7 → 1.0.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 (68) hide show
  1. package/README.md +65 -0
  2. package/dist/cli/client.d.ts +14 -0
  3. package/dist/cli/client.d.ts.map +1 -0
  4. package/dist/cli/client.js +170 -0
  5. package/dist/cli/client.js.map +1 -0
  6. package/dist/cli/commands/core.d.ts +7 -0
  7. package/dist/cli/commands/core.d.ts.map +1 -0
  8. package/dist/cli/commands/core.js +150 -0
  9. package/dist/cli/commands/core.js.map +1 -0
  10. package/dist/cli/commands/cron.d.ts +7 -0
  11. package/dist/cli/commands/cron.d.ts.map +1 -0
  12. package/dist/cli/commands/cron.js +69 -0
  13. package/dist/cli/commands/cron.js.map +1 -0
  14. package/dist/cli/commands/dlq.d.ts +7 -0
  15. package/dist/cli/commands/dlq.d.ts.map +1 -0
  16. package/dist/cli/commands/dlq.js +63 -0
  17. package/dist/cli/commands/dlq.js.map +1 -0
  18. package/dist/cli/commands/job.d.ts +7 -0
  19. package/dist/cli/commands/job.d.ts.map +1 -0
  20. package/dist/cli/commands/job.js +155 -0
  21. package/dist/cli/commands/job.js.map +1 -0
  22. package/dist/cli/commands/monitor.d.ts +7 -0
  23. package/dist/cli/commands/monitor.d.ts.map +1 -0
  24. package/dist/cli/commands/monitor.js +19 -0
  25. package/dist/cli/commands/monitor.js.map +1 -0
  26. package/dist/cli/commands/queue.d.ts +7 -0
  27. package/dist/cli/commands/queue.d.ts.map +1 -0
  28. package/dist/cli/commands/queue.js +122 -0
  29. package/dist/cli/commands/queue.js.map +1 -0
  30. package/dist/cli/commands/rateLimit.d.ts +7 -0
  31. package/dist/cli/commands/rateLimit.d.ts.map +1 -0
  32. package/dist/cli/commands/rateLimit.js +64 -0
  33. package/dist/cli/commands/rateLimit.js.map +1 -0
  34. package/dist/cli/commands/server.d.ts +7 -0
  35. package/dist/cli/commands/server.d.ts.map +1 -0
  36. package/dist/cli/commands/server.js +97 -0
  37. package/dist/cli/commands/server.js.map +1 -0
  38. package/dist/cli/commands/types.d.ts +17 -0
  39. package/dist/cli/commands/types.d.ts.map +1 -0
  40. package/dist/cli/commands/types.js +47 -0
  41. package/dist/cli/commands/types.js.map +1 -0
  42. package/dist/cli/commands/webhook.d.ts +7 -0
  43. package/dist/cli/commands/webhook.d.ts.map +1 -0
  44. package/dist/cli/commands/webhook.js +78 -0
  45. package/dist/cli/commands/webhook.js.map +1 -0
  46. package/dist/cli/commands/worker.d.ts +7 -0
  47. package/dist/cli/commands/worker.d.ts.map +1 -0
  48. package/dist/cli/commands/worker.js +49 -0
  49. package/dist/cli/commands/worker.js.map +1 -0
  50. package/dist/cli/help.d.ts +14 -0
  51. package/dist/cli/help.d.ts.map +1 -0
  52. package/dist/cli/help.js +176 -0
  53. package/dist/cli/help.js.map +1 -0
  54. package/dist/cli/index.d.ts +8 -0
  55. package/dist/cli/index.d.ts.map +1 -0
  56. package/dist/cli/index.js +109 -0
  57. package/dist/cli/index.js.map +1 -0
  58. package/dist/cli/output.d.ts +9 -0
  59. package/dist/cli/output.d.ts.map +1 -0
  60. package/dist/cli/output.js +260 -0
  61. package/dist/cli/output.js.map +1 -0
  62. package/dist/domain/queue/priorityQueue.d.ts.map +1 -1
  63. package/dist/domain/queue/priorityQueue.js +10 -8
  64. package/dist/domain/queue/priorityQueue.js.map +1 -1
  65. package/dist/main.d.ts +1 -1
  66. package/dist/main.js +33 -11
  67. package/dist/main.js.map +1 -1
  68. package/package.json +2 -2
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Job Command Builders
3
+ * Job management subcommands
4
+ */
5
+ import { parseArgs } from 'node:util';
6
+ import { CommandError, requireArg, parseJsonArg, parseNumberArg } from './types';
7
+ /** Build a job subcommand */
8
+ export function buildJobCommand(args) {
9
+ const subcommand = args[0];
10
+ const subArgs = args.slice(1);
11
+ switch (subcommand) {
12
+ case 'get':
13
+ return buildGetJob(subArgs);
14
+ case 'state':
15
+ return buildGetState(subArgs);
16
+ case 'result':
17
+ return buildGetResult(subArgs);
18
+ case 'cancel':
19
+ return buildCancel(subArgs);
20
+ case 'progress':
21
+ return buildProgress(subArgs);
22
+ case 'update':
23
+ return buildUpdate(subArgs);
24
+ case 'priority':
25
+ return buildChangePriority(subArgs);
26
+ case 'promote':
27
+ return buildPromote(subArgs);
28
+ case 'delay':
29
+ return buildMoveToDelayed(subArgs);
30
+ case 'discard':
31
+ return buildDiscard(subArgs);
32
+ case 'logs':
33
+ return buildGetLogs(subArgs);
34
+ case 'log':
35
+ return buildAddLog(subArgs);
36
+ case 'wait':
37
+ return buildWaitJob(subArgs);
38
+ default:
39
+ throw new CommandError(`Unknown job subcommand: ${subcommand}. Use: get, state, result, cancel, progress, update, priority, promote, delay, discard, logs, log`);
40
+ }
41
+ }
42
+ function buildGetJob(args) {
43
+ const id = requireArg(args, 0, 'id');
44
+ return { cmd: 'GetJob', id };
45
+ }
46
+ function buildGetState(args) {
47
+ const id = requireArg(args, 0, 'id');
48
+ return { cmd: 'GetState', id };
49
+ }
50
+ function buildGetResult(args) {
51
+ const id = requireArg(args, 0, 'id');
52
+ return { cmd: 'GetResult', id };
53
+ }
54
+ function buildCancel(args) {
55
+ const id = requireArg(args, 0, 'id');
56
+ return { cmd: 'Cancel', id };
57
+ }
58
+ function buildProgress(args) {
59
+ const { values, positionals } = parseArgs({
60
+ args,
61
+ options: {
62
+ message: { type: 'string', short: 'm' },
63
+ },
64
+ allowPositionals: true,
65
+ strict: false,
66
+ });
67
+ const id = requireArg(positionals, 0, 'id');
68
+ const progress = parseNumberArg(requireArg(positionals, 1, 'progress'), 'progress');
69
+ if (progress === undefined || progress < 0 || progress > 100) {
70
+ throw new CommandError('Progress must be a number between 0 and 100');
71
+ }
72
+ const cmd = {
73
+ cmd: 'Progress',
74
+ id,
75
+ progress,
76
+ };
77
+ if (values.message)
78
+ cmd.message = values.message;
79
+ return cmd;
80
+ }
81
+ function buildUpdate(args) {
82
+ const id = requireArg(args, 0, 'id');
83
+ const data = parseJsonArg(requireArg(args, 1, 'data'), 'data');
84
+ return { cmd: 'Update', id, data };
85
+ }
86
+ function buildChangePriority(args) {
87
+ const id = requireArg(args, 0, 'id');
88
+ const priority = parseNumberArg(requireArg(args, 1, 'priority'), 'priority');
89
+ if (priority === undefined) {
90
+ throw new CommandError('Priority must be a number');
91
+ }
92
+ return { cmd: 'ChangePriority', id, priority };
93
+ }
94
+ function buildPromote(args) {
95
+ const id = requireArg(args, 0, 'id');
96
+ return { cmd: 'Promote', id };
97
+ }
98
+ function buildMoveToDelayed(args) {
99
+ const id = requireArg(args, 0, 'id');
100
+ const delay = parseNumberArg(requireArg(args, 1, 'delay'), 'delay');
101
+ if (delay === undefined || delay < 0) {
102
+ throw new CommandError('Delay must be a positive number in milliseconds');
103
+ }
104
+ return { cmd: 'MoveToDelayed', id, delay };
105
+ }
106
+ function buildDiscard(args) {
107
+ const id = requireArg(args, 0, 'id');
108
+ return { cmd: 'Discard', id };
109
+ }
110
+ function buildGetLogs(args) {
111
+ const id = requireArg(args, 0, 'id');
112
+ return { cmd: 'GetLogs', id };
113
+ }
114
+ function buildAddLog(args) {
115
+ const { values, positionals } = parseArgs({
116
+ args,
117
+ options: {
118
+ level: { type: 'string', short: 'l' },
119
+ },
120
+ allowPositionals: true,
121
+ strict: false,
122
+ });
123
+ const id = requireArg(positionals, 0, 'id');
124
+ const message = requireArg(positionals, 1, 'message');
125
+ const level = values.level ?? 'info';
126
+ if (!['info', 'warn', 'error'].includes(level)) {
127
+ throw new CommandError(`Invalid log level: ${level}. Must be info, warn, or error`);
128
+ }
129
+ return {
130
+ cmd: 'AddLog',
131
+ id,
132
+ message,
133
+ level,
134
+ };
135
+ }
136
+ function buildWaitJob(args) {
137
+ const { values, positionals } = parseArgs({
138
+ args,
139
+ options: {
140
+ timeout: { type: 'string', short: 't' },
141
+ },
142
+ allowPositionals: true,
143
+ strict: false,
144
+ });
145
+ const id = requireArg(positionals, 0, 'id');
146
+ const cmd = {
147
+ cmd: 'WaitJob',
148
+ id,
149
+ };
150
+ const timeout = parseNumberArg(values.timeout, 'timeout');
151
+ if (timeout !== undefined)
152
+ cmd.timeout = timeout;
153
+ return cmd;
154
+ }
155
+ //# sourceMappingURL=job.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/cli/commands/job.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Monitor Command Builders
3
+ * Stats, metrics, and health operations
4
+ */
5
+ /** Build a monitoring command */
6
+ export declare function buildMonitorCommand(command: string): Record<string, unknown>;
7
+ //# sourceMappingURL=monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iCAAiC;AACjC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY5E"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Monitor Command Builders
3
+ * Stats, metrics, and health operations
4
+ */
5
+ /** Build a monitoring command */
6
+ export function buildMonitorCommand(command) {
7
+ switch (command) {
8
+ case 'stats':
9
+ return { cmd: 'Stats' };
10
+ case 'metrics':
11
+ return { cmd: 'Prometheus' };
12
+ case 'health':
13
+ // Health uses the same Stats command - the output formatter handles it
14
+ return { cmd: 'Stats' };
15
+ default:
16
+ return { cmd: 'Stats' };
17
+ }
18
+ }
19
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/cli/commands/monitor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iCAAiC;AACjC,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;QAC/B,KAAK,QAAQ;YACX,uEAAuE;YACvE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B;YACE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Queue Command Builders
3
+ * Queue control subcommands
4
+ */
5
+ /** Build a queue subcommand */
6
+ export declare function buildQueueCommand(args: string[]): Record<string, unknown>;
7
+ //# sourceMappingURL=queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,+BAA+B;AAC/B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BzE"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Queue Command Builders
3
+ * Queue control subcommands
4
+ */
5
+ import { parseArgs } from 'node:util';
6
+ import { CommandError, requireArg, parseNumberArg } from './types';
7
+ /** Valid job states */
8
+ const VALID_STATES = ['waiting', 'delayed', 'active', 'completed', 'failed'];
9
+ /** Build a queue subcommand */
10
+ export function buildQueueCommand(args) {
11
+ const subcommand = args[0];
12
+ const subArgs = args.slice(1);
13
+ switch (subcommand) {
14
+ case 'list':
15
+ return { cmd: 'ListQueues' };
16
+ case 'pause':
17
+ return buildPause(subArgs);
18
+ case 'resume':
19
+ return buildResume(subArgs);
20
+ case 'drain':
21
+ return buildDrain(subArgs);
22
+ case 'obliterate':
23
+ return buildObliterate(subArgs);
24
+ case 'clean':
25
+ return buildClean(subArgs);
26
+ case 'count':
27
+ return buildCount(subArgs);
28
+ case 'jobs':
29
+ return buildGetJobs(subArgs);
30
+ case 'paused':
31
+ return buildIsPaused(subArgs);
32
+ default:
33
+ throw new CommandError(`Unknown queue subcommand: ${subcommand}. Use: list, pause, resume, drain, obliterate, clean, count, jobs, paused`);
34
+ }
35
+ }
36
+ function buildPause(args) {
37
+ const queue = requireArg(args, 0, 'queue');
38
+ return { cmd: 'Pause', queue };
39
+ }
40
+ function buildResume(args) {
41
+ const queue = requireArg(args, 0, 'queue');
42
+ return { cmd: 'Resume', queue };
43
+ }
44
+ function buildDrain(args) {
45
+ const queue = requireArg(args, 0, 'queue');
46
+ return { cmd: 'Drain', queue };
47
+ }
48
+ function buildObliterate(args) {
49
+ const queue = requireArg(args, 0, 'queue');
50
+ return { cmd: 'Obliterate', queue };
51
+ }
52
+ function buildClean(args) {
53
+ const { values, positionals } = parseArgs({
54
+ args,
55
+ options: {
56
+ grace: { type: 'string', short: 'g' },
57
+ state: { type: 'string', short: 's' },
58
+ limit: { type: 'string', short: 'l' },
59
+ },
60
+ allowPositionals: true,
61
+ strict: false,
62
+ });
63
+ const queue = requireArg(positionals, 0, 'queue');
64
+ const grace = parseNumberArg(values.grace, 'grace');
65
+ if (grace === undefined) {
66
+ throw new CommandError('--grace is required for clean command (time in milliseconds)');
67
+ }
68
+ const state = values.state;
69
+ if (state && !VALID_STATES.includes(state)) {
70
+ throw new CommandError(`Invalid state: ${state}. Must be one of: ${VALID_STATES.join(', ')}`);
71
+ }
72
+ const cmd = {
73
+ cmd: 'Clean',
74
+ queue,
75
+ grace,
76
+ };
77
+ if (state)
78
+ cmd.state = state;
79
+ const limit = parseNumberArg(values.limit, 'limit');
80
+ if (limit !== undefined)
81
+ cmd.limit = limit;
82
+ return cmd;
83
+ }
84
+ function buildCount(args) {
85
+ const queue = requireArg(args, 0, 'queue');
86
+ return { cmd: 'Count', queue };
87
+ }
88
+ function buildGetJobs(args) {
89
+ const { values, positionals } = parseArgs({
90
+ args,
91
+ options: {
92
+ state: { type: 'string', short: 's' },
93
+ limit: { type: 'string', short: 'l' },
94
+ offset: { type: 'string', short: 'o' },
95
+ },
96
+ allowPositionals: true,
97
+ strict: false,
98
+ });
99
+ const queue = requireArg(positionals, 0, 'queue');
100
+ const state = values.state;
101
+ if (state && !VALID_STATES.includes(state)) {
102
+ throw new CommandError(`Invalid state: ${state}. Must be one of: ${VALID_STATES.join(', ')}`);
103
+ }
104
+ const cmd = {
105
+ cmd: 'GetJobs',
106
+ queue,
107
+ };
108
+ if (state)
109
+ cmd.state = state;
110
+ const limit = parseNumberArg(values.limit, 'limit');
111
+ if (limit !== undefined)
112
+ cmd.limit = limit;
113
+ const offset = parseNumberArg(values.offset, 'offset');
114
+ if (offset !== undefined)
115
+ cmd.offset = offset;
116
+ return cmd;
117
+ }
118
+ function buildIsPaused(args) {
119
+ const queue = requireArg(args, 0, 'queue');
120
+ return { cmd: 'IsPaused', queue };
121
+ }
122
+ //# sourceMappingURL=queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/cli/commands/queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Rate Limit Command Builders
3
+ * Rate limiting and concurrency control operations
4
+ */
5
+ /** Build a rate-limit or concurrency command */
6
+ export declare function buildRateLimitCommand(command: string, args: string[]): Record<string, unknown>;
7
+ //# sourceMappingURL=rateLimit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rateLimit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,gDAAgD;AAChD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB9F"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Rate Limit Command Builders
3
+ * Rate limiting and concurrency control operations
4
+ */
5
+ import { CommandError, requireArg, parseNumberArg } from './types';
6
+ /** Build a rate-limit or concurrency command */
7
+ export function buildRateLimitCommand(command, args) {
8
+ const subcommand = args[0];
9
+ const subArgs = args.slice(1);
10
+ if (command === 'rate-limit') {
11
+ switch (subcommand) {
12
+ case 'set':
13
+ return buildRateLimitSet(subArgs);
14
+ case 'clear':
15
+ return buildRateLimitClear(subArgs);
16
+ default:
17
+ throw new CommandError(`Unknown rate-limit subcommand: ${subcommand}. Use: set, clear`);
18
+ }
19
+ }
20
+ else if (command === 'concurrency') {
21
+ switch (subcommand) {
22
+ case 'set':
23
+ return buildConcurrencySet(subArgs);
24
+ case 'clear':
25
+ return buildConcurrencyClear(subArgs);
26
+ default:
27
+ throw new CommandError(`Unknown concurrency subcommand: ${subcommand}. Use: set, clear`);
28
+ }
29
+ }
30
+ throw new CommandError(`Unknown command: ${command}`);
31
+ }
32
+ function buildRateLimitSet(args) {
33
+ const queue = requireArg(args, 0, 'queue');
34
+ const limit = parseNumberArg(requireArg(args, 1, 'limit'), 'limit');
35
+ if (limit === undefined || limit <= 0) {
36
+ throw new CommandError('Limit must be a positive number (jobs per second)');
37
+ }
38
+ return {
39
+ cmd: 'RateLimit',
40
+ queue,
41
+ limit,
42
+ };
43
+ }
44
+ function buildRateLimitClear(args) {
45
+ const queue = requireArg(args, 0, 'queue');
46
+ return { cmd: 'RateLimitClear', queue };
47
+ }
48
+ function buildConcurrencySet(args) {
49
+ const queue = requireArg(args, 0, 'queue');
50
+ const limit = parseNumberArg(requireArg(args, 1, 'limit'), 'limit');
51
+ if (limit === undefined || limit <= 0) {
52
+ throw new CommandError('Limit must be a positive number (max concurrent jobs)');
53
+ }
54
+ return {
55
+ cmd: 'SetConcurrency',
56
+ queue,
57
+ limit,
58
+ };
59
+ }
60
+ function buildConcurrencyClear(args) {
61
+ const queue = requireArg(args, 0, 'queue');
62
+ return { cmd: 'ClearConcurrency', queue };
63
+ }
64
+ //# sourceMappingURL=rateLimit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/cli/commands/rateLimit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnE,gDAAgD;AAChD,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,IAAc;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;QAC7B,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,KAAK;gBACR,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACpC,KAAK,OAAO;gBACV,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtC;gBACE,MAAM,IAAI,YAAY,CAAC,kCAAkC,UAAU,mBAAmB,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QACrC,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,KAAK;gBACR,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtC,KAAK,OAAO;gBACV,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACxC;gBACE,MAAM,IAAI,YAAY,CAAC,mCAAmC,UAAU,mBAAmB,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,MAAM,IAAI,YAAY,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAc;IACvC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAEpE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,YAAY,CAAC,mDAAmD,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACL,GAAG,EAAE,WAAW;QAChB,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAEpE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,YAAY,CAAC,uDAAuD,CAAC,CAAC;IAClF,CAAC;IAED,OAAO;QACL,GAAG,EAAE,gBAAgB;QACrB,KAAK;QACL,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAc;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Server Command Handler
3
+ * Starts the bunQ server
4
+ */
5
+ /** Run the server */
6
+ export declare function runServer(args: string[], showHelp: boolean): Promise<void>;
7
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyCH,qBAAqB;AACrB,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EhF"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Server Command Handler
3
+ * Starts the bunQ server
4
+ */
5
+ import { parseArgs } from 'node:util';
6
+ import { printServerHelp } from '../help';
7
+ /** Parse server arguments */
8
+ function parseServerArgs(args) {
9
+ const { values } = parseArgs({
10
+ args,
11
+ options: {
12
+ 'tcp-port': { type: 'string' },
13
+ 'http-port': { type: 'string' },
14
+ host: { type: 'string' },
15
+ 'data-path': { type: 'string' },
16
+ 'auth-tokens': { type: 'string' },
17
+ },
18
+ allowPositionals: false,
19
+ strict: false,
20
+ });
21
+ return {
22
+ tcpPort: parseInt(values['tcp-port'] ?? process.env.TCP_PORT ?? '6789', 10),
23
+ httpPort: parseInt(values['http-port'] ?? process.env.HTTP_PORT ?? '6790', 10),
24
+ host: values.host ?? process.env.HOST ?? '0.0.0.0',
25
+ dataPath: values['data-path'] ?? process.env.DATA_PATH,
26
+ authTokens: values['auth-tokens']?.split(',').filter(Boolean) ??
27
+ process.env.AUTH_TOKENS?.split(',').filter(Boolean) ??
28
+ [],
29
+ };
30
+ }
31
+ /** Run the server */
32
+ export async function runServer(args, showHelp) {
33
+ if (showHelp) {
34
+ printServerHelp();
35
+ process.exit(0);
36
+ }
37
+ const options = parseServerArgs(args);
38
+ // Set environment variables for the server
39
+ process.env.TCP_PORT = String(options.tcpPort);
40
+ process.env.HTTP_PORT = String(options.httpPort);
41
+ process.env.HOST = options.host;
42
+ if (options.dataPath) {
43
+ process.env.DATA_PATH = options.dataPath;
44
+ }
45
+ if (options.authTokens.length > 0) {
46
+ process.env.AUTH_TOKENS = options.authTokens.join(',');
47
+ }
48
+ // Import and start the server components
49
+ const { QueueManager } = await import('../../application/queueManager');
50
+ const { createTcpServer } = await import('../../infrastructure/server/tcp');
51
+ const { createHttpServer } = await import('../../infrastructure/server/http');
52
+ const { serverLog } = await import('../../shared/logger');
53
+ // Initialize
54
+ const qm = new QueueManager({
55
+ dataPath: options.dataPath,
56
+ });
57
+ const authTokens = options.authTokens.length > 0 ? options.authTokens : undefined;
58
+ // Start servers
59
+ const tcpServer = createTcpServer(qm, {
60
+ port: options.tcpPort,
61
+ hostname: options.host,
62
+ authTokens,
63
+ });
64
+ const httpServer = createHttpServer(qm, {
65
+ port: options.httpPort,
66
+ hostname: options.host,
67
+ authTokens,
68
+ });
69
+ serverLog.info('bunqueue server started', {
70
+ tcpPort: options.tcpPort,
71
+ httpPort: options.httpPort,
72
+ host: options.host,
73
+ dataPath: options.dataPath ?? 'in-memory',
74
+ auth: authTokens ? 'enabled' : 'disabled',
75
+ });
76
+ console.log(`
77
+ bunqueue server running
78
+
79
+ TCP: ${options.host}:${options.tcpPort}
80
+ HTTP: ${options.host}:${options.httpPort}
81
+ Data: ${options.dataPath ?? 'in-memory'}
82
+ Auth: ${authTokens ? 'enabled' : 'disabled'}
83
+
84
+ Press Ctrl+C to stop
85
+ `);
86
+ // Handle shutdown
87
+ const shutdown = () => {
88
+ serverLog.info('Shutting down...');
89
+ tcpServer.stop();
90
+ httpServer.stop();
91
+ qm.shutdown();
92
+ process.exit(0);
93
+ };
94
+ process.on('SIGINT', shutdown);
95
+ process.on('SIGTERM', shutdown);
96
+ }
97
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/commands/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CLI Command Types
3
+ * Shared types and utilities for command builders
4
+ */
5
+ /** Error thrown when command building fails */
6
+ export declare class CommandError extends Error {
7
+ constructor(message: string);
8
+ }
9
+ /** Require a positional argument */
10
+ export declare function requireArg(args: string[], index: number, name: string): string;
11
+ /** Parse JSON argument safely */
12
+ export declare function parseJsonArg(value: string, name: string): unknown;
13
+ /** Parse number argument */
14
+ export declare function parseNumberArg(value: string | undefined, name: string): number | undefined;
15
+ /** Parse bigint argument (for job IDs) */
16
+ export declare function parseBigIntArg(value: string, name: string): string;
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,oCAAoC;AACpC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED,4BAA4B;AAC5B,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO1F;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMlE"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * CLI Command Types
3
+ * Shared types and utilities for command builders
4
+ */
5
+ /** Error thrown when command building fails */
6
+ export class CommandError extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ this.name = 'CommandError';
10
+ }
11
+ }
12
+ /** Require a positional argument */
13
+ export function requireArg(args, index, name) {
14
+ const value = args[index];
15
+ if (!value) {
16
+ throw new CommandError(`Missing required argument: ${name}`);
17
+ }
18
+ return value;
19
+ }
20
+ /** Parse JSON argument safely */
21
+ export function parseJsonArg(value, name) {
22
+ try {
23
+ return JSON.parse(value);
24
+ }
25
+ catch {
26
+ throw new CommandError(`Invalid JSON for ${name}: ${value}`);
27
+ }
28
+ }
29
+ /** Parse number argument */
30
+ export function parseNumberArg(value, name) {
31
+ if (value === undefined)
32
+ return undefined;
33
+ const num = parseInt(value, 10);
34
+ if (isNaN(num)) {
35
+ throw new CommandError(`Invalid number for ${name}: ${value}`);
36
+ }
37
+ return num;
38
+ }
39
+ /** Parse bigint argument (for job IDs) */
40
+ export function parseBigIntArg(value, name) {
41
+ // Return as string, server will parse it
42
+ if (!/^\d+$/.test(value)) {
43
+ throw new CommandError(`Invalid ID for ${name}: ${value}`);
44
+ }
45
+ return value;
46
+ }
47
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/cli/commands/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,oCAAoC;AACpC,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,KAAa,EAAE,IAAY;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,IAAY;IACtD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,YAAY,CAAC,oBAAoB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,UAAU,cAAc,CAAC,KAAyB,EAAE,IAAY;IACpE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,YAAY,CAAC,sBAAsB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,IAAY;IACxD,yCAAyC;IACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,YAAY,CAAC,kBAAkB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Webhook Command Builders
3
+ * Webhook management operations
4
+ */
5
+ /** Build a webhook subcommand */
6
+ export declare function buildWebhookCommand(args: string[]): Record<string, unknown>;
7
+ //# sourceMappingURL=webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/webhook.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,iCAAiC;AACjC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAc3E"}