@react-grab/cli 0.1.43 → 0.1.44-dev.aeaa8ed

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/README.md CHANGED
@@ -24,7 +24,7 @@ npx grab@latest init
24
24
  | ---------------- | ----- | ---------------------------------------- |
25
25
  | `--yes` | `-y` | Skip confirmation prompts |
26
26
  | `--force` | `-f` | Force overwrite existing config |
27
- | `--key <key>` | `-k` | Activation key (e.g. Meta+K, Space) |
27
+ | `--key <key>` | `-k` | Shortcut (e.g. Meta+K, Space) |
28
28
  | `--skip-install` | | Skip package installation |
29
29
  | `--pkg <pkg>` | | Custom package URL |
30
30
  | `--cwd <cwd>` | `-c` | Working directory (default: current dir) |
@@ -40,7 +40,7 @@ npx grab@latest configure
40
40
  | Option | Alias | Description |
41
41
  | ---------------------- | ----- | --------------------------------------------- |
42
42
  | `--yes` | `-y` | Skip confirmation prompts |
43
- | `--key <key>` | `-k` | Activation key (e.g. Meta+K, Ctrl+Shift+G) |
43
+ | `--key <key>` | `-k` | Shortcut (e.g. Meta+K, Ctrl+Shift+G) |
44
44
  | `--mode <mode>` | `-m` | Activation mode (`toggle` or `hold`) |
45
45
  | `--hold-duration <ms>` | | Key hold duration in ms (hold mode, max 2000) |
46
46
  | `--allow-input <bool>` | | Allow activation inside input fields |
@@ -57,7 +57,7 @@ npx grab@latest init
57
57
  # Non-interactive setup
58
58
  npx grab@latest init -y
59
59
 
60
- # Set a custom activation key
60
+ # Set a custom shortcut
61
61
  npx grab@latest init -k "Meta+K"
62
62
 
63
63
  # Change activation mode to hold
package/dist/cli.cjs CHANGED
@@ -462,6 +462,13 @@ const promptSkillInstall = async ({ yes = false, global = false, cwd = process.c
462
462
  }
463
463
  let selectedAgents = detectedAgents;
464
464
  if (!yes) {
465
+ const { confirmed } = await prompts$1({
466
+ type: "confirm",
467
+ name: "confirmed",
468
+ message: `Install the React Grab skill (${global ? "global" : "this project"})?`,
469
+ initial: true
470
+ });
471
+ if (!confirmed) return false;
465
472
  const { agents } = await prompts$1({
466
473
  type: "multiselect",
467
474
  name: "agents",
@@ -512,7 +519,7 @@ const removeSkill = async ({ cwd = process.cwd(), global = false } = {}) => {
512
519
  };
513
520
  //#endregion
514
521
  //#region src/commands/add.ts
515
- const VERSION$5 = "0.1.43";
522
+ const VERSION$5 = "0.1.44-dev.aeaa8ed";
516
523
  const add = new commander.Command().name("add").alias("install").description("install the React Grab skill for your agent").option("-y, --yes", "skip confirmation prompts", false).option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "install the skill globally instead of in the project", false).action(async (opts) => {
517
524
  console.log(`${picocolors.default.magenta("✿")} ${picocolors.default.bold("React Grab")} ${picocolors.default.gray(VERSION$5)}`);
518
525
  console.log();
@@ -1131,7 +1138,7 @@ const formatActivationKeyDisplay = (activationKey) => {
1131
1138
  };
1132
1139
  //#endregion
1133
1140
  //#region src/commands/configure.ts
1134
- const VERSION$4 = "0.1.43";
1141
+ const VERSION$4 = "0.1.44-dev.aeaa8ed";
1135
1142
  const isMac = process.platform === "darwin";
1136
1143
  const META_LABEL = isMac ? "Cmd" : "Win";
1137
1144
  const ALT_LABEL = isMac ? "Option" : "Alt";
@@ -1401,8 +1408,8 @@ const generateSuggestions = (input) => {
1401
1408
  const CONFIG_OPTIONS = [
1402
1409
  {
1403
1410
  id: "activationKey",
1404
- title: "Activation Key",
1405
- description: "The key used to activate React Grab (e.g., g, k, space)"
1411
+ title: "Shortcut",
1412
+ description: "The shortcut used to activate React Grab (e.g., g, k, space)"
1406
1413
  },
1407
1414
  {
1408
1415
  id: "activationMode",
@@ -1437,7 +1444,7 @@ const comboToString = (combo) => {
1437
1444
  }
1438
1445
  return parts.join("+");
1439
1446
  };
1440
- const configure = new commander.Command().name("configure").alias("config").description("configure React Grab options").option("-y, --yes", "skip confirmation prompts", false).option("-k, --key <key>", "activation key (e.g., Meta+K, Ctrl+Shift+G, Space)").option("-m, --mode <mode>", "activation mode (toggle, hold)").option("--hold-duration <ms>", "key hold duration in milliseconds (for hold mode)").option("--allow-input <boolean>", "allow activation inside input fields (true/false)").option("--context-lines <lines>", "max context lines to include").option("--cdn <domain>", "CDN domain (e.g., unpkg.com, custom.react-grab.com)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).action(async (opts) => {
1447
+ const configure = new commander.Command().name("configure").alias("config").description("configure React Grab options").option("-y, --yes", "skip confirmation prompts", false).option("-k, --key <key>", "shortcut (e.g., Meta+K, Ctrl+Shift+G, Space)").option("-m, --mode <mode>", "activation mode (toggle, hold)").option("--hold-duration <ms>", "key hold duration in milliseconds (for hold mode)").option("--allow-input <boolean>", "allow activation inside input fields (true/false)").option("--context-lines <lines>", "max context lines to include").option("--cdn <domain>", "CDN domain (e.g., unpkg.com, custom.react-grab.com)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).action(async (opts) => {
1441
1448
  console.log(`${picocolors.default.magenta("✿")} ${picocolors.default.bold("React Grab")} ${picocolors.default.gray(VERSION$4)}`);
1442
1449
  console.log();
1443
1450
  try {
@@ -1506,7 +1513,7 @@ const configure = new commander.Command().name("configure").alias("config").desc
1506
1513
  if (hasFlags) {
1507
1514
  if (opts.key) {
1508
1515
  collectedOptions.activationKey = opts.key;
1509
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1516
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1510
1517
  }
1511
1518
  if (opts.mode) {
1512
1519
  if (opts.mode !== "toggle" && opts.mode !== "hold") {
@@ -1571,7 +1578,7 @@ const configure = new commander.Command().name("configure").alias("config").desc
1571
1578
  process.exit(1);
1572
1579
  }
1573
1580
  collectedOptions.activationKey = comboToString(selectedCombo);
1574
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1581
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1575
1582
  }
1576
1583
  if (selectedOption === "activationMode") {
1577
1584
  const { activationMode } = await prompts$1({
@@ -1756,7 +1763,7 @@ const isTelemetryEnabled = () => {
1756
1763
  };
1757
1764
  //#endregion
1758
1765
  //#region src/commands/init.ts
1759
- const VERSION$3 = "0.1.43";
1766
+ const VERSION$3 = "0.1.44-dev.aeaa8ed";
1760
1767
  const REPORT_URL = "https://react-grab.com/api/report-cli";
1761
1768
  const DOCS_URL = "https://github.com/aidenybai/react-grab";
1762
1769
  const reportToCli = (type, config, error) => {
@@ -1824,7 +1831,7 @@ const failWithManualSetup = (failingSpinner, message, { listSupportedFrameworks
1824
1831
  logger.break();
1825
1832
  process.exit(1);
1826
1833
  };
1827
- const init = new commander.Command().name("init").alias("setup").description("initialize React Grab in your project").option("-y, --yes", "skip confirmation prompts", false).option("-f, --force", "force overwrite existing config", false).option("-k, --key <key>", "activation key (e.g., Meta+K, Ctrl+Shift+G, Space)").option("--skip-install", "skip package installation", false).option("--pkg <pkg>", "custom package URL for CLI (e.g., grab)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "install the skill globally instead of in the project", false).action(async (opts) => {
1834
+ const init = new commander.Command().name("init").alias("setup").description("initialize React Grab in your project").option("-y, --yes", "skip confirmation prompts", false).option("-f, --force", "force overwrite existing config", false).option("-k, --key <key>", "shortcut (e.g., Meta+K, Ctrl+Shift+G, Space)").option("--skip-install", "skip package installation", false).option("--pkg <pkg>", "custom package URL for CLI (e.g., grab)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "install the skill globally instead of in the project", false).action(async (opts) => {
1828
1835
  console.log(`${picocolors.default.magenta("✿")} ${picocolors.default.bold("React Grab")} ${picocolors.default.gray(VERSION$3)}`);
1829
1836
  console.log();
1830
1837
  try {
@@ -1867,12 +1874,12 @@ const init = new commander.Command().name("init").alias("setup").description("in
1867
1874
  const collectedOptions = {};
1868
1875
  if (opts.key) {
1869
1876
  collectedOptions.activationKey = opts.key;
1870
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1877
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1871
1878
  } else {
1872
1879
  const { wantActivationKey } = await prompts$1({
1873
1880
  type: "confirm",
1874
1881
  name: "wantActivationKey",
1875
- message: `Configure ${highlighter.info("activation key")}?`,
1882
+ message: `Configure ${highlighter.info("shortcut")}?`,
1876
1883
  initial: false
1877
1884
  });
1878
1885
  if (wantActivationKey === void 0) {
@@ -1883,7 +1890,7 @@ const init = new commander.Command().name("init").alias("setup").description("in
1883
1890
  const { key } = await prompts$1({
1884
1891
  type: "text",
1885
1892
  name: "key",
1886
- message: "Enter the activation key (e.g., g, k, space):",
1893
+ message: "Enter the shortcut (e.g., g, k, space):",
1887
1894
  initial: ""
1888
1895
  });
1889
1896
  if (key === void 0) {
@@ -1891,7 +1898,7 @@ const init = new commander.Command().name("init").alias("setup").description("in
1891
1898
  process.exit(1);
1892
1899
  }
1893
1900
  collectedOptions.activationKey = key ? key.toLowerCase() : void 0;
1894
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1901
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1895
1902
  }
1896
1903
  }
1897
1904
  const { activationMode } = await prompts$1({
@@ -2706,7 +2713,7 @@ const pull = new commander.Command().name("pull").description("start the watcher
2706
2713
  });
2707
2714
  //#endregion
2708
2715
  //#region src/commands/remove.ts
2709
- const VERSION$2 = "0.1.43";
2716
+ const VERSION$2 = "0.1.44-dev.aeaa8ed";
2710
2717
  const remove = new commander.Command().name("remove").description("uninstall the React Grab skill from your agent").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "remove the globally-installed skill instead of the project's", false).action(async (opts) => {
2711
2718
  console.log(`${picocolors.default.magenta("✿")} ${picocolors.default.bold("React Grab")} ${picocolors.default.gray(VERSION$2)}`);
2712
2719
  console.log();
@@ -2734,7 +2741,7 @@ const stop = new commander.Command().name("stop").description("stop the React Gr
2734
2741
  });
2735
2742
  //#endregion
2736
2743
  //#region src/commands/upgrade.ts
2737
- const VERSION$1 = "0.1.43";
2744
+ const VERSION$1 = "0.1.44-dev.aeaa8ed";
2738
2745
  const NPM_REGISTRY_URL = "https://registry.npmjs.org/react-grab/latest";
2739
2746
  const fetchLatestVersion = async () => {
2740
2747
  try {
@@ -2846,7 +2853,7 @@ const watch = new commander.Command().name("watch").description("run the React G
2846
2853
  });
2847
2854
  //#endregion
2848
2855
  //#region src/cli.ts
2849
- const VERSION = "0.1.43";
2856
+ const VERSION = "0.1.44-dev.aeaa8ed";
2850
2857
  const VERSION_API_URL = "https://www.react-grab.com/api/version";
2851
2858
  process.on("SIGINT", () => process.exit(0));
2852
2859
  process.on("SIGTERM", () => process.exit(0));
package/dist/cli.js CHANGED
@@ -434,6 +434,13 @@ const promptSkillInstall = async ({ yes = false, global = false, cwd = process.c
434
434
  }
435
435
  let selectedAgents = detectedAgents;
436
436
  if (!yes) {
437
+ const { confirmed } = await prompts({
438
+ type: "confirm",
439
+ name: "confirmed",
440
+ message: `Install the React Grab skill (${global ? "global" : "this project"})?`,
441
+ initial: true
442
+ });
443
+ if (!confirmed) return false;
437
444
  const { agents } = await prompts({
438
445
  type: "multiselect",
439
446
  name: "agents",
@@ -484,7 +491,7 @@ const removeSkill = async ({ cwd = process.cwd(), global = false } = {}) => {
484
491
  };
485
492
  //#endregion
486
493
  //#region src/commands/add.ts
487
- const VERSION$5 = "0.1.43";
494
+ const VERSION$5 = "0.1.44-dev.aeaa8ed";
488
495
  const add$1 = new Command().name("add").alias("install").description("install the React Grab skill for your agent").option("-y, --yes", "skip confirmation prompts", false).option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "install the skill globally instead of in the project", false).action(async (opts) => {
489
496
  console.log(`${pc.magenta("✿")} ${pc.bold("React Grab")} ${pc.gray(VERSION$5)}`);
490
497
  console.log();
@@ -1103,7 +1110,7 @@ const formatActivationKeyDisplay = (activationKey) => {
1103
1110
  };
1104
1111
  //#endregion
1105
1112
  //#region src/commands/configure.ts
1106
- const VERSION$4 = "0.1.43";
1113
+ const VERSION$4 = "0.1.44-dev.aeaa8ed";
1107
1114
  const isMac = process.platform === "darwin";
1108
1115
  const META_LABEL = isMac ? "Cmd" : "Win";
1109
1116
  const ALT_LABEL = isMac ? "Option" : "Alt";
@@ -1373,8 +1380,8 @@ const generateSuggestions = (input) => {
1373
1380
  const CONFIG_OPTIONS = [
1374
1381
  {
1375
1382
  id: "activationKey",
1376
- title: "Activation Key",
1377
- description: "The key used to activate React Grab (e.g., g, k, space)"
1383
+ title: "Shortcut",
1384
+ description: "The shortcut used to activate React Grab (e.g., g, k, space)"
1378
1385
  },
1379
1386
  {
1380
1387
  id: "activationMode",
@@ -1409,7 +1416,7 @@ const comboToString = (combo) => {
1409
1416
  }
1410
1417
  return parts.join("+");
1411
1418
  };
1412
- const configure = new Command().name("configure").alias("config").description("configure React Grab options").option("-y, --yes", "skip confirmation prompts", false).option("-k, --key <key>", "activation key (e.g., Meta+K, Ctrl+Shift+G, Space)").option("-m, --mode <mode>", "activation mode (toggle, hold)").option("--hold-duration <ms>", "key hold duration in milliseconds (for hold mode)").option("--allow-input <boolean>", "allow activation inside input fields (true/false)").option("--context-lines <lines>", "max context lines to include").option("--cdn <domain>", "CDN domain (e.g., unpkg.com, custom.react-grab.com)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).action(async (opts) => {
1419
+ const configure = new Command().name("configure").alias("config").description("configure React Grab options").option("-y, --yes", "skip confirmation prompts", false).option("-k, --key <key>", "shortcut (e.g., Meta+K, Ctrl+Shift+G, Space)").option("-m, --mode <mode>", "activation mode (toggle, hold)").option("--hold-duration <ms>", "key hold duration in milliseconds (for hold mode)").option("--allow-input <boolean>", "allow activation inside input fields (true/false)").option("--context-lines <lines>", "max context lines to include").option("--cdn <domain>", "CDN domain (e.g., unpkg.com, custom.react-grab.com)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).action(async (opts) => {
1413
1420
  console.log(`${pc.magenta("✿")} ${pc.bold("React Grab")} ${pc.gray(VERSION$4)}`);
1414
1421
  console.log();
1415
1422
  try {
@@ -1478,7 +1485,7 @@ const configure = new Command().name("configure").alias("config").description("c
1478
1485
  if (hasFlags) {
1479
1486
  if (opts.key) {
1480
1487
  collectedOptions.activationKey = opts.key;
1481
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1488
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1482
1489
  }
1483
1490
  if (opts.mode) {
1484
1491
  if (opts.mode !== "toggle" && opts.mode !== "hold") {
@@ -1543,7 +1550,7 @@ const configure = new Command().name("configure").alias("config").description("c
1543
1550
  process.exit(1);
1544
1551
  }
1545
1552
  collectedOptions.activationKey = comboToString(selectedCombo);
1546
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1553
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1547
1554
  }
1548
1555
  if (selectedOption === "activationMode") {
1549
1556
  const { activationMode } = await prompts({
@@ -1728,7 +1735,7 @@ const isTelemetryEnabled = () => {
1728
1735
  };
1729
1736
  //#endregion
1730
1737
  //#region src/commands/init.ts
1731
- const VERSION$3 = "0.1.43";
1738
+ const VERSION$3 = "0.1.44-dev.aeaa8ed";
1732
1739
  const REPORT_URL = "https://react-grab.com/api/report-cli";
1733
1740
  const DOCS_URL = "https://github.com/aidenybai/react-grab";
1734
1741
  const reportToCli = (type, config, error) => {
@@ -1796,7 +1803,7 @@ const failWithManualSetup = (failingSpinner, message, { listSupportedFrameworks
1796
1803
  logger.break();
1797
1804
  process.exit(1);
1798
1805
  };
1799
- const init = new Command().name("init").alias("setup").description("initialize React Grab in your project").option("-y, --yes", "skip confirmation prompts", false).option("-f, --force", "force overwrite existing config", false).option("-k, --key <key>", "activation key (e.g., Meta+K, Ctrl+Shift+G, Space)").option("--skip-install", "skip package installation", false).option("--pkg <pkg>", "custom package URL for CLI (e.g., grab)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "install the skill globally instead of in the project", false).action(async (opts) => {
1806
+ const init = new Command().name("init").alias("setup").description("initialize React Grab in your project").option("-y, --yes", "skip confirmation prompts", false).option("-f, --force", "force overwrite existing config", false).option("-k, --key <key>", "shortcut (e.g., Meta+K, Ctrl+Shift+G, Space)").option("--skip-install", "skip package installation", false).option("--pkg <pkg>", "custom package URL for CLI (e.g., grab)").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "install the skill globally instead of in the project", false).action(async (opts) => {
1800
1807
  console.log(`${pc.magenta("✿")} ${pc.bold("React Grab")} ${pc.gray(VERSION$3)}`);
1801
1808
  console.log();
1802
1809
  try {
@@ -1839,12 +1846,12 @@ const init = new Command().name("init").alias("setup").description("initialize R
1839
1846
  const collectedOptions = {};
1840
1847
  if (opts.key) {
1841
1848
  collectedOptions.activationKey = opts.key;
1842
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1849
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1843
1850
  } else {
1844
1851
  const { wantActivationKey } = await prompts({
1845
1852
  type: "confirm",
1846
1853
  name: "wantActivationKey",
1847
- message: `Configure ${highlighter.info("activation key")}?`,
1854
+ message: `Configure ${highlighter.info("shortcut")}?`,
1848
1855
  initial: false
1849
1856
  });
1850
1857
  if (wantActivationKey === void 0) {
@@ -1855,7 +1862,7 @@ const init = new Command().name("init").alias("setup").description("initialize R
1855
1862
  const { key } = await prompts({
1856
1863
  type: "text",
1857
1864
  name: "key",
1858
- message: "Enter the activation key (e.g., g, k, space):",
1865
+ message: "Enter the shortcut (e.g., g, k, space):",
1859
1866
  initial: ""
1860
1867
  });
1861
1868
  if (key === void 0) {
@@ -1863,7 +1870,7 @@ const init = new Command().name("init").alias("setup").description("initialize R
1863
1870
  process.exit(1);
1864
1871
  }
1865
1872
  collectedOptions.activationKey = key ? key.toLowerCase() : void 0;
1866
- logger.log(` Activation key: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1873
+ logger.log(` Shortcut: ${highlighter.info(formatActivationKeyDisplay(collectedOptions.activationKey))}`);
1867
1874
  }
1868
1875
  }
1869
1876
  const { activationMode } = await prompts({
@@ -2678,7 +2685,7 @@ const pull = new Command().name("pull").description("start the watcher if needed
2678
2685
  });
2679
2686
  //#endregion
2680
2687
  //#region src/commands/remove.ts
2681
- const VERSION$2 = "0.1.43";
2688
+ const VERSION$2 = "0.1.44-dev.aeaa8ed";
2682
2689
  const remove = new Command().name("remove").description("uninstall the React Grab skill from your agent").option("-c, --cwd <cwd>", "working directory (defaults to current directory)", process.cwd()).option("-g, --global", "remove the globally-installed skill instead of the project's", false).action(async (opts) => {
2683
2690
  console.log(`${pc.magenta("✿")} ${pc.bold("React Grab")} ${pc.gray(VERSION$2)}`);
2684
2691
  console.log();
@@ -2706,7 +2713,7 @@ const stop = new Command().name("stop").description("stop the React Grab watcher
2706
2713
  });
2707
2714
  //#endregion
2708
2715
  //#region src/commands/upgrade.ts
2709
- const VERSION$1 = "0.1.43";
2716
+ const VERSION$1 = "0.1.44-dev.aeaa8ed";
2710
2717
  const NPM_REGISTRY_URL = "https://registry.npmjs.org/react-grab/latest";
2711
2718
  const fetchLatestVersion = async () => {
2712
2719
  try {
@@ -2818,7 +2825,7 @@ const watch = new Command().name("watch").description("run the React Grab captur
2818
2825
  });
2819
2826
  //#endregion
2820
2827
  //#region src/cli.ts
2821
- const VERSION = "0.1.43";
2828
+ const VERSION = "0.1.44-dev.aeaa8ed";
2822
2829
  const VERSION_API_URL = "https://www.react-grab.com/api/version";
2823
2830
  process.on("SIGINT", () => process.exit(0));
2824
2831
  process.on("SIGTERM", () => process.exit(0));