@akala/pm 3.3.4 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/fork.js CHANGED
@@ -32,11 +32,12 @@ source_map_support_1.default.install();
32
32
  const path = __importStar(require("path"));
33
33
  const ac = __importStar(require("@akala/commands"));
34
34
  const promises_1 = require("fs/promises");
35
- const start_1 = require("./commands/start");
35
+ const ipc_adapter_1 = require("./ipc-adapter");
36
36
  const net_1 = require("net");
37
37
  const core_1 = require("@akala/core");
38
38
  const cli_1 = __importStar(require("@akala/cli"));
39
39
  const commands_1 = require("@akala/commands");
40
+ const serve_metadata_1 = require("@akala/commands/src/serve-metadata");
40
41
  var isPm = false;
41
42
  cli_1.default.useMiddleware({
42
43
  handle: async (c) => {
@@ -59,7 +60,7 @@ logMiddleware.preAction(async (c) => {
59
60
  await ac.Processors.FileSystem.discoverCommands(c.options.program, cliContainer, { processor: processor, isDirectory: folderOrFile.isDirectory() });
60
61
  });
61
62
  const initMiddleware = new cli_1.NamespaceMiddleware(null);
62
- cli_1.default.option('program', { needsValue: true }).option('name', { needsValue: true }).
63
+ cli_1.default.option('program', { needsValue: true }).option('name', { needsValue: true }).option('tls', { needsValue: false }).
63
64
  use(async (c) => //If pure js file
64
65
  {
65
66
  folderOrFile = await (0, promises_1.lstat)(c.options.program);
@@ -87,28 +88,34 @@ cli_1.default.option('program', { needsValue: true }).option('name', { needsValu
87
88
  ac.Triggers.addCliOptions(init, initMiddleware);
88
89
  initMiddleware.option('pmSocket', { aliases: ['pm-socket', 'pm-sock'] }).action(async (c) => {
89
90
  let pm;
91
+ let pmConnectInfo;
90
92
  if (!isPm) {
91
93
  if (process.connected) {
92
- pm = new ac.Container('pm', null, new ac.Processors.JsonRpc(ac.Processors.JsonRpc.getConnection(new start_1.IpcAdapter(process), cliContainer), true));
94
+ pm = new ac.Container('pm', null, new ac.Processors.JsonRpc(ac.Processors.JsonRpc.getConnection(new ipc_adapter_1.IpcAdapter(process), cliContainer), true));
93
95
  }
94
96
  else {
95
97
  const pmSocket = new net_1.Socket();
96
- await new Promise((resolve, reject) => {
97
- pmSocket.on('error', reject);
98
- const remote = /^(?:([^:]+):)?(\d+)$/.exec(c.options.pmSocket);
99
- if (!remote) {
100
- pmSocket.connect(c.options.pmSocket, resolve);
101
- }
102
- else {
103
- const host = remote[1];
104
- const port = remote[2];
105
- if (host)
106
- pmSocket.connect(Number(port), host, resolve);
107
- else
108
- pmSocket.connect(Number(port), resolve);
109
- }
110
- });
111
- pm = new ac.Container('pm', null, new ac.Processors.JsonRpc(ac.Processors.JsonRpc.getConnection(new ac.NetSocketAdapter(pmSocket), cliContainer), true));
98
+ const x = await ac.connectByPreference(pmConnectInfo = (0, serve_metadata_1.parseMetadata)(c.options.pmSocket, c.options.tls), { container: cliContainer });
99
+ pm = x.container;
100
+ // await new Promise<void>((resolve, reject) =>
101
+ // {
102
+ // pmSocket.on('error', reject)
103
+ // const remote = /^(?:([^:]+):)?(\d+)$/.exec(c.options.pmSocket);
104
+ // if (!remote)
105
+ // {
106
+ // pmSocket.connect(c.options.pmSocket, resolve);
107
+ // }
108
+ // else
109
+ // {
110
+ // const host = remote[1];
111
+ // const port = remote[2];
112
+ // if (host)
113
+ // pmSocket.connect(Number(port), host, resolve);
114
+ // else
115
+ // pmSocket.connect(Number(port), resolve);
116
+ // }
117
+ // })
118
+ // pm = new ac.Container('pm', null, new ac.Processors.JsonRpc(ac.Processors.JsonRpc.getConnection(new ac.NetSocketAdapter(pmSocket), cliContainer), true));
112
119
  }
113
120
  // eslint-disable-next-line @typescript-eslint/no-var-requires
114
121
  (0, commands_1.registerCommands)(require('../commands.json').commands.map(ac.Metadata.extractCommandMetadata), null, pm);
@@ -118,6 +125,12 @@ cli_1.default.option('program', { needsValue: true }).option('name', { needsValu
118
125
  else
119
126
  pm = cliContainer;
120
127
  (0, core_1.module)('@akala/pm').register('container', pm);
128
+ cliContainer.register(new commands_1.SelfDefinedCommand(async (connectionId) => {
129
+ if (!pmConnectInfo)
130
+ pmConnectInfo = await pm.dispatch('connect', 'pm');
131
+ var pm2 = await ac.connectByPreference(pmConnectInfo, { container: cliContainer });
132
+ await pm2.container.dispatch('bridge', connectionId);
133
+ }, '$bridge'));
121
134
  if (init)
122
135
  await cliContainer.dispatch(init, { options: c.options, param: c.args, _trigger: 'cli', pm: pm, context: c });
123
136
  let stop;
package/dist/fork.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../src/fork.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,12 +16,12 @@ export declare function connect(name: string): Promise<{
16
16
  connect: Promise<ServeMetadata>;
17
17
  container: Metadata.Container;
18
18
  }>;
19
- declare type SideCarConnectionPreference = {
19
+ export declare const defaultOrders: (keyof ServeMetadata)[];
20
+ export declare type SideCarConnectionPreference = {
20
21
  [key in keyof SidecarMap]?: Partial<ConnectionPreference> & {
21
22
  orders?: (keyof ServeMetadata)[];
22
23
  };
23
24
  };
24
- export declare function sidecar(options?: Omit<ConnectionPreference, 'metadata'> | SideCarConnectionPreference | Omit<ConnectionPreference, 'metadata'> & SideCarConnectionPreference, noCache?: boolean): Sidecar;
25
25
  export interface ContainerLite {
26
26
  dispatch(cmd: string, ...args: unknown[]): Promise<unknown>;
27
27
  }
@@ -33,4 +33,6 @@ export interface SidecarMap {
33
33
  pm: pmContainer;
34
34
  }
35
35
  import getRandomName from './commands/name';
36
+ import sidecarSingleton, { sidecar } from "./sidecar";
37
+ export { sidecar, sidecarSingleton };
36
38
  export { getRandomName };
package/dist/index.js CHANGED
@@ -1,9 +1,32 @@
1
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 (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getRandomName = exports.sidecar = exports.connect = exports.pm = exports.InteractError = void 0;
29
+ exports.getRandomName = exports.sidecarSingleton = exports.sidecar = exports.defaultOrders = exports.connect = exports.pm = exports.InteractError = void 0;
7
30
  const commands_1 = require("@akala/commands");
8
31
  const net_1 = require("net");
9
32
  const core_1 = require("@akala/core");
@@ -42,47 +65,10 @@ function connect(name) {
42
65
  })();
43
66
  }
44
67
  exports.connect = connect;
45
- const defaultOrders = ['ssocket', 'socket', 'wss', 'ws'];
46
- function sidecar(options, noCache) {
47
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
- return new Proxy({}, {
49
- get(target, property) {
50
- if (typeof (property) !== 'string')
51
- return Reflect.get(target, property);
52
- const orders = options && options[property] && options[property].orders || defaultOrders;
53
- if (!options)
54
- options = {};
55
- if (typeof options.preferRemote == 'undefined')
56
- options.preferRemote = !process.connected;
57
- if (noCache || typeof (target[property]) == 'undefined')
58
- Object.defineProperty(target, property, {
59
- value: connect(property).then(async (meta) => {
60
- try {
61
- const c = await (0, commands_1.connectByPreference)(await meta.connect, Object.assign({ metadata: meta.container }, options, options && options[property]), ...orders);
62
- return c.container;
63
- }
64
- catch (e) {
65
- if (e && e.statusCode == 404 || !meta.connect) {
66
- var c = new commands_1.Container(meta.container.name, null, (0, core_1.module)('@akala/pm').resolve('container').processor);
67
- c.processor.useMiddleware(1, {
68
- handle(origin, cmd, param) {
69
- if (cmd.name.startsWith(meta.container.name + '.'))
70
- return undefined;
71
- return c.processor.handle(origin, Object.assign({}, cmd, { name: meta.container.name + '.' + cmd.name }), param);
72
- }
73
- });
74
- meta.container.commands.forEach(cmd => c.register(cmd));
75
- return c;
76
- }
77
- throw e;
78
- }
79
- })
80
- });
81
- return target[property];
82
- }
83
- });
84
- }
85
- exports.sidecar = sidecar;
68
+ exports.defaultOrders = ['ssocket', 'socket', 'wss', 'ws'];
86
69
  const name_1 = __importDefault(require("./commands/name"));
87
70
  exports.getRandomName = name_1.default;
71
+ const sidecar_1 = __importStar(require("./sidecar"));
72
+ exports.sidecarSingleton = sidecar_1.default;
73
+ Object.defineProperty(exports, "sidecar", { enumerable: true, get: function () { return sidecar_1.sidecar; } });
88
74
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgJ;AAChJ,6BAA6B;AAC7B,sCAAqC;AAUrC,MAAa,aAAc,SAAQ,KAAK;IAIA;IAFpB,IAAI,GAAG,UAAU,CAAC;IAElC,YAAY,OAAe,EAAS,EAAW;QAE3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAFiB,OAAE,GAAF,EAAE,CAAS;IAG/C,CAAC;IAEM,MAAM;QAET,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACnE,CAAC;CACJ;AAbD,sCAaC;AAED,SAAwB,QAAQ,CAAC,OAAe,EAAE,EAAW;IAEzD,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAHD,2BAGC;AAEM,KAAK,UAAU,EAAE,CAAC,UAAmB;IAExC,IAAI,UAAU,EACd;QACI,MAAM,QAAQ,GAAG,IAAI,YAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,oBAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,qBAAU,CAAC,OAAO,CAAC,qBAAU,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,2BAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACrI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,aAAa,GAAuB,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,cAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,GAAG,CAAA,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAClI,IAAA,2BAAgB,EAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,EAAE,CAAC;KACb;IACD,OAAO,IAAI,oBAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAZD,gBAYC;AAED,SAAgB,OAAO,CAAC,IAAY;IAEhC,OAAO,IAAA,aAAM,EAAC,WAAW,CAAC,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,WAAW,SAA0B;QAE/F,IAAI,aAAa,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAuB,CAAC;QAEtF,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAA2B,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IACpR,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AARD,0BAQC;AAEY,QAAA,aAAa,GAA4B,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAkBzF,2DAA4C;AAGnC,wBAHF,cAAa,CAGE;AAFtB,qDAAsD;AACpC,2BADX,iBAAgB,CACW;AAAzB,wFADkB,iBAAO,OAClB"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="webpack-env" />
3
+ import { ChildProcess } from "child_process";
4
+ import * as jsonrpc from '@akala/json-rpc-ws';
5
+ import { SocketAdapterEventMap } from "@akala/json-rpc-ws";
6
+ export declare class IpcAdapter implements jsonrpc.SocketAdapter {
7
+ private cp;
8
+ get open(): boolean;
9
+ pipe(socket: jsonrpc.SocketAdapter<unknown>): void;
10
+ close(): void;
11
+ send(data: string): void;
12
+ on<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
13
+ once<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
14
+ constructor(cp: ChildProcess | NodeJS.Process);
15
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IpcAdapter = void 0;
4
+ class IpcAdapter {
5
+ cp;
6
+ get open() { return !!this.cp.pid; }
7
+ pipe(socket) {
8
+ this.on('message', (message) => socket.send(message));
9
+ this.on('close', () => socket.close());
10
+ }
11
+ close() {
12
+ this.cp.disconnect();
13
+ }
14
+ send(data) {
15
+ if (this.cp.send)
16
+ this.cp.send(data + '\n');
17
+ else
18
+ console.warn(`process ${this.cp.pid} does not support send over IPC`);
19
+ }
20
+ on(event, handler) {
21
+ switch (event) {
22
+ case 'message':
23
+ this.cp.on('message', handler);
24
+ break;
25
+ case 'open':
26
+ handler(null);
27
+ break;
28
+ case 'close':
29
+ this.cp.on('disconnect', handler);
30
+ break;
31
+ }
32
+ }
33
+ once(event, handler) {
34
+ switch (event) {
35
+ case 'message':
36
+ this.cp.once('message', handler);
37
+ break;
38
+ case 'open':
39
+ handler(null);
40
+ break;
41
+ case 'close':
42
+ this.cp.once('disconnect', () => handler(null));
43
+ break;
44
+ }
45
+ }
46
+ constructor(cp) {
47
+ this.cp = cp;
48
+ }
49
+ }
50
+ exports.IpcAdapter = IpcAdapter;
51
+ //# sourceMappingURL=ipc-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-adapter.js","sourceRoot":"","sources":["../src/ipc-adapter.ts"],"names":[],"mappings":";;;AAKA,MAAa,UAAU;IAuDC;IArDpB,IAAI,IAAI,KAAc,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAG7C,IAAI,CAAC,MAAsC;QAEvC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,IAAY;QAEb,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI;YACZ,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;;YAG1B,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,GAAG,iCAAiC,CAAC,CAAC;IAC9E,CAAC;IACD,EAAE,CAAwC,KAAQ,EAAE,OAA+C;QAE/F,QAAQ,KAAK,EACb;YACI,KAAK,SAAS;gBACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAClC,MAAM;SACb;IACL,CAAC;IAED,IAAI,CAAwC,KAAQ,EAAE,OAA+C;QAEjG,QAAQ,KAAK,EACb;YACI,KAAK,SAAS;gBACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACjC,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,MAAM;SACb;IACL,CAAC;IAED,YAAoB,EAAiC;QAAjC,OAAE,GAAF,EAAE,CAA+B;IAErD,CAAC;CAEJ;AA3DD,gCA2DC"}
@@ -0,0 +1,4 @@
1
+ import { ConnectionPreference } from "@akala/commands";
2
+ import { SideCarConnectionPreference, Sidecar } from "./index";
3
+ export default function (options?: Omit<ConnectionPreference, 'metadata'> | SideCarConnectionPreference | Omit<ConnectionPreference, 'metadata'> & SideCarConnectionPreference, noCache?: boolean): Sidecar;
4
+ export declare function sidecar(options?: Omit<ConnectionPreference, 'metadata'> | SideCarConnectionPreference | Omit<ConnectionPreference, 'metadata'> & SideCarConnectionPreference, noCache?: boolean): Sidecar;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sidecar = void 0;
4
+ const commands_1 = require("@akala/commands");
5
+ const index_1 = require("./index");
6
+ let instance;
7
+ function default_1(options, noCache) {
8
+ return instance || (instance = sidecar(options, noCache));
9
+ }
10
+ exports.default = default_1;
11
+ function sidecar(options, noCache) {
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ return new Proxy({}, {
14
+ get(target, property) {
15
+ if (typeof (property) !== 'string')
16
+ return Reflect.get(target, property);
17
+ const orders = options && options[property] && options[property].orders || index_1.defaultOrders;
18
+ if (!options)
19
+ options = {};
20
+ if (typeof options.preferRemote == 'undefined')
21
+ options.preferRemote = !process.connected;
22
+ if (noCache || typeof (target[property]) == 'undefined')
23
+ Object.defineProperty(target, property, {
24
+ value: (0, index_1.connect)(property).then(async (meta) => {
25
+ try {
26
+ const c = await (0, commands_1.connectByPreference)(await meta.connect, Object.assign({ metadata: meta.container }, options, options && options[property]), ...orders);
27
+ return c.container;
28
+ }
29
+ catch (e) {
30
+ if (e && e.statusCode == 404 || !meta.connect) {
31
+ return await (0, index_1.connect)('pm').then(async (meta) => {
32
+ const c = await (0, commands_1.connectByPreference)(await meta.connect, Object.assign({ metadata: meta.container }, options, options && options[property]), ...orders);
33
+ await c.container.dispatch('proxy', property);
34
+ (0, commands_1.registerCommands)((await c.container.dispatch('$metadata', true)).commands, c.processor, c.container);
35
+ return c.container;
36
+ });
37
+ }
38
+ throw e;
39
+ }
40
+ })
41
+ });
42
+ return target[property];
43
+ }
44
+ });
45
+ }
46
+ exports.sidecar = sidecar;
47
+ //# sourceMappingURL=sidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":";;;AAAA,8CAAyG;AAEzG,mCAAuF;AAEvF,IAAI,QAAiB,CAAC;AAEtB,mBAAyB,OAAqJ,EAAE,OAAiB;IAE7L,OAAO,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,CAAC;AAHD,4BAGC;AAED,SAAgB,OAAO,CAAC,OAAqJ,EAAE,OAAiB;IAE5L,8DAA8D;IAC9D,OAAO,IAAI,KAAK,CAAU,EAAS,EAAE;QACjC,GAAG,CAAC,MAAM,EAAE,QAAQ;YAEhB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ;gBAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,qBAAa,CAAC;YACzF,IAAI,CAAC,OAAO;gBACR,OAAO,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,OAAO,CAAC,YAAY,IAAI,WAAW;gBAC1C,OAAO,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;YAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAW;gBACnD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;oBACpC,KAAK,EAAE,IAAA,eAAO,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;wBAEzC,IACA;4BACI,MAAM,CAAC,GAAG,MAAM,IAAA,8BAAmB,EAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;4BACvJ,OAAO,CAAC,CAAC,SAAS,CAAC;yBACtB;wBACD,OAAO,CAAC,EACR;4BACI,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAC7C;gCACI,OAAO,MAAM,IAAA,eAAO,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oCAE3C,MAAM,CAAC,GAAG,MAAM,IAAA,8BAAmB,EAAC,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;oCACvJ,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oCAC9C,IAAA,2BAAgB,EAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;oCACrG,OAAO,CAAC,CAAC,SAAS,CAAC;gCACvB,CAAC,CAAC,CAAC;6BACN;4BACD,MAAM,CAAC,CAAC;yBACX;oBACL,CAAC,CAAC;iBACL,CAAC,CAAC;YACP,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AA1CD,0BA0CC"}
package/dist/state.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { Container } from "@akala/commands";
3
3
  import { ChildProcess } from "child_process";
4
- import { Deferred, SerializableObject } from "@akala/json-rpc-ws";
4
+ import { Deferred, SerializableObject, SocketAdapter } from "@akala/json-rpc-ws";
5
5
  import { ServeMetadata } from "@akala/commands";
6
6
  import { ProxyConfiguration } from "@akala/config";
7
7
  export default interface State {
@@ -10,6 +10,9 @@ export default interface State {
10
10
  };
11
11
  isDaemon: boolean;
12
12
  config: ProxyConfiguration<StateConfiguration>;
13
+ bridges: {
14
+ [key: string]: SocketAdapter;
15
+ };
13
16
  }
14
17
  export interface StateConfiguration {
15
18
  containers: {
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "pm": "dist/cli.js",
5
5
  "pm-fork": "dist/fork.js"
6
6
  },
7
- "version": "3.3.4",
7
+ "version": "3.5.0",
8
8
  "scripts": {
9
9
  "test": "echo 1",
10
10
  "generate": "ac generate dist/commands commands.json",
@@ -19,11 +19,11 @@
19
19
  },
20
20
  "homepage": "https://akala.js.org/pm",
21
21
  "dependencies": {
22
- "@akala/cli": "^2.1.7",
23
- "@akala/commands": "^3.1.3",
24
- "@akala/config": "^1.1.18",
25
- "@akala/core": "^9.0.3",
26
- "@akala/json-rpc-ws": "^9.4.3",
22
+ "@akala/cli": "^2.1.8",
23
+ "@akala/commands": "^3.3.0",
24
+ "@akala/config": "^1.1.20",
25
+ "@akala/core": "^9.0.4",
26
+ "@akala/json-rpc-ws": "^9.5.0",
27
27
  "reflect-metadata": "^0.1.13",
28
28
  "source-map-support": "^0.5.21"
29
29
  },
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/npenin/akala/master/packages/commands/command-schema.json",
3
+ "fs": {
4
+ "inject": [
5
+ "param.0",
6
+ "param.1"
7
+ ]
8
+ },
9
+ "jsonrpc": {
10
+ "inject": [
11
+ "param.0",
12
+ "socket"
13
+ ]
14
+ },
15
+ "": {
16
+ "inject": []
17
+ }
18
+ }
@@ -0,0 +1,9 @@
1
+ import { Container } from "@akala/commands";
2
+ import { SocketAdapter } from "@akala/json-rpc-ws";
3
+ import State from "../state";
4
+
5
+ export default function (this: State, connectionId: string, socket: SocketAdapter)
6
+ {
7
+ this.bridges[connectionId].pipe(socket);
8
+ socket.pipe(this.bridges[connectionId]);
9
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/npenin/akala/master/packages/commands/command-schema.json",
3
+ "jsonrpc": {
4
+ "inject": [
5
+ "param.0",
6
+ "socket"
7
+ ]
8
+ },
9
+ "": {
10
+ "inject": [
11
+ "param.0",
12
+ "param.1"
13
+ ]
14
+ }
15
+ }
@@ -0,0 +1,14 @@
1
+ import { ErrorWithStatus } from "@akala/cli";
2
+ import { SocketAdapter } from "@akala/json-rpc-ws";
3
+ import { randomUUID } from "crypto";
4
+ import State from "../state";
5
+
6
+ export default async function (this: State, name: string, socket: SocketAdapter)
7
+ {
8
+ var cp = this.processes[name];
9
+ if (!cp)
10
+ throw new ErrorWithStatus(404, `There is no such process with name ${name}`);
11
+ const connectionId = randomUUID();
12
+ this.bridges[connectionId] = socket;
13
+ await cp.dispatch('$bridge', connectionId);
14
+ }
@@ -2,7 +2,7 @@ import { Container, Metadata, updateCommands } from "@akala/commands";
2
2
 
3
3
  export default async function (remoteContainer: Container<void>)
4
4
  {
5
- const metadata: Metadata.Container = await remoteContainer.dispatch('$metadata');
5
+ const metadata: Metadata.Container = await remoteContainer.dispatch('$metadata', true);
6
6
  remoteContainer.name = metadata.name;
7
7
  updateCommands(metadata.commands, null, remoteContainer);
8
8
  }
@@ -5,10 +5,10 @@ import pmContainer from '../container';
5
5
  import * as jsonrpc from '@akala/json-rpc-ws'
6
6
  import { eachAsync, logger } from "@akala/core";
7
7
  import { NewLinePrefixer } from "../new-line-prefixer.js";
8
- import { SocketAdapterEventMap } from "@akala/json-rpc-ws";
9
8
  import { CliContext, ErrorWithStatus } from "@akala/cli";
10
9
  import getRandomName from "./name";
11
10
  import { ProxyConfiguration } from "@akala/config";
11
+ import { IpcAdapter } from "../ipc-adapter";
12
12
 
13
13
  export default async function start(this: State, pm: pmContainer.container & Container<State>, name: string, context?: CliContext<{ new?: boolean, name: string, inspect?: boolean, verbose?: boolean, wait?: boolean }>): Promise<void | { execPath: string, args: string[], cwd: string, stdio: StdioOptions, shell: boolean, windowsHide: boolean }>
14
14
  {
@@ -182,70 +182,4 @@ export default async function start(this: State, pm: pmContainer.container & Con
182
182
  }
183
183
  }
184
184
 
185
- export class IpcAdapter implements jsonrpc.SocketAdapter
186
- {
187
- get open(): boolean { return !!this.cp.pid }
188
- close(): void
189
- {
190
- this.cp.disconnect();
191
- }
192
- send(data: string): void
193
- {
194
- if (this.cp.send)
195
- this.cp.send(data + '\n');
196
- else
197
- console.warn(`process ${this.cp.pid} does not support send over IPC`);
198
- }
199
- on<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void
200
- {
201
- switch (event)
202
- {
203
- case 'message':
204
- this.cp.on('message', handler);
205
- break;
206
- case 'open':
207
- handler(null);
208
- break;
209
- case 'close':
210
- this.cp.on('disconnect', handler);
211
- break;
212
- }
213
- }
214
-
215
- once<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void
216
- {
217
- switch (event)
218
- {
219
- case 'message':
220
- this.cp.once('message', handler);
221
- break;
222
- case 'open':
223
- handler(null);
224
- break;
225
- case 'close':
226
- this.cp.once('disconnect', () => handler(null));
227
- break;
228
- }
229
- }
230
-
231
- constructor(private cp: ChildProcess | NodeJS.Process)
232
- {
233
- }
234
-
235
- // _write(chunk: string | Buffer, encoding: string, callback: (error?: any) => void)
236
- // {
237
- // // The underlying source only deals with strings.
238
- // if (Buffer.isBuffer(chunk))
239
- // chunk = chunk.toString('utf8');
240
- // if (this.cp.send)
241
- // this.cp.send(chunk + '\n', callback);
242
- // else
243
- // callback(new Error('there is no send method on this process'));
244
- // }
245
-
246
- // _read()
247
- // {
248
- // }
249
- }
250
-
251
185
  start.$inject = ['$container', 'param.0', 'options']