@open-wa/wa-automate 4.34.4 → 4.35.2

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.'
@@ -314,7 +314,10 @@ function create(config = {}) {
314
314
  yield (0, exports.timeout)(5000);
315
315
  }
316
316
  //@ts-ignore
317
- const VALID_SESSION = yield waPage.waitForFunction(`window.Store && window.Store.Msg ? true : false`, { timeout: 9000, polling: 200 }).catch(e => false);
317
+ const VALID_SESSION = yield waPage.waitForFunction(`window.Store && window.Store.Msg ? true : false`, { timeout: 9000, polling: 200 }).catch((e) => __awaiter(this, void 0, void 0, function* () {
318
+ logging_1.log.error("Valid session check failed", e);
319
+ return false;
320
+ }));
318
321
  if (VALID_SESSION) {
319
322
  /**
320
323
  * Session is valid, attempt to preload patches
@@ -428,6 +431,8 @@ function create(config = {}) {
428
431
  return client;
429
432
  }
430
433
  else {
434
+ const storeKeys = yield waPage.evaluate(`Object.keys(window.Store || {})`);
435
+ logging_1.log.info("Store keys", storeKeys);
431
436
  spinner.fail('The session is invalid. Retrying');
432
437
  yield (0, browser_1.kill)(waPage);
433
438
  return yield create(config);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-wa/wa-automate",
3
- "version": "4.34.4",
3
+ "version": "4.35.2",
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",