@qodalis/cli-server-node 1.0.0-beta.1 → 1.0.0-beta.3

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 (212) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +456 -28
  3. package/dist/src/abstractions/cli-command-author.d.ts +2 -0
  4. package/dist/src/abstractions/cli-command-author.d.ts.map +1 -0
  5. package/dist/src/abstractions/cli-command-author.js +7 -0
  6. package/dist/src/abstractions/cli-command-author.js.map +1 -0
  7. package/dist/src/abstractions/cli-command-parameter-descriptor.d.ts +2 -0
  8. package/dist/src/abstractions/cli-command-parameter-descriptor.d.ts.map +1 -0
  9. package/dist/src/abstractions/cli-command-parameter-descriptor.js +6 -0
  10. package/dist/src/abstractions/cli-command-parameter-descriptor.js.map +1 -0
  11. package/dist/src/abstractions/cli-command-processor.d.ts +2 -0
  12. package/dist/src/abstractions/cli-command-processor.d.ts.map +1 -0
  13. package/dist/src/abstractions/cli-command-processor.js +6 -0
  14. package/dist/src/abstractions/cli-command-processor.js.map +1 -0
  15. package/dist/src/abstractions/cli-process-command.d.ts +2 -0
  16. package/dist/src/abstractions/cli-process-command.d.ts.map +1 -0
  17. package/dist/src/abstractions/cli-process-command.js.map +1 -0
  18. package/dist/src/abstractions/index.d.ts +2 -0
  19. package/dist/src/abstractions/index.d.ts.map +1 -0
  20. package/dist/src/abstractions/index.js +10 -0
  21. package/dist/src/abstractions/index.js.map +1 -0
  22. package/dist/src/controllers/cli-controller-v2.d.ts +4 -0
  23. package/dist/src/controllers/cli-controller-v2.d.ts.map +1 -0
  24. package/dist/{controllers/cli-controller.js → src/controllers/cli-controller-v2.js} +9 -5
  25. package/dist/src/controllers/cli-controller-v2.js.map +1 -0
  26. package/dist/src/controllers/cli-controller.d.ts.map +1 -0
  27. package/dist/src/controllers/cli-controller.js +94 -0
  28. package/dist/src/controllers/cli-controller.js.map +1 -0
  29. package/dist/src/controllers/cli-version-controller.d.ts +3 -0
  30. package/dist/src/controllers/cli-version-controller.d.ts.map +1 -0
  31. package/dist/src/controllers/cli-version-controller.js +68 -0
  32. package/dist/src/controllers/cli-version-controller.js.map +1 -0
  33. package/dist/src/controllers/filesystem-controller.d.ts +8 -0
  34. package/dist/src/controllers/filesystem-controller.d.ts.map +1 -0
  35. package/dist/src/controllers/filesystem-controller.js +151 -0
  36. package/dist/src/controllers/filesystem-controller.js.map +1 -0
  37. package/dist/{create-cli-server.d.ts → src/create-cli-server.d.ts} +1 -1
  38. package/dist/src/create-cli-server.d.ts.map +1 -0
  39. package/dist/src/create-cli-server.js +57 -0
  40. package/dist/src/create-cli-server.js.map +1 -0
  41. package/dist/src/extensions/cli-builder.d.ts +18 -0
  42. package/dist/src/extensions/cli-builder.d.ts.map +1 -0
  43. package/dist/src/extensions/cli-builder.js +40 -0
  44. package/dist/src/extensions/cli-builder.js.map +1 -0
  45. package/dist/src/extensions/index.d.ts.map +1 -0
  46. package/dist/src/extensions/index.js.map +1 -0
  47. package/dist/src/filesystem/filesystem-options.d.ts +5 -0
  48. package/dist/src/filesystem/filesystem-options.d.ts.map +1 -0
  49. package/dist/src/filesystem/filesystem-options.js +3 -0
  50. package/dist/src/filesystem/filesystem-options.js.map +1 -0
  51. package/dist/src/filesystem/filesystem-path-validator.d.ts +15 -0
  52. package/dist/src/filesystem/filesystem-path-validator.d.ts.map +1 -0
  53. package/dist/src/filesystem/filesystem-path-validator.js +72 -0
  54. package/dist/src/filesystem/filesystem-path-validator.js.map +1 -0
  55. package/dist/src/filesystem/index.d.ts +3 -0
  56. package/dist/src/filesystem/index.d.ts.map +1 -0
  57. package/dist/src/filesystem/index.js +6 -0
  58. package/dist/src/filesystem/index.js.map +1 -0
  59. package/dist/src/index.d.ts +23 -0
  60. package/dist/src/index.d.ts.map +1 -0
  61. package/dist/src/index.js +80 -0
  62. package/dist/src/index.js.map +1 -0
  63. package/dist/{models → src/models}/cli-server-command-descriptor.d.ts +1 -0
  64. package/dist/src/models/cli-server-command-descriptor.d.ts.map +1 -0
  65. package/dist/src/models/cli-server-command-descriptor.js.map +1 -0
  66. package/dist/src/models/cli-server-output.d.ts.map +1 -0
  67. package/dist/src/models/cli-server-output.js.map +1 -0
  68. package/dist/src/models/cli-server-response.d.ts.map +1 -0
  69. package/dist/src/models/cli-server-response.js.map +1 -0
  70. package/dist/src/models/index.d.ts.map +1 -0
  71. package/dist/{models → src/models}/index.js.map +1 -1
  72. package/dist/src/processors/cli-base64-command-processor.d.ts.map +1 -0
  73. package/dist/src/processors/cli-base64-command-processor.js.map +1 -0
  74. package/dist/src/processors/cli-echo-command-processor.d.ts.map +1 -0
  75. package/dist/src/processors/cli-echo-command-processor.js.map +1 -0
  76. package/dist/src/processors/cli-hash-command-processor.d.ts.map +1 -0
  77. package/dist/src/processors/cli-hash-command-processor.js.map +1 -0
  78. package/dist/src/processors/cli-http-command-processor.d.ts.map +1 -0
  79. package/dist/src/processors/cli-http-command-processor.js.map +1 -0
  80. package/dist/src/processors/cli-status-command-processor.d.ts.map +1 -0
  81. package/dist/src/processors/cli-status-command-processor.js.map +1 -0
  82. package/dist/src/processors/cli-system-command-processor.d.ts.map +1 -0
  83. package/dist/src/processors/cli-system-command-processor.js.map +1 -0
  84. package/dist/src/processors/cli-uuid-command-processor.d.ts.map +1 -0
  85. package/dist/src/processors/cli-uuid-command-processor.js.map +1 -0
  86. package/dist/src/processors/index.d.ts.map +1 -0
  87. package/dist/src/processors/index.js.map +1 -0
  88. package/dist/{server.d.ts.map → src/server.d.ts.map} +1 -1
  89. package/dist/{server.js → src/server.js} +7 -4
  90. package/dist/src/server.js.map +1 -0
  91. package/dist/src/services/cli-command-executor-service.d.ts.map +1 -0
  92. package/dist/src/services/cli-command-executor-service.js.map +1 -0
  93. package/dist/src/services/cli-command-registry.d.ts.map +1 -0
  94. package/dist/src/services/cli-command-registry.js.map +1 -0
  95. package/dist/{services → src/services}/cli-event-socket-manager.d.ts +9 -1
  96. package/dist/src/services/cli-event-socket-manager.d.ts.map +1 -0
  97. package/dist/src/services/cli-event-socket-manager.js +103 -0
  98. package/dist/src/services/cli-event-socket-manager.js.map +1 -0
  99. package/dist/src/services/cli-response-builder.d.ts.map +1 -0
  100. package/dist/src/services/cli-response-builder.js.map +1 -0
  101. package/dist/src/services/cli-shell-session-manager.d.ts +8 -0
  102. package/dist/src/services/cli-shell-session-manager.d.ts.map +1 -0
  103. package/dist/src/services/cli-shell-session-manager.js +168 -0
  104. package/dist/src/services/cli-shell-session-manager.js.map +1 -0
  105. package/dist/{services → src/services}/index.d.ts +1 -0
  106. package/dist/src/services/index.d.ts.map +1 -0
  107. package/dist/{services → src/services}/index.js +3 -1
  108. package/dist/src/services/index.js.map +1 -0
  109. package/package.json +26 -6
  110. package/dist/abstractions/cli-command-author.d.ts +0 -11
  111. package/dist/abstractions/cli-command-author.d.ts.map +0 -1
  112. package/dist/abstractions/cli-command-author.js +0 -14
  113. package/dist/abstractions/cli-command-author.js.map +0 -1
  114. package/dist/abstractions/cli-command-parameter-descriptor.d.ts +0 -18
  115. package/dist/abstractions/cli-command-parameter-descriptor.d.ts.map +0 -1
  116. package/dist/abstractions/cli-command-parameter-descriptor.js +0 -21
  117. package/dist/abstractions/cli-command-parameter-descriptor.js.map +0 -1
  118. package/dist/abstractions/cli-command-processor.d.ts +0 -26
  119. package/dist/abstractions/cli-command-processor.d.ts.map +0 -1
  120. package/dist/abstractions/cli-command-processor.js +0 -14
  121. package/dist/abstractions/cli-command-processor.js.map +0 -1
  122. package/dist/abstractions/cli-process-command.d.ts +0 -9
  123. package/dist/abstractions/cli-process-command.d.ts.map +0 -1
  124. package/dist/abstractions/cli-process-command.js.map +0 -1
  125. package/dist/abstractions/index.d.ts +0 -5
  126. package/dist/abstractions/index.d.ts.map +0 -1
  127. package/dist/abstractions/index.js +0 -11
  128. package/dist/abstractions/index.js.map +0 -1
  129. package/dist/controllers/cli-controller.d.ts.map +0 -1
  130. package/dist/controllers/cli-controller.js.map +0 -1
  131. package/dist/create-cli-server.d.ts.map +0 -1
  132. package/dist/create-cli-server.js +0 -35
  133. package/dist/create-cli-server.js.map +0 -1
  134. package/dist/extensions/cli-builder.d.ts +0 -9
  135. package/dist/extensions/cli-builder.d.ts.map +0 -1
  136. package/dist/extensions/cli-builder.js +0 -18
  137. package/dist/extensions/cli-builder.js.map +0 -1
  138. package/dist/extensions/index.d.ts.map +0 -1
  139. package/dist/extensions/index.js.map +0 -1
  140. package/dist/index.d.ts +0 -14
  141. package/dist/index.d.ts.map +0 -1
  142. package/dist/index.js +0 -40
  143. package/dist/index.js.map +0 -1
  144. package/dist/models/cli-server-command-descriptor.d.ts.map +0 -1
  145. package/dist/models/cli-server-command-descriptor.js.map +0 -1
  146. package/dist/models/cli-server-output.d.ts.map +0 -1
  147. package/dist/models/cli-server-output.js.map +0 -1
  148. package/dist/models/cli-server-response.d.ts.map +0 -1
  149. package/dist/models/cli-server-response.js.map +0 -1
  150. package/dist/models/index.d.ts.map +0 -1
  151. package/dist/processors/cli-base64-command-processor.d.ts.map +0 -1
  152. package/dist/processors/cli-base64-command-processor.js.map +0 -1
  153. package/dist/processors/cli-echo-command-processor.d.ts.map +0 -1
  154. package/dist/processors/cli-echo-command-processor.js.map +0 -1
  155. package/dist/processors/cli-hash-command-processor.d.ts.map +0 -1
  156. package/dist/processors/cli-hash-command-processor.js.map +0 -1
  157. package/dist/processors/cli-http-command-processor.d.ts.map +0 -1
  158. package/dist/processors/cli-http-command-processor.js.map +0 -1
  159. package/dist/processors/cli-status-command-processor.d.ts.map +0 -1
  160. package/dist/processors/cli-status-command-processor.js.map +0 -1
  161. package/dist/processors/cli-system-command-processor.d.ts.map +0 -1
  162. package/dist/processors/cli-system-command-processor.js.map +0 -1
  163. package/dist/processors/cli-uuid-command-processor.d.ts.map +0 -1
  164. package/dist/processors/cli-uuid-command-processor.js.map +0 -1
  165. package/dist/processors/index.d.ts.map +0 -1
  166. package/dist/processors/index.js.map +0 -1
  167. package/dist/server.js.map +0 -1
  168. package/dist/services/cli-command-executor-service.d.ts.map +0 -1
  169. package/dist/services/cli-command-executor-service.js.map +0 -1
  170. package/dist/services/cli-command-registry.d.ts.map +0 -1
  171. package/dist/services/cli-command-registry.js.map +0 -1
  172. package/dist/services/cli-event-socket-manager.d.ts.map +0 -1
  173. package/dist/services/cli-event-socket-manager.js +0 -60
  174. package/dist/services/cli-event-socket-manager.js.map +0 -1
  175. package/dist/services/cli-response-builder.d.ts.map +0 -1
  176. package/dist/services/cli-response-builder.js.map +0 -1
  177. package/dist/services/index.d.ts.map +0 -1
  178. package/dist/services/index.js.map +0 -1
  179. /package/dist/{abstractions → src/abstractions}/cli-process-command.js +0 -0
  180. /package/dist/{controllers → src/controllers}/cli-controller.d.ts +0 -0
  181. /package/dist/{extensions → src/extensions}/index.d.ts +0 -0
  182. /package/dist/{extensions → src/extensions}/index.js +0 -0
  183. /package/dist/{models → src/models}/cli-server-command-descriptor.js +0 -0
  184. /package/dist/{models → src/models}/cli-server-output.d.ts +0 -0
  185. /package/dist/{models → src/models}/cli-server-output.js +0 -0
  186. /package/dist/{models → src/models}/cli-server-response.d.ts +0 -0
  187. /package/dist/{models → src/models}/cli-server-response.js +0 -0
  188. /package/dist/{models → src/models}/index.d.ts +0 -0
  189. /package/dist/{models → src/models}/index.js +0 -0
  190. /package/dist/{processors → src/processors}/cli-base64-command-processor.d.ts +0 -0
  191. /package/dist/{processors → src/processors}/cli-base64-command-processor.js +0 -0
  192. /package/dist/{processors → src/processors}/cli-echo-command-processor.d.ts +0 -0
  193. /package/dist/{processors → src/processors}/cli-echo-command-processor.js +0 -0
  194. /package/dist/{processors → src/processors}/cli-hash-command-processor.d.ts +0 -0
  195. /package/dist/{processors → src/processors}/cli-hash-command-processor.js +0 -0
  196. /package/dist/{processors → src/processors}/cli-http-command-processor.d.ts +0 -0
  197. /package/dist/{processors → src/processors}/cli-http-command-processor.js +0 -0
  198. /package/dist/{processors → src/processors}/cli-status-command-processor.d.ts +0 -0
  199. /package/dist/{processors → src/processors}/cli-status-command-processor.js +0 -0
  200. /package/dist/{processors → src/processors}/cli-system-command-processor.d.ts +0 -0
  201. /package/dist/{processors → src/processors}/cli-system-command-processor.js +0 -0
  202. /package/dist/{processors → src/processors}/cli-uuid-command-processor.d.ts +0 -0
  203. /package/dist/{processors → src/processors}/cli-uuid-command-processor.js +0 -0
  204. /package/dist/{processors → src/processors}/index.d.ts +0 -0
  205. /package/dist/{processors → src/processors}/index.js +0 -0
  206. /package/dist/{server.d.ts → src/server.d.ts} +0 -0
  207. /package/dist/{services → src/services}/cli-command-executor-service.d.ts +0 -0
  208. /package/dist/{services → src/services}/cli-command-executor-service.js +0 -0
  209. /package/dist/{services → src/services}/cli-command-registry.d.ts +0 -0
  210. /package/dist/{services → src/services}/cli-command-registry.js +0 -0
  211. /package/dist/{services → src/services}/cli-response-builder.d.ts +0 -0
  212. /package/dist/{services → src/services}/cli-response-builder.js +0 -0
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CliShellSessionManager = void 0;
37
+ const ws_1 = require("ws");
38
+ const os = __importStar(require("os"));
39
+ const path = __importStar(require("path"));
40
+ // Lazy-load node-pty so that importing this module does not fail when the
41
+ // native add-on is unavailable (e.g. in CI environments without build tools).
42
+ let _pty;
43
+ function getPty() {
44
+ if (!_pty) {
45
+ try {
46
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
47
+ _pty = require('node-pty');
48
+ }
49
+ catch (err) {
50
+ throw new Error(`node-pty is required for shell sessions but failed to load: ${err.message}`);
51
+ }
52
+ }
53
+ return _pty;
54
+ }
55
+ class CliShellSessionManager {
56
+ async handleSession(ws, cols, rows, command) {
57
+ const { shell, args } = this.getShellInfo(command);
58
+ const nodePty = getPty();
59
+ let ptyProcess;
60
+ try {
61
+ ptyProcess = nodePty.spawn(shell, args, {
62
+ name: 'xterm-256color',
63
+ cols,
64
+ rows,
65
+ cwd: os.homedir(),
66
+ env: { ...process.env, TERM: 'xterm-256color' },
67
+ });
68
+ }
69
+ catch (err) {
70
+ this.send(ws, { type: 'error', message: err.message });
71
+ ws.close();
72
+ return;
73
+ }
74
+ const detectedOs = os.platform() === 'win32'
75
+ ? 'win32'
76
+ : os.platform() === 'darwin'
77
+ ? 'darwin'
78
+ : 'linux';
79
+ this.send(ws, {
80
+ type: 'ready',
81
+ shell: path.basename(shell),
82
+ os: detectedOs,
83
+ });
84
+ ptyProcess.onData((data) => {
85
+ this.send(ws, { type: 'stdout', data });
86
+ });
87
+ ptyProcess.onExit(({ exitCode }) => {
88
+ this.send(ws, { type: 'exit', code: exitCode });
89
+ if (ws.readyState === ws_1.WebSocket.OPEN) {
90
+ ws.close();
91
+ }
92
+ });
93
+ ws.on('message', (raw) => {
94
+ try {
95
+ const msg = JSON.parse(raw.toString());
96
+ switch (msg.type) {
97
+ case 'stdin':
98
+ ptyProcess.write(msg.data);
99
+ break;
100
+ case 'resize':
101
+ ptyProcess.resize(msg.cols, msg.rows);
102
+ break;
103
+ }
104
+ }
105
+ catch {
106
+ // Ignore malformed messages
107
+ }
108
+ });
109
+ ws.on('close', () => {
110
+ try {
111
+ ptyProcess.kill();
112
+ }
113
+ catch {
114
+ // Already exited
115
+ }
116
+ });
117
+ ws.on('error', () => {
118
+ try {
119
+ ptyProcess.kill();
120
+ }
121
+ catch {
122
+ // Already exited
123
+ }
124
+ });
125
+ }
126
+ getShellInfo(command) {
127
+ if (os.platform() === 'win32') {
128
+ const shell = 'powershell.exe';
129
+ return command
130
+ ? { shell, args: ['-Command', command] }
131
+ : { shell, args: [] };
132
+ }
133
+ const shell = this.detectShell();
134
+ return command
135
+ ? { shell, args: ['-c', command] }
136
+ : { shell, args: [] };
137
+ }
138
+ detectShell() {
139
+ const envShell = process.env.SHELL;
140
+ if (envShell) {
141
+ try {
142
+ require('fs').accessSync(envShell, require('fs').constants.X_OK);
143
+ return envShell;
144
+ }
145
+ catch {
146
+ // SHELL env var points to non-existent binary, fall through
147
+ }
148
+ }
149
+ const candidates = ['/bin/bash', '/usr/bin/bash', '/bin/sh'];
150
+ for (const candidate of candidates) {
151
+ try {
152
+ require('fs').accessSync(candidate, require('fs').constants.X_OK);
153
+ return candidate;
154
+ }
155
+ catch {
156
+ continue;
157
+ }
158
+ }
159
+ return '/bin/sh';
160
+ }
161
+ send(ws, msg) {
162
+ if (ws.readyState === ws_1.WebSocket.OPEN) {
163
+ ws.send(JSON.stringify(msg));
164
+ }
165
+ }
166
+ }
167
+ exports.CliShellSessionManager = CliShellSessionManager;
168
+ //# sourceMappingURL=cli-shell-session-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-shell-session-manager.js","sourceRoot":"","sources":["../../../src/services/cli-shell-session-manager.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,5 @@ export { ICliCommandRegistry, CliCommandRegistry } from './cli-command-registry'
2
2
  export { ICliResponseBuilder, CliResponseBuilder } from './cli-response-builder';
3
3
  export { ICliCommandExecutorService, CliCommandExecutorService } from './cli-command-executor-service';
4
4
  export { CliEventSocketManager } from './cli-event-socket-manager';
5
+ export { CliShellSessionManager } from './cli-shell-session-manager';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CliEventSocketManager = exports.CliCommandExecutorService = exports.CliResponseBuilder = exports.CliCommandRegistry = void 0;
3
+ exports.CliShellSessionManager = exports.CliEventSocketManager = exports.CliCommandExecutorService = exports.CliResponseBuilder = exports.CliCommandRegistry = void 0;
4
4
  var cli_command_registry_1 = require("./cli-command-registry");
5
5
  Object.defineProperty(exports, "CliCommandRegistry", { enumerable: true, get: function () { return cli_command_registry_1.CliCommandRegistry; } });
6
6
  var cli_response_builder_1 = require("./cli-response-builder");
@@ -9,4 +9,6 @@ var cli_command_executor_service_1 = require("./cli-command-executor-service");
9
9
  Object.defineProperty(exports, "CliCommandExecutorService", { enumerable: true, get: function () { return cli_command_executor_service_1.CliCommandExecutorService; } });
10
10
  var cli_event_socket_manager_1 = require("./cli-event-socket-manager");
11
11
  Object.defineProperty(exports, "CliEventSocketManager", { enumerable: true, get: function () { return cli_event_socket_manager_1.CliEventSocketManager; } });
12
+ var cli_shell_session_manager_1 = require("./cli-shell-session-manager");
13
+ Object.defineProperty(exports, "CliShellSessionManager", { enumerable: true, get: function () { return cli_shell_session_manager_1.CliShellSessionManager; } });
12
14
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;AAAA,+DAAiF;AAAnD,0HAAA,kBAAkB,OAAA;AAChD,+DAAiF;AAAnD,0HAAA,kBAAkB,OAAA;AAChD,+EAAuG;AAAlE,yIAAA,yBAAyB,OAAA;AAC9D,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAC9B,yEAAqE;AAA5D,mIAAA,sBAAsB,OAAA"}
package/package.json CHANGED
@@ -1,21 +1,25 @@
1
1
  {
2
2
  "name": "@qodalis/cli-server-node",
3
- "version": "1.0.0-beta.1",
3
+ "version": "1.0.0-beta.3",
4
4
  "description": "Node.js CLI server for Qodalis CLI ecosystem — use as a library in existing Express apps or run standalone",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
5
+ "main": "dist/src/index.js",
6
+ "types": "dist/src/index.d.ts",
7
7
  "bin": {
8
- "qodalis-cli-server": "dist/server.js"
8
+ "qodalis-cli-server": "dist/src/server.js"
9
9
  },
10
10
  "files": [
11
11
  "dist",
12
+ "!dist/src/__tests__",
13
+ "!dist/plugins",
12
14
  "LICENSE",
13
15
  "README.md"
14
16
  ],
15
17
  "scripts": {
16
18
  "build": "tsc",
17
19
  "start": "tsx src/server.ts",
18
- "dev": "tsx watch src/server.ts"
20
+ "dev": "tsx watch src/server.ts",
21
+ "test": "vitest run",
22
+ "test:watch": "vitest"
19
23
  },
20
24
  "keywords": [
21
25
  "cli",
@@ -33,16 +37,32 @@
33
37
  },
34
38
  "homepage": "https://qodalis.com/",
35
39
  "dependencies": {
40
+ "@qodalis/cli-server-abstractions": "file:packages/abstractions",
41
+ "@qodalis/cli-server-plugin-filesystem": "file:plugins/filesystem",
42
+ "@qodalis/cli-server-plugin-jobs": "file:plugins/jobs",
36
43
  "cors": "^2.8.5",
37
44
  "express": "^4.21.0",
45
+ "multer": "^2.1.0",
46
+ "node-pty": "^1.1.0",
38
47
  "ws": "^8.18.0"
39
48
  },
49
+ "optionalDependencies": {
50
+ "@qodalis/cli-server-plugin-filesystem-json": "file:plugins/filesystem-json",
51
+ "@qodalis/cli-server-plugin-filesystem-s3": "file:plugins/filesystem-s3",
52
+ "@qodalis/cli-server-plugin-filesystem-sqlite": "file:plugins/filesystem-sqlite",
53
+ "better-sqlite3": "^11.0.0"
54
+ },
40
55
  "devDependencies": {
56
+ "@types/better-sqlite3": "^7.6.0",
41
57
  "@types/cors": "^2.8.17",
42
58
  "@types/express": "^4.17.21",
59
+ "@types/multer": "^2.0.0",
43
60
  "@types/node": "^22.0.0",
61
+ "@types/supertest": "^7.2.0",
44
62
  "@types/ws": "^8.5.13",
63
+ "supertest": "^7.2.2",
45
64
  "tsx": "^4.19.0",
46
- "typescript": "^5.6.0"
65
+ "typescript": "^5.6.0",
66
+ "vitest": "^4.0.18"
47
67
  }
48
68
  }
@@ -1,11 +0,0 @@
1
- export interface ICliCommandAuthor {
2
- name: string;
3
- email: string;
4
- }
5
- export declare class CliCommandAuthor implements ICliCommandAuthor {
6
- name: string;
7
- email: string;
8
- constructor(name: string, email: string);
9
- }
10
- export declare const DefaultLibraryAuthor: ICliCommandAuthor;
11
- //# sourceMappingURL=cli-command-author.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-command-author.d.ts","sourceRoot":"","sources":["../../src/abstractions/cli-command-author.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IAE3C,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;gBADb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM;CAE3B;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAGlC,CAAC"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultLibraryAuthor = exports.CliCommandAuthor = void 0;
4
- class CliCommandAuthor {
5
- name;
6
- email;
7
- constructor(name, email) {
8
- this.name = name;
9
- this.email = email;
10
- }
11
- }
12
- exports.CliCommandAuthor = CliCommandAuthor;
13
- exports.DefaultLibraryAuthor = new CliCommandAuthor('Nicolae Lupei', 'nicolae.lupei@qodalis.com');
14
- //# sourceMappingURL=cli-command-author.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-command-author.js","sourceRoot":"","sources":["../../src/abstractions/cli-command-author.ts"],"names":[],"mappings":";;;AAKA,MAAa,gBAAgB;IAEd;IACA;IAFX,YACW,IAAY,EACZ,KAAa;QADb,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;IACrB,CAAC;CACP;AALD,4CAKC;AAEY,QAAA,oBAAoB,GAAsB,IAAI,gBAAgB,CACvE,eAAe,EACf,2BAA2B,CAC9B,CAAC"}
@@ -1,18 +0,0 @@
1
- export interface ICliCommandParameterDescriptor {
2
- name: string;
3
- aliases?: string[];
4
- description: string;
5
- required: boolean;
6
- type: string;
7
- defaultValue?: any;
8
- }
9
- export declare class CliCommandParameterDescriptor implements ICliCommandParameterDescriptor {
10
- name: string;
11
- description: string;
12
- required: boolean;
13
- type: string;
14
- aliases?: string[] | undefined;
15
- defaultValue?: any | undefined;
16
- constructor(name: string, description: string, required?: boolean, type?: string, aliases?: string[] | undefined, defaultValue?: any | undefined);
17
- }
18
- //# sourceMappingURL=cli-command-parameter-descriptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-command-parameter-descriptor.d.ts","sourceRoot":"","sources":["../../src/abstractions/cli-command-parameter-descriptor.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AAED,qBAAa,6BAA8B,YAAW,8BAA8B;IAErE,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,MAAM;IACZ,OAAO,CAAC,EAAE,MAAM,EAAE;IAClB,YAAY,CAAC,EAAE,GAAG;gBALlB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,OAAe,EACzB,IAAI,GAAE,MAAiB,EACvB,OAAO,CAAC,EAAE,MAAM,EAAE,YAAA,EAClB,YAAY,CAAC,EAAE,GAAG,YAAA;CAEhC"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CliCommandParameterDescriptor = void 0;
4
- class CliCommandParameterDescriptor {
5
- name;
6
- description;
7
- required;
8
- type;
9
- aliases;
10
- defaultValue;
11
- constructor(name, description, required = false, type = 'string', aliases, defaultValue) {
12
- this.name = name;
13
- this.description = description;
14
- this.required = required;
15
- this.type = type;
16
- this.aliases = aliases;
17
- this.defaultValue = defaultValue;
18
- }
19
- }
20
- exports.CliCommandParameterDescriptor = CliCommandParameterDescriptor;
21
- //# sourceMappingURL=cli-command-parameter-descriptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-command-parameter-descriptor.js","sourceRoot":"","sources":["../../src/abstractions/cli-command-parameter-descriptor.ts"],"names":[],"mappings":";;;AASA,MAAa,6BAA6B;IAE3B;IACA;IACA;IACA;IACA;IACA;IANX,YACW,IAAY,EACZ,WAAmB,EACnB,WAAoB,KAAK,EACzB,OAAe,QAAQ,EACvB,OAAkB,EAClB,YAAkB;QALlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,SAAI,GAAJ,IAAI,CAAmB;QACvB,YAAO,GAAP,OAAO,CAAW;QAClB,iBAAY,GAAZ,YAAY,CAAM;IAC1B,CAAC;CACP;AATD,sEASC"}
@@ -1,26 +0,0 @@
1
- import { ICliCommandAuthor } from './cli-command-author';
2
- import { ICliCommandParameterDescriptor } from './cli-command-parameter-descriptor';
3
- import { CliProcessCommand } from './cli-process-command';
4
- export interface ICliCommandProcessor {
5
- command: string;
6
- description: string;
7
- author: ICliCommandAuthor;
8
- allowUnlistedCommands?: boolean;
9
- valueRequired?: boolean;
10
- version: string;
11
- processors?: ICliCommandProcessor[];
12
- parameters?: ICliCommandParameterDescriptor[];
13
- handleAsync(command: CliProcessCommand): Promise<string>;
14
- }
15
- export declare abstract class CliCommandProcessor implements ICliCommandProcessor {
16
- abstract command: string;
17
- abstract description: string;
18
- author: ICliCommandAuthor;
19
- allowUnlistedCommands?: boolean;
20
- valueRequired?: boolean;
21
- version: string;
22
- processors?: ICliCommandProcessor[];
23
- parameters?: ICliCommandParameterDescriptor[];
24
- abstract handleAsync(command: CliProcessCommand): Promise<string>;
25
- }
26
- //# sourceMappingURL=cli-command-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-command-processor.d.ts","sourceRoot":"","sources":["../../src/abstractions/cli-command-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAwB,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,8BAA8B,EAAE,CAAC;IAC9C,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAED,8BAAsB,mBAAoB,YAAW,oBAAoB;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAwB;IACjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAW;IAC1B,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,8BAA8B,EAAE,CAAC;IAE9C,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;CACpE"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CliCommandProcessor = void 0;
4
- const cli_command_author_1 = require("./cli-command-author");
5
- class CliCommandProcessor {
6
- author = cli_command_author_1.DefaultLibraryAuthor;
7
- allowUnlistedCommands;
8
- valueRequired;
9
- version = '1.0.0';
10
- processors;
11
- parameters;
12
- }
13
- exports.CliCommandProcessor = CliCommandProcessor;
14
- //# sourceMappingURL=cli-command-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-command-processor.js","sourceRoot":"","sources":["../../src/abstractions/cli-command-processor.ts"],"names":[],"mappings":";;;AAAA,6DAA+E;AAgB/E,MAAsB,mBAAmB;IAGrC,MAAM,GAAsB,yCAAoB,CAAC;IACjD,qBAAqB,CAAW;IAChC,aAAa,CAAW;IACxB,OAAO,GAAW,OAAO,CAAC;IAC1B,UAAU,CAA0B;IACpC,UAAU,CAAoC;CAGjD;AAXD,kDAWC"}
@@ -1,9 +0,0 @@
1
- export interface CliProcessCommand {
2
- command: string;
3
- data?: any;
4
- chainCommands: string[];
5
- rawCommand: string;
6
- value?: string;
7
- args: Record<string, any>;
8
- }
9
- //# sourceMappingURL=cli-process-command.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-process-command.d.ts","sourceRoot":"","sources":["../../src/abstractions/cli-process-command.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-process-command.js","sourceRoot":"","sources":["../../src/abstractions/cli-process-command.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export { ICliCommandAuthor, CliCommandAuthor, DefaultLibraryAuthor } from './cli-command-author';
2
- export { CliProcessCommand } from './cli-process-command';
3
- export { ICliCommandParameterDescriptor, CliCommandParameterDescriptor } from './cli-command-parameter-descriptor';
4
- export { ICliCommandProcessor, CliCommandProcessor } from './cli-command-processor';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,8BAA8B,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CliCommandProcessor = exports.CliCommandParameterDescriptor = exports.DefaultLibraryAuthor = exports.CliCommandAuthor = void 0;
4
- var cli_command_author_1 = require("./cli-command-author");
5
- Object.defineProperty(exports, "CliCommandAuthor", { enumerable: true, get: function () { return cli_command_author_1.CliCommandAuthor; } });
6
- Object.defineProperty(exports, "DefaultLibraryAuthor", { enumerable: true, get: function () { return cli_command_author_1.DefaultLibraryAuthor; } });
7
- var cli_command_parameter_descriptor_1 = require("./cli-command-parameter-descriptor");
8
- Object.defineProperty(exports, "CliCommandParameterDescriptor", { enumerable: true, get: function () { return cli_command_parameter_descriptor_1.CliCommandParameterDescriptor; } });
9
- var cli_command_processor_1 = require("./cli-command-processor");
10
- Object.defineProperty(exports, "CliCommandProcessor", { enumerable: true, get: function () { return cli_command_processor_1.CliCommandProcessor; } });
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiG;AAArE,sHAAA,gBAAgB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAElE,uFAAmH;AAA1E,iJAAA,6BAA6B,OAAA;AACtE,iEAAoF;AAArD,4HAAA,mBAAmB,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-controller.d.ts","sourceRoot":"","sources":["../../src/controllers/cli-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAE9E,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,0BAA0B,GACrC,MAAM,CAmBR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-controller.js","sourceRoot":"","sources":["../../src/controllers/cli-controller.ts"],"names":[],"mappings":";;AAKA,kDAsBC;AA3BD,qCAAiC;AAKjC,SAAgB,mBAAmB,CAC/B,QAA6B,EAC7B,QAAoC;IAEpC,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACjC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,SAA+B;IACpD,MAAM,UAAU,GAA+B;QAC3C,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,OAAO,EAAE,SAAS,CAAC,OAAO;KAC7B,CAAC;IAEF,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC/B,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAC5C,CAAC,CAAC,EAA0C,EAAE,CAAC,CAAC;YAC5C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,YAAY,EAAE,CAAC,CAAC,YAAY;SAC/B,CAAC,CACL,CAAC;IACN,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAC/B,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-cli-server.d.ts","sourceRoot":"","sources":["../src/create-cli-server.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAA6B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,WAAW,gBAAgB;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;IAClC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,gBAAqB,GAAG;IAC7D,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,UAAU,CAAC;IACpB,kBAAkB,EAAE,qBAAqB,CAAC;CAC7C,CAwBA"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createCliServer = createCliServer;
7
- const express_1 = __importDefault(require("express"));
8
- const cors_1 = __importDefault(require("cors"));
9
- const services_1 = require("./services");
10
- const extensions_1 = require("./extensions");
11
- const cli_controller_1 = require("./controllers/cli-controller");
12
- /**
13
- * Creates a fully configured Express app with CLI routes mounted.
14
- *
15
- * Use this for standalone server mode. For integration into an existing
16
- * Express app, use `createCliController` directly instead.
17
- */
18
- function createCliServer(options = {}) {
19
- const { basePath = '/api/cli', cors: corsOption = true, configure } = options;
20
- const app = (0, express_1.default)();
21
- if (corsOption !== false) {
22
- app.use((0, cors_1.default)(corsOption === true ? undefined : corsOption));
23
- }
24
- app.use(express_1.default.json());
25
- const registry = new services_1.CliCommandRegistry();
26
- const builder = new extensions_1.CliBuilder(registry);
27
- if (configure) {
28
- configure(builder);
29
- }
30
- const executor = new services_1.CliCommandExecutorService(registry);
31
- app.use(basePath, (0, cli_controller_1.createCliController)(registry, executor));
32
- const eventSocketManager = new services_1.CliEventSocketManager();
33
- return { app, registry, builder, eventSocketManager };
34
- }
35
- //# sourceMappingURL=create-cli-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-cli-server.js","sourceRoot":"","sources":["../src/create-cli-server.ts"],"names":[],"mappings":";;;;;AAqBA,0CA6BC;AAlDD,sDAA2C;AAC3C,gDAAwB;AACxB,yCAAkG;AAClG,6CAA0C;AAC1C,iEAAmE;AAWnE;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,UAA4B,EAAE;IAM1D,MAAM,EAAE,QAAQ,GAAG,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9E,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAExB,MAAM,QAAQ,GAAG,IAAI,6BAAkB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,uBAAU,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,SAAS,EAAE,CAAC;QACZ,SAAS,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,oCAAyB,CAAC,QAAQ,CAAC,CAAC;IACzD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAA,oCAAmB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3D,MAAM,kBAAkB,GAAG,IAAI,gCAAqB,EAAE,CAAC;IAEvD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC1D,CAAC"}
@@ -1,9 +0,0 @@
1
- import { ICliCommandProcessor } from '../abstractions';
2
- import { CliCommandRegistry } from '../services';
3
- export declare class CliBuilder {
4
- private readonly _registry;
5
- constructor(registry: CliCommandRegistry);
6
- addProcessor(processor: ICliCommandProcessor): CliBuilder;
7
- get registry(): CliCommandRegistry;
8
- }
9
- //# sourceMappingURL=cli-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-builder.d.ts","sourceRoot":"","sources":["../../src/extensions/cli-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;gBAEnC,QAAQ,EAAE,kBAAkB;IAIxC,YAAY,CAAC,SAAS,EAAE,oBAAoB,GAAG,UAAU;IAKzD,IAAI,QAAQ,IAAI,kBAAkB,CAEjC;CACJ"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CliBuilder = void 0;
4
- class CliBuilder {
5
- _registry;
6
- constructor(registry) {
7
- this._registry = registry;
8
- }
9
- addProcessor(processor) {
10
- this._registry.register(processor);
11
- return this;
12
- }
13
- get registry() {
14
- return this._registry;
15
- }
16
- }
17
- exports.CliBuilder = CliBuilder;
18
- //# sourceMappingURL=cli-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-builder.js","sourceRoot":"","sources":["../../src/extensions/cli-builder.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IACF,SAAS,CAAqB;IAE/C,YAAY,QAA4B;QACpC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,SAA+B;QACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;CACJ;AAfD,gCAeC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
package/dist/index.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export { ICliCommandAuthor, CliCommandAuthor, DefaultLibraryAuthor, CliProcessCommand, ICliCommandParameterDescriptor, CliCommandParameterDescriptor, ICliCommandProcessor, CliCommandProcessor, } from './abstractions';
2
- export { CliServerOutput, CliServerResponse, CliServerCommandDescriptor, CliServerCommandParameterDescriptorDto, } from './models';
3
- export { ICliCommandRegistry, CliCommandRegistry, ICliResponseBuilder, CliResponseBuilder, ICliCommandExecutorService, CliCommandExecutorService, CliEventSocketManager, } from './services';
4
- export { createCliController } from './controllers/cli-controller';
5
- export { CliBuilder } from './extensions';
6
- export { CliEchoCommandProcessor } from './processors/cli-echo-command-processor';
7
- export { CliStatusCommandProcessor } from './processors/cli-status-command-processor';
8
- export { CliSystemCommandProcessor } from './processors/cli-system-command-processor';
9
- export { CliHttpCommandProcessor } from './processors/cli-http-command-processor';
10
- export { CliHashCommandProcessor } from './processors/cli-hash-command-processor';
11
- export { CliBase64CommandProcessor } from './processors/cli-base64-command-processor';
12
- export { CliUuidCommandProcessor } from './processors/cli-uuid-command-processor';
13
- export { createCliServer, CliServerOptions } from './create-cli-server';
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,sCAAsC,GACzC,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/index.js DELETED
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createCliServer = exports.CliUuidCommandProcessor = exports.CliBase64CommandProcessor = exports.CliHashCommandProcessor = exports.CliHttpCommandProcessor = exports.CliSystemCommandProcessor = exports.CliStatusCommandProcessor = exports.CliEchoCommandProcessor = exports.CliBuilder = exports.createCliController = exports.CliEventSocketManager = exports.CliCommandExecutorService = exports.CliResponseBuilder = exports.CliCommandRegistry = exports.CliCommandProcessor = exports.CliCommandParameterDescriptor = exports.DefaultLibraryAuthor = exports.CliCommandAuthor = void 0;
4
- // Abstractions
5
- var abstractions_1 = require("./abstractions");
6
- Object.defineProperty(exports, "CliCommandAuthor", { enumerable: true, get: function () { return abstractions_1.CliCommandAuthor; } });
7
- Object.defineProperty(exports, "DefaultLibraryAuthor", { enumerable: true, get: function () { return abstractions_1.DefaultLibraryAuthor; } });
8
- Object.defineProperty(exports, "CliCommandParameterDescriptor", { enumerable: true, get: function () { return abstractions_1.CliCommandParameterDescriptor; } });
9
- Object.defineProperty(exports, "CliCommandProcessor", { enumerable: true, get: function () { return abstractions_1.CliCommandProcessor; } });
10
- // Services
11
- var services_1 = require("./services");
12
- Object.defineProperty(exports, "CliCommandRegistry", { enumerable: true, get: function () { return services_1.CliCommandRegistry; } });
13
- Object.defineProperty(exports, "CliResponseBuilder", { enumerable: true, get: function () { return services_1.CliResponseBuilder; } });
14
- Object.defineProperty(exports, "CliCommandExecutorService", { enumerable: true, get: function () { return services_1.CliCommandExecutorService; } });
15
- Object.defineProperty(exports, "CliEventSocketManager", { enumerable: true, get: function () { return services_1.CliEventSocketManager; } });
16
- // Controller
17
- var cli_controller_1 = require("./controllers/cli-controller");
18
- Object.defineProperty(exports, "createCliController", { enumerable: true, get: function () { return cli_controller_1.createCliController; } });
19
- // Extensions
20
- var extensions_1 = require("./extensions");
21
- Object.defineProperty(exports, "CliBuilder", { enumerable: true, get: function () { return extensions_1.CliBuilder; } });
22
- // Processors
23
- var cli_echo_command_processor_1 = require("./processors/cli-echo-command-processor");
24
- Object.defineProperty(exports, "CliEchoCommandProcessor", { enumerable: true, get: function () { return cli_echo_command_processor_1.CliEchoCommandProcessor; } });
25
- var cli_status_command_processor_1 = require("./processors/cli-status-command-processor");
26
- Object.defineProperty(exports, "CliStatusCommandProcessor", { enumerable: true, get: function () { return cli_status_command_processor_1.CliStatusCommandProcessor; } });
27
- var cli_system_command_processor_1 = require("./processors/cli-system-command-processor");
28
- Object.defineProperty(exports, "CliSystemCommandProcessor", { enumerable: true, get: function () { return cli_system_command_processor_1.CliSystemCommandProcessor; } });
29
- var cli_http_command_processor_1 = require("./processors/cli-http-command-processor");
30
- Object.defineProperty(exports, "CliHttpCommandProcessor", { enumerable: true, get: function () { return cli_http_command_processor_1.CliHttpCommandProcessor; } });
31
- var cli_hash_command_processor_1 = require("./processors/cli-hash-command-processor");
32
- Object.defineProperty(exports, "CliHashCommandProcessor", { enumerable: true, get: function () { return cli_hash_command_processor_1.CliHashCommandProcessor; } });
33
- var cli_base64_command_processor_1 = require("./processors/cli-base64-command-processor");
34
- Object.defineProperty(exports, "CliBase64CommandProcessor", { enumerable: true, get: function () { return cli_base64_command_processor_1.CliBase64CommandProcessor; } });
35
- var cli_uuid_command_processor_1 = require("./processors/cli-uuid-command-processor");
36
- Object.defineProperty(exports, "CliUuidCommandProcessor", { enumerable: true, get: function () { return cli_uuid_command_processor_1.CliUuidCommandProcessor; } });
37
- // Server factory
38
- var create_cli_server_1 = require("./create-cli-server");
39
- Object.defineProperty(exports, "createCliServer", { enumerable: true, get: function () { return create_cli_server_1.createCliServer; } });
40
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,eAAe;AACf,+CASwB;AAPpB,gHAAA,gBAAgB,OAAA;AAChB,oHAAA,oBAAoB,OAAA;AAGpB,6HAAA,6BAA6B,OAAA;AAE7B,mHAAA,mBAAmB,OAAA;AAWvB,WAAW;AACX,uCAQoB;AANhB,8GAAA,kBAAkB,OAAA;AAElB,8GAAA,kBAAkB,OAAA;AAElB,qHAAA,yBAAyB,OAAA;AACzB,iHAAA,qBAAqB,OAAA;AAGzB,aAAa;AACb,+DAAmE;AAA1D,qHAAA,mBAAmB,OAAA;AAE5B,aAAa;AACb,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,aAAa;AACb,sFAAkF;AAAzE,qIAAA,uBAAuB,OAAA;AAChC,0FAAsF;AAA7E,yIAAA,yBAAyB,OAAA;AAClC,0FAAsF;AAA7E,yIAAA,yBAAyB,OAAA;AAClC,sFAAkF;AAAzE,qIAAA,uBAAuB,OAAA;AAChC,sFAAkF;AAAzE,qIAAA,uBAAuB,OAAA;AAChC,0FAAsF;AAA7E,yIAAA,yBAAyB,OAAA;AAClC,sFAAkF;AAAzE,qIAAA,uBAAuB,OAAA;AAEhC,iBAAiB;AACjB,yDAAwE;AAA/D,oHAAA,eAAe,OAAA"}