@akala/pm 5.2.38 → 5.2.40

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 (149) hide show
  1. package/changelog.md +7 -1
  2. package/commands.json +2 -1
  3. package/dist/cjs/cli-helper.d.ts +1 -1
  4. package/dist/cjs/cli-helper.js +1 -1
  5. package/dist/cjs/commands/bridge.d.ts +1 -1
  6. package/dist/cjs/commands/bridge.js +1 -1
  7. package/dist/cjs/commands/config.d.ts +1 -1
  8. package/dist/cjs/commands/config.js +1 -1
  9. package/dist/cjs/commands/connect.d.ts +1 -1
  10. package/dist/cjs/commands/connect.js +1 -1
  11. package/dist/cjs/commands/discover.d.ts +1 -1
  12. package/dist/cjs/commands/discover.js +1 -1
  13. package/dist/cjs/commands/install.d.ts +1 -1
  14. package/dist/cjs/commands/install.js +1 -1
  15. package/dist/cjs/commands/link.d.ts +1 -1
  16. package/dist/cjs/commands/link.js +1 -1
  17. package/dist/cjs/commands/log.d.ts +1 -1
  18. package/dist/cjs/commands/log.js +1 -1
  19. package/dist/cjs/commands/ls.d.ts +1 -1
  20. package/dist/cjs/commands/ls.js +1 -1
  21. package/dist/cjs/commands/map.d.ts +1 -1
  22. package/dist/cjs/commands/map.js +1 -1
  23. package/dist/cjs/commands/name.d.ts +1 -1
  24. package/dist/cjs/commands/name.js +1 -1
  25. package/dist/cjs/commands/plugin/add.d.ts +1 -1
  26. package/dist/cjs/commands/plugin/add.js +1 -1
  27. package/dist/cjs/commands/plugin/remove.d.ts +1 -1
  28. package/dist/cjs/commands/plugin/remove.js +1 -1
  29. package/dist/cjs/commands/proxy.d.ts +1 -1
  30. package/dist/cjs/commands/proxy.js +1 -1
  31. package/dist/cjs/commands/ready.d.ts +1 -1
  32. package/dist/cjs/commands/ready.js +1 -1
  33. package/dist/cjs/commands/reload-metadata.d.ts +1 -1
  34. package/dist/cjs/commands/reload-metadata.js +1 -1
  35. package/dist/cjs/commands/restart.d.ts +1 -1
  36. package/dist/cjs/commands/restart.js +1 -1
  37. package/dist/cjs/commands/start.d.ts +1 -1
  38. package/dist/cjs/commands/start.js +1 -1
  39. package/dist/cjs/commands/status.d.ts +1 -1
  40. package/dist/cjs/commands/status.js +1 -1
  41. package/dist/cjs/commands/stop.d.ts +1 -1
  42. package/dist/cjs/commands/stop.js +1 -1
  43. package/dist/cjs/commands/update.d.ts +1 -1
  44. package/dist/cjs/commands/update.js +1 -1
  45. package/dist/cjs/commands/version.d.ts +1 -1
  46. package/dist/cjs/commands/version.js +1 -1
  47. package/dist/cjs/container.d.ts +1 -3
  48. package/dist/cjs/container.js +1 -1
  49. package/dist/cjs/index.d.ts +1 -1
  50. package/dist/cjs/index.js +1 -1
  51. package/dist/cjs/ipc-adapter.d.ts +1 -1
  52. package/dist/cjs/ipc-adapter.js +1 -1
  53. package/dist/cjs/new-line-prefixer.d.ts +1 -1
  54. package/dist/cjs/new-line-prefixer.js +1 -1
  55. package/dist/cjs/npm-helper.d.ts +1 -1
  56. package/dist/cjs/npm-helper.js +1 -1
  57. package/dist/cjs/sidecar.d.ts +1 -1
  58. package/dist/cjs/sidecar.js +1 -1
  59. package/dist/cjs/standalone.d.ts +1 -1
  60. package/dist/cjs/standalone.js +1 -1
  61. package/dist/cjs/state.d.ts +1 -1
  62. package/dist/cjs/state.js +1 -1
  63. package/dist/cjs/test/pwet.d.ts +1 -1
  64. package/dist/cjs/test/pwet.js +1 -1
  65. package/dist/cjs/yarn-helper.d.ts +1 -1
  66. package/dist/cjs/yarn-helper.js +1 -1
  67. package/dist/esm/akala.d.mts +1 -1
  68. package/dist/esm/akala.mjs +1 -1
  69. package/dist/esm/cli-helper.d.ts +1 -1
  70. package/dist/esm/cli-helper.js +1 -1
  71. package/dist/esm/cli.d.ts +1 -1
  72. package/dist/esm/cli.js +1 -1
  73. package/dist/esm/commands/$init.d.ts +2 -1
  74. package/dist/esm/commands/$init.js +5 -12
  75. package/dist/esm/commands/$init.js.map +1 -1
  76. package/dist/esm/commands/bridge.d.ts +1 -1
  77. package/dist/esm/commands/bridge.js +1 -1
  78. package/dist/esm/commands/config.d.ts +1 -1
  79. package/dist/esm/commands/config.js +1 -1
  80. package/dist/esm/commands/connect.d.ts +1 -1
  81. package/dist/esm/commands/connect.js +1 -1
  82. package/dist/esm/commands/discover.d.ts +1 -1
  83. package/dist/esm/commands/discover.js +1 -1
  84. package/dist/esm/commands/install.d.ts +1 -1
  85. package/dist/esm/commands/install.js +1 -1
  86. package/dist/esm/commands/link.d.ts +1 -1
  87. package/dist/esm/commands/link.js +1 -1
  88. package/dist/esm/commands/log.d.ts +1 -1
  89. package/dist/esm/commands/log.js +1 -1
  90. package/dist/esm/commands/ls.d.ts +1 -1
  91. package/dist/esm/commands/ls.js +1 -1
  92. package/dist/esm/commands/map.d.ts +1 -1
  93. package/dist/esm/commands/map.js +1 -1
  94. package/dist/esm/commands/name.d.ts +1 -1
  95. package/dist/esm/commands/name.js +1 -1
  96. package/dist/esm/commands/plugin/add.d.ts +1 -1
  97. package/dist/esm/commands/plugin/add.js +1 -1
  98. package/dist/esm/commands/plugin/remove.d.ts +1 -1
  99. package/dist/esm/commands/plugin/remove.js +1 -1
  100. package/dist/esm/commands/proxy.d.ts +1 -1
  101. package/dist/esm/commands/proxy.js +1 -1
  102. package/dist/esm/commands/ready.d.ts +1 -1
  103. package/dist/esm/commands/ready.js +1 -1
  104. package/dist/esm/commands/reload-metadata.d.ts +1 -1
  105. package/dist/esm/commands/reload-metadata.js +1 -1
  106. package/dist/esm/commands/restart.d.ts +1 -1
  107. package/dist/esm/commands/restart.js +1 -1
  108. package/dist/esm/commands/start.d.ts +1 -1
  109. package/dist/esm/commands/start.js +1 -1
  110. package/dist/esm/commands/status.d.ts +1 -1
  111. package/dist/esm/commands/status.js +1 -1
  112. package/dist/esm/commands/stop.d.ts +1 -1
  113. package/dist/esm/commands/stop.js +1 -1
  114. package/dist/esm/commands/update.d.ts +1 -1
  115. package/dist/esm/commands/update.js +1 -1
  116. package/dist/esm/commands/version.d.ts +1 -1
  117. package/dist/esm/commands/version.js +1 -1
  118. package/dist/esm/container.d.ts +1 -3
  119. package/dist/esm/container.js +1 -1
  120. package/dist/esm/fork.d.ts +1 -1
  121. package/dist/esm/fork.js +1 -1
  122. package/dist/esm/index.d.ts +1 -1
  123. package/dist/esm/index.js +1 -1
  124. package/dist/esm/ipc-adapter.d.ts +1 -1
  125. package/dist/esm/ipc-adapter.js +1 -1
  126. package/dist/esm/new-line-prefixer.d.ts +1 -1
  127. package/dist/esm/new-line-prefixer.js +1 -1
  128. package/dist/esm/npm-helper.d.ts +1 -1
  129. package/dist/esm/npm-helper.js +1 -1
  130. package/dist/esm/sidecar.d.ts +1 -1
  131. package/dist/esm/sidecar.js +1 -1
  132. package/dist/esm/standalone.d.ts +1 -1
  133. package/dist/esm/standalone.js +1 -1
  134. package/dist/esm/state.d.ts +1 -1
  135. package/dist/esm/state.js +1 -1
  136. package/dist/esm/test/pwet.d.ts +1 -1
  137. package/dist/esm/test/pwet.js +1 -1
  138. package/dist/esm/yarn-helper.d.ts +1 -1
  139. package/dist/esm/yarn-helper.js +1 -1
  140. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  141. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  142. package/package.json +4 -4
  143. package/src/commands/$init.json +4 -1
  144. package/src/commands/$init.ts +6 -15
  145. package/src/container.ts +0 -2
  146. package/tsconfig.cjs.json +2 -1
  147. package/dist/cjs/commands/$init.d.ts +0 -10
  148. package/dist/cjs/commands/$init.js +0 -145
  149. package/dist/cjs/commands/$init.js.map +0 -1
package/src/container.ts CHANGED
@@ -7,7 +7,6 @@ namespace commands
7
7
  {
8
8
  export interface container
9
9
  {
10
- dispatch (cmd:'$init', ...args: [Argument1<typeof import('./commands/$init.js').default>]): ReturnType<typeof import('./commands/$init.js').default>
11
10
  dispatch (cmd:'add', ...args: [Argument0<typeof import('./commands/plugin/add.js').default>]): ReturnType<typeof import('./commands/plugin/add.js').default>
12
11
  dispatch (cmd:'bridge', ...args: [Argument0<typeof import('./commands/bridge.js').default>, Argument1<typeof import('./commands/bridge.js').default>]): ReturnType<typeof import('./commands/bridge.js').default>
13
12
  dispatch (cmd:'config', ...args: [Argument0<typeof import('./commands/config.js').default>, Argument1<typeof import('./commands/config.js').default>]): ReturnType<typeof import('./commands/config.js').default>
@@ -32,7 +31,6 @@ namespace commands
32
31
  }
33
32
  export interface proxy
34
33
  {
35
- '$init'(...args: [Argument1<typeof import('./commands/$init.js').default>]): ReturnType<typeof import('./commands/$init.js').default>
36
34
  'add'(...args: [Argument0<typeof import('./commands/plugin/add.js').default>]): ReturnType<typeof import('./commands/plugin/add.js').default>
37
35
  'bridge'(...args: [Argument0<typeof import('./commands/bridge.js').default>, Argument1<typeof import('./commands/bridge.js').default>]): ReturnType<typeof import('./commands/bridge.js').default>
38
36
  'config'(...args: [Argument0<typeof import('./commands/config.js').default>, Argument1<typeof import('./commands/config.js').default>]): ReturnType<typeof import('./commands/config.js').default>
package/tsconfig.cjs.json CHANGED
@@ -16,7 +16,8 @@
16
16
  "exclude": [
17
17
  "src/akala.mts",
18
18
  "src/fork.ts",
19
- "src/cli.ts"
19
+ "src/cli.ts",
20
+ "src/commands/$init.ts",
20
21
  ],
21
22
  "references": [
22
23
  {
@@ -1,10 +0,0 @@
1
- import State, { RunningContainer } from '../state.js';
2
- import pmContainer from '../container.js';
3
- import { Container, Metadata } from '@akala/commands';
4
- import { CliContext } from '@akala/cli';
5
- export declare function metadata(container: Container<unknown>, deep?: boolean): Promise<Metadata.Container>;
6
- export declare function isRunningContainer(c: Container<unknown>): c is RunningContainer;
7
- export default function (this: State, container: RunningContainer & pmContainer.container, context: CliContext<{
8
- config: string;
9
- keepAttached: boolean;
10
- }>): Promise<void>;
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.isRunningContainer = exports.metadata = void 0;
16
- const os_1 = require("os");
17
- const promises_1 = __importDefault(require("fs/promises"));
18
- const path_1 = require("path");
19
- const commands_1 = require("@akala/commands");
20
- const stream_1 = require("stream");
21
- const events_1 = require("events");
22
- const config_1 = require("@akala/config");
23
- function metadata(container, deep) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const metacontainer = { name: container.name || 'unnamed', commands: [] };
26
- yield Promise.all(container.keys().map((key) => __awaiter(this, void 0, void 0, function* () {
27
- if (key === '$injector' || key === '$state' || key === '$container' || commands_1.ignoredCommands.indexOf(key) > -1 || key == '$init' || key == '$stop')
28
- return;
29
- const cmd = container.resolve(key);
30
- if (cmd && cmd.name && commands_1.Metadata.isCommand(cmd) && commands_1.ignoredCommands.indexOf(cmd.name) == -1)
31
- metacontainer.commands.push({ name: cmd.name, config: cmd.config });
32
- else if (cmd instanceof commands_1.Container && deep) {
33
- if (!isRunningContainer(cmd) || !cmd.running && !cmd.stateless)
34
- return;
35
- try {
36
- const subContainer = yield cmd.dispatch('$metadata', deep);
37
- console.log(subContainer);
38
- if (subContainer && subContainer.commands) {
39
- subContainer.commands.forEach(c => c.name = key + '.' + c.name);
40
- metacontainer.commands.push(...subContainer.commands.filter(c => c.name !== key + '.$init' && c.name !== key + '.$stop'));
41
- }
42
- }
43
- catch (e) {
44
- if (!e || e.statusCode == 404)
45
- return;
46
- throw e;
47
- }
48
- }
49
- })));
50
- return metacontainer;
51
- });
52
- }
53
- exports.metadata = metadata;
54
- function isRunningContainer(c) {
55
- return 'running' in c;
56
- }
57
- exports.isRunningContainer = isRunningContainer;
58
- //eslint-disable-next-line @typescript-eslint/no-explicit-any
59
- function requireOrImportJson(path) {
60
- if (require)
61
- return Promise.resolve(require(path));
62
- else
63
- //eslint-disable-next-line @typescript-eslint/ban-ts-comment
64
- //@ts-ignore
65
- return import(path, { assert: { type: 'json' } }).then(i => i.default);
66
- }
67
- function default_1(container, context) {
68
- var _a, _b;
69
- return __awaiter(this, void 0, void 0, function* () {
70
- this.isDaemon = true;
71
- this.processes = {};
72
- this.bridges = {};
73
- const stderr = process.stderr.write;
74
- const stderrPT = new stream_1.PassThrough();
75
- process.stderr.write = function (...args) {
76
- stderr.call(process.stderr, ...args);
77
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
78
- return stderrPT.write(...args);
79
- };
80
- const stdout = process.stdout.write;
81
- const stdoutPT = new stream_1.PassThrough();
82
- process.stdout.write = function (...args) {
83
- stdout.call(process.stdout, ...args);
84
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
- return stdoutPT.write(...args);
86
- };
87
- container.process = Object.assign(new events_1.EventEmitter(), {
88
- stdout: stdoutPT, stderr: stderrPT, stdio: null, stdin: process.stdin, pid: process.pid, connected: false,
89
- exitCode: undefined,
90
- signalCode: undefined,
91
- spawnargs: process.argv,
92
- spawnfile: null,
93
- kill: process.exit.bind(process),
94
- send: null,
95
- disconnect: null,
96
- unref: null,
97
- ref: null,
98
- killed: false
99
- });
100
- const configPath = context.options.config || (0, path_1.join)((0, os_1.homedir)(), './.pm.config.json');
101
- this.config = yield config_1.Configuration.load(configPath, true);
102
- if ((_b = (_a = this.config) === null || _a === void 0 ? void 0 : _a.mapping) === null || _b === void 0 ? void 0 : _b.pm) {
103
- if (this.config.mapping.pm.cwd)
104
- process.chdir(this.config.mapping.pm.cwd);
105
- }
106
- else
107
- this.config = config_1.Configuration.new(configPath, {
108
- containers: { pm: { commandable: true, stateless: false, path: yield requireOrImportJson('../../../commands.json') } },
109
- mapping: { pm: { cwd: process.cwd(), container: 'pm' } },
110
- plugins: []
111
- });
112
- if (context && context.args.length)
113
- yield container.dispatch('connect', 'pm', context);
114
- else {
115
- yield container.dispatch('connect', 'pm').catch((e) => __awaiter(this, void 0, void 0, function* () {
116
- if (e && e.statusCode == 404)
117
- yield container.dispatch('connect', 'pm', { args: ['local'] });
118
- }));
119
- }
120
- yield this.config.commit();
121
- container.name = 'pm';
122
- const config = container.resolve('$metadata.config');
123
- container.unregister('$metadata');
124
- container.register((0, commands_1.configure)(config)(new commands_1.SelfDefinedCommand(metadata, '$metadata', ['$container', 'param.0'])));
125
- this.processes[container.name] = container;
126
- container.running = true;
127
- try {
128
- yield promises_1.default.unlink('./pm.sock');
129
- }
130
- catch (e) {
131
- if (e.code !== 'ENOENT')
132
- console.warn(e);
133
- }
134
- // var stop = await serve(container as Container<any>, serveMetadata(container.name, options || { _: ['local'] }));
135
- if (process.disconnect) {
136
- if (!context.options.keepAttached) {
137
- if (process.send)
138
- process.send('disconnecting daemon');
139
- process.disconnect();
140
- }
141
- }
142
- });
143
- }
144
- exports.default = default_1;
145
- //# sourceMappingURL=$init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"$init.js","sourceRoot":"","sources":["../../../src/commands/$init.ts"],"names":[],"mappings":"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"}