@akala/pm 5.2.27 → 5.2.29

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 (48) hide show
  1. package/changelog.md +7 -1
  2. package/dist/cjs/commands/$init.js +9 -2
  3. package/dist/cjs/commands/$init.js.map +1 -1
  4. package/dist/cjs/commands/connect.js +1 -1
  5. package/dist/cjs/commands/connect.js.map +1 -1
  6. package/dist/cjs/commands/start.js +5 -3
  7. package/dist/cjs/commands/start.js.map +1 -1
  8. package/dist/cjs/index.js +1 -2
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/ipc-adapter.js +0 -1
  11. package/dist/cjs/ipc-adapter.js.map +1 -1
  12. package/dist/cjs/new-line-prefixer.js +1 -2
  13. package/dist/cjs/new-line-prefixer.js.map +1 -1
  14. package/dist/cjs/package.json +1 -0
  15. package/dist/cjs/standalone.js +1 -1
  16. package/dist/cjs/standalone.js.map +1 -1
  17. package/dist/esm/cli.js +8 -1
  18. package/dist/esm/cli.js.map +1 -1
  19. package/dist/esm/commands/$init.js +9 -2
  20. package/dist/esm/commands/$init.js.map +1 -1
  21. package/dist/esm/commands/connect.js +1 -1
  22. package/dist/esm/commands/connect.js.map +1 -1
  23. package/dist/esm/commands/start.js +5 -3
  24. package/dist/esm/commands/start.js.map +1 -1
  25. package/dist/esm/fork.js +1 -3
  26. package/dist/esm/fork.js.map +1 -1
  27. package/dist/esm/standalone.js +1 -1
  28. package/dist/esm/standalone.js.map +1 -1
  29. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  30. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  31. package/package.json +15 -11
  32. package/src/cli.ts +11 -1
  33. package/src/commands/$init.ts +12 -2
  34. package/src/commands/connect.ts +1 -1
  35. package/src/commands/start.ts +5 -3
  36. package/src/container.ts +1 -0
  37. package/src/fork.ts +1 -5
  38. package/src/standalone.ts +1 -1
  39. package/tsconfig.cjs.json +6 -0
  40. package/dist/cjs/akala.d.mts +0 -2
  41. package/dist/cjs/akala.mjs +0 -423
  42. package/dist/cjs/akala.mjs.map +0 -1
  43. package/dist/cjs/cli.d.ts +0 -2
  44. package/dist/cjs/cli.js +0 -353
  45. package/dist/cjs/cli.js.map +0 -1
  46. package/dist/cjs/fork.d.ts +0 -2
  47. package/dist/cjs/fork.js +0 -149
  48. package/dist/cjs/fork.js.map +0 -1
package/dist/cjs/cli.js DELETED
@@ -1,353 +0,0 @@
1
- #!/usr/bin/env node
2
- import * as path from 'path';
3
- import { Processors, NetSocketAdapter, Metadata, proxy, Triggers, Cli } from '@akala/commands';
4
- import { Socket } from 'net';
5
- import { TLSSocket } from 'tls';
6
- import { platform, homedir } from 'os';
7
- import start from './commands/start.js';
8
- import { Readable } from 'stream';
9
- import program, { buildCliContextFromProcess, ErrorMessage } from '@akala/cli';
10
- import { Binding } from '@akala/core';
11
- const tableChars = {
12
- 'top': '─',
13
- 'top-mid': '┬',
14
- 'top-left': '┌',
15
- 'top-right': '┐',
16
- 'bottom': '─',
17
- 'bottom-mid': '┴',
18
- 'bottom-left': '└',
19
- 'bottom-right': '┘',
20
- 'left': '│',
21
- 'left-mid': '├',
22
- 'mid': '─',
23
- 'mid-mid': '┼',
24
- 'right': '│',
25
- 'right-mid': '┤',
26
- 'middle': '│'
27
- };
28
- const truncate = '…';
29
- const cli = program.options({ output: { aliases: ['o'], needsValue: true, doc: 'output as `table` if array otherwise falls back to standard node output' }, verbose: { aliases: ['v'] }, tls: { doc: "enables tls connection to the `pmSock`" }, pmSock: { aliases: ['pm-sock'], needsValue: true, doc: "path to the unix socket or destination in the form host:port" }, help: { doc: "displays this help message" } });
30
- cli.command('start pm')
31
- .option('inspect', { doc: "starts the process with --inspect-brk parameter to help debugging" })
32
- .option('keepAttached', { doc: "keeps the process attached" })
33
- .action(c => {
34
- c.options['name'] = 'pm';
35
- c.options['program'] = new URL('../../commands.json', import.meta.url).toString();
36
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
- return start.call({}, null, 'pm', c);
38
- });
39
- let socket;
40
- let processor;
41
- let metaContainer;
42
- let container;
43
- cli.preAction(async (c) => {
44
- process.stdin.pause();
45
- process.stdin.setEncoding('utf8');
46
- if (!socket) {
47
- const netsocket = socket = new Socket();
48
- if (c.options.tls) {
49
- socket = new TLSSocket(netsocket, {});
50
- }
51
- await new Promise((resolve, reject) => {
52
- if (c.options.pmSock) {
53
- if (typeof (c.options.pmSock) == 'string') {
54
- const indexOfColon = c.options.pmSock.indexOf(':');
55
- if (indexOfColon > -1)
56
- netsocket.connect(Number(c.options.pmSock.substring(indexOfColon + 1)), c.options.pmSock.substring(0, indexOfColon));
57
- else
58
- netsocket.connect(c.options.pmSock);
59
- }
60
- else
61
- netsocket.connect(c.options.pmSock);
62
- }
63
- else if (platform() == 'win32')
64
- netsocket.connect('\\\\?\\pipe\\pm');
65
- else {
66
- try {
67
- // eslint-disable-next-line @typescript-eslint/no-var-requires
68
- import(path.join(homedir(), './.pm.config.json'), { assert: { type: 'json' } }).then(config => netsocket.connect(config.default.mapping.pm.connect.socket[0]));
69
- }
70
- catch (e) {
71
- if (e.code != 'MODULE_NOT_FOUND')
72
- reject(e);
73
- else {
74
- e.code = 'ENOENT';
75
- socket.destroy(e);
76
- }
77
- }
78
- }
79
- if (c.options.tls) {
80
- // socket.on('data', function (e) { console.log(e) });
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- socket.connect({});
83
- netsocket.on('error', function (e) {
84
- console.log(e);
85
- });
86
- socket.on('error', function (e) {
87
- console.log(e);
88
- });
89
- }
90
- socket.on('connect', async function () {
91
- resolve();
92
- socket.setEncoding('utf-8');
93
- });
94
- socket.on('error', async (e) => {
95
- if (c.options.help)
96
- resolve();
97
- else {
98
- if (e.code === 'ENOENT') {
99
- // return tryLocalProcessing(c).catch(() =>
100
- // {
101
- resolve();
102
- // reject(new Error('pm is not started'));
103
- // });
104
- }
105
- else
106
- reject(e);
107
- }
108
- });
109
- });
110
- }
111
- if (socket.readyState == 'open') {
112
- if (!processor)
113
- processor = new Processors.JsonRpc(Processors.JsonRpc.getConnection(new NetSocketAdapter(socket)));
114
- if (!metaContainer)
115
- metaContainer = (await import(new URL('../../commands.json', import.meta.url).toString(), { assert: { type: 'json' } })).default;
116
- if (!container) {
117
- container = proxy(metaContainer, processor);
118
- container.unregister(Cli.Metadata.name);
119
- container.register(Metadata.extractCommandMetadata(Cli.Metadata));
120
- await container.attach(Triggers.cli, cli);
121
- }
122
- }
123
- }).
124
- // cli.
125
- // useMiddleware(null, handle).
126
- useError(async (err, args) => {
127
- if (err.code === 'INTERACT') {
128
- console.log(err.message);
129
- const value = await readLine();
130
- if (typeof err.as == 'string') {
131
- const indexOfDot = err.as.indexOf('.');
132
- if (indexOfDot > 0) {
133
- Binding.getSetter(args.options, err.as)(value);
134
- }
135
- args.options[err.as] = value;
136
- }
137
- else
138
- args.args.push(value);
139
- return await cli.process(args);
140
- }
141
- throw err;
142
- });
143
- // handle.action(async args =>
144
- // {
145
- // try
146
- // {
147
- // const cmdName = args.args[0].toString();
148
- // if (cmdName == '$metadata')
149
- // return formatResult(metaContainer, args.options.output);
150
- // else
151
- // {
152
- // const cmd = metaContainer.commands.find(c => c.name === cmdName);
153
- // await tryRun(processor, cmd, args, false);
154
- // }
155
- // await new Promise<void>((resolve) => socket.end(resolve));
156
- // }
157
- // catch (e)
158
- // {
159
- // if (e.code == 'INTERACT')
160
- // {
161
- // console.log(e.message);
162
- // const value = await readLine();
163
- // if (e.as)
164
- // args.options[e] = value;
165
- // else
166
- // args.args.push(value);
167
- // return handle.handle(args).then(e => { if (e) throw e }, res => res);
168
- // }
169
- // if (args.options.verbose)
170
- // console.log(e);
171
- // else
172
- // console.log(e.message)
173
- // await new Promise<void>((resolve) => socket.end(resolve));
174
- // }
175
- // });
176
- cli.format((result, context) => formatResult(result, context.options.output));
177
- program.useError((err, context) => {
178
- if (context.options.verbose)
179
- console.error(err);
180
- else if (err instanceof ErrorMessage)
181
- console.log(err.message);
182
- else
183
- console.error('Error: ' + err.message);
184
- return Promise.reject(err);
185
- });
186
- program.process(buildCliContextFromProcess()).then(result => {
187
- if (result instanceof Readable) {
188
- result.pipe(process.stdout);
189
- return;
190
- }
191
- if (socket)
192
- socket.end();
193
- }, err => {
194
- if (err && !(err instanceof ErrorMessage))
195
- console.error(err);
196
- process.exit(err && err.statusCode || 50);
197
- });
198
- function formatResult(result, outputFormat) {
199
- if (typeof result == 'undefined')
200
- return;
201
- if (result instanceof Readable) {
202
- return result;
203
- }
204
- switch (outputFormat) {
205
- case 'table':
206
- {
207
- const columnNames = [];
208
- const columns = {};
209
- if (Array.isArray(result)) {
210
- for (const r of result) {
211
- Object.keys(r).forEach(k => {
212
- if (columnNames.indexOf(k) == -1)
213
- columnNames.push(k);
214
- });
215
- }
216
- columnNames.forEach(c => {
217
- columns[c] = { maxWidthContent: 0, maxWidth: c.length + 2, values: [] };
218
- for (const r of result) {
219
- if (typeof (r[c]) == 'undefined' || typeof r[c] == 'string' && r[c].length == 0)
220
- columns[c].values.push('');
221
- else if (r[c] == null) {
222
- columns[c].values.push('-');
223
- columns[c].maxWidthContent = Math.max(columns[c].maxWidthContent, 1);
224
- }
225
- else {
226
- columns[c].values.push(r[c].toString());
227
- columns[c].maxWidthContent = Math.max(columns[c].maxWidthContent, r[c].toString().length);
228
- }
229
- columns[c].maxWidth = Math.max(columns[c].maxWidthContent, columns[c].maxWidth);
230
- }
231
- });
232
- let columnNamesForDisplay = columnNames.slice(0);
233
- let width = columnNamesForDisplay.reduce((length, c, i) => columns[columnNames[i]].maxWidth + length, 0) + columnNamesForDisplay.length + 1;
234
- if (process.stdout.columns < width) {
235
- for (const c of columnNames) {
236
- if (columns[c].maxWidthContent == 0)
237
- columnNamesForDisplay = columnNamesForDisplay.splice(columnNamesForDisplay.indexOf(c), 1);
238
- }
239
- width = columnNamesForDisplay.reduce((length, c, i) => columns[columnNames[i]].maxWidth + length, 0) + columnNamesForDisplay.length + 1;
240
- }
241
- if (process.stdout.columns < width) {
242
- columnNamesForDisplay = columnNamesForDisplay.map(c => {
243
- if (c.length > 8 + truncate.length) {
244
- const newName = c.substring(0, 8) + truncate;
245
- columns[c].maxWidth = Math.max(columns[c].maxWidthContent, newName.length);
246
- return newName;
247
- }
248
- return c;
249
- });
250
- width = columnNamesForDisplay.reduce((length, c, i) => columns[columnNames[i]].maxWidth + length, 0) + columnNamesForDisplay.length + 1;
251
- }
252
- if (process.stdout.columns < width) {
253
- columnNamesForDisplay.forEach(c => {
254
- columns[c].maxWidth = Math.max(columns[c].maxWidthContent, c.length);
255
- });
256
- width = columnNamesForDisplay.reduce((length, c, i) => columns[columnNames[i]].maxWidth + length, 0) + columnNamesForDisplay.length + 1;
257
- }
258
- if (process.stdout.columns >= width) {
259
- process.stdout.write(tableChars["top-left"]);
260
- columnNamesForDisplay.forEach((c, i) => {
261
- for (let j = 0; j < columns[columnNames[i]].maxWidth; j++)
262
- process.stdout.write(tableChars["top"]);
263
- if (i == columnNames.length - 1)
264
- process.stdout.write(tableChars["top-right"]);
265
- else
266
- process.stdout.write(tableChars["top-mid"]);
267
- });
268
- process.stdout.write('\n');
269
- process.stdout.write(tableChars["left"]);
270
- columnNamesForDisplay.forEach((c, i) => {
271
- let pad;
272
- for (pad = 0; pad < (columns[columnNames[i]].maxWidth - c.length) / 2; pad++)
273
- process.stdout.write(' ');
274
- process.stdout.write(c);
275
- for (pad += c.length; pad < columns[columnNames[i]].maxWidth; pad++)
276
- process.stdout.write(' ');
277
- if (i == columnNames.length - 1)
278
- process.stdout.write(tableChars["right"]);
279
- else
280
- process.stdout.write(tableChars["middle"]);
281
- });
282
- process.stdout.write('\n');
283
- process.stdout.write(tableChars["left-mid"]);
284
- columnNamesForDisplay.forEach((c, i) => {
285
- for (let j = 0; j < columns[columnNames[i]].maxWidth; j++)
286
- process.stdout.write(tableChars["mid"]);
287
- if (i == columnNames.length - 1)
288
- process.stdout.write(tableChars["right-mid"]);
289
- else
290
- process.stdout.write(tableChars["mid-mid"]);
291
- });
292
- process.stdout.write('\n');
293
- for (let r = 0; r < result.length; r++) {
294
- process.stdout.write(tableChars["left"]);
295
- columnNamesForDisplay.forEach((c, i) => {
296
- const value = columns[columnNames[i]].values[r];
297
- let pad;
298
- for (pad = 0; pad < Math.floor((columns[columnNames[i]].maxWidth - value.length) / 2); pad++)
299
- process.stdout.write(' ');
300
- process.stdout.write(value);
301
- for (pad += value.length; pad < columns[columnNames[i]].maxWidth; pad++)
302
- process.stdout.write(' ');
303
- if (i == columnNames.length - 1)
304
- process.stdout.write(tableChars["right"]);
305
- else
306
- process.stdout.write(tableChars["middle"]);
307
- });
308
- process.stdout.write('\n');
309
- }
310
- process.stdout.write(tableChars["bottom-left"]);
311
- columnNamesForDisplay.forEach((c, i) => {
312
- for (let j = 0; j < columns[columnNames[i]].maxWidth; j++)
313
- process.stdout.write(tableChars["bottom"]);
314
- if (i == columnNames.length - 1)
315
- process.stdout.write(tableChars["bottom-right"]);
316
- else
317
- process.stdout.write(tableChars["bottom-mid"]);
318
- });
319
- process.stdout.write('\n');
320
- return;
321
- }
322
- }
323
- }
324
- // eslint-disable-next-line no-fallthrough
325
- default:
326
- console.log(result);
327
- break;
328
- }
329
- }
330
- let stdinBuffer = '';
331
- function readLine() {
332
- process.stdin.pause();
333
- return new Promise((resolve) => {
334
- process.stdin.on('data', function processChunk(chunk) {
335
- const indexOfNewLine = stdinBuffer.length + chunk.indexOf('\n');
336
- stdinBuffer += chunk;
337
- if (indexOfNewLine > -1) {
338
- process.stdin.pause();
339
- process.stdin.removeListener('data', processChunk);
340
- if (indexOfNewLine < stdinBuffer.length - 1) {
341
- resolve(stdinBuffer.substr(0, indexOfNewLine));
342
- stdinBuffer = stdinBuffer.substr(indexOfNewLine + 1);
343
- }
344
- else {
345
- resolve(stdinBuffer);
346
- stdinBuffer = '';
347
- }
348
- }
349
- });
350
- process.stdin.resume();
351
- });
352
- }
353
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/dist/cjs/fork.js DELETED
@@ -1,149 +0,0 @@
1
- #!/usr/bin/env node
2
- import sms from 'source-map-support';
3
- sms.install();
4
- import * as path from 'path';
5
- import * as ac from '@akala/commands';
6
- import { lstat } from 'fs/promises';
7
- import { IpcAdapter } from "./ipc-adapter.js";
8
- import { logger, MiddlewareComposite, module as coreModule } from '@akala/core';
9
- import program, { buildCliContextFromProcess, ErrorMessage, NamespaceMiddleware } from '@akala/cli';
10
- import { registerCommands, SelfDefinedCommand, parseMetadata } from '@akala/commands';
11
- // import module from 'module'
12
- // const require = module.createRequire(import.meta.url.substring('file://'.length));
13
- var isPm = false;
14
- program.option('help');
15
- let folderOrFile;
16
- let cliContainer;
17
- let processor;
18
- let log;
19
- const logMiddleware = new NamespaceMiddleware(null).option('verbose', { aliases: ['v',] });
20
- logMiddleware.preAction(async (c) => {
21
- if (c.options.verbose)
22
- processor = new ac.Processors.LogProcessor(processor, (cmd, params) => {
23
- log.verbose({ cmd, params });
24
- return Promise.resolve();
25
- });
26
- await ac.Processors.FileSystem.discoverCommands(c.options.program, cliContainer, { processor: processor, isDirectory: folderOrFile.isDirectory() });
27
- });
28
- let initMiddleware = new NamespaceMiddleware(null);
29
- const controller = new AbortController();
30
- program.option('program', { needsValue: true, normalize: true, positional: true, position: 0 }).
31
- option('name', { needsValue: true, positional: true, position: 1, optional: true }).
32
- option('tls', { needsValue: false }).
33
- options({
34
- port: { needsValue: true, doc: 'http/ws port\n(default: 80 if http, 443 is certificate and key are provided)', aliases: ['p'], optional: true, caseSensitive: false },
35
- tcpPort: { needsValue: true, doc: 'tcp port', aliases: ['tcp-port'], optional: true, caseSensitive: false },
36
- cert: { needsValue: true, doc: 'public certificate', aliases: ['certificate'], optional: true, caseSensitive: false },
37
- key: { needsValue: true, doc: 'private certificate key. Requires public certificate', aliases: ['certificate-key'], optional: true, caseSensitive: false }
38
- }).
39
- preAction(async (c) => //If pure js file
40
- {
41
- folderOrFile = await lstat(c.options.program);
42
- if (folderOrFile.isFile() && path.extname(c.options.program) === '.js')
43
- return require(c.options.program);
44
- log = logger(c.options.name);
45
- cliContainer = new ac.Container('cli', {});
46
- if (folderOrFile.isFile())
47
- processor = new ac.Processors.FileSystem(path.dirname(c.options.program));
48
- else
49
- processor = new ac.Processors.FileSystem(c.options.program);
50
- }).
51
- useMiddleware(null, MiddlewareComposite.new(logMiddleware, {
52
- handle: async (c) => {
53
- cliContainer.name = c.options.name;
54
- isPm = c.options.name === 'pm' && 'file://' + c.options.program === new URL('../../commands.json', import.meta.url).toString();
55
- const init = cliContainer.resolve('$init');
56
- if (init && init.config && init.config.cli && init.config.cli.options) {
57
- if (init.config.cli.usage) {
58
- initMiddleware = initMiddleware.command(init.config.cli.usage, init.config?.doc?.description);
59
- c.args.unshift('$init');
60
- }
61
- ac.Triggers.addCliOptions(init, initMiddleware);
62
- }
63
- process.on('unhandledRejection', (x, p) => {
64
- controller.abort(x);
65
- return false;
66
- });
67
- process.on('uncaughtException', (x) => {
68
- controller.abort(x);
69
- return false;
70
- });
71
- process.on('SIGINT', () => controller.abort(null));
72
- initMiddleware.option('pmSocket', { aliases: ['pm-socket', 'pm-sock'], needsValue: true }).action(async (c) => {
73
- let pm;
74
- let pmConnectInfo;
75
- if (!isPm) {
76
- //eslint-disable-next-line @typescript-eslint/no-var-requires
77
- const pmMeta = await import(new URL('../../commands.json', import.meta.url).toString());
78
- if (process.connected) {
79
- pm = new ac.Container('pm', null, new ac.Processors.JsonRpc(ac.Processors.JsonRpc.getConnection(new IpcAdapter(process), cliContainer), true));
80
- registerCommands(pmMeta.commands, null, pm);
81
- }
82
- else {
83
- if (c.options.pmSocket)
84
- pmConnectInfo = parseMetadata(c.options.pmSocket, c.options.tls);
85
- else
86
- pmConnectInfo = ac.serveMetadata('pm', { args: ['local'], options: {} });
87
- const x = await ac.connectByPreference(pmConnectInfo, { metadata: pmMeta, container: cliContainer });
88
- pm = x.container;
89
- pm.processor.useMiddleware(20, x.processor);
90
- const connect = pm.resolve('connect');
91
- pm.unregister('connect');
92
- pm.register(new SelfDefinedCommand((name, param) => {
93
- if (name == 'pm')
94
- return pmConnectInfo;
95
- return x.processor.handle(pm, connect, param).then(e => { throw e; }, r => r);
96
- }, 'connect', [
97
- "param.0",
98
- "$param"
99
- ]));
100
- }
101
- // eslint-disable-next-line @typescript-eslint/no-var-requires
102
- pm.unregister(ac.Cli.Metadata.name);
103
- pm.register(ac.Metadata.extractCommandMetadata(ac.Cli.Metadata));
104
- }
105
- else
106
- pm = cliContainer;
107
- coreModule('@akala/pm').register('container', pm);
108
- cliContainer.register(new SelfDefinedCommand(async (connectionId) => {
109
- if (!pmConnectInfo)
110
- pmConnectInfo = await pm.dispatch('connect', 'pm');
111
- var pm2 = await ac.connectByPreference(pmConnectInfo, { container: cliContainer, metadata: await cliContainer.dispatch('$metadata') });
112
- pm2.container.processor.useMiddleware(20, pm2.processor);
113
- pm2.container.unregister(ac.Cli.Metadata.name);
114
- pm2.container.register(ac.Metadata.extractCommandMetadata(ac.Cli.Metadata));
115
- pm2.container.register(ac.Metadata.extractCommandMetadata(pm.resolve('bridge')));
116
- if (await pm2.container.dispatch('bridge', connectionId))
117
- throw undefined;
118
- }, '$bridge'));
119
- if (init) {
120
- await cliContainer.dispatch(init, { options: c.options, param: c.args, _trigger: 'cli', pm: pm, context: c, signal: controller.signal });
121
- }
122
- try {
123
- const serveArgs = await pm.dispatch('connect', c.options.name);
124
- serveArgs.signal = controller.signal;
125
- await cliContainer.dispatch('$serve', serveArgs);
126
- }
127
- catch (e) {
128
- if (!e || e.statusCode !== 404)
129
- throw e;
130
- console.warn(e.message);
131
- }
132
- if (pm !== cliContainer)
133
- await pm.dispatch('ready');
134
- });
135
- }
136
- }, initMiddleware));
137
- controller.signal.addEventListener('abort', function () {
138
- if (this.reason) {
139
- process.exitCode = 1;
140
- if (this.reason instanceof ErrorMessage)
141
- console.error(this.reason.message);
142
- else
143
- console.error(this.reason);
144
- }
145
- });
146
- program.process(buildCliContextFromProcess()).catch(e => {
147
- setImmediate(() => controller.abort(e));
148
- });
149
- //# sourceMappingURL=fork.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/fork.ts"],"names":[],"mappings":"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"}