@akala/pm 5.1.1 → 5.2.1

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 (274) hide show
  1. package/changelog.md +1 -1
  2. package/commands.json +22 -22
  3. package/dist/{cli-helper.d.ts → cjs/cli-helper.d.ts} +0 -0
  4. package/dist/cjs/cli-helper.js +17 -0
  5. package/dist/cjs/cli-helper.js.map +1 -0
  6. package/dist/{cli.d.ts → cjs/cli.d.ts} +0 -0
  7. package/dist/{cli.js → cjs/cli.js} +34 -62
  8. package/dist/cjs/cli.js.map +1 -0
  9. package/dist/{commands → cjs/commands}/$init.d.ts +0 -0
  10. package/dist/{commands → cjs/commands}/$init.js +21 -30
  11. package/dist/cjs/commands/$init.js.map +1 -0
  12. package/dist/{commands → cjs/commands}/bridge.d.ts +0 -0
  13. package/dist/{commands → cjs/commands}/bridge.js +1 -4
  14. package/dist/cjs/commands/bridge.js.map +1 -0
  15. package/dist/{commands → cjs/commands}/config.d.ts +0 -0
  16. package/dist/cjs/commands/config.js +20 -0
  17. package/dist/cjs/commands/config.js.map +1 -0
  18. package/dist/{commands → cjs/commands}/connect.d.ts +0 -0
  19. package/dist/cjs/commands/connect.js +26 -0
  20. package/dist/cjs/commands/connect.js.map +1 -0
  21. package/dist/{commands → cjs/commands}/discover.d.ts +0 -0
  22. package/dist/{commands → cjs/commands}/discover.js +17 -20
  23. package/dist/cjs/commands/discover.js.map +1 -0
  24. package/dist/{commands → cjs/commands}/install.d.ts +0 -0
  25. package/dist/cjs/commands/install.js +13 -0
  26. package/dist/cjs/commands/install.js.map +1 -0
  27. package/dist/{commands → cjs/commands}/link.d.ts +0 -0
  28. package/dist/cjs/commands/link.js +11 -0
  29. package/dist/cjs/commands/link.js.map +1 -0
  30. package/dist/{commands → cjs/commands}/log.d.ts +0 -0
  31. package/dist/cjs/commands/log.js +15 -0
  32. package/dist/cjs/commands/log.js.map +1 -0
  33. package/dist/{commands → cjs/commands}/ls.d.ts +0 -0
  34. package/dist/cjs/commands/ls.js +4 -0
  35. package/dist/cjs/commands/ls.js.map +1 -0
  36. package/dist/{commands → cjs/commands}/map.d.ts +0 -0
  37. package/dist/cjs/commands/map.js +9 -0
  38. package/dist/cjs/commands/map.js.map +1 -0
  39. package/dist/{commands → cjs/commands}/name.d.ts +0 -0
  40. package/dist/{commands → cjs/commands}/name.js +1 -4
  41. package/dist/cjs/commands/name.js.map +1 -0
  42. package/dist/{commands → cjs/commands}/plugin/add.d.ts +0 -0
  43. package/dist/cjs/commands/plugin/add.js +5 -0
  44. package/dist/cjs/commands/plugin/add.js.map +1 -0
  45. package/dist/{commands → cjs/commands}/plugin/remove.d.ts +0 -0
  46. package/dist/{commands → cjs/commands}/plugin/remove.js +1 -4
  47. package/dist/cjs/commands/plugin/remove.js.map +1 -0
  48. package/dist/{commands → cjs/commands}/proxy.d.ts +0 -0
  49. package/dist/cjs/commands/proxy.js +19 -0
  50. package/dist/cjs/commands/proxy.js.map +1 -0
  51. package/dist/{commands → cjs/commands}/ready.d.ts +0 -0
  52. package/dist/{commands → cjs/commands}/ready.js +4 -7
  53. package/dist/cjs/commands/ready.js.map +1 -0
  54. package/dist/{commands → cjs/commands}/reload-metadata.d.ts +0 -0
  55. package/dist/cjs/commands/reload-metadata.js +7 -0
  56. package/dist/cjs/commands/reload-metadata.js.map +1 -0
  57. package/dist/{commands → cjs/commands}/restart.d.ts +0 -0
  58. package/dist/cjs/commands/restart.js +5 -0
  59. package/dist/cjs/commands/restart.js.map +1 -0
  60. package/dist/{commands → cjs/commands}/start.d.ts +0 -0
  61. package/dist/{commands → cjs/commands}/start.js +27 -33
  62. package/dist/cjs/commands/start.js.map +1 -0
  63. package/dist/{commands → cjs/commands}/status.d.ts +0 -0
  64. package/dist/{commands → cjs/commands}/status.js +1 -4
  65. package/dist/cjs/commands/status.js.map +1 -0
  66. package/dist/{commands → cjs/commands}/stop.d.ts +0 -0
  67. package/dist/{commands → cjs/commands}/stop.js +1 -4
  68. package/dist/cjs/commands/stop.js.map +1 -0
  69. package/dist/{commands → cjs/commands}/update.d.ts +0 -0
  70. package/dist/cjs/commands/update.js +15 -0
  71. package/dist/cjs/commands/update.js.map +1 -0
  72. package/dist/{commands → cjs/commands}/version.d.ts +0 -0
  73. package/dist/cjs/commands/version.js +14 -0
  74. package/dist/cjs/commands/version.js.map +1 -0
  75. package/dist/{container.d.ts → cjs/container.d.ts} +0 -0
  76. package/dist/cjs/container.js +2 -0
  77. package/dist/{container.js.map → cjs/container.js.map} +1 -1
  78. package/dist/{fork.d.ts → cjs/fork.d.ts} +0 -0
  79. package/dist/{fork.js → cjs/fork.js} +24 -52
  80. package/dist/cjs/fork.js.map +1 -0
  81. package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  82. package/dist/cjs/index.js +43 -0
  83. package/dist/cjs/index.js.map +1 -0
  84. package/dist/{ipc-adapter.d.ts → cjs/ipc-adapter.d.ts} +0 -0
  85. package/dist/{ipc-adapter.js → cjs/ipc-adapter.js} +1 -5
  86. package/dist/cjs/ipc-adapter.js.map +1 -0
  87. package/dist/{new-line-prefixer.d.ts → cjs/new-line-prefixer.d.ts} +0 -0
  88. package/dist/{new-line-prefixer.js → cjs/new-line-prefixer.js} +2 -6
  89. package/dist/cjs/new-line-prefixer.js.map +1 -0
  90. package/dist/{npm-helper.d.ts → cjs/npm-helper.d.ts} +0 -0
  91. package/dist/cjs/npm-helper.js +20 -0
  92. package/dist/cjs/npm-helper.js.map +1 -0
  93. package/dist/{sidecar.d.ts → cjs/sidecar.d.ts} +0 -0
  94. package/dist/cjs/sidecar.js +45 -0
  95. package/dist/cjs/sidecar.js.map +1 -0
  96. package/dist/{standalone.d.ts → cjs/standalone.d.ts} +0 -0
  97. package/dist/{standalone.js → cjs/standalone.js} +16 -44
  98. package/dist/cjs/standalone.js.map +1 -0
  99. package/dist/{state.d.ts → cjs/state.d.ts} +0 -0
  100. package/dist/cjs/state.js +2 -0
  101. package/dist/cjs/state.js.map +1 -0
  102. package/dist/{test → cjs/test}/pwet.d.ts +0 -0
  103. package/dist/cjs/test/pwet.js +7 -0
  104. package/dist/cjs/test/pwet.js.map +1 -0
  105. package/dist/{yarn-helper.d.ts → cjs/yarn-helper.d.ts} +0 -0
  106. package/dist/cjs/yarn-helper.js +26 -0
  107. package/dist/cjs/yarn-helper.js.map +1 -0
  108. package/dist/esm/cli-helper.d.ts +3 -0
  109. package/dist/esm/cli-helper.js +17 -0
  110. package/dist/esm/cli-helper.js.map +1 -0
  111. package/dist/esm/cli.d.ts +2 -0
  112. package/dist/esm/cli.js +423 -0
  113. package/dist/esm/cli.js.map +1 -0
  114. package/dist/esm/commands/$init.d.ts +10 -0
  115. package/dist/esm/commands/$init.js +113 -0
  116. package/dist/esm/commands/$init.js.map +1 -0
  117. package/dist/esm/commands/bridge.d.ts +3 -0
  118. package/dist/esm/commands/bridge.js +11 -0
  119. package/dist/esm/commands/bridge.js.map +1 -0
  120. package/dist/esm/commands/config.d.ts +3 -0
  121. package/dist/esm/commands/config.js +20 -0
  122. package/dist/esm/commands/config.js.map +1 -0
  123. package/dist/esm/commands/connect.d.ts +4 -0
  124. package/dist/esm/commands/connect.js +26 -0
  125. package/dist/esm/commands/connect.js.map +1 -0
  126. package/dist/esm/commands/discover.d.ts +7 -0
  127. package/dist/esm/commands/discover.js +72 -0
  128. package/dist/esm/commands/discover.js.map +1 -0
  129. package/dist/esm/commands/install.d.ts +4 -0
  130. package/dist/esm/commands/install.js +13 -0
  131. package/dist/esm/commands/install.js.map +1 -0
  132. package/dist/esm/commands/link.d.ts +4 -0
  133. package/dist/esm/commands/link.js +11 -0
  134. package/dist/esm/commands/link.js.map +1 -0
  135. package/dist/esm/commands/log.d.ts +4 -0
  136. package/dist/esm/commands/log.js +15 -0
  137. package/dist/esm/commands/log.js.map +1 -0
  138. package/dist/esm/commands/ls.d.ts +2 -0
  139. package/dist/esm/commands/ls.js +4 -0
  140. package/dist/esm/commands/ls.js.map +1 -0
  141. package/dist/esm/commands/map.d.ts +5 -0
  142. package/dist/esm/commands/map.js +9 -0
  143. package/dist/esm/commands/map.js.map +1 -0
  144. package/dist/esm/commands/name.d.ts +1 -0
  145. package/dist/esm/commands/name.js +604 -0
  146. package/dist/esm/commands/name.js.map +1 -0
  147. package/dist/esm/commands/plugin/add.d.ts +2 -0
  148. package/dist/esm/commands/plugin/add.js +5 -0
  149. package/dist/esm/commands/plugin/add.js.map +1 -0
  150. package/dist/esm/commands/plugin/remove.d.ts +2 -0
  151. package/dist/esm/commands/plugin/remove.js +7 -0
  152. package/dist/esm/commands/plugin/remove.js.map +1 -0
  153. package/dist/esm/commands/proxy.d.ts +3 -0
  154. package/dist/esm/commands/proxy.js +19 -0
  155. package/dist/esm/commands/proxy.js.map +1 -0
  156. package/dist/esm/commands/ready.d.ts +4 -0
  157. package/dist/esm/commands/ready.js +22 -0
  158. package/dist/esm/commands/ready.js.map +1 -0
  159. package/dist/esm/commands/reload-metadata.d.ts +2 -0
  160. package/dist/esm/commands/reload-metadata.js +7 -0
  161. package/dist/esm/commands/reload-metadata.js.map +1 -0
  162. package/dist/esm/commands/restart.d.ts +18 -0
  163. package/dist/esm/commands/restart.js +5 -0
  164. package/dist/esm/commands/restart.js.map +1 -0
  165. package/dist/esm/commands/start.d.ts +25 -0
  166. package/dist/esm/commands/start.js +139 -0
  167. package/dist/esm/commands/start.js.map +1 -0
  168. package/dist/esm/commands/status.d.ts +7 -0
  169. package/dist/esm/commands/status.js +7 -0
  170. package/dist/esm/commands/status.js.map +1 -0
  171. package/dist/esm/commands/stop.d.ts +3 -0
  172. package/dist/esm/commands/stop.js +33 -0
  173. package/dist/esm/commands/stop.js.map +1 -0
  174. package/dist/esm/commands/update.d.ts +3 -0
  175. package/dist/esm/commands/update.js +15 -0
  176. package/dist/esm/commands/update.js.map +1 -0
  177. package/dist/esm/commands/version.d.ts +2 -0
  178. package/dist/esm/commands/version.js +14 -0
  179. package/dist/esm/commands/version.js.map +1 -0
  180. package/dist/esm/container.d.ts +48 -0
  181. package/dist/esm/container.js +2 -0
  182. package/dist/esm/container.js.map +1 -0
  183. package/dist/esm/fork.d.ts +2 -0
  184. package/dist/esm/fork.js +146 -0
  185. package/dist/esm/fork.js.map +1 -0
  186. package/dist/esm/index.d.ts +38 -0
  187. package/dist/esm/index.js +43 -0
  188. package/dist/esm/index.js.map +1 -0
  189. package/dist/esm/ipc-adapter.d.ts +17 -0
  190. package/dist/esm/ipc-adapter.js +60 -0
  191. package/dist/esm/ipc-adapter.js.map +1 -0
  192. package/dist/esm/new-line-prefixer.d.ts +13 -0
  193. package/dist/esm/new-line-prefixer.js +39 -0
  194. package/dist/esm/new-line-prefixer.js.map +1 -0
  195. package/dist/esm/npm-helper.d.ts +6 -0
  196. package/dist/esm/npm-helper.js +20 -0
  197. package/dist/esm/npm-helper.js.map +1 -0
  198. package/dist/esm/sidecar.d.ts +9 -0
  199. package/dist/esm/sidecar.js +45 -0
  200. package/dist/esm/sidecar.js.map +1 -0
  201. package/dist/esm/standalone.d.ts +2 -0
  202. package/dist/esm/standalone.js +80 -0
  203. package/dist/esm/standalone.js.map +1 -0
  204. package/dist/esm/state.d.ts +49 -0
  205. package/dist/esm/state.js +2 -0
  206. package/dist/esm/state.js.map +1 -0
  207. package/dist/esm/test/pwet.d.ts +1 -0
  208. package/dist/esm/test/pwet.js +7 -0
  209. package/dist/esm/test/pwet.js.map +1 -0
  210. package/dist/esm/yarn-helper.d.ts +7 -0
  211. package/dist/esm/yarn-helper.js +26 -0
  212. package/dist/esm/yarn-helper.js.map +1 -0
  213. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  214. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  215. package/package.json +23 -12
  216. package/tsconfig.cjs.json +22 -0
  217. package/tsconfig.esm.json +22 -0
  218. package/.pnp.js +0 -16294
  219. package/dist/cli-helper.js +0 -44
  220. package/dist/cli-helper.js.map +0 -1
  221. package/dist/cli.js.map +0 -1
  222. package/dist/commands/$init.js.map +0 -1
  223. package/dist/commands/bridge.js.map +0 -1
  224. package/dist/commands/config.js +0 -46
  225. package/dist/commands/config.js.map +0 -1
  226. package/dist/commands/connect.js +0 -32
  227. package/dist/commands/connect.js.map +0 -1
  228. package/dist/commands/discover.js.map +0 -1
  229. package/dist/commands/install.js +0 -42
  230. package/dist/commands/install.js.map +0 -1
  231. package/dist/commands/link.js +0 -40
  232. package/dist/commands/link.js.map +0 -1
  233. package/dist/commands/log.js +0 -18
  234. package/dist/commands/log.js.map +0 -1
  235. package/dist/commands/ls.js +0 -7
  236. package/dist/commands/ls.js.map +0 -1
  237. package/dist/commands/map.js +0 -12
  238. package/dist/commands/map.js.map +0 -1
  239. package/dist/commands/name.js.map +0 -1
  240. package/dist/commands/plugin/add.js +0 -8
  241. package/dist/commands/plugin/add.js.map +0 -1
  242. package/dist/commands/plugin/remove.js.map +0 -1
  243. package/dist/commands/proxy.js +0 -22
  244. package/dist/commands/proxy.js.map +0 -1
  245. package/dist/commands/ready.js.map +0 -1
  246. package/dist/commands/reload-metadata.js +0 -10
  247. package/dist/commands/reload-metadata.js.map +0 -1
  248. package/dist/commands/restart.js +0 -8
  249. package/dist/commands/restart.js.map +0 -1
  250. package/dist/commands/start.js.map +0 -1
  251. package/dist/commands/status.js.map +0 -1
  252. package/dist/commands/stop.js.map +0 -1
  253. package/dist/commands/update.js +0 -44
  254. package/dist/commands/update.js.map +0 -1
  255. package/dist/commands/version.js +0 -17
  256. package/dist/commands/version.js.map +0 -1
  257. package/dist/container.js +0 -3
  258. package/dist/fork.js.map +0 -1
  259. package/dist/index.js +0 -77
  260. package/dist/index.js.map +0 -1
  261. package/dist/ipc-adapter.js.map +0 -1
  262. package/dist/new-line-prefixer.js.map +0 -1
  263. package/dist/npm-helper.js +0 -22
  264. package/dist/npm-helper.js.map +0 -1
  265. package/dist/sidecar.js +0 -73
  266. package/dist/sidecar.js.map +0 -1
  267. package/dist/standalone.js.map +0 -1
  268. package/dist/state.js +0 -3
  269. package/dist/state.js.map +0 -1
  270. package/dist/test/pwet.js +0 -13
  271. package/dist/test/pwet.js.map +0 -1
  272. package/dist/yarn-helper.js +0 -30
  273. package/dist/yarn-helper.js.map +0 -1
  274. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,146 @@
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
+ var isPm = false;
12
+ program.option('help');
13
+ let folderOrFile;
14
+ let cliContainer;
15
+ let processor;
16
+ let log;
17
+ const logMiddleware = new NamespaceMiddleware(null).option('verbose', { aliases: ['v',] });
18
+ logMiddleware.preAction(async (c) => {
19
+ if (c.options.verbose)
20
+ processor = new ac.Processors.LogProcessor(processor, (cmd, params) => {
21
+ log.verbose({ cmd, params });
22
+ return Promise.resolve();
23
+ });
24
+ await ac.Processors.FileSystem.discoverCommands(c.options.program, cliContainer, { processor: processor, isDirectory: folderOrFile.isDirectory() });
25
+ });
26
+ let initMiddleware = new NamespaceMiddleware(null);
27
+ const controller = new AbortController();
28
+ program.option('program', { needsValue: true, normalize: true }).
29
+ option('name', { needsValue: true }).
30
+ option('tls', { needsValue: false }).
31
+ options({
32
+ 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 },
33
+ tcpPort: { needsValue: true, doc: 'tcp port', aliases: ['tcp-port'], optional: true, caseSensitive: false },
34
+ cert: { needsValue: true, doc: 'public certificate', aliases: ['certificate'], optional: true, caseSensitive: false },
35
+ key: { needsValue: true, doc: 'private certificate key. Requires public certificate', aliases: ['certificate-key'], optional: true, caseSensitive: false }
36
+ }).
37
+ preAction(async (c) => //If pure js file
38
+ {
39
+ folderOrFile = await lstat(c.options.program);
40
+ if (folderOrFile.isFile() && path.extname(c.options.program) === '.js')
41
+ return require(c.options.program);
42
+ log = logger(c.options.name);
43
+ cliContainer = new ac.Container('cli', {});
44
+ if (folderOrFile.isFile())
45
+ processor = new ac.Processors.FileSystem(path.dirname(c.options.program));
46
+ else
47
+ processor = new ac.Processors.FileSystem(c.options.program);
48
+ }).
49
+ useMiddleware(null, MiddlewareComposite.new(logMiddleware, {
50
+ handle: async (c) => {
51
+ cliContainer.name = c.options.name;
52
+ isPm = c.options.name === 'pm' && c.options.program === require.resolve('../commands.json');
53
+ const init = cliContainer.resolve('$init');
54
+ if (init && init.config && init.config.cli && init.config.cli.options) {
55
+ if (init.config.cli.usage)
56
+ initMiddleware = initMiddleware.command(init.config.cli.usage, init.config?.doc?.description);
57
+ ac.Triggers.addCliOptions(init, initMiddleware);
58
+ }
59
+ process.on('unhandledRejection', (x) => {
60
+ controller.abort(x);
61
+ return false;
62
+ });
63
+ process.on('uncaughtException', (x) => {
64
+ controller.abort(x);
65
+ return false;
66
+ });
67
+ process.on('SIGINT', () => controller.abort(null));
68
+ initMiddleware.option('pmSocket', { aliases: ['pm-socket', 'pm-sock'], needsValue: true }).action(async (c) => {
69
+ let pm;
70
+ let pmConnectInfo;
71
+ if (!isPm) {
72
+ //eslint-disable-next-line @typescript-eslint/no-var-requires
73
+ const pmMeta = require('../commands.json');
74
+ if (process.connected) {
75
+ pm = new ac.Container('pm', null, new ac.Processors.JsonRpc(ac.Processors.JsonRpc.getConnection(new IpcAdapter(process), cliContainer), true));
76
+ registerCommands(pmMeta.commands, null, pm);
77
+ }
78
+ else {
79
+ if (c.options.pmSocket)
80
+ pmConnectInfo = parseMetadata(c.options.pmSocket, c.options.tls);
81
+ else
82
+ pmConnectInfo = ac.serveMetadata('pm', { args: ['local'], options: {} });
83
+ const x = await ac.connectByPreference(pmConnectInfo, { metadata: pmMeta, container: cliContainer });
84
+ pm = x.container;
85
+ pm.processor.useMiddleware(20, x.processor);
86
+ const connect = pm.resolve('connect');
87
+ pm.unregister('connect');
88
+ pm.register(new SelfDefinedCommand((name, param) => {
89
+ if (name == 'pm')
90
+ return pmConnectInfo;
91
+ return x.processor.handle(pm, connect, param).then(e => { throw e; }, r => r);
92
+ }, 'connect', [
93
+ "param.0",
94
+ "$param"
95
+ ]));
96
+ }
97
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
98
+ pm.unregister(ac.Cli.Metadata.name);
99
+ pm.register(ac.Metadata.extractCommandMetadata(ac.Cli.Metadata));
100
+ }
101
+ else
102
+ pm = cliContainer;
103
+ coreModule('@akala/pm').register('container', pm);
104
+ cliContainer.register(new SelfDefinedCommand(async (connectionId) => {
105
+ if (!pmConnectInfo)
106
+ pmConnectInfo = await pm.dispatch('connect', 'pm');
107
+ var pm2 = await ac.connectByPreference(pmConnectInfo, { container: cliContainer });
108
+ pm2.container.processor.useMiddleware(20, pm2.processor);
109
+ pm2.container.unregister(ac.Cli.Metadata.name);
110
+ pm2.container.register(ac.Metadata.extractCommandMetadata(ac.Cli.Metadata));
111
+ pm2.container.register(ac.Metadata.extractCommandMetadata(pm.resolve('bridge')));
112
+ if (await pm2.container.dispatch('bridge', connectionId))
113
+ throw undefined;
114
+ }, '$bridge'));
115
+ if (init) {
116
+ await cliContainer.dispatch(init, { options: c.options, param: c.args, _trigger: 'cli', pm: pm, context: c, signal: controller.signal });
117
+ }
118
+ try {
119
+ const serveArgs = await pm.dispatch('connect', c.options.name);
120
+ serveArgs.signal = controller.signal;
121
+ await cliContainer.dispatch('$serve', serveArgs);
122
+ }
123
+ catch (e) {
124
+ if (!e || e.statusCode !== 404)
125
+ throw e;
126
+ console.warn(e.message);
127
+ }
128
+ if (pm !== cliContainer)
129
+ await pm.dispatch('ready');
130
+ });
131
+ }
132
+ }, initMiddleware));
133
+ controller.signal.addEventListener('abort', function () {
134
+ if (this.reason) {
135
+ process.exitCode = 1;
136
+ if (this.reason instanceof ErrorMessage)
137
+ console.error(this.reason.message);
138
+ else
139
+ console.error(this.reason);
140
+ }
141
+ });
142
+ if (require.main == module)
143
+ program.process(buildCliContextFromProcess()).catch(e => {
144
+ setImmediate(() => controller.abort(e));
145
+ });
146
+ //# sourceMappingURL=fork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../src/fork.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { Container, Metadata, ServeMetadata, ConnectionPreference } from "@akala/commands";
2
+ import definition from './container.js';
3
+ type pmContainer = definition.container;
4
+ export { pmContainer as Container };
5
+ import State from './state.js';
6
+ export { State };
7
+ export declare class InteractError extends Error {
8
+ as?: string;
9
+ readonly code = "INTERACT";
10
+ constructor(message: string, as?: string);
11
+ toJSON(): Record<string, unknown>;
12
+ }
13
+ export default function interact(message: string, as?: string): void;
14
+ export declare function pm(socketPath?: string): Promise<Container<unknown>>;
15
+ export declare function connect(name: string, container?: pmContainer & Container<void>): Promise<{
16
+ connect: Promise<ServeMetadata>;
17
+ container: Metadata.Container;
18
+ }>;
19
+ export declare const defaultOrders: (keyof ServeMetadata)[];
20
+ export type SideCarConnectionPreference = {
21
+ [key in keyof SidecarMap]?: Partial<ConnectionPreference> & {
22
+ orders?: (keyof ServeMetadata)[];
23
+ };
24
+ };
25
+ export interface ContainerLite {
26
+ dispatch(cmd: string, ...args: unknown[]): Promise<unknown>;
27
+ }
28
+ export type Sidecar = {
29
+ [key in keyof SidecarMap]: Promise<SidecarMap[key] & Container<void>>;
30
+ };
31
+ export interface SidecarMap {
32
+ [key: string]: ContainerLite;
33
+ pm: pmContainer;
34
+ }
35
+ import getRandomName from './commands/name.js';
36
+ import sidecarSingleton, { sidecar } from "./sidecar.js";
37
+ export { sidecar, sidecarSingleton };
38
+ export { getRandomName };
@@ -0,0 +1,43 @@
1
+ import { Container, NetSocketAdapter, Processors, registerCommands, Cli } from "@akala/commands";
2
+ import { Socket } from "net";
3
+ import { module } from "@akala/core";
4
+ export class InteractError extends Error {
5
+ as;
6
+ code = 'INTERACT';
7
+ constructor(message, as) {
8
+ super(message);
9
+ this.as = as;
10
+ }
11
+ toJSON() {
12
+ return { code: this.code, message: this.message, as: this.as };
13
+ }
14
+ }
15
+ export default function interact(message, as) {
16
+ throw new InteractError(message, as);
17
+ }
18
+ export async function pm(socketPath) {
19
+ if (socketPath) {
20
+ const pmSocket = new Socket();
21
+ const pm = new Container('pm', null, new Processors.JsonRpc(Processors.JsonRpc.getConnection(new NetSocketAdapter(pmSocket)), true));
22
+ pmSocket.connect(socketPath);
23
+ const metaContainer = await pm.handle(pm, Cli.Metadata, { param: [] }).then(err => { throw err; }, res => res);
24
+ registerCommands(metaContainer.commands, null, pm);
25
+ return pm;
26
+ }
27
+ return new Container('pm', {});
28
+ }
29
+ export async function connect(name, container) {
30
+ container = container || module('@akala/pm').resolve('container');
31
+ if (name === 'pm') {
32
+ const metaContainer = await container.dispatch('$metadata');
33
+ return { connect: container.dispatch('connect', name), container: metaContainer };
34
+ }
35
+ const metaContainer = await container.dispatch('$metadata', true);
36
+ return { connect: container.dispatch('connect', name), container: { name, commands: metaContainer.commands.filter(c => c.name.startsWith(name + '.')).map(c => ({ name: c.name.substring(name.length + 1), config: c.config })) } };
37
+ }
38
+ export const defaultOrders = ['ssocket', 'socket', 'wss', 'ws'];
39
+ import getRandomName from './commands/name.js';
40
+ import sidecarSingleton, { sidecar } from "./sidecar.js";
41
+ export { sidecar, sidecarSingleton };
42
+ export { getRandomName };
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="webpack-env" />
3
+ /// <reference types="node" resolution-mode="require"/>
4
+ import { ChildProcess } from "child_process";
5
+ import * as jsonrpc from '@akala/json-rpc-ws';
6
+ import { SocketAdapterEventMap } from "@akala/json-rpc-ws";
7
+ export declare class IpcAdapter implements jsonrpc.SocketAdapter {
8
+ private cp;
9
+ get open(): boolean;
10
+ pipe(socket: jsonrpc.SocketAdapter<unknown>): void;
11
+ close(): void;
12
+ send(data: string): void;
13
+ off<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
14
+ on<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
15
+ once<K extends keyof SocketAdapterEventMap>(event: K, handler: (ev: SocketAdapterEventMap[K]) => void): void;
16
+ constructor(cp: ChildProcess | NodeJS.Process);
17
+ }
@@ -0,0 +1,60 @@
1
+ export class IpcAdapter {
2
+ cp;
3
+ get open() { return !!this.cp.pid; }
4
+ pipe(socket) {
5
+ this.on('message', (message) => socket.send(message));
6
+ this.on('close', () => socket.close());
7
+ }
8
+ close() {
9
+ this.cp.disconnect();
10
+ }
11
+ send(data) {
12
+ if (this.cp.send)
13
+ this.cp.send(data + '\n');
14
+ else
15
+ console.warn(`process ${this.cp.pid} does not support send over IPC`);
16
+ }
17
+ off(event, handler) {
18
+ switch (event) {
19
+ case 'message':
20
+ this.cp.off('message', handler);
21
+ break;
22
+ case 'open':
23
+ handler(null);
24
+ break;
25
+ case 'close':
26
+ this.cp.off('disconnect', handler);
27
+ break;
28
+ }
29
+ }
30
+ on(event, handler) {
31
+ switch (event) {
32
+ case 'message':
33
+ this.cp.on('message', handler);
34
+ break;
35
+ case 'open':
36
+ handler(null);
37
+ break;
38
+ case 'close':
39
+ this.cp.on('disconnect', handler);
40
+ break;
41
+ }
42
+ }
43
+ once(event, handler) {
44
+ switch (event) {
45
+ case 'message':
46
+ this.cp.once('message', handler);
47
+ break;
48
+ case 'open':
49
+ handler(null);
50
+ break;
51
+ case 'close':
52
+ this.cp.once('disconnect', () => handler(null));
53
+ break;
54
+ }
55
+ }
56
+ constructor(cp) {
57
+ this.cp = cp;
58
+ }
59
+ }
60
+ //# sourceMappingURL=ipc-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc-adapter.js","sourceRoot":"","sources":["../../src/ipc-adapter.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IAsEC;IApEpB,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,GAAG,CAAwC,KAAQ,EAAE,OAA+C;QAEhG,QAAQ,KAAK,EACb;YACI,KAAK,SAAS;gBACV,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChC,MAAM;YACV,KAAK,MAAM;gBACP,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM;SACb;IACL,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"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
+ import { Transform, TransformCallback } from "stream";
4
+ interface Options {
5
+ useColors?: boolean;
6
+ }
7
+ export declare class NewLinePrefixer extends Transform {
8
+ private prefix;
9
+ constructor(prefix: string, options?: Options);
10
+ private blankNewLine;
11
+ _transform(chunk: string | Buffer, encoding: BufferEncoding | 'buffer', callback: TransformCallback): void;
12
+ }
13
+ export {};
@@ -0,0 +1,39 @@
1
+ import { Transform } from "stream";
2
+ const colors = [6, 2, 3, 4, 5, 1];
3
+ function selectColor(namespace) {
4
+ let hash = 0;
5
+ for (let i = 0; i < namespace.length; i++) {
6
+ hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
7
+ hash |= 0; // Convert to 32bit integer
8
+ }
9
+ return colors[Math.abs(hash) % colors.length];
10
+ }
11
+ export class NewLinePrefixer extends Transform {
12
+ prefix;
13
+ constructor(prefix, options) {
14
+ super();
15
+ this.prefix = prefix;
16
+ this.setDefaultEncoding('utf8');
17
+ this.setEncoding('utf8');
18
+ if (options?.useColors) {
19
+ const c = selectColor(prefix);
20
+ const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
21
+ this.prefix = ` ${colorCode};1m${prefix} \u001B[0m`;
22
+ }
23
+ }
24
+ blankNewLine = true;
25
+ _transform(chunk, encoding, callback) {
26
+ if (Buffer.isBuffer(chunk)) {
27
+ if (encoding == 'buffer')
28
+ encoding = 'utf8';
29
+ chunk = chunk.toString(encoding || 'utf8');
30
+ }
31
+ if (typeof chunk != 'string')
32
+ throw new Error(`Unsupported chunk type ${typeof chunk}`);
33
+ if (this.blankNewLine)
34
+ chunk = this.prefix + chunk;
35
+ this.blankNewLine = /\n$/.test(chunk);
36
+ callback(null, chunk.replace(/\n([^$])/g, `\n${this.prefix}$1`));
37
+ }
38
+ }
39
+ //# sourceMappingURL=new-line-prefixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-line-prefixer.js","sourceRoot":"","sources":["../../src/new-line-prefixer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,QAAQ,CAAC;AAOtD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAElC,SAAS,WAAW,CAAC,SAAS;IAE1B,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EACzC;QACI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,CAAC,CAAC,2BAA2B;KACzC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAEtB;IAApB,YAAoB,MAAc,EAAE,OAAiB;QAEjD,KAAK,EAAE,CAAC;QAFQ,WAAM,GAAN,MAAM,CAAQ;QAG9B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,OAAO,EAAE,SAAS,EACtB;YACI,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,KAAK,SAAS,MAAM,MAAM,YAAY,CAAC;SACxD;IACL,CAAC;IAEO,YAAY,GAAG,IAAI,CAAC;IAE5B,UAAU,CAAC,KAAsB,EAAE,QAAmC,EAAE,QAA2B;QAE/F,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC1B;YACI,IAAI,QAAQ,IAAI,QAAQ;gBACpB,QAAQ,GAAG,MAAM,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;SAC9C;QAED,IAAI,OAAO,KAAK,IAAI,QAAQ;YACxB,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,KAAK,EAAE,CAAC,CAAA;QAE7D,IAAI,IAAI,CAAC,YAAY;YACjB,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IAEpE,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ install(packageName: string, path?: string): Promise<void>;
3
+ update(packageName: string, path?: string): Promise<void>;
4
+ link(packageName: string, path?: string): Promise<void>;
5
+ };
6
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { platform } from "os";
2
+ import { spawnAsync } from './cli-helper.js';
3
+ // if (typeof (process.versions.pnp) != 'undefined')
4
+ // {
5
+ // }
6
+ let npm = 'npm';
7
+ if (platform() == 'win32')
8
+ npm = 'npm.cmd';
9
+ export default {
10
+ async install(packageName, path) {
11
+ await spawnAsync(npm, {}, 'i', packageName, '--prefix', path || process.cwd(), '--production');
12
+ },
13
+ async update(packageName, path) {
14
+ await spawnAsync(npm, {}, 'up', packageName, '--prefix', path || process.cwd(), '--production');
15
+ },
16
+ async link(packageName, path) {
17
+ await spawnAsync(npm, { cwd: path || process.cwd() }, 'link', packageName);
18
+ }
19
+ };
20
+ //# sourceMappingURL=npm-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-helper.js","sourceRoot":"","sources":["../../src/npm-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,oDAAoD;AACpD,IAAI;AAEJ,IAAI;AAEJ,IAAI,GAAG,GAAG,KAAK,CAAC;AAChB,IAAI,QAAQ,EAAE,IAAI,OAAO;IACrB,GAAG,GAAG,SAAS,CAAC;AAEpB,eACI;IACI,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,IAAa;QAE5C,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACnG,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,IAAa;QAE3C,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACpG,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,IAAa;QAEzC,MAAM,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;IAC9E,CAAC;CACJ,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { ConnectionPreference, Container } from "@akala/commands";
2
+ import { SideCarConnectionPreference, Sidecar } from "./index.js";
3
+ import pm from './container.js';
4
+ export default function (options?: {
5
+ pm?: pm.container & Container<void>;
6
+ } & (Omit<ConnectionPreference, 'metadata'> | SideCarConnectionPreference | Omit<ConnectionPreference, 'metadata'> & SideCarConnectionPreference), noCache?: boolean): Sidecar;
7
+ export declare function sidecar(options?: {
8
+ pm?: pm.container & Container<void>;
9
+ } & (Omit<ConnectionPreference, 'metadata'> | SideCarConnectionPreference | Omit<ConnectionPreference, 'metadata'> & SideCarConnectionPreference), noCache?: boolean): Sidecar;
@@ -0,0 +1,45 @@
1
+ import { connectByPreference, updateCommands } from "@akala/commands";
2
+ import { defaultOrders, connect } from "./index.js";
3
+ import * as ac from '@akala/commands';
4
+ let instance;
5
+ export default function (options, noCache) {
6
+ return instance || (instance = sidecar(options, noCache));
7
+ }
8
+ export function sidecar(options, noCache) {
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ return new Proxy({}, {
11
+ get(target, property) {
12
+ if (typeof (property) !== 'string')
13
+ return Reflect.get(target, property);
14
+ const orders = options && options[property] && options[property].orders || defaultOrders;
15
+ if (!options)
16
+ options = {};
17
+ if (typeof options.preferRemote == 'undefined')
18
+ options.preferRemote = !process.connected;
19
+ if (noCache || typeof (target[property]) == 'undefined')
20
+ Object.defineProperty(target, property, {
21
+ value: connect(property, options.pm).then(async (meta) => {
22
+ try {
23
+ const c = await connectByPreference(await meta.connect, Object.assign({ metadata: meta.container }, options, options && options[property]), ...orders);
24
+ return c.container;
25
+ }
26
+ catch (e) {
27
+ if (e && e.statusCode == 404 || !meta.connect) {
28
+ return await connect('pm', options.pm).then(async (meta) => {
29
+ const c = await connectByPreference(await meta.connect, Object.assign({ metadata: meta.container }, options, options && options[property]), ...orders);
30
+ await c.container.dispatch('proxy', property);
31
+ c.container.unregister(ac.Cli.Metadata.name);
32
+ c.container.register(Object.assign(ac.Metadata.extractCommandMetadata(ac.Cli.Metadata), { processor: c.processor }));
33
+ updateCommands((await c.container.dispatch('$metadata', true)).commands, c.processor, c.container);
34
+ return c.container;
35
+ });
36
+ }
37
+ throw e;
38
+ }
39
+ })
40
+ });
41
+ return target[property];
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=sidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/sidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,80 @@
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 { logger, MiddlewareComposite } from '@akala/core';
8
+ import program, { buildCliContextFromProcess, ErrorMessage, NamespaceMiddleware } from '@akala/cli';
9
+ program.option('help');
10
+ let folderOrFile;
11
+ let cliContainer;
12
+ let processor;
13
+ let log;
14
+ const logMiddleware = new NamespaceMiddleware(null).option('verbose', { aliases: ['v',] });
15
+ logMiddleware.preAction(async (c) => {
16
+ if (c.options.verbose)
17
+ processor = new ac.Processors.LogProcessor(processor, (cmd, params) => {
18
+ log.verbose({ cmd, params });
19
+ return Promise.resolve();
20
+ });
21
+ await ac.Processors.FileSystem.discoverCommands(c.options.program, cliContainer, { processor: processor, isDirectory: folderOrFile.isDirectory() });
22
+ });
23
+ const initMiddleware = new NamespaceMiddleware(null);
24
+ const controller = new AbortController();
25
+ program.option('program', { needsValue: true, normalize: true }).
26
+ option('name', { needsValue: true }).
27
+ option('tls', { needsValue: false }).
28
+ options({
29
+ 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 },
30
+ tcpPort: { needsValue: true, doc: 'tcp port', aliases: ['tcp-port'], optional: true, caseSensitive: false },
31
+ cert: { needsValue: true, doc: 'public certificate', aliases: ['certificate'], optional: true, caseSensitive: false },
32
+ key: { needsValue: true, doc: 'private certificate key. Requires public certificate', aliases: ['certificate-key'], optional: true, caseSensitive: false }
33
+ }).
34
+ preAction(async (c) => //If pure js file
35
+ {
36
+ folderOrFile = await lstat(c.options.program);
37
+ if (folderOrFile.isFile() && path.extname(c.options.program) === '.js')
38
+ return require(c.options.program);
39
+ log = logger(c.options.name);
40
+ cliContainer = new ac.Container('cli', {});
41
+ if (folderOrFile.isFile())
42
+ processor = new ac.Processors.FileSystem(path.dirname(c.options.program));
43
+ else
44
+ processor = new ac.Processors.FileSystem(c.options.program);
45
+ }).
46
+ useMiddleware(null, MiddlewareComposite.new(logMiddleware, {
47
+ handle: async (c) => {
48
+ cliContainer.name = c.options.name;
49
+ const init = cliContainer.resolve('$init');
50
+ if (init && init.config && init.config.cli && init.config.cli.options)
51
+ ac.Triggers.addCliOptions(init, initMiddleware);
52
+ process.on('unhandledRejection', (x) => {
53
+ controller.abort(x);
54
+ return false;
55
+ });
56
+ process.on('uncaughtException', (x) => {
57
+ controller.abort(x);
58
+ return false;
59
+ });
60
+ process.on('SIGINT', () => controller.abort(null));
61
+ initMiddleware.action(async (c) => {
62
+ if (init)
63
+ await cliContainer.dispatch(init, { options: c.options, param: c.args, _trigger: 'cli', context: c });
64
+ });
65
+ }
66
+ }, initMiddleware));
67
+ controller.signal.addEventListener('abort', function () {
68
+ if (this.reason) {
69
+ process.exitCode = 1;
70
+ if (this.reason instanceof ErrorMessage)
71
+ console.error(this.reason.message);
72
+ else
73
+ console.error(this.reason);
74
+ }
75
+ });
76
+ if (require.main == module)
77
+ program.process(buildCliContextFromProcess()).catch(e => {
78
+ setImmediate(() => controller.abort(e));
79
+ });
80
+ //# sourceMappingURL=standalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standalone.js","sourceRoot":"","sources":["../../src/standalone.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { Container } from "@akala/commands";
3
+ import { ChildProcess } from "child_process";
4
+ import { Deferred, SerializableObject } from "@akala/core";
5
+ import { SocketAdapter } from "@akala/json-rpc-ws";
6
+ import { ServeMetadata } from "@akala/commands";
7
+ import { ProxyConfiguration } from "@akala/config";
8
+ export default interface State {
9
+ processes: {
10
+ [key: string]: RunningContainer;
11
+ };
12
+ isDaemon: boolean;
13
+ config: ProxyConfiguration<StateConfiguration>;
14
+ bridges: {
15
+ [key: string]: {
16
+ left: SocketAdapter;
17
+ right?: SocketAdapter;
18
+ };
19
+ };
20
+ }
21
+ export interface StateConfiguration {
22
+ containers: {
23
+ [key: string]: SidecarMetadata;
24
+ };
25
+ mapping: {
26
+ [key: string]: SidecarConfiguration;
27
+ };
28
+ plugins: string[];
29
+ }
30
+ export interface SidecarMetadata {
31
+ path: string;
32
+ stateless: boolean;
33
+ dependencies?: string[];
34
+ commandable: boolean;
35
+ type?: 'nodejs';
36
+ }
37
+ export interface SidecarConfiguration<T extends string | SerializableObject = SerializableObject> {
38
+ cli?: string[];
39
+ container: string;
40
+ connect?: ServeMetadata;
41
+ cwd?: string;
42
+ config?: T;
43
+ }
44
+ export interface RunningContainer<T extends string | SerializableObject = any> extends Container<unknown>, SidecarConfiguration<T>, SidecarMetadata {
45
+ process: ChildProcess;
46
+ running?: boolean;
47
+ stateless: boolean;
48
+ ready?: Deferred<void>;
49
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=state.js.map