@open-wa/wa-automate 4.34.2 → 4.35.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/bin/server.js CHANGED
@@ -1,3 +1,40 @@
1
1
  #! /usr/bin/env node
2
- // require('./index.js');
3
- require('../dist/cli');
2
+ const pm2Index = process.argv.findIndex(arg => arg === "--pm2");
3
+ const sIdIndex = process.argv.findIndex(arg => arg === "--session-id");
4
+ const nameIndex = process.argv.findIndex(arg => arg === "--name");
5
+ const getVal = (index) => index !== -1 && process.argv[index + 1]
6
+ const getBool = (index) => !((index !== -1 && process.argv[index + 1]) === false)
7
+ const procName = getVal(sIdIndex || nameIndex) || "@OPEN-WA EASY API";
8
+ const CLI = '../dist/cli'
9
+ async function start() {
10
+ if (getBool(pm2Index)) {
11
+ const { spawn } = require("child_process");
12
+ try {
13
+ const pm2 = spawn('pm2');
14
+ await new Promise((resolve, reject) => {
15
+ pm2.on('error', reject);
16
+ pm2.stdout.on('data', () => resolve(true));
17
+ })
18
+ const pm2Flags = (getVal(pm2Index) || "").split(" ");
19
+ const cliFlags = (process.argv.slice(2) || []);
20
+ spawn("pm2", [
21
+ "start",
22
+ require.resolve(CLI),
23
+ '--name',
24
+ procName,
25
+ ...pm2Flags,
26
+ '--',
27
+ ...cliFlags.filter(x=>!pm2Flags.includes(x))
28
+ ], {
29
+ stdio: "inherit",
30
+ detached: true
31
+ })
32
+ } catch (error) {
33
+ if (error.errorno === -2) console.error("pm2 not found. Please install with the following command: npm install -g pm2");
34
+ }
35
+ } else {
36
+ require(CLI);
37
+ }
38
+ }
39
+
40
+ start()
@@ -234,6 +234,12 @@ exports.optionList = [{
234
234
  type: Boolean,
235
235
  description: "Expose a tunnel to your EASY API session - this is for testing and it is unsecured."
236
236
  },
237
+ {
238
+ name: 'pm2',
239
+ type: Boolean,
240
+ typeLabel: '{yellow {underline "--max-memory-restart 300M"}}',
241
+ description: "Offload the EASY API to local instance of pm2. You can add pm2 specific arguments also if you want."
242
+ },
237
243
  {
238
244
  name: 'help',
239
245
  description: 'Print this usage guide.'
package/dist/cli/index.js CHANGED
@@ -186,6 +186,16 @@ function start() {
186
186
  (0, index_1.processSendData)({ port: PORT });
187
187
  yield ready(Object.assign(Object.assign(Object.assign(Object.assign({}, cliConfig), createConfig), client.getSessionInfo()), { hostAccountNumber: yield client.getHostNumber() }));
188
188
  }));
189
+ process.on('message', function (data) {
190
+ var _a;
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ if (((_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.command) === "port_report") {
193
+ const response = { port: PORT };
194
+ (0, index_1.processSendData)(response);
195
+ return response;
196
+ }
197
+ });
198
+ });
189
199
  if (cliConfig.tunnel) {
190
200
  spinner.info(`\n• Setting up external tunnel`);
191
201
  const tunnel = yield (0, localtunnel_1.default)({ port: PORT });
@@ -67,7 +67,7 @@ export declare function timePromise(fn: () => Promise<any>): Promise<string>;
67
67
  * @param {any} data - The data to be sent to the parent process.
68
68
  * @returns Nothing.
69
69
  */
70
- export declare const processSendData: (data?: any) => void;
70
+ export declare const processSendData: (data?: any) => boolean;
71
71
  /**
72
72
  * It generates a link to the GitHub issue template for the current session
73
73
  * @param {ConfigObject} config - the config object
@@ -212,11 +212,18 @@ exports.timePromise = timePromise;
212
212
  * @returns Nothing.
213
213
  */
214
214
  const processSendData = (data = {}) => {
215
- process.send({
215
+ const sd = () => process.send({
216
216
  type: 'process:msg',
217
217
  data
218
+ }, (error) => {
219
+ if (error) {
220
+ console.error(error);
221
+ }
218
222
  });
219
- return;
223
+ return sd();
224
+ // return await new Promise((resolve, reject)=>{
225
+ // sd(resolve,reject)
226
+ // })
220
227
  };
221
228
  exports.processSendData = processSendData;
222
229
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-wa/wa-automate",
3
- "version": "4.34.2",
3
+ "version": "4.35.0",
4
4
  "licenseCheckUrl": "https://funcs.openwa.dev/license-check",
5
5
  "brokenMethodReportUrl": "https://funcs.openwa.dev/report-bm",
6
6
  "patches": "https://cdn.openwa.dev/patches.json",