@powerhousedao/ph-cli 0.41.2 → 2.5.0-dev.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.
Files changed (76) hide show
  1. package/README.md +122 -18
  2. package/dist/package.json +13 -1
  3. package/dist/scripts/generate-commands-md.ts +84 -0
  4. package/dist/scripts/generate-version.ts +22 -0
  5. package/dist/scripts/manage-environment +190 -0
  6. package/dist/scripts/setup-environment +380 -0
  7. package/dist/scripts/setup-environment.ps1 +313 -0
  8. package/dist/scripts/setup.sh +24 -0
  9. package/dist/src/cli.js +17 -2
  10. package/dist/src/cli.js.map +1 -1
  11. package/dist/src/commands/connect.d.ts +1 -1
  12. package/dist/src/commands/connect.d.ts.map +1 -1
  13. package/dist/src/commands/connect.js +39 -9
  14. package/dist/src/commands/connect.js.map +1 -1
  15. package/dist/src/commands/index.d.ts.map +1 -1
  16. package/dist/src/commands/index.js +3 -1
  17. package/dist/src/commands/index.js.map +1 -1
  18. package/dist/src/commands/install.d.ts +2 -1
  19. package/dist/src/commands/install.d.ts.map +1 -1
  20. package/dist/src/commands/install.js +39 -10
  21. package/dist/src/commands/install.js.map +1 -1
  22. package/dist/src/commands/list.d.ts.map +1 -1
  23. package/dist/src/commands/list.js +2 -2
  24. package/dist/src/commands/list.js.map +1 -1
  25. package/dist/src/commands/reactor.d.ts +9 -0
  26. package/dist/src/commands/reactor.d.ts.map +1 -0
  27. package/dist/src/commands/reactor.js +39 -0
  28. package/dist/src/commands/reactor.js.map +1 -0
  29. package/dist/src/commands/service.d.ts +1 -1
  30. package/dist/src/commands/service.d.ts.map +1 -1
  31. package/dist/src/commands/service.js +48 -126
  32. package/dist/src/commands/service.js.map +1 -1
  33. package/dist/src/commands/switchboard.d.ts +5 -5
  34. package/dist/src/commands/switchboard.d.ts.map +1 -1
  35. package/dist/src/commands/switchboard.js +18 -12
  36. package/dist/src/commands/switchboard.js.map +1 -1
  37. package/dist/src/commands/uninstall.d.ts.map +1 -1
  38. package/dist/src/commands/uninstall.js +10 -1
  39. package/dist/src/commands/uninstall.js.map +1 -1
  40. package/dist/src/help.d.ts +15 -3
  41. package/dist/src/help.d.ts.map +1 -1
  42. package/dist/src/help.js +80 -15
  43. package/dist/src/help.js.map +1 -1
  44. package/dist/src/services/connect.js +1 -1
  45. package/dist/src/services/connect.js.map +1 -1
  46. package/dist/src/services/dev.d.ts.map +1 -1
  47. package/dist/src/services/dev.js +2 -2
  48. package/dist/src/services/dev.js.map +1 -1
  49. package/dist/src/services/generate.js +1 -1
  50. package/dist/src/services/generate.js.map +1 -1
  51. package/dist/src/services/inspect.d.ts.map +1 -1
  52. package/dist/src/services/inspect.js +3 -2
  53. package/dist/src/services/inspect.js.map +1 -1
  54. package/dist/src/services/reactor.d.ts +32 -0
  55. package/dist/src/services/reactor.d.ts.map +1 -0
  56. package/dist/src/services/reactor.js +66 -0
  57. package/dist/src/services/reactor.js.map +1 -0
  58. package/dist/src/services/switchboard.d.ts +2 -31
  59. package/dist/src/services/switchboard.d.ts.map +1 -1
  60. package/dist/src/services/switchboard.js +24 -58
  61. package/dist/src/services/switchboard.js.map +1 -1
  62. package/dist/src/utils.d.ts +11 -3
  63. package/dist/src/utils.d.ts.map +1 -1
  64. package/dist/src/utils.js +8 -7
  65. package/dist/src/utils.js.map +1 -1
  66. package/dist/src/version.d.ts +1 -1
  67. package/dist/src/version.d.ts.map +1 -1
  68. package/dist/src/version.js +1 -1
  69. package/dist/src/version.js.map +1 -1
  70. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  71. package/dist/vitest.config.d.ts +3 -0
  72. package/dist/vitest.config.d.ts.map +1 -0
  73. package/dist/vitest.config.js +7 -0
  74. package/dist/vitest.config.js.map +1 -0
  75. package/package.json +20 -8
  76. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env bash
2
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
3
+ \. ~/.nvm/nvm.sh
4
+ export NVM_DIR="$HOME/.nvm"
5
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
6
+ [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
7
+ nvm --version
8
+ nvm install 22
9
+ curl -fsSL https://get.pnpm.io/install.sh | sh -
10
+ export PNPM_HOME="/home/$USER/.local/share/pnpm"
11
+ export PATH="$PNPM_HOME:$PATH"
12
+ pnpm install -g ph-cmd
13
+ echo ""
14
+ echo " 🎉 Setup Complete! 🎉"
15
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
16
+ echo " To complete installation:"
17
+ echo " 1. Restart your terminal"
18
+ echo " OR"
19
+ echo " Run: source ~/.bashrc"
20
+ echo ""
21
+ echo " 2. Start using Powerhouse by typing:"
22
+ echo " ph"
23
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
24
+ echo ""
package/dist/src/cli.js CHANGED
@@ -6,7 +6,22 @@ const program = new Command();
6
6
  program
7
7
  .name("ph-cli")
8
8
  .description("The Powerhouse CLI (ph-cli) is a command-line interface tool that provides essential commands for managing Powerhouse projects. The tool and it's commands are fundamental for creating, building, and running Document Models as a builder in studio mode.")
9
- .version(version);
9
+ .version(version)
10
+ .allowUnknownOption(true)
11
+ .option("--verbose, --debug", "Enable debug mode");
10
12
  registerCommands(program);
11
- program.parse(process.argv);
13
+ // Logs full error only on debug mode. Otherwise logs only error message
14
+ program.parseAsync(process.argv).catch((error) => {
15
+ const isDebug = process.argv.find((arg) => ["--verbose", "--debug"].includes(arg));
16
+ if (isDebug) {
17
+ console.error(error);
18
+ return;
19
+ }
20
+ const errorMessage = error instanceof Error
21
+ ? error.message
22
+ : typeof error === "string"
23
+ ? error
24
+ : JSON.stringify(error, null, 2);
25
+ console.error(errorMessage);
26
+ });
12
27
  //# sourceMappingURL=cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,6PAA6P,CAC9P;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CACV,6PAA6P,CAC9P;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,kBAAkB,CAAC,IAAI,CAAC;KACxB,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;AAErD,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAE1B,wEAAwE;AACxE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACxC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACvC,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Command } from "commander";
1
+ import { Command } from "commander";
2
2
  import { type ConnectOptions } from "../services/connect.js";
3
3
  import { type CommandActionType } from "../types.js";
4
4
  export declare const connect: CommandActionType<[
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,OAAO,EAAE,iBAAiB,CACrC;IAAC,cAAc;CAAC,EAChB,OAAO,CAAC,IAAI,CAAC,CAGd,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAmB9C"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,OAAO,EAAE,iBAAiB,CACrC;IAAC,cAAc;CAAC,EAChB,OAAO,CAAC,IAAI,CAAC,CAGd,CAAC;AA2CF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAY9C"}
@@ -1,4 +1,6 @@
1
- import { connectHelp } from "../help.js";
1
+ import { buildConnect, previewConnect, } from "@powerhousedao/builder-tools/connect-build";
2
+ import { Command } from "commander";
3
+ import { connectBuildHelp, connectPreviewHelp, connectStudioHelp, } from "../help.js";
2
4
  import { setCustomHelp } from "../utils.js";
3
5
  async function startConnect(options) {
4
6
  const Connect = await import("../services/connect.js");
@@ -8,17 +10,45 @@ async function startConnect(options) {
8
10
  export const connect = async (options) => {
9
11
  return startConnect(options);
10
12
  };
13
+ const studioCommand = new Command("studio")
14
+ .description("Starts Connect Studio (default)")
15
+ .option("-p, --port <port>", "Port to run the server on", "3000")
16
+ .option("-h, --host", "Expose the server to the network")
17
+ .option("--https", "Enable HTTPS")
18
+ .option("--open", "Open the browser")
19
+ .option("--config-file <configFile>", "Path to the powerhouse.config.js file")
20
+ .action(async (...args) => {
21
+ await connect(...args);
22
+ });
23
+ setCustomHelp(studioCommand, connectStudioHelp);
24
+ const buildCommand = new Command("build")
25
+ .description("Build Connect project")
26
+ .option("--project-root <path>", "The root directory of the project", process.cwd())
27
+ .option("--assets-dir-name <name>", "The name of the assets directory")
28
+ .option("--external-packages-file-name <name>", "The name of the external packages file")
29
+ .option("--styles-file-name <name>", "The name of the styles file")
30
+ .option("--connect-path <path>", "The path to the Connect dist directory")
31
+ .action(async (...args) => {
32
+ await buildConnect(...args);
33
+ });
34
+ setCustomHelp(buildCommand, connectBuildHelp);
35
+ const previewCommand = new Command("preview")
36
+ .description("Preview built Connect project")
37
+ .option("--project-root <path>", "The root directory of the project")
38
+ .option("-p, --port <port>", "The port to run the server on", "4173")
39
+ .option("--open", "Open the browser")
40
+ .action(async (...args) => {
41
+ await previewConnect(...args);
42
+ });
43
+ setCustomHelp(previewCommand, connectPreviewHelp);
11
44
  export function connectCommand(program) {
12
45
  const cmd = program
13
46
  .command("connect")
14
- .description("Starts Connect Studio")
15
- .option("-p, --port <port>", "Port to run the server on", "3000")
16
- .option("-h, --host", "Expose the server to the network")
17
- .option("--https", "Enable HTTPS")
18
- .option("--open", "Open the browser")
19
- .option("--config-file <configFile>", "Path to the powerhouse.config.js file");
20
- // Use the setCustomHelp utility to apply custom help formatting
21
- setCustomHelp(cmd, connectHelp);
47
+ .description("Powerhouse Connect commands")
48
+ .addCommand(studioCommand)
49
+ .addCommand(buildCommand)
50
+ .addCommand(previewCommand);
51
+ // Set studio as the default command
22
52
  cmd.action(async (...args) => {
23
53
  await connect(...args);
24
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,YAAY,CAAC,OAAuB;IACjD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACvD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACjC,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAGhB,KAAK,EAAE,OAAO,EAAE,EAAE;IACpB,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,CAAC;SAChE,MAAM,CAAC,YAAY,EAAE,kCAAkC,CAAC;SACxD,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC;SACjC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC;SACpC,MAAM,CACL,4BAA4B,EAC5B,uCAAuC,CACxC,CAAC;IAEJ,gEAAgE;IAChE,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAEhC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAsB,EAAE,EAAE;QAC7C,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QACzC,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAW9C,eAAO,MAAM,QAAQ,2BAWpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAExD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAY9C,eAAO,MAAM,QAAQ,2BAYpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAExD"}
@@ -5,8 +5,9 @@ import { helpCommand } from "./help.js";
5
5
  import { inspectCommand } from "./inspect.js";
6
6
  import { installCommand } from "./install.js";
7
7
  import { listCommand } from "./list.js";
8
+ import { reactorCommand } from "./reactor.js";
8
9
  import { serviceCommand } from "./service.js";
9
- import { reactorCommand } from "./switchboard.js";
10
+ import { switchboardCommand } from "./switchboard.js";
10
11
  import { uninstallCommand } from "./uninstall.js";
11
12
  export const commands = [
12
13
  // devCommand,
@@ -19,6 +20,7 @@ export const commands = [
19
20
  serviceCommand,
20
21
  listCommand,
21
22
  inspectCommand,
23
+ switchboardCommand,
22
24
  ];
23
25
  export default function registerCommands(program) {
24
26
  commands.forEach((command) => command(program));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAgB;IACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAgB;IACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { type Command } from "commander";
2
2
  import { type CommandActionType } from "../types.js";
3
3
  import { type PackageManager } from "../utils.js";
4
- export declare function installDependency(packageManager: PackageManager, dependencies: string[], projectPath: string, workspace?: boolean): void;
4
+ export declare function installDependency(packageManager: PackageManager, dependencies: string[], projectPath: string, workspace?: boolean): string;
5
+ export declare function buildInstallCommand(packageManager: PackageManager, dependencies: string[], workspace?: boolean): string;
5
6
  export declare const install: CommandActionType<[
6
7
  string[] | undefined,
7
8
  {
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAGL,KAAK,cAAc,EAKpB,MAAM,aAAa,CAAC;AAErB,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,QAuBpB;AAED,eAAO,MAAM,OAAO,EAAE,iBAAiB,CACrC;IACE,MAAM,EAAE,GAAG,SAAS;IACpB;QACE,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;CACF,CAkEF,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAoB9C"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAGL,KAAK,cAAc,EAKpB,MAAM,aAAa,CAAC;AAErB,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,UAGpB;AAED,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,CAAC,EAAE,OAAO,GAClB,MAAM,CAaR;AAED,eAAO,MAAM,OAAO,EAAE,iBAAiB,CACrC;IACE,MAAM,EAAE,GAAG,SAAS;IACpB;QACE,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;CACF,CAuGF,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAoB9C"}
@@ -3,19 +3,15 @@ import fs from "node:fs";
3
3
  import { installHelp } from "../help.js";
4
4
  import { getPackageManagerFromLockfile, getProjectInfo, packageManagers, setCustomHelp, SUPPORTED_PACKAGE_MANAGERS, updateConfigFile, } from "../utils.js";
5
5
  export function installDependency(packageManager, dependencies, projectPath, workspace) {
6
- if (!fs.existsSync(projectPath)) {
7
- throw new Error(`Project path not found: ${projectPath}`);
8
- }
6
+ return buildInstallCommand(packageManager, dependencies, workspace);
7
+ }
8
+ export function buildInstallCommand(packageManager, dependencies, workspace) {
9
9
  const manager = packageManagers[packageManager];
10
10
  let installCommand = manager.installCommand.replace("{{dependency}}", dependencies.join(" "));
11
11
  if (workspace) {
12
12
  installCommand += ` ${manager.workspaceOption}`;
13
13
  }
14
- const commandOptions = { cwd: projectPath };
15
- execSync(installCommand, {
16
- stdio: "inherit",
17
- ...commandOptions,
18
- });
14
+ return installCommand;
19
15
  }
20
16
  export const install = (dependencies, options) => {
21
17
  if (options.debug) {
@@ -24,6 +20,31 @@ export const install = (dependencies, options) => {
24
20
  if (!dependencies || dependencies.length === 0) {
25
21
  throw new Error("❌ Dependency name is required");
26
22
  }
23
+ // Parse package names to extract version/tag
24
+ const parsedDependencies = dependencies.map((dep) => {
25
+ const parts = dep.split("@");
26
+ let packageName = dep;
27
+ let version = undefined;
28
+ if (parts.length > 1 && !dep.startsWith("@")) {
29
+ packageName = parts.slice(0, parts.length - 1).join("@");
30
+ version = parts[parts.length - 1];
31
+ }
32
+ else if (parts.length > 2 && dep.startsWith("@")) {
33
+ packageName = `@${parts[1]}`;
34
+ version = parts[2];
35
+ }
36
+ return {
37
+ name: packageName,
38
+ version: version,
39
+ full: dep,
40
+ };
41
+ });
42
+ if (options.debug) {
43
+ console.log(">>> parsedDependencies", parsedDependencies);
44
+ }
45
+ if (!dependencies || dependencies.length === 0) {
46
+ throw new Error("❌ Dependency name is required");
47
+ }
27
48
  if (options.packageManager &&
28
49
  !SUPPORTED_PACKAGE_MANAGERS.includes(options.packageManager)) {
29
50
  throw new Error("❌ Unsupported package manager. Supported package managers: npm, yarn, pnpm, bun");
@@ -44,7 +65,15 @@ export const install = (dependencies, options) => {
44
65
  }
45
66
  try {
46
67
  console.log("installing dependencies 📦 ...");
47
- installDependency(packageManager, dependencies, projectInfo.path, options.workspace);
68
+ if (!fs.existsSync(projectInfo.path)) {
69
+ throw new Error(`Project path not found: ${projectInfo.path}`);
70
+ }
71
+ const installCommand = installDependency(packageManager, parsedDependencies.map((dep) => dep.full), projectInfo.path, options.workspace);
72
+ const commandOptions = { cwd: projectInfo.path };
73
+ execSync(installCommand, {
74
+ stdio: "inherit",
75
+ ...commandOptions,
76
+ });
48
77
  console.log("Dependency installed successfully 🎉");
49
78
  }
50
79
  catch (error) {
@@ -58,7 +87,7 @@ export const install = (dependencies, options) => {
58
87
  }
59
88
  try {
60
89
  console.log("⚙️ Updating powerhouse config file...");
61
- updateConfigFile(dependencies, projectInfo.path, "install");
90
+ updateConfigFile(parsedDependencies, projectInfo.path, "install");
62
91
  console.log("Config file updated successfully 🎉");
63
92
  }
64
93
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,eAAO,MAAM,IAAI,EAAE,iBAAiB,CAClC;IACE;QACE,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF,CA6BF,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAS3C"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,eAAO,MAAM,IAAI,EAAE,iBAAiB,CAClC;IACE;QACE,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CACF,CA2BF,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAS3C"}
@@ -1,4 +1,4 @@
1
- import path from "node:path";
1
+ import { getConfig } from "@powerhousedao/config/utils";
2
2
  import { listHelp } from "../help.js";
3
3
  import { getProjectInfo, setCustomHelp } from "../utils.js";
4
4
  export const list = async (options) => {
@@ -10,7 +10,7 @@ export const list = async (options) => {
10
10
  console.log("\n>>> projectInfo", projectInfo);
11
11
  }
12
12
  try {
13
- const phConfig = (await import(path.join(projectInfo.path, "powerhouse.config.json")));
13
+ const phConfig = getConfig(projectInfo.path + "/powerhouse.config.json");
14
14
  if (!phConfig.packages || phConfig.packages.length === 0) {
15
15
  console.log("No packages found in the project");
16
16
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,CAAC,MAAM,IAAI,GAMb,KAAK,EAAE,OAAO,EAAE,EAAE;IACpB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,wBAAwB,CAAC,CACtD,CAAuC,CAAC;QAEzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhB,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,CAAC,MAAM,IAAI,GAMb,KAAK,EAAE,OAAO,EAAE,EAAE;IACpB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAElD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,GAAG,yBAAyB,CAAC,CAAC;QAEzE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC;SACzC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEhB,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type LocalReactor } from "@powerhousedao/reactor-local";
2
+ import { type Command } from "commander";
3
+ import { type ReactorOptions } from "../services/reactor.js";
4
+ import { type CommandActionType } from "../types.js";
5
+ export declare const switchboard: CommandActionType<[
6
+ ReactorOptions
7
+ ], Promise<LocalReactor>>;
8
+ export declare function reactorCommand(program: Command): void;
9
+ //# sourceMappingURL=reactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../../src/commands/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AASrD,eAAO,MAAM,WAAW,EAAE,iBAAiB,CACzC;IAAC,cAAc;CAAC,EAChB,OAAO,CAAC,YAAY,CAAC,CAGtB,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QA2B9C"}
@@ -0,0 +1,39 @@
1
+ import { reactorHelp } from "../help.js";
2
+ import { setCustomHelp } from "../utils.js";
3
+ async function startLocalSwitchboard(options) {
4
+ const Switchboard = await import("../services/reactor.js");
5
+ const { startLocalReactor } = Switchboard;
6
+ return startLocalReactor(options);
7
+ }
8
+ export const switchboard = async (options) => {
9
+ return startLocalSwitchboard(options);
10
+ };
11
+ export function reactorCommand(program) {
12
+ const command = program
13
+ .command("reactor")
14
+ .description("Starts local reactor")
15
+ .option("--port <PORT>", "port to host the api", "4001")
16
+ .option("--config-file <configFile>", "Path to the powerhouse.config.js file", "./powerhouse.config.json")
17
+ .option("--generate", "generate code when document model is updated")
18
+ .option("--db-path <DB_PATH>", "path to the database")
19
+ .option("--https-key-file <HTTPS_KEY_FILE>", "path to the ssl key file")
20
+ .option("--https-cert-file <HTTPS_CERT_FILE>", "path to the ssl cert file")
21
+ .option("-w, --watch", "if the reactor should watch for local changes to document models and processors")
22
+ .option("--packages <packages...>", "list of packages to be loaded, if defined then packages on config file are ignored")
23
+ .action(async (...args) => {
24
+ await switchboard(...args);
25
+ });
26
+ setCustomHelp(command, reactorHelp);
27
+ }
28
+ if (process.argv.at(2) === "spawn") {
29
+ const optionsArg = process.argv.at(3);
30
+ const options = optionsArg ? JSON.parse(optionsArg) : {};
31
+ startLocalSwitchboard(options)
32
+ .then((switchboard) => {
33
+ process.send?.(`driveUrl:${switchboard.driveUrl}`);
34
+ })
35
+ .catch((e) => {
36
+ throw e;
37
+ });
38
+ }
39
+ //# sourceMappingURL=reactor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../../src/commands/reactor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,KAAK,UAAU,qBAAqB,CAAC,OAAuB;IAC1D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;IAC1C,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAGpB,KAAK,EAAE,OAAO,EAAE,EAAE;IACpB,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE,MAAM,CAAC;SACvD,MAAM,CACL,4BAA4B,EAC5B,uCAAuC,EACvC,0BAA0B,CAC3B;SACA,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;SACrD,MAAM,CAAC,mCAAmC,EAAE,0BAA0B,CAAC;SACvE,MAAM,CAAC,qCAAqC,EAAE,2BAA2B,CAAC;SAC1E,MAAM,CACL,aAAa,EACb,iFAAiF,CAClF;SACA,MAAM,CACL,0BAA0B,EAC1B,oFAAoF,CACrF;SACA,MAAM,CAAC,KAAK,EAAE,GAAG,IAAsB,EAAE,EAAE;QAC1C,MAAM,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,qBAAqB,CAAC,OAAO,CAAC;SAC3B,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QACpB,OAAO,CAAC,IAAI,EAAE,CAAC,YAAY,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QACpB,MAAM,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Command } from "commander";
2
2
  import { type CommandActionType } from "../types.js";
3
- export declare const manageService: CommandActionType<[string, string]>;
3
+ export declare const manageService: CommandActionType<[string]>;
4
4
  export declare function serviceCommand(program: Command): void;
5
5
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/commands/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAMnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQrD,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAmC7D,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAW9C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAMnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWrD,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAqErD,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAQ9C"}
@@ -1,145 +1,67 @@
1
- import { getConfig } from "@powerhousedao/config/powerhouse";
2
1
  import { Argument } from "commander";
3
2
  import { execSync } from "node:child_process";
3
+ import fs from "node:fs";
4
4
  import path from "node:path";
5
5
  import { fileURLToPath } from "node:url";
6
- import pm2 from "pm2";
7
6
  import { serviceHelp } from "../help.js";
8
7
  import { setCustomHelp } from "../utils.js";
9
- const actions = ["start", "stop", "status", "list", "startup", "unstartup"];
10
- const services = ["switchboard", "connect", "all"];
11
- let switchboardPort = 8442;
12
- let connectPort = 8443;
13
- export const manageService = async (action, service) => {
8
+ const actions = ["start", "stop", "status", "setup", "restart"];
9
+ export const manageService = async (action) => {
14
10
  try {
15
- const config = getConfig();
16
- if (config.reactor?.port) {
17
- switchboardPort = config.reactor.port;
11
+ const dirname = path.dirname(fileURLToPath(import.meta.url));
12
+ const manageScriptPath = path.join(dirname, "..", "..", "scripts", "manage-environment");
13
+ const setupScriptPath = path.join(dirname, "..", "..", "scripts", "setup-environment");
14
+ // Read project name from package.json
15
+ const packageJsonPath = path.join(process.cwd(), "package.json");
16
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
17
+ const projectName = packageJson.name;
18
+ switch (action) {
19
+ case "start":
20
+ console.log("Starting environment...");
21
+ execSync(`bash ${manageScriptPath} ${projectName} start`, {
22
+ stdio: "inherit",
23
+ });
24
+ break;
25
+ case "stop":
26
+ console.log("Stopping environment...");
27
+ execSync(`bash ${manageScriptPath} ${projectName} stop`, {
28
+ stdio: "inherit",
29
+ });
30
+ break;
31
+ case "restart":
32
+ console.log("Restarting environment...");
33
+ execSync(`bash ${manageScriptPath} ${projectName} restart`, {
34
+ stdio: "inherit",
35
+ });
36
+ break;
37
+ case "status":
38
+ console.log("Checking environment status...");
39
+ execSync(`bash ${manageScriptPath} ${projectName} status`, {
40
+ stdio: "inherit",
41
+ });
42
+ break;
43
+ case "setup":
44
+ console.log("Setting up environment...");
45
+ execSync(`bash ${setupScriptPath} "dev" ${projectName}`, {
46
+ stdio: "inherit",
47
+ });
48
+ break;
49
+ default:
50
+ console.log("Unknown action:", action);
51
+ process.exit(1);
18
52
  }
19
- if (config.studio?.port) {
20
- connectPort = config.studio.port;
21
- }
22
- pm2.connect((err) => {
23
- switch (action) {
24
- case "start":
25
- startServices(service);
26
- break;
27
- case "stop":
28
- stopServices(service);
29
- break;
30
- case "startup":
31
- startupServices();
32
- break;
33
- case "unstartup":
34
- unstartupServices();
35
- break;
36
- default:
37
- statusServices();
38
- break;
39
- }
40
- });
41
53
  }
42
54
  catch (error) {
43
- console.error(error);
55
+ console.error("Error:", error);
56
+ process.exit(1);
44
57
  }
45
58
  };
46
59
  export function serviceCommand(program) {
47
60
  const command = program
48
61
  .command("service")
49
- .description("Manage services")
50
- .addArgument(new Argument("action").choices(actions).default("list"))
51
- .addArgument(new Argument("service").choices(services).argOptional().default("all"))
62
+ .description("Manage environment services")
63
+ .addArgument(new Argument("action").choices(actions).default("status"))
52
64
  .action(manageService);
53
65
  setCustomHelp(command, serviceHelp);
54
66
  }
55
- function startServices(service) {
56
- if (service === "switchboard" || service === "all") {
57
- const switchboardOptions = {
58
- name: "switchboard",
59
- script: "npx ph-cli switchboard",
60
- };
61
- console.log("Starting Switchboard...");
62
- pm2.start(switchboardOptions, (err) => {
63
- if (err) {
64
- console.log(err.name);
65
- // throw new Error(err.message);
66
- }
67
- dumpServices();
68
- });
69
- console.log("Switchboard started");
70
- }
71
- if (service === "connect" || service === "all") {
72
- const connectOptions = {
73
- name: "connect",
74
- script: "npx ph-cli connect",
75
- args: ["--port", connectPort.toString()],
76
- };
77
- console.log("Starting connect...");
78
- pm2.start(connectOptions, (err) => {
79
- if (err) {
80
- throw new Error(err.message);
81
- }
82
- dumpServices();
83
- });
84
- console.log("Connect started");
85
- }
86
- }
87
- function dumpServices() {
88
- pm2.dump((err) => {
89
- if (err) {
90
- throw new Error(err.message);
91
- }
92
- statusServices();
93
- });
94
- }
95
- function stopServices(service) {
96
- if (service === "all" || service === "connect") {
97
- pm2.stop("connect", (err) => {
98
- if (err) {
99
- throw new Error(err.message);
100
- }
101
- dumpServices();
102
- });
103
- }
104
- if (service === "all" || service === "switchboard") {
105
- pm2.stop("switchboard", (err) => {
106
- if (err) {
107
- throw new Error(err.message);
108
- }
109
- dumpServices();
110
- });
111
- }
112
- }
113
- function statusServices() {
114
- pm2.list((err, list) => {
115
- const formattedList = list.map((item) => {
116
- return {
117
- id: item.pm_id,
118
- name: item.name,
119
- pid: item.pid,
120
- uptime: item.pm2_env?.pm_uptime,
121
- restarts: item.pm2_env?.unstable_restarts,
122
- status: item.pm2_env?.status,
123
- mem: item.monit?.memory,
124
- cpu: item.monit?.cpu,
125
- };
126
- });
127
- console.table(formattedList);
128
- process.exit(0);
129
- });
130
- }
131
- function startupServices() {
132
- const dirname = import.meta.dirname || path.dirname(fileURLToPath(import.meta.url));
133
- const scriptPath = path.join(dirname, "..", "scripts", "service-startup.sh");
134
- const result = execSync(`bash ${scriptPath}`).toString();
135
- console.log(result);
136
- process.exit(0);
137
- }
138
- function unstartupServices() {
139
- const dirname = import.meta.dirname || path.dirname(fileURLToPath(import.meta.url));
140
- const scriptPath = path.join(dirname, "..", "scripts", "service-unstartup.sh");
141
- const result = execSync(`bash ${scriptPath}`).toString();
142
- console.log(result);
143
- process.exit(0);
144
- }
145
67
  //# sourceMappingURL=service.js.map