@powerhousedao/ph-cli 0.29.1 → 0.31.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 (53) hide show
  1. package/dist/chunk-27FF7J6K.js +45 -0
  2. package/dist/chunk-6O6TUXJK.js +90 -0
  3. package/dist/chunk-CWUXPR5K.js +109 -0
  4. package/dist/chunk-E3EWRF5U.js +97 -0
  5. package/dist/chunk-FDMMJENR.js +132 -0
  6. package/dist/chunk-KPMNRIJU.js +10 -0
  7. package/dist/chunk-OH5NZOCQ.js +85 -0
  8. package/dist/chunk-PUQARXW2.js +44 -0
  9. package/dist/chunk-X2RNXISI.js +98 -0
  10. package/dist/chunk-ZN4M6TJ2.js +119 -0
  11. package/dist/cli.js +15 -5
  12. package/dist/commands/connect.js +8 -42
  13. package/dist/commands/dev.js +8 -97
  14. package/dist/commands/generate.js +7 -69
  15. package/dist/commands/help.js +6 -9
  16. package/dist/commands/index.js +57 -28
  17. package/dist/commands/install.js +10 -193
  18. package/dist/commands/service.js +7 -117
  19. package/dist/commands/switchboard.js +10 -0
  20. package/dist/commands/uninstall.js +11 -0
  21. package/dist/index.js +84 -4
  22. package/dist/scripts/setup.sh +18 -6
  23. package/dist/types.js +0 -3
  24. package/dist/utils.js +28 -3
  25. package/package.json +12 -19
  26. package/dist/cli.d.ts +0 -2
  27. package/dist/cli.js.map +0 -1
  28. package/dist/commands/connect.d.ts +0 -8
  29. package/dist/commands/connect.js.map +0 -1
  30. package/dist/commands/dev.d.ts +0 -14
  31. package/dist/commands/dev.js.map +0 -1
  32. package/dist/commands/generate.d.ts +0 -22
  33. package/dist/commands/generate.js.map +0 -1
  34. package/dist/commands/help.d.ts +0 -5
  35. package/dist/commands/help.js.map +0 -1
  36. package/dist/commands/index.d.ts +0 -16
  37. package/dist/commands/index.js.map +0 -1
  38. package/dist/commands/init.d.ts +0 -17
  39. package/dist/commands/init.js +0 -28
  40. package/dist/commands/init.js.map +0 -1
  41. package/dist/commands/install.d.ts +0 -29
  42. package/dist/commands/install.js.map +0 -1
  43. package/dist/commands/reactor.d.ts +0 -35
  44. package/dist/commands/reactor.js +0 -69
  45. package/dist/commands/reactor.js.map +0 -1
  46. package/dist/commands/service.d.ts +0 -7
  47. package/dist/commands/service.js.map +0 -1
  48. package/dist/index.d.ts +0 -11
  49. package/dist/index.js.map +0 -1
  50. package/dist/types.d.ts +0 -3
  51. package/dist/types.js.map +0 -1
  52. package/dist/utils.d.ts +0 -1
  53. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/generate.ts"],"names":["generateCode"],"mappings":"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","file":"generate.js","sourcesContent":["import {\n generate as generateCode,\n generateEditor,\n generateFromFile,\n generateProcessor,\n generateSubgraph,\n promptDirectories,\n} from \"@powerhousedao/codegen\";\nimport { Command } from \"commander\";\nimport { CommandActionType } from \"../types.js\";\nimport { getConfig } from \"@powerhousedao/config/powerhouse\";\n\nexport const generate: CommandActionType<\n [\n string | undefined,\n {\n interactive?: boolean;\n editors?: string;\n processors?: string;\n documentModels?: string;\n skipFormat?: boolean;\n watch?: boolean;\n editor?: string;\n processor?: string;\n documentTypes?: string;\n processorType?: \"analytics\" | \"operational\";\n subgraph?: string;\n },\n ]\n> = async (filePath, options) => {\n const baseConfig = getConfig();\n\n const config = {\n ...baseConfig,\n ...{\n ...(options.editors && { editorsDir: options.editors }),\n ...(options.processors && { processorsDir: options.processors }),\n ...(options.documentModels && {\n documentModelsDir: options.documentModels,\n }),\n ...(options.skipFormat && { skipFormat: options.skipFormat }),\n ...(options.interactive && { interactive: options.interactive }),\n ...(options.watch && { watch: options.watch }),\n },\n };\n\n const command = {\n editor: !!options.editor,\n editorName: options.editor,\n documentTypes: options.documentTypes,\n processor: !!options.processor,\n processorName: options.processor,\n processorType: options.processorType,\n subgraph: !!options.subgraph,\n subgraphName: options.subgraph,\n };\n\n if (config.interactive) {\n const result = await promptDirectories(config);\n Object.assign(config, result);\n }\n\n if (command.editor) {\n if (!command.editorName) {\n throw new Error(\"Editor name is required (--editor or -e)\");\n }\n await generateEditor(\n command.editorName,\n command.documentTypes?.split(/[|,;]/g) ?? [],\n config,\n );\n\n return;\n }\n\n if (command.processor && options.processor) {\n const processorType =\n options.processorType === \"operational\" ? \"operational\" : \"analytics\";\n await generateProcessor(\n options.processor,\n processorType,\n options.documentTypes?.split(\",\") ?? [],\n config,\n );\n return;\n }\n\n if (command.subgraph && command.subgraphName) {\n await generateSubgraph(command.subgraphName, config);\n return;\n }\n\n if (filePath) {\n await generateFromFile(filePath, config);\n return;\n }\n\n await generateCode(config);\n};\n\nexport function generateCommand(program: Command) {\n program\n .command(\"generate\")\n .description(\"Generate code from the document models\")\n .argument(\"[document-model-file]\", \"Path to the document model file\")\n .option(\"-i, --interactive\", \"Run the command in interactive mode\")\n .option(\"--editors <type>\", \"Path to the editors directory\")\n .option(\"-e, --editor <type>\", \"Editor Name\")\n .option(\"--processors <type>\", \"Path to the processors directory\")\n .option(\"-p, --processor <type>\", \"Processor Name\")\n .option(\"--processor-type <type>\", \"Processor Type\")\n .option(\"-s, --subgraph <type>\", \"Subgraph Name\")\n .option(\"--document-models <type>\", \"Path to the document models directory\")\n .option(\"--document-types <type>\", \"Supported document types by the editor\")\n .option(\"-sf, --skip-format\", \"Skip formatting the generated code\")\n .option(\"-w, --watch\", \"Watch the generated code\")\n .action(generate);\n}\n"]}
@@ -1,5 +0,0 @@
1
- import { Command } from 'commander';
2
-
3
- declare function helpCommand(program: Command): void;
4
-
5
- export { helpCommand };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAEO,SAAS,YAAY,OAAkB,EAAA;AAC5C,EAAA,OAAA,CACG,QAAQ,MAAM,CAAA,CACd,YAAY,0BAA0B,CAAA,CACtC,OAAO,MAAM;AACZ,IAAA,OAAA,CAAQ,IAAK,EAAA;AAAA,GACd,CAAA;AACL","file":"help.js","sourcesContent":["import { Command } from \"commander\";\n\nexport function helpCommand(program: Command) {\n program\n .command(\"help\")\n .description(\"Display help information\")\n .action(() => {\n program.help();\n });\n}\n"]}
@@ -1,16 +0,0 @@
1
- import { Command } from 'commander';
2
- import { initCommand } from './init.js';
3
- export { init } from './init.js';
4
- export { dev, devCommand } from './dev.js';
5
- export { generate, generateCommand } from './generate.js';
6
- export { helpCommand } from './help.js';
7
- export { DefaultReactorOptions, ReactorOptions, reactor, reactorCommand } from './reactor.js';
8
- export { manageService, serviceCommand } from './service.js';
9
- import '@powerhousedao/config/powerhouse';
10
- import '../types.js';
11
- import '@powerhousedao/reactor-local';
12
-
13
- declare const commands: (typeof initCommand)[];
14
- declare function registerCommands(program: Command): void;
15
-
16
- export { commands, registerCommands as default, initCommand };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAUO,MAAM,QAAW,GAAA;AAAA,EACtB,WAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF;AAEe,SAAR,iBAAkC,OAAkB,EAAA;AACzD,EAAA,QAAA,CAAS,OAAQ,CAAA,CAAC,OAAY,KAAA,OAAA,CAAQ,OAAO,CAAC,CAAA;AAChD","file":"index.js","sourcesContent":["import { Command } from \"commander\";\nimport { connectCommand } from \"./connect.js\";\nimport { devCommand } from \"./dev.js\";\nimport { generateCommand } from \"./generate.js\";\nimport { helpCommand } from \"./help.js\";\nimport { initCommand } from \"./init.js\";\nimport { installCommand } from \"./install.js\";\nimport { reactorCommand } from \"./reactor.js\";\n\nimport { serviceCommand } from \"./service.js\";\nexport const commands = [\n initCommand,\n devCommand,\n connectCommand,\n generateCommand,\n reactorCommand,\n helpCommand,\n installCommand,\n serviceCommand,\n];\n\nexport default function registerCommands(program: Command) {\n commands.forEach((command) => command(program));\n}\n\nexport * from \"./dev.js\";\nexport * from \"./generate.js\";\nexport * from \"./help.js\";\nexport * from \"./init.js\";\nexport * from \"./reactor.js\";\nexport * from \"./service.js\";\n"]}
@@ -1,17 +0,0 @@
1
- import { Command } from 'commander';
2
- import { CommandActionType } from '../types.js';
3
-
4
- declare const init: CommandActionType<[
5
- string | undefined,
6
- {
7
- project?: string;
8
- interactive?: boolean;
9
- version?: string;
10
- dev?: boolean;
11
- staging?: boolean;
12
- packageManager?: string;
13
- }
14
- ]>;
15
- declare function initCommand(program: Command): void;
16
-
17
- export { init, initCommand };
@@ -1,28 +0,0 @@
1
- import { createProject, parseVersion } from '@powerhousedao/codegen';
2
-
3
- const init = async (projectName, options) => {
4
- console.log("Initializing a new project...");
5
- try {
6
- await createProject({
7
- name: options.project ?? projectName,
8
- interactive: options.interactive ?? false,
9
- version: parseVersion(options),
10
- packageManager: options.packageManager
11
- });
12
- } catch (error) {
13
- console.error("Failed to initialize the project", error);
14
- }
15
- };
16
- function initCommand(program) {
17
- program.command("init").description("Initialize a new project").argument("[project-name]", "Name of the project").option("-p, --project", "Name of the project").option("-i, --interactive", "Run the command in interactive mode").option(
18
- "-v, --version",
19
- 'Specify development version to use. Defaults to "main"'
20
- ).option("--dev", 'Use "development" version of the boilerplate').option("--staging", 'Use "development" version of the boilerplate').option(
21
- "--package-manager <packageManager>",
22
- "force package manager to use"
23
- ).action(init);
24
- }
25
-
26
- export { init, initCommand };
27
- //# sourceMappingURL=init.js.map
28
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/init.ts"],"names":[],"mappings":";;AAIa,MAAA,IAAA,GAYT,OAAO,WAAA,EAAa,OAAY,KAAA;AAClC,EAAA,OAAA,CAAQ,IAAI,+BAA+B,CAAA;AAE3C,EAAI,IAAA;AACF,IAAA,MAAM,aAAc,CAAA;AAAA,MAClB,IAAA,EAAM,QAAQ,OAAW,IAAA,WAAA;AAAA,MACzB,WAAA,EAAa,QAAQ,WAAe,IAAA,KAAA;AAAA,MACpC,OAAA,EAAS,aAAa,OAAO,CAAA;AAAA,MAC7B,gBAAgB,OAAQ,CAAA;AAAA,KACzB,CAAA;AAAA,WACM,KAAO,EAAA;AACd,IAAQ,OAAA,CAAA,KAAA,CAAM,oCAAoC,KAAK,CAAA;AAAA;AAE3D;AAEO,SAAS,YAAY,OAAkB,EAAA;AAC5C,EAAA,OAAA,CACG,QAAQ,MAAM,CAAA,CACd,WAAY,CAAA,0BAA0B,EACtC,QAAS,CAAA,gBAAA,EAAkB,qBAAqB,CAAA,CAChD,OAAO,eAAiB,EAAA,qBAAqB,EAC7C,MAAO,CAAA,mBAAA,EAAqB,qCAAqC,CACjE,CAAA,MAAA;AAAA,IACC,eAAA;AAAA,IACA;AAAA,GACF,CACC,OAAO,OAAS,EAAA,8CAA8C,EAC9D,MAAO,CAAA,WAAA,EAAa,8CAA8C,CAClE,CAAA,MAAA;AAAA,IACC,oCAAA;AAAA,IACA;AAAA,GACF,CACC,OAAO,IAAI,CAAA;AAChB","file":"init.js","sourcesContent":["import { Command } from \"commander\";\nimport { createProject, parseVersion } from \"@powerhousedao/codegen\";\nimport { CommandActionType } from \"../types.js\";\n\nexport const init: CommandActionType<\n [\n string | undefined,\n {\n project?: string;\n interactive?: boolean;\n version?: string;\n dev?: boolean;\n staging?: boolean;\n packageManager?: string;\n },\n ]\n> = async (projectName, options) => {\n console.log(\"Initializing a new project...\");\n\n try {\n await createProject({\n name: options.project ?? projectName,\n interactive: options.interactive ?? false,\n version: parseVersion(options),\n packageManager: options.packageManager,\n });\n } catch (error) {\n console.error(\"Failed to initialize the project\", error);\n }\n};\n\nexport function initCommand(program: Command) {\n program\n .command(\"init\")\n .description(\"Initialize a new project\")\n .argument(\"[project-name]\", \"Name of the project\")\n .option(\"-p, --project\", \"Name of the project\")\n .option(\"-i, --interactive\", \"Run the command in interactive mode\")\n .option(\n \"-v, --version\",\n 'Specify development version to use. Defaults to \"main\"',\n )\n .option(\"--dev\", 'Use \"development\" version of the boilerplate')\n .option(\"--staging\", 'Use \"development\" version of the boilerplate')\n .option(\n \"--package-manager <packageManager>\",\n \"force package manager to use\",\n )\n .action(init);\n}\n"]}
@@ -1,29 +0,0 @@
1
- import { Command } from 'commander';
2
- import { CommandActionType } from '../types.js';
3
-
4
- type ProjectInfo = {
5
- isGlobal: boolean;
6
- path: string;
7
- };
8
- type PackageManager = "npm" | "yarn" | "pnpm" | "bun";
9
- type PathValidation = (dir: string) => boolean;
10
- declare function defaultPathValidation(): boolean;
11
- declare function isPowerhouseProject(dir: string): boolean;
12
- declare function findNodeProjectRoot(dir: string, pathValidation?: PathValidation): string | null;
13
- declare function getPackageManagerFromPath(dir: string): PackageManager;
14
- declare function getPackageManagerFromLockfile(dir: string): PackageManager;
15
- declare function getProjectInfo(debug?: boolean): ProjectInfo;
16
- declare function installDependency(packageManager: PackageManager, dependencies: string[], projectPath: string, workspace?: boolean): void;
17
- declare function updateConfigFile(dependencies: string[], projectPath: string): void;
18
- declare const install: CommandActionType<[
19
- string[] | undefined,
20
- {
21
- debug?: boolean;
22
- global?: boolean;
23
- workspace?: boolean;
24
- packageManager?: string;
25
- }
26
- ]>;
27
- declare function installCommand(program: Command): void;
28
-
29
- export { type PackageManager, type ProjectInfo, defaultPathValidation, findNodeProjectRoot, getPackageManagerFromLockfile, getPackageManagerFromPath, getProjectInfo, install, installCommand, installDependency, isPowerhouseProject, updateConfigFile };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/install.ts"],"names":["installCommand"],"mappings":"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","file":"install.js","sourcesContent":["import path, { dirname } from \"node:path\";\nimport fs from \"node:fs\";\nimport { execSync } from \"node:child_process\";\nimport { homedir } from \"node:os\";\nimport { Command } from \"commander\";\nimport { PowerhouseConfig } from \"@powerhousedao/config/powerhouse\";\n\nimport { CommandActionType } from \"../types.js\";\n\nconst POWERHOUSE_CONFIG_FILE = \"powerhouse.config.json\";\nconst SUPPORTED_PACKAGE_MANAGERS = [\"npm\", \"yarn\", \"pnpm\", \"bun\"];\nconst POWERHOUSE_GLOBAL_DIR = path.join(homedir(), \".ph\");\n\nconst packageManagers = {\n bun: {\n globalPathRegexp: /[\\\\/].bun[\\\\/]/,\n installCommand: \"bun add {{dependency}}\",\n workspaceOption: \"\",\n lockfile: \"bun.lock\",\n },\n pnpm: {\n globalPathRegexp: /[\\\\/]pnpm[\\\\/]/,\n installCommand: \"pnpm add {{dependency}}\",\n workspaceOption: \"--workspace-root\",\n lockfile: \"pnpm-lock.yaml\",\n },\n yarn: {\n globalPathRegexp: /[\\\\/]yarn[\\\\/]/,\n installCommand: \"yarn add {{dependency}}\",\n workspaceOption: \"-W\",\n lockfile: \"yarn.lock\",\n },\n npm: {\n installCommand: \"npm install {{dependency}}\",\n workspaceOption: \"\",\n lockfile: \"package-lock.json\",\n },\n};\n\nexport type ProjectInfo = {\n isGlobal: boolean;\n path: string;\n};\n\nexport type PackageManager = \"npm\" | \"yarn\" | \"pnpm\" | \"bun\";\n\ntype PathValidation = (dir: string) => boolean;\n\nexport function defaultPathValidation() {\n return true;\n}\n\nexport function isPowerhouseProject(dir: string) {\n const powerhouseConfigPath = path.join(dir, POWERHOUSE_CONFIG_FILE);\n\n return fs.existsSync(powerhouseConfigPath);\n}\n\nexport function findNodeProjectRoot(\n dir: string,\n pathValidation: PathValidation = defaultPathValidation,\n) {\n const packageJsonPath = path.join(dir, \"package.json\");\n\n if (fs.existsSync(packageJsonPath) && pathValidation(dir)) {\n return dir;\n }\n\n const parentDir = dirname(dir);\n\n if (parentDir === dir) {\n return null;\n }\n\n return findNodeProjectRoot(parentDir, pathValidation);\n}\n\nexport function getPackageManagerFromPath(dir: string): PackageManager {\n const lowerCasePath = dir.toLowerCase();\n\n if (packageManagers.bun.globalPathRegexp.test(lowerCasePath)) {\n return \"bun\";\n } else if (packageManagers.pnpm.globalPathRegexp.test(lowerCasePath)) {\n return \"pnpm\";\n } else if (packageManagers.yarn.globalPathRegexp.test(lowerCasePath)) {\n return \"yarn\";\n }\n\n return \"npm\";\n}\n\nexport function getPackageManagerFromLockfile(dir: string): PackageManager {\n if (fs.existsSync(path.join(dir, packageManagers.pnpm.lockfile))) {\n return \"pnpm\";\n } else if (fs.existsSync(path.join(dir, packageManagers.yarn.lockfile))) {\n return \"yarn\";\n } else if (fs.existsSync(path.join(dir, packageManagers.bun.lockfile))) {\n return \"bun\";\n }\n\n return \"npm\";\n}\n\nexport function getProjectInfo(debug?: boolean): ProjectInfo {\n const currentPath = process.cwd();\n\n if (debug) {\n console.log(\">>> currentPath\", currentPath);\n }\n\n const projectPath = findNodeProjectRoot(currentPath, isPowerhouseProject);\n\n if (!projectPath) {\n return {\n isGlobal: true,\n path: POWERHOUSE_GLOBAL_DIR,\n };\n }\n\n return {\n isGlobal: false,\n path: projectPath,\n };\n}\n\nexport function installDependency(\n packageManager: PackageManager,\n dependencies: string[],\n projectPath: string,\n workspace?: boolean,\n) {\n if (!fs.existsSync(projectPath)) {\n throw new Error(`Project path not found: ${projectPath}`);\n }\n\n const manager = packageManagers[packageManager];\n\n let installCommand = manager.installCommand.replace(\n \"{{dependency}}\",\n dependencies.join(\" \"),\n );\n\n if (workspace) {\n installCommand += ` ${manager.workspaceOption}`;\n }\n\n const commandOptions = { cwd: projectPath };\n\n execSync(installCommand, {\n stdio: \"inherit\",\n ...commandOptions,\n });\n}\n\nexport function updateConfigFile(dependencies: string[], projectPath: string) {\n const configPath = path.join(projectPath, POWERHOUSE_CONFIG_FILE);\n\n if (!fs.existsSync(configPath)) {\n throw new Error(\n `powerhouse.config.json file not found. projectPath: ${projectPath}`,\n );\n }\n\n const config = JSON.parse(\n fs.readFileSync(configPath, \"utf-8\"),\n ) as PowerhouseConfig;\n\n const mappedPackages: PowerhouseConfig[\"packages\"] = dependencies.map(\n (dep) => ({\n packageName: dep,\n }),\n );\n\n const updatedConfig: PowerhouseConfig = {\n ...config,\n packages: [...(config.packages || []), ...mappedPackages],\n };\n\n fs.writeFileSync(configPath, JSON.stringify(updatedConfig, null, 2));\n}\n\nexport const install: CommandActionType<\n [\n string[] | undefined,\n {\n debug?: boolean;\n global?: boolean;\n workspace?: boolean;\n packageManager?: string;\n },\n ]\n> = (dependencies, options) => {\n if (options.debug) {\n console.log(\">>> command arguments\", { dependencies, options });\n }\n\n if (!dependencies || dependencies.length === 0) {\n throw new Error(\"❌ Dependency name is required\");\n }\n\n if (\n options.packageManager &&\n !SUPPORTED_PACKAGE_MANAGERS.includes(options.packageManager)\n ) {\n throw new Error(\n \"❌ Unsupported package manager. Supported package managers: npm, yarn, pnpm, bun\",\n );\n }\n\n const projectInfo = getProjectInfo(options.debug);\n\n if (options.debug) {\n console.log(\"\\n>>> projectInfo\", projectInfo);\n }\n\n const isGlobal = options.global || projectInfo.isGlobal;\n const packageManager =\n options.packageManager || getPackageManagerFromLockfile(projectInfo.path);\n\n if (options.debug) {\n console.log(\"\\n>>> installDependency arguments:\");\n console.log(\">>> packageManager\", packageManager);\n console.log(\">>> dependencies\", dependencies);\n console.log(\">>> isGlobal\", isGlobal);\n console.log(\">>> projectPath\", projectInfo.path);\n console.log(\">>> workspace\", options.workspace);\n }\n\n try {\n console.log(\"installing dependencies 📦 ...\");\n installDependency(\n packageManager as PackageManager,\n dependencies,\n projectInfo.path,\n options.workspace,\n );\n console.log(\"Dependency installed successfully 🎉\");\n } catch (error) {\n console.error(\"❌ Failed to install dependencies\");\n throw error;\n }\n\n if (options.debug) {\n console.log(\"\\n>>> updateConfigFile arguments:\");\n console.log(\">>> dependencies\", dependencies);\n console.log(\">>> projectPath\", projectInfo.path);\n }\n\n try {\n console.log(\"⚙️ Updating powerhouse config file...\");\n updateConfigFile(dependencies, projectInfo.path);\n console.log(\"Config file updated successfully 🎉\");\n } catch (error) {\n console.error(\"❌ Failed to update config file\");\n throw error;\n }\n};\n\nexport function installCommand(program: Command) {\n program\n .command(\"install\")\n .description(\"Install a powerhouse dependency\")\n .argument(\"[dependencies...]\", \"Names of the dependencies to install\")\n .option(\"-g, --global\", \"Install the dependency globally\")\n .option(\"--debug\", \"Show additional logs\")\n .option(\n \"-w, --workspace\",\n \"Install the dependency in the workspace (use this option for monorepos)\",\n )\n .option(\n \"--package-manager <packageManager>\",\n \"force package manager to use\",\n )\n .action(install);\n}\n"]}
@@ -1,35 +0,0 @@
1
- import { Command } from 'commander';
2
- import { StartServerOptions, LocalReactor } from '@powerhousedao/reactor-local';
3
- import { CommandActionType } from '../types.js';
4
-
5
- type ReactorOptions = StartServerOptions & {
6
- generate?: boolean;
7
- watch?: boolean;
8
- dbPath?: string;
9
- };
10
- declare const DefaultReactorOptions: {
11
- dev: boolean;
12
- port: number;
13
- storagePath: string;
14
- dbPath: string;
15
- drive: {
16
- global: {
17
- id: string;
18
- name: string;
19
- icon: string;
20
- slug: string;
21
- };
22
- local: {
23
- availableOffline: true;
24
- listeners: never[];
25
- sharingType: string;
26
- triggers: never[];
27
- };
28
- };
29
- };
30
- declare const reactor: CommandActionType<[
31
- ReactorOptions
32
- ], Promise<LocalReactor>>;
33
- declare function reactorCommand(program: Command): void;
34
-
35
- export { DefaultReactorOptions, type ReactorOptions, reactor, reactorCommand };
@@ -1,69 +0,0 @@
1
- import { DefaultStartServerOptions, startServer } from '@powerhousedao/reactor-local';
2
- import { generateFromFile } from '@powerhousedao/codegen';
3
- import { getConfig } from '@powerhousedao/config/powerhouse';
4
-
5
- const DefaultReactorOptions = {
6
- ...DefaultStartServerOptions,
7
- dev: true
8
- };
9
- async function startLocalReactor(reactorOptions) {
10
- const baseConfig = getConfig();
11
- const options = { ...DefaultReactorOptions, ...reactorOptions };
12
- const reactor2 = await startServer(options);
13
- if (options.generate) {
14
- await reactor2.addListener(
15
- "powerhouse",
16
- {
17
- onStrands: async function(strands) {
18
- const documentPaths = /* @__PURE__ */ new Set();
19
- for (const strand of strands) {
20
- documentPaths.add(
21
- reactor2.getDocumentPath(strand.driveId, strand.documentId)
22
- );
23
- }
24
- for (const path of documentPaths) {
25
- await generateFromFile(path, baseConfig);
26
- }
27
- return Promise.resolve();
28
- },
29
- onDisconnect: () => Promise.resolve()
30
- },
31
- {
32
- filter: {
33
- documentType: ["powerhouse/document-model"],
34
- scope: ["global"],
35
- branch: ["*"],
36
- documentId: ["*"]
37
- },
38
- block: false,
39
- listenerId: "reactor-local-document-model-generator",
40
- label: "reactor-local-document-model-generator"
41
- }
42
- );
43
- }
44
- return reactor2;
45
- }
46
- const reactor = (options) => {
47
- return startLocalReactor(options);
48
- };
49
- function reactorCommand(program) {
50
- program.command("reactor").description("Starts local reactor").option("--port <PORT>", "port to host the api", "4001").option("--generate", "generate code when document model is updated").option("--db-path <DB_PATH>", "path to the database").option(
51
- "-w, --watch",
52
- "if the reactor should watch for local changes to document models and processors"
53
- ).action(async (...args) => {
54
- await reactor(...args);
55
- });
56
- }
57
- if (process.argv.at(2) === "spawn") {
58
- const optionsArg = process.argv.at(3);
59
- const options = optionsArg ? JSON.parse(optionsArg) : {};
60
- startLocalReactor(options).then((reactor2) => {
61
- process.send?.(`driveUrl:${reactor2.driveUrl}`);
62
- }).catch((e) => {
63
- throw e;
64
- });
65
- }
66
-
67
- export { DefaultReactorOptions, reactor, reactorCommand };
68
- //# sourceMappingURL=reactor.js.map
69
- //# sourceMappingURL=reactor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/reactor.ts"],"names":["reactor"],"mappings":";;;;AAiBO,MAAM,qBAAwB,GAAA;AAAA,EACnC,GAAG,yBAAA;AAAA,EACH,GAAK,EAAA;AACP;AAEA,eAAe,kBAAkB,cAAgC,EAAA;AAC/D,EAAA,MAAM,aAAa,SAAU,EAAA;AAC7B,EAAA,MAAM,OAAU,GAAA,EAAE,GAAG,qBAAA,EAAuB,GAAG,cAAe,EAAA;AAC9D,EAAMA,MAAAA,QAAAA,GAAU,MAAM,WAAA,CAAY,OAAO,CAAA;AAEzC,EAAA,IAAI,QAAQ,QAAU,EAAA;AACpB,IAA4B,MAAMA,QAAQ,CAAA,WAAA;AAAA,MACxC,YAAA;AAAA,MACA;AAAA,QACE,SAAA,EAAW,eAAgB,OAAS,EAAA;AAClC,UAAM,MAAA,aAAA,uBAAoB,GAAY,EAAA;AACtC,UAAA,KAAA,MAAW,UAAU,OAAS,EAAA;AAC5B,YAAc,aAAA,CAAA,GAAA;AAAA,cACZA,QAAQ,CAAA,eAAA,CAAgB,MAAO,CAAA,OAAA,EAAS,OAAO,UAAU;AAAA,aAC3D;AAAA;AAEF,UAAA,KAAA,MAAW,QAAQ,aAAe,EAAA;AAChC,YAAM,MAAA,gBAAA,CAAiB,MAAM,UAAU,CAAA;AAAA;AAEzC,UAAA,OAAO,QAAQ,OAAQ,EAAA;AAAA,SACzB;AAAA,QACA,YAAA,EAAc,MAAM,OAAA,CAAQ,OAAQ;AAAA,OACtC;AAAA,MACA;AAAA,QACE,MAAQ,EAAA;AAAA,UACN,YAAA,EAAc,CAAC,2BAA2B,CAAA;AAAA,UAC1C,KAAA,EAAO,CAAC,QAAQ,CAAA;AAAA,UAChB,MAAA,EAAQ,CAAC,GAAG,CAAA;AAAA,UACZ,UAAA,EAAY,CAAC,GAAG;AAAA,SAClB;AAAA,QACA,KAAO,EAAA,KAAA;AAAA,QACP,UAAY,EAAA,wCAAA;AAAA,QACZ,KAAO,EAAA;AAAA;AACT;AACF;AAEF,EAAOA,OAAAA,QAAAA;AACT;AAEa,MAAA,OAAA,GAGT,CAAC,OAAY,KAAA;AACf,EAAA,OAAO,kBAAkB,OAAO,CAAA;AAClC;AAEO,SAAS,eAAe,OAAkB,EAAA;AAC/C,EAAA,OAAA,CACG,QAAQ,SAAS,CAAA,CACjB,YAAY,sBAAsB,CAAA,CAClC,OAAO,eAAiB,EAAA,sBAAA,EAAwB,MAAM,CAAA,CACtD,OAAO,YAAc,EAAA,8CAA8C,EACnE,MAAO,CAAA,qBAAA,EAAuB,sBAAsB,CACpD,CAAA,MAAA;AAAA,IACC,aAAA;AAAA,IACA;AAAA,GACF,CACC,MAAO,CAAA,OAAA,GAAU,IAA2B,KAAA;AAC3C,IAAM,MAAA,OAAA,CAAQ,GAAG,IAAI,CAAA;AAAA,GACtB,CAAA;AACL;AAEA,IAAI,OAAQ,CAAA,IAAA,CAAK,EAAG,CAAA,CAAC,MAAM,OAAS,EAAA;AAClC,EAAA,MAAM,UAAa,GAAA,OAAA,CAAQ,IAAK,CAAA,EAAA,CAAG,CAAC,CAAA;AACpC,EAAA,MAAM,UAAU,UAAc,GAAA,IAAA,CAAK,KAAM,CAAA,UAAU,IAAuB,EAAC;AAC3E,EAAA,iBAAA,CAAkB,OAAO,CAAA,CACtB,IAAK,CAAA,CAACA,QAAY,KAAA;AACjB,IAAA,OAAA,CAAQ,IAAO,GAAA,CAAA,SAAA,EAAYA,QAAQ,CAAA,QAAQ,CAAE,CAAA,CAAA;AAAA,GAC9C,CAAA,CACA,KAAM,CAAA,CAAC,CAAe,KAAA;AACrB,IAAM,MAAA,CAAA;AAAA,GACP,CAAA;AACL","file":"reactor.js","sourcesContent":["import { Command } from \"commander\";\nimport {\n DefaultStartServerOptions,\n startServer,\n StartServerOptions,\n LocalReactor,\n} from \"@powerhousedao/reactor-local\";\nimport { generateFromFile } from \"@powerhousedao/codegen\";\nimport { CommandActionType } from \"../types.js\";\nimport { getConfig } from \"@powerhousedao/config/powerhouse\";\n\nexport type ReactorOptions = StartServerOptions & {\n generate?: boolean;\n watch?: boolean;\n dbPath?: string;\n};\n\nexport const DefaultReactorOptions = {\n ...DefaultStartServerOptions,\n dev: true,\n};\n\nasync function startLocalReactor(reactorOptions: ReactorOptions) {\n const baseConfig = getConfig();\n const options = { ...DefaultReactorOptions, ...reactorOptions };\n const reactor = await startServer(options);\n\n if (options.generate) {\n const generateTransmitter = await reactor.addListener(\n \"powerhouse\",\n {\n onStrands: async function (strands) {\n const documentPaths = new Set<string>();\n for (const strand of strands) {\n documentPaths.add(\n reactor.getDocumentPath(strand.driveId, strand.documentId),\n );\n }\n for (const path of documentPaths) {\n await generateFromFile(path, baseConfig);\n }\n return Promise.resolve();\n },\n onDisconnect: () => Promise.resolve(),\n },\n {\n filter: {\n documentType: [\"powerhouse/document-model\"],\n scope: [\"global\"],\n branch: [\"*\"],\n documentId: [\"*\"],\n },\n block: false,\n listenerId: \"reactor-local-document-model-generator\",\n label: \"reactor-local-document-model-generator\",\n },\n );\n }\n return reactor;\n}\n\nexport const reactor: CommandActionType<\n [ReactorOptions],\n Promise<LocalReactor>\n> = (options) => {\n return startLocalReactor(options);\n};\n\nexport function reactorCommand(program: Command) {\n program\n .command(\"reactor\")\n .description(\"Starts local reactor\")\n .option(\"--port <PORT>\", \"port to host the api\", \"4001\")\n .option(\"--generate\", \"generate code when document model is updated\")\n .option(\"--db-path <DB_PATH>\", \"path to the database\")\n .option(\n \"-w, --watch\",\n \"if the reactor should watch for local changes to document models and processors\",\n )\n .action(async (...args: [ReactorOptions]) => {\n await reactor(...args);\n });\n}\n\nif (process.argv.at(2) === \"spawn\") {\n const optionsArg = process.argv.at(3);\n const options = optionsArg ? (JSON.parse(optionsArg) as ReactorOptions) : {};\n startLocalReactor(options)\n .then((reactor) => {\n process.send?.(`driveUrl:${reactor.driveUrl}`);\n })\n .catch((e: unknown) => {\n throw e;\n });\n}\n"]}
@@ -1,7 +0,0 @@
1
- import { Command } from 'commander';
2
- import { CommandActionType } from '../types.js';
3
-
4
- declare const manageService: CommandActionType<[string, string]>;
5
- declare function serviceCommand(program: Command): void;
6
-
7
- export { manageService, serviceCommand };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/commands/service.ts"],"names":[],"mappings":"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","file":"service.js","sourcesContent":["import { Argument, Command } from \"commander\";\nimport { execSync, spawn } from \"node:child_process\";\nimport { CommandActionType } from \"../types.js\";\nimport pm2, { StartOptions } from \"pm2\";\nimport { getConfig, PowerhouseConfig } from \"@powerhousedao/config/powerhouse\";\n\nconst actions = [\"start\", \"stop\", \"status\", \"list\", \"install\", \"save\"];\nconst services = [\"reactor\", \"connect\", \"all\"];\n\nlet reactorPort = 8442;\nlet connectPort = 8443;\nexport const manageService: CommandActionType<[string, string]> = async (\n action,\n service,\n) => {\n try {\n const config = getConfig();\n if (config.reactor?.port) {\n reactorPort = config.reactor.port;\n }\n if (config.studio?.port) {\n connectPort = config.studio.port;\n }\n\n pm2.connect((err) => {\n switch (action) {\n case \"start\":\n startServices(service);\n break;\n case \"stop\":\n stopServices(service);\n break;\n case \"status\":\n statusServices();\n break;\n }\n });\n } catch (error) {\n console.error(error);\n }\n};\n\nexport function serviceCommand(program: Command) {\n program\n .command(\"service\")\n .description(\"Manage services\")\n .addArgument(new Argument(\"action\").choices(actions).default(\"list\"))\n .addArgument(\n new Argument(\"service\").choices(services).argOptional().default(\"all\"),\n )\n .action(manageService);\n}\n\nfunction startServices(service: string) {\n if (service === \"reactor\" || service === \"all\") {\n const reactorOptions: StartOptions = {\n name: \"reactor\",\n script: \"npx ph-cli reactor\",\n };\n console.log(\"Starting reactor...\");\n pm2.start(reactorOptions, (err) => {\n if (err) {\n console.log(err.name);\n // throw new Error(err.message);\n }\n\n dumpServices();\n });\n console.log(\"Reactor started\");\n }\n\n if (service === \"connect\" || service === \"all\") {\n const connectOptions: StartOptions = {\n name: \"connect\",\n script: \"npx ph-cli connect\",\n args: [\"--port\", connectPort.toString()],\n };\n console.log(\"Starting connect...\");\n pm2.start(connectOptions, (err) => {\n if (err) {\n throw new Error(err.message);\n }\n\n dumpServices();\n });\n console.log(\"Connect started\");\n }\n}\n\nfunction dumpServices() {\n pm2.dump((err) => {\n if (err) {\n throw new Error(err.message);\n }\n\n statusServices();\n });\n}\n\nfunction stopServices(service: string) {\n if (service === \"all\" || service === \"connect\") {\n pm2.stop(\"connect\", (err) => {\n if (err) {\n throw new Error(err.message);\n }\n\n dumpServices();\n });\n }\n if (service === \"all\" || service === \"reactor\") {\n pm2.stop(\"reactor\", (err) => {\n if (err) {\n throw new Error(err.message);\n }\n\n dumpServices();\n });\n }\n}\n\nfunction statusServices() {\n pm2.list((err, list) => {\n const formattedList = list.map((item) => {\n return {\n id: item.pm_id,\n name: item.name,\n pid: item.pid,\n uptime: item.pm2_env?.pm_uptime,\n restarts: item.pm2_env?.unstable_restarts,\n status: item.pm2_env?.status,\n mem: item.monit?.memory,\n cpu: item.monit?.cpu,\n };\n });\n\n console.table(formattedList);\n process.exit(0);\n });\n}\n"]}
package/dist/index.d.ts DELETED
@@ -1,11 +0,0 @@
1
- export { commands } from './commands/index.js';
2
- export { getConfig } from '@powerhousedao/config/powerhouse';
3
- export { dev, devCommand } from './commands/dev.js';
4
- export { generate, generateCommand } from './commands/generate.js';
5
- export { helpCommand } from './commands/help.js';
6
- export { init, initCommand } from './commands/init.js';
7
- export { DefaultReactorOptions, ReactorOptions, reactor, reactorCommand } from './commands/reactor.js';
8
- export { manageService, serviceCommand } from './commands/service.js';
9
- import 'commander';
10
- import './types.js';
11
- import '@powerhousedao/reactor-local';
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js","sourcesContent":[]}
package/dist/types.d.ts DELETED
@@ -1,3 +0,0 @@
1
- type CommandActionType<Args extends any[], Return = void> = (...args: Args) => Return | Promise<Return>;
2
-
3
- export type { CommandActionType };
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"types.js"}
package/dist/utils.d.ts DELETED
@@ -1 +0,0 @@
1
- export { getConfig } from '@powerhousedao/config/powerhouse';
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"utils.js","sourcesContent":[]}