@powerhousedao/ph-cli 5.0.0-staging.9 → 5.0.1-staging.10

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 (102) hide show
  1. package/README.md +21 -4
  2. package/dist/src/cli.js +14 -1
  3. package/dist/src/cli.js.map +1 -1
  4. package/dist/src/commands/connect.d.ts +17 -6
  5. package/dist/src/commands/connect.d.ts.map +1 -1
  6. package/dist/src/commands/connect.js +55 -31
  7. package/dist/src/commands/connect.js.map +1 -1
  8. package/dist/src/commands/generate.d.ts +4 -4
  9. package/dist/src/commands/generate.d.ts.map +1 -1
  10. package/dist/src/commands/generate.js +5 -3
  11. package/dist/src/commands/generate.js.map +1 -1
  12. package/dist/src/commands/help.d.ts +1 -1
  13. package/dist/src/commands/help.d.ts.map +1 -1
  14. package/dist/src/commands/index.d.ts +11 -4
  15. package/dist/src/commands/index.d.ts.map +1 -1
  16. package/dist/src/commands/index.js +11 -29
  17. package/dist/src/commands/index.js.map +1 -1
  18. package/dist/src/commands/inspect.d.ts +3 -3
  19. package/dist/src/commands/inspect.d.ts.map +1 -1
  20. package/dist/src/commands/install.d.ts +2 -3
  21. package/dist/src/commands/install.d.ts.map +1 -1
  22. package/dist/src/commands/install.js.map +1 -1
  23. package/dist/src/commands/list.d.ts +2 -2
  24. package/dist/src/commands/list.d.ts.map +1 -1
  25. package/dist/src/commands/list.js +1 -1
  26. package/dist/src/commands/list.js.map +1 -1
  27. package/dist/src/commands/register-commands.d.ts +5 -0
  28. package/dist/src/commands/register-commands.d.ts.map +1 -0
  29. package/dist/src/commands/register-commands.js +26 -0
  30. package/dist/src/commands/register-commands.js.map +1 -0
  31. package/dist/src/commands/service.d.ts +2 -2
  32. package/dist/src/commands/service.d.ts.map +1 -1
  33. package/dist/src/commands/service.js.map +1 -1
  34. package/dist/src/commands/switchboard.d.ts +6 -6
  35. package/dist/src/commands/switchboard.d.ts.map +1 -1
  36. package/dist/src/commands/switchboard.js +6 -5
  37. package/dist/src/commands/switchboard.js.map +1 -1
  38. package/dist/src/commands/uninstall.d.ts +3 -3
  39. package/dist/src/commands/uninstall.d.ts.map +1 -1
  40. package/dist/src/commands/uninstall.js.map +1 -1
  41. package/dist/src/commands/vetra.d.ts +4 -3
  42. package/dist/src/commands/vetra.d.ts.map +1 -1
  43. package/dist/src/commands/vetra.js +2 -1
  44. package/dist/src/commands/vetra.js.map +1 -1
  45. package/dist/src/help.d.ts +5 -5
  46. package/dist/src/help.d.ts.map +1 -1
  47. package/dist/src/help.js +95 -37
  48. package/dist/src/help.js.map +1 -1
  49. package/dist/src/index.d.ts +2 -0
  50. package/dist/src/index.d.ts.map +1 -1
  51. package/dist/src/index.js +2 -0
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/services/connect.d.ts +1 -3
  54. package/dist/src/services/connect.d.ts.map +1 -1
  55. package/dist/src/services/connect.js +1 -15
  56. package/dist/src/services/connect.js.map +1 -1
  57. package/dist/src/services/generate.d.ts +3 -0
  58. package/dist/src/services/generate.d.ts.map +1 -1
  59. package/dist/src/services/generate.js +11 -2
  60. package/dist/src/services/generate.js.map +1 -1
  61. package/dist/src/services/switchboard.d.ts +31 -1
  62. package/dist/src/services/switchboard.d.ts.map +1 -1
  63. package/dist/src/services/switchboard.js +26 -23
  64. package/dist/src/services/switchboard.js.map +1 -1
  65. package/dist/src/services/vetra.d.ts +2 -2
  66. package/dist/src/services/vetra.d.ts.map +1 -1
  67. package/dist/src/services/vetra.js +92 -72
  68. package/dist/src/services/vetra.js.map +1 -1
  69. package/dist/src/utils/configure-vetra-github-url.d.ts +12 -0
  70. package/dist/src/utils/configure-vetra-github-url.d.ts.map +1 -0
  71. package/dist/src/utils/configure-vetra-github-url.js +230 -0
  72. package/dist/src/utils/configure-vetra-github-url.js.map +1 -0
  73. package/dist/src/utils.d.ts +11 -4
  74. package/dist/src/utils.d.ts.map +1 -1
  75. package/dist/src/utils.js +18 -14
  76. package/dist/src/utils.js.map +1 -1
  77. package/dist/src/version.d.ts +1 -1
  78. package/dist/src/version.js +1 -1
  79. package/dist/test/utils.test.d.ts +2 -0
  80. package/dist/test/utils.test.d.ts.map +1 -0
  81. package/dist/test/utils.test.js +132 -0
  82. package/dist/test/utils.test.js.map +1 -0
  83. package/dist/tsconfig.tsbuildinfo +1 -0
  84. package/package.json +16 -21
  85. package/dist/package.json +0 -58
  86. package/dist/src/commands/dev.d.ts +0 -6
  87. package/dist/src/commands/dev.d.ts.map +0 -1
  88. package/dist/src/commands/dev.js +0 -25
  89. package/dist/src/commands/dev.js.map +0 -1
  90. package/dist/src/commands/reactor.d.ts +0 -9
  91. package/dist/src/commands/reactor.d.ts.map +0 -1
  92. package/dist/src/commands/reactor.js +0 -43
  93. package/dist/src/commands/reactor.js.map +0 -1
  94. package/dist/src/services/dev.d.ts +0 -10
  95. package/dist/src/services/dev.d.ts.map +0 -1
  96. package/dist/src/services/dev.js +0 -75
  97. package/dist/src/services/dev.js.map +0 -1
  98. package/dist/src/services/reactor.d.ts +0 -36
  99. package/dist/src/services/reactor.d.ts.map +0 -1
  100. package/dist/src/services/reactor.js +0 -92
  101. package/dist/src/services/reactor.js.map +0 -1
  102. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -0,0 +1,230 @@
1
+ import { createVetraDocument, getVetraDocuments, setPackageGithubUrl, } from "@powerhousedao/common/utils";
2
+ import { red } from "colorette";
3
+ import { execSync } from "node:child_process";
4
+ import { createInterface } from "node:readline";
5
+ /**
6
+ * Get git remote URL (origin)
7
+ * @returns Git remote URL or null if not configured
8
+ */
9
+ function getGitRemoteUrl() {
10
+ try {
11
+ const url = execSync("git remote get-url origin", {
12
+ encoding: "utf-8",
13
+ stdio: ["pipe", "pipe", "pipe"],
14
+ }).trim();
15
+ return url || null;
16
+ }
17
+ catch {
18
+ return null;
19
+ }
20
+ }
21
+ /**
22
+ * Prompt user to enter a custom GitHub URL
23
+ */
24
+ async function promptForCustomUrl() {
25
+ return new Promise((resolve) => {
26
+ const rl = createInterface({
27
+ input: process.stdin,
28
+ output: process.stdout,
29
+ });
30
+ process.stdout.write("\nEnter GitHub URL (or press Enter to skip): ");
31
+ rl.on("line", (answer) => {
32
+ rl.close();
33
+ const url = answer.trim();
34
+ resolve(url || null);
35
+ });
36
+ });
37
+ }
38
+ /**
39
+ * Prompt yes/no question
40
+ */
41
+ async function promptYesNo(question) {
42
+ return new Promise((resolve) => {
43
+ const rl = createInterface({
44
+ input: process.stdin,
45
+ output: process.stdout,
46
+ });
47
+ process.stdout.write(`\n${question} (y/n): `);
48
+ rl.on("line", (answer) => {
49
+ rl.close();
50
+ const response = answer.trim().toLowerCase();
51
+ resolve(response === "y" || response === "yes");
52
+ });
53
+ });
54
+ }
55
+ /**
56
+ * Prompt user to select or enter GitHub URL
57
+ * @param gitRemoteUrl - Git remote URL if available
58
+ * @returns Selected URL or null if skipped
59
+ */
60
+ async function promptForGithubUrl(gitRemoteUrl) {
61
+ return new Promise((resolve) => {
62
+ const rl = createInterface({
63
+ input: process.stdin,
64
+ output: process.stdout,
65
+ });
66
+ console.log("\n" + "=".repeat(50));
67
+ console.log("🔍 Vetra Package Configuration");
68
+ console.log("=".repeat(50));
69
+ console.log("\nWe detected a Vetra package document in your remote drive without a GitHub URL configured.");
70
+ console.log("\nWould you like to configure the GitHub URL now?");
71
+ if (gitRemoteUrl) {
72
+ console.log(`\nGit remote URL detected: ${gitRemoteUrl}`);
73
+ console.log("\nOptions:");
74
+ console.log("1. Use detected URL");
75
+ console.log("2. Enter a different URL");
76
+ console.log("3. Skip configuration");
77
+ process.stdout.write("\nSelect an option (1-3): ");
78
+ const handleAnswer = (answer) => {
79
+ const choice = answer.trim();
80
+ if (choice === "1") {
81
+ rl.close();
82
+ resolve(gitRemoteUrl);
83
+ }
84
+ else if (choice === "2") {
85
+ rl.close();
86
+ promptForCustomUrl()
87
+ .then(resolve)
88
+ .catch(() => resolve(null));
89
+ }
90
+ else if (choice === "3") {
91
+ rl.close();
92
+ resolve(null);
93
+ }
94
+ else {
95
+ process.stdout.write("Invalid choice. Select an option (1-3): ");
96
+ }
97
+ };
98
+ rl.on("line", handleAnswer);
99
+ }
100
+ else {
101
+ console.log("\nNo git remote URL detected.");
102
+ console.log("\nOptions:");
103
+ console.log("1. Enter GitHub URL manually");
104
+ console.log("2. Skip configuration");
105
+ process.stdout.write("\nSelect an option (1-2): ");
106
+ const handleAnswer = (answer) => {
107
+ const choice = answer.trim();
108
+ if (choice === "1") {
109
+ rl.close();
110
+ promptForCustomUrl()
111
+ .then(resolve)
112
+ .catch(() => resolve(null));
113
+ }
114
+ else if (choice === "2") {
115
+ rl.close();
116
+ resolve(null);
117
+ }
118
+ else {
119
+ process.stdout.write("Invalid choice. Select an option (1-2): ");
120
+ }
121
+ };
122
+ rl.on("line", handleAnswer);
123
+ }
124
+ });
125
+ }
126
+ /**
127
+ * Set git remote URL (origin)
128
+ */
129
+ function setGitRemoteUrl(url) {
130
+ try {
131
+ execSync(`git remote add origin ${url}`, {
132
+ stdio: "inherit",
133
+ });
134
+ console.log(`✅ Git remote origin set to: ${url}`);
135
+ }
136
+ catch {
137
+ try {
138
+ execSync(`git remote set-url origin ${url}`, {
139
+ stdio: "inherit",
140
+ });
141
+ console.log(`✅ Git remote origin updated to: ${url}`);
142
+ }
143
+ catch {
144
+ console.error(red(`❌ Failed to set git remote URL`));
145
+ }
146
+ }
147
+ }
148
+ /**
149
+ * Validates documents and returns the target document to use
150
+ * Warns if multiple documents found
151
+ */
152
+ function validateAndSelectDocument(documents) {
153
+ if (documents.length === 0) {
154
+ return null;
155
+ }
156
+ if (documents.length > 1) {
157
+ console.warn(`⚠️ Warning: Multiple Vetra documents found (${documents.length}). Using first document.`);
158
+ }
159
+ return documents[0];
160
+ }
161
+ async function applyGithubUrlConfiguration(graphqlEndpoint, vetraDriveId, documentId, selectedUrl, shouldSetRemote) {
162
+ // Set package GitHub URL
163
+ await setPackageGithubUrl(graphqlEndpoint, vetraDriveId, documentId, selectedUrl);
164
+ console.log(`✅ GitHub URL configured: ${selectedUrl}`);
165
+ // Set git remote URL if requested
166
+ if (shouldSetRemote) {
167
+ setGitRemoteUrl(selectedUrl);
168
+ }
169
+ }
170
+ function logVerbose(message, verbose) {
171
+ if (verbose) {
172
+ console.log(message);
173
+ }
174
+ }
175
+ /**
176
+ * Sleep for a specified number of milliseconds
177
+ */
178
+ export function sleep(ms) {
179
+ return new Promise((resolve) => setTimeout(resolve, ms));
180
+ }
181
+ /**
182
+ * Configure GitHub URL for Vetra documents
183
+ * @param switchboardPort - Port where switchboard is running
184
+ * @param vetraDriveUrl - Remote drive URL
185
+ * @param verbose - Enable verbose logging
186
+ */
187
+ export async function configureVetraGithubUrl(switchboardPort, vetraDriveUrl, verbose) {
188
+ logVerbose("Checking GitHub URL configuration...", verbose);
189
+ try {
190
+ const graphqlEndpoint = `http://localhost:${switchboardPort}/graphql`;
191
+ const vetraDriveId = vetraDriveUrl.split("/").pop();
192
+ if (!vetraDriveId) {
193
+ throw new Error("Invalid vetraDriveUrl: unable to extract drive ID");
194
+ }
195
+ const documents = await getVetraDocuments(graphqlEndpoint, vetraDriveId);
196
+ // Skip if already configured
197
+ if (documents.some((doc) => doc.githubUrl)) {
198
+ logVerbose("GitHub URL already configured, skipping setup", verbose);
199
+ return;
200
+ }
201
+ // Get or create target document
202
+ let targetDocumentId;
203
+ const targetDocument = validateAndSelectDocument(documents);
204
+ // Collect user input
205
+ const gitRemoteUrl = getGitRemoteUrl();
206
+ const selectedUrl = await promptForGithubUrl(gitRemoteUrl);
207
+ if (!selectedUrl) {
208
+ logVerbose("GitHub URL configuration skipped", verbose);
209
+ return;
210
+ }
211
+ let shouldSetRemote = false;
212
+ if (selectedUrl !== gitRemoteUrl && !gitRemoteUrl) {
213
+ shouldSetRemote = await promptYesNo("Set this as your git remote URL?");
214
+ }
215
+ if (!targetDocument) {
216
+ logVerbose("No Vetra documents found, creating new document...", verbose);
217
+ targetDocumentId = await createVetraDocument(graphqlEndpoint, vetraDriveId, "vetra-package");
218
+ logVerbose(`Created new document: ${targetDocumentId}`, verbose);
219
+ }
220
+ else {
221
+ targetDocumentId = targetDocument.id;
222
+ }
223
+ await applyGithubUrlConfiguration(graphqlEndpoint, vetraDriveId, targetDocumentId, selectedUrl, shouldSetRemote);
224
+ }
225
+ catch (error) {
226
+ console.error(red(`⚠️ GitHub URL configuration failed: ${error instanceof Error ? error.message : String(error)}`));
227
+ logVerbose(String(error), verbose);
228
+ }
229
+ }
230
+ //# sourceMappingURL=configure-vetra-github-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure-vetra-github-url.js","sourceRoot":"","sources":["../../../src/utils/configure-vetra-github-url.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type PowerhouseConfig } from "@powerhousedao/config/powerhouse";
2
- import { type Command } from "commander";
1
+ import type { PowerhouseConfig } from "@powerhousedao/config";
2
+ import type { Command } from "commander";
3
3
  export declare const POWERHOUSE_CONFIG_FILE = "powerhouse.config.json";
4
4
  export declare const POWERHOUSE_GLOBAL_DIR: string;
5
5
  export declare const SUPPORTED_PACKAGE_MANAGERS: string[];
@@ -45,13 +45,20 @@ export type PackageManager = "npm" | "yarn" | "pnpm" | "bun";
45
45
  export type ProjectInfo = {
46
46
  isGlobal: boolean;
47
47
  path: string;
48
+ packageManager: PackageManager;
48
49
  };
49
50
  export declare function defaultPathValidation(): boolean;
50
51
  export declare function isPowerhouseProject(dir: string): boolean;
51
52
  export declare function findNodeProjectRoot(dir: string, pathValidation?: PathValidation): string | null;
52
53
  export declare function getProjectInfo(debug?: boolean): ProjectInfo;
54
+ /**
55
+ * Generates a unique drive ID based on the project path.
56
+ * The same project path will always generate the same ID.
57
+ * @param name - The name prefix for the drive ID (e.g., "vetra", "powerhouse")
58
+ * @returns A unique drive ID in the format "{name}-{hash}"
59
+ */
60
+ export declare function generateProjectDriveId(name: string): string;
53
61
  export declare function getPackageManagerFromLockfile(dir: string): PackageManager;
54
- export declare function getPackageManagerFromPath(dir: string): PackageManager;
55
62
  export declare function updatePackagesArray(currentPackages: PowerhouseConfig["packages"], dependencies: {
56
63
  name: string;
57
64
  version: string | undefined;
@@ -105,5 +112,5 @@ export declare function removeStylesImports(dependencies: {
105
112
  version: string | undefined;
106
113
  full: string;
107
114
  }[], projectPath: string): void;
108
- export { getConfig } from "@powerhousedao/config/utils";
115
+ export {};
109
116
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AACjE,eAAO,MAAM,0BAA0B,UAAiC,CAAC;AAEzE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC3B,CAAC;AAEF,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,qBAAqB,YAEpC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,WAI9C;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,cAAsC,iBAevD;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,CAoB3D;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAUzE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAYrE;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,gBAAgB,CAAC,UAAU,CAAM,EAClD,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,IAAI,GAAE,SAAS,GAAG,WAAuB,GACxC,gBAAgB,CAAC,UAAU,CAAC,CAmB9B;AAGD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,SAAS,GAAG,WAAuB,QAoB1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,MAAM,GAAG,IAeX,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAiBzE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,WAAW,EAAE,MAAM,QAmDpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,WAAW,EAAE,MAAM,QAgCpB;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAC/D,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AACjE,eAAO,MAAM,0BAA0B,UAAiC,CAAC;AAEzE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC3B,CAAC;AAEF,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,wBAAgB,qBAAqB,YAEpC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,WAI9C;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,cAAc,GAAE,cAAsC,iBAevD;AAED,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,CAsB3D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAUzE;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,gBAAgB,CAAC,UAAU,CAAM,EAClD,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,IAAI,GAAE,SAAS,GAAG,WAAuB,GACxC,gBAAgB,CAAC,UAAU,CAAC,CAmB9B;AAGD,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,SAAS,GAAG,WAAuB,QAoB1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EACjB,YAAY,MAAM,KACjB,MAAM,GAAG,IAeX,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAiBzE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,WAAW,EAAE,MAAM,QAmDpB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,WAAW,EAAE,MAAM,QAgCpB"}
package/dist/src/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ import crypto from "node:crypto";
1
2
  import fs from "node:fs";
2
3
  import { homedir } from "node:os";
3
4
  import path, { dirname } from "node:path";
@@ -69,13 +70,30 @@ export function getProjectInfo(debug) {
69
70
  return {
70
71
  isGlobal: true,
71
72
  path: POWERHOUSE_GLOBAL_DIR,
73
+ packageManager: getPackageManagerFromLockfile(POWERHOUSE_GLOBAL_DIR),
72
74
  };
73
75
  }
74
76
  return {
75
77
  isGlobal: false,
76
78
  path: projectPath,
79
+ packageManager: getPackageManagerFromLockfile(projectPath),
77
80
  };
78
81
  }
82
+ /**
83
+ * Generates a unique drive ID based on the project path.
84
+ * The same project path will always generate the same ID.
85
+ * @param name - The name prefix for the drive ID (e.g., "vetra", "powerhouse")
86
+ * @returns A unique drive ID in the format "{name}-{hash}"
87
+ */
88
+ export function generateProjectDriveId(name) {
89
+ const projectInfo = getProjectInfo();
90
+ const hash = crypto
91
+ .createHash("sha256")
92
+ .update(projectInfo.path)
93
+ .digest("hex");
94
+ const shortHash = hash.substring(0, 8);
95
+ return `${name}-${shortHash}`;
96
+ }
79
97
  export function getPackageManagerFromLockfile(dir) {
80
98
  if (fs.existsSync(path.join(dir, packageManagers.pnpm.lockfile))) {
81
99
  return "pnpm";
@@ -88,19 +106,6 @@ export function getPackageManagerFromLockfile(dir) {
88
106
  }
89
107
  return "npm";
90
108
  }
91
- export function getPackageManagerFromPath(dir) {
92
- const lowerCasePath = dir.toLowerCase();
93
- if (packageManagers.bun.globalPathRegexp.test(lowerCasePath)) {
94
- return "bun";
95
- }
96
- else if (packageManagers.pnpm.globalPathRegexp.test(lowerCasePath)) {
97
- return "pnpm";
98
- }
99
- else if (packageManagers.yarn.globalPathRegexp.test(lowerCasePath)) {
100
- return "yarn";
101
- }
102
- return "npm";
103
- }
104
109
  export function updatePackagesArray(currentPackages = [], dependencies, task = "install") {
105
110
  const isInstall = task === "install";
106
111
  const mappedPackages = dependencies.map((dep) => ({
@@ -253,5 +258,4 @@ export function removeStylesImports(dependencies, projectPath) {
253
258
  fs.writeFileSync(stylesPath, updatedStyles);
254
259
  }
255
260
  }
256
- export { getConfig } from "@powerhousedao/config/utils";
257
261
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const version = "5.0.0-staging.9";
1
+ export declare const version = "5.0.1-staging.9";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // This file is auto-generated. DO NOT EDIT.
2
- export const version = "5.0.0-staging.9";
2
+ export const version = "5.0.1-staging.9";
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../test/utils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,132 @@
1
+ import { buildInstallCommand, updatePackagesArray, } from "@powerhousedao/ph-cli";
2
+ import { describe, expect, it } from "vitest";
3
+ describe("updatePackagesArray", () => {
4
+ it("should add new packages when installing", () => {
5
+ const currentPackages = [{ packageName: "existing-package" }];
6
+ const dependencies = [
7
+ { name: "new-package", version: undefined, full: "new-package" },
8
+ ];
9
+ const result = updatePackagesArray(currentPackages, dependencies, "install");
10
+ expect(result).toEqual([
11
+ { packageName: "existing-package" },
12
+ { packageName: "new-package", version: undefined, provider: "npm" },
13
+ ]);
14
+ });
15
+ it("should not duplicate packages when installing package that is already installed", () => {
16
+ const currentPackages = [{ packageName: "package-a" }];
17
+ const dependencies = [
18
+ { name: "package-a", version: undefined, full: "package-a" },
19
+ ];
20
+ const result = updatePackagesArray(currentPackages, dependencies, "install");
21
+ expect(result).toEqual([
22
+ { packageName: "package-a", version: undefined, provider: "npm" },
23
+ ]);
24
+ });
25
+ it("should remove packages when uninstalling", () => {
26
+ const currentPackages = [
27
+ { packageName: "package-a", version: undefined, provider: "npm" },
28
+ { packageName: "package-b", version: undefined, provider: "npm" },
29
+ ];
30
+ const dependencies = [
31
+ { name: "package-a", version: undefined, full: "package-a" },
32
+ ];
33
+ const result = updatePackagesArray(currentPackages, dependencies, "uninstall");
34
+ expect(result).toEqual([
35
+ { packageName: "package-b", version: undefined, provider: "npm" },
36
+ ]);
37
+ });
38
+ it("should handle empty current packages array", () => {
39
+ const dependencies = [
40
+ { name: "new-package", version: undefined, full: "new-package" },
41
+ ];
42
+ const result = updatePackagesArray(undefined, dependencies, "install");
43
+ expect(result).toEqual([
44
+ { packageName: "new-package", version: undefined, provider: "npm" },
45
+ ]);
46
+ });
47
+ it("should handle empty dependencies array", () => {
48
+ const currentPackages = [{ packageName: "existing-package" }];
49
+ const result = updatePackagesArray(currentPackages, [], "install");
50
+ expect(result).toEqual(currentPackages);
51
+ });
52
+ it("should add new packages with version and provider when installing", () => {
53
+ const currentPackages = [
54
+ { packageName: "existing-package" },
55
+ ];
56
+ const dependencies = [
57
+ { name: "new-package", version: "1.2.3", full: "new-package@1.2.3" },
58
+ ];
59
+ const result = updatePackagesArray(currentPackages, dependencies, "install");
60
+ expect(result).toEqual([
61
+ { packageName: "existing-package" },
62
+ { packageName: "new-package", version: "1.2.3", provider: "npm" },
63
+ ]);
64
+ });
65
+ it("should not duplicate packages when installing package that is already installed with version", () => {
66
+ const currentPackages = [
67
+ { packageName: "package-a", version: "1.0.0", provider: "npm" },
68
+ ];
69
+ const dependencies = [
70
+ { name: "package-a", version: "1.0.0", full: "package-a@1.0.0" },
71
+ ];
72
+ const result = updatePackagesArray(currentPackages, dependencies, "install");
73
+ expect(result).toEqual([
74
+ { packageName: "package-a", version: "1.0.0", provider: "npm" },
75
+ ]);
76
+ });
77
+ it("should overwrite existing package if version is different", () => {
78
+ const currentPackages = [
79
+ { packageName: "package-a", version: "1.0.0", provider: "npm" },
80
+ ];
81
+ const dependencies = [
82
+ { name: "package-a", version: "2.0.0", full: "package-a@2.0.0" },
83
+ ];
84
+ const result = updatePackagesArray(currentPackages, dependencies, "install");
85
+ expect(result).toEqual([
86
+ { packageName: "package-a", version: "2.0.0", provider: "npm" },
87
+ ]);
88
+ });
89
+ it("should overwrite existing package if version is lower", () => {
90
+ const currentPackages = [
91
+ { packageName: "package-a", version: "1.0.0", provider: "npm" },
92
+ ];
93
+ const dependencies = [
94
+ { name: "package-a", version: "0.5.0", full: "package-a@0.5.0" },
95
+ ];
96
+ const result = updatePackagesArray(currentPackages, dependencies, "install");
97
+ expect(result).toEqual([
98
+ { packageName: "package-a", version: "0.5.0", provider: "npm" },
99
+ ]);
100
+ });
101
+ });
102
+ describe("buildInstallCommand", () => {
103
+ it("should return the correct install command", () => {
104
+ const packageManager = "npm";
105
+ const dependencies = ["test-package@1.2.3"];
106
+ const workspace = false;
107
+ const result = buildInstallCommand(packageManager, dependencies, workspace);
108
+ expect(result).toBe("npm install test-package@1.2.3");
109
+ });
110
+ it("should return the correct install command with workspace", () => {
111
+ const packageManager = "yarn";
112
+ const dependencies = ["test-package@1.2.3"];
113
+ const workspace = true;
114
+ const result = buildInstallCommand(packageManager, dependencies, workspace);
115
+ expect(result).toBe("yarn add test-package@1.2.3 -W");
116
+ });
117
+ it("should return the correct install command when no version is specified", () => {
118
+ const packageManager = "npm";
119
+ const dependencies = ["test-package"];
120
+ const workspace = false;
121
+ const result = buildInstallCommand(packageManager, dependencies, workspace);
122
+ expect(result).toBe("npm install test-package");
123
+ });
124
+ it("should return the correct install command when package name includes @ character", () => {
125
+ const packageManager = "yarn";
126
+ const dependencies = ["@sky-ph/atlas@1.2.3"];
127
+ const workspace = true;
128
+ const result = buildInstallCommand(packageManager, dependencies, workspace);
129
+ expect(result).toBe("yarn add @sky-ph/atlas@1.2.3 -W");
130
+ });
131
+ });
132
+ //# sourceMappingURL=utils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../test/utils.test.ts"],"names":[],"mappings":"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"}