ph-cmd 6.0.0-dev.6 → 6.0.0-dev.8

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 (139) hide show
  1. package/build/cli.js +1495 -0
  2. package/package.json +8 -8
  3. package/dist/scripts/generate-commands-md.d.ts +0 -2
  4. package/dist/scripts/generate-commands-md.d.ts.map +0 -1
  5. package/dist/scripts/generate-commands-md.js +0 -72
  6. package/dist/scripts/generate-commands-md.js.map +0 -1
  7. package/dist/scripts/generate-version.d.ts +0 -2
  8. package/dist/scripts/generate-version.d.ts.map +0 -1
  9. package/dist/scripts/generate-version.js +0 -13
  10. package/dist/scripts/generate-version.js.map +0 -1
  11. package/dist/src/cli.d.ts +0 -3
  12. package/dist/src/cli.d.ts.map +0 -1
  13. package/dist/src/cli.js +0 -120
  14. package/dist/src/cli.js.map +0 -1
  15. package/dist/src/commands/__tests__/update.test.d.ts +0 -2
  16. package/dist/src/commands/__tests__/update.test.d.ts.map +0 -1
  17. package/dist/src/commands/__tests__/update.test.js +0 -157
  18. package/dist/src/commands/__tests__/update.test.js.map +0 -1
  19. package/dist/src/commands/__tests__/use.test.d.ts +0 -2
  20. package/dist/src/commands/__tests__/use.test.d.ts.map +0 -1
  21. package/dist/src/commands/__tests__/use.test.js +0 -496
  22. package/dist/src/commands/__tests__/use.test.js.map +0 -1
  23. package/dist/src/commands/checkout.d.ts +0 -9
  24. package/dist/src/commands/checkout.d.ts.map +0 -1
  25. package/dist/src/commands/checkout.js +0 -37
  26. package/dist/src/commands/checkout.js.map +0 -1
  27. package/dist/src/commands/forward.d.ts +0 -7
  28. package/dist/src/commands/forward.d.ts.map +0 -1
  29. package/dist/src/commands/forward.js +0 -45
  30. package/dist/src/commands/forward.js.map +0 -1
  31. package/dist/src/commands/help.d.ts +0 -7
  32. package/dist/src/commands/help.d.ts.map +0 -1
  33. package/dist/src/commands/help.js +0 -14
  34. package/dist/src/commands/help.js.map +0 -1
  35. package/dist/src/commands/index.d.ts +0 -9
  36. package/dist/src/commands/index.d.ts.map +0 -1
  37. package/dist/src/commands/index.js +0 -15
  38. package/dist/src/commands/index.js.map +0 -1
  39. package/dist/src/commands/init.d.ts +0 -2
  40. package/dist/src/commands/init.d.ts.map +0 -1
  41. package/dist/src/commands/init.js +0 -165
  42. package/dist/src/commands/init.js.map +0 -1
  43. package/dist/src/commands/setup-globals.d.ts +0 -20
  44. package/dist/src/commands/setup-globals.d.ts.map +0 -1
  45. package/dist/src/commands/setup-globals.js +0 -24
  46. package/dist/src/commands/setup-globals.js.map +0 -1
  47. package/dist/src/commands/update.d.ts +0 -2
  48. package/dist/src/commands/update.d.ts.map +0 -1
  49. package/dist/src/commands/update.js +0 -95
  50. package/dist/src/commands/update.js.map +0 -1
  51. package/dist/src/commands/update.old.d.ts +0 -13
  52. package/dist/src/commands/update.old.d.ts.map +0 -1
  53. package/dist/src/commands/update.old.js +0 -105
  54. package/dist/src/commands/update.old.js.map +0 -1
  55. package/dist/src/commands/use-local.d.ts +0 -2
  56. package/dist/src/commands/use-local.d.ts.map +0 -1
  57. package/dist/src/commands/use-local.js +0 -115
  58. package/dist/src/commands/use-local.js.map +0 -1
  59. package/dist/src/commands/use.d.ts +0 -2
  60. package/dist/src/commands/use.d.ts.map +0 -1
  61. package/dist/src/commands/use.js +0 -117
  62. package/dist/src/commands/use.js.map +0 -1
  63. package/dist/src/commands/use.old.d.ts +0 -55
  64. package/dist/src/commands/use.old.d.ts.map +0 -1
  65. package/dist/src/commands/use.old.js +0 -219
  66. package/dist/src/commands/use.old.js.map +0 -1
  67. package/dist/src/commands/version.d.ts +0 -5
  68. package/dist/src/commands/version.d.ts.map +0 -1
  69. package/dist/src/commands/version.js +0 -42
  70. package/dist/src/commands/version.js.map +0 -1
  71. package/dist/src/help.d.ts +0 -25
  72. package/dist/src/help.d.ts.map +0 -1
  73. package/dist/src/help.js +0 -230
  74. package/dist/src/help.js.map +0 -1
  75. package/dist/src/index.d.ts +0 -3
  76. package/dist/src/index.d.ts.map +0 -1
  77. package/dist/src/index.js +0 -3
  78. package/dist/src/index.js.map +0 -1
  79. package/dist/src/types.d.ts +0 -2
  80. package/dist/src/types.d.ts.map +0 -1
  81. package/dist/src/types.js +0 -2
  82. package/dist/src/types.js.map +0 -1
  83. package/dist/src/utils/constants.d.ts +0 -59
  84. package/dist/src/utils/constants.d.ts.map +0 -1
  85. package/dist/src/utils/constants.js +0 -102
  86. package/dist/src/utils/constants.js.map +0 -1
  87. package/dist/src/utils/dependencies.d.ts +0 -4
  88. package/dist/src/utils/dependencies.d.ts.map +0 -1
  89. package/dist/src/utils/dependencies.js +0 -61
  90. package/dist/src/utils/dependencies.js.map +0 -1
  91. package/dist/src/utils/file-system.d.ts +0 -2
  92. package/dist/src/utils/file-system.d.ts.map +0 -1
  93. package/dist/src/utils/file-system.js +0 -12
  94. package/dist/src/utils/file-system.js.map +0 -1
  95. package/dist/src/utils/help-formatting.d.ts +0 -35
  96. package/dist/src/utils/help-formatting.d.ts.map +0 -1
  97. package/dist/src/utils/help-formatting.js +0 -188
  98. package/dist/src/utils/help-formatting.js.map +0 -1
  99. package/dist/src/utils/help.d.ts +0 -31
  100. package/dist/src/utils/help.d.ts.map +0 -1
  101. package/dist/src/utils/help.js +0 -72
  102. package/dist/src/utils/help.js.map +0 -1
  103. package/dist/src/utils/index.d.ts +0 -8
  104. package/dist/src/utils/index.d.ts.map +0 -1
  105. package/dist/src/utils/index.js +0 -7
  106. package/dist/src/utils/index.js.map +0 -1
  107. package/dist/src/utils/package-manager.d.ts +0 -27
  108. package/dist/src/utils/package-manager.d.ts.map +0 -1
  109. package/dist/src/utils/package-manager.js +0 -177
  110. package/dist/src/utils/package-manager.js.map +0 -1
  111. package/dist/src/utils/parsing.d.ts +0 -20
  112. package/dist/src/utils/parsing.d.ts.map +0 -1
  113. package/dist/src/utils/parsing.js +0 -52
  114. package/dist/src/utils/parsing.js.map +0 -1
  115. package/dist/src/utils/run-cmd.d.ts +0 -2
  116. package/dist/src/utils/run-cmd.d.ts.map +0 -1
  117. package/dist/src/utils/run-cmd.js +0 -11
  118. package/dist/src/utils/run-cmd.js.map +0 -1
  119. package/dist/src/utils/types.d.ts +0 -21
  120. package/dist/src/utils/types.d.ts.map +0 -1
  121. package/dist/src/utils/types.js +0 -2
  122. package/dist/src/utils/types.js.map +0 -1
  123. package/dist/src/utils/validate-remote-drive-checkout.d.ts +0 -7
  124. package/dist/src/utils/validate-remote-drive-checkout.d.ts.map +0 -1
  125. package/dist/src/utils/validate-remote-drive-checkout.js +0 -45
  126. package/dist/src/utils/validate-remote-drive-checkout.js.map +0 -1
  127. package/dist/src/utils/validate-remote-drive.d.ts +0 -7
  128. package/dist/src/utils/validate-remote-drive.d.ts.map +0 -1
  129. package/dist/src/utils/validate-remote-drive.js +0 -51
  130. package/dist/src/utils/validate-remote-drive.js.map +0 -1
  131. package/dist/src/version.d.ts +0 -2
  132. package/dist/src/version.d.ts.map +0 -1
  133. package/dist/src/version.js +0 -3
  134. package/dist/src/version.js.map +0 -1
  135. package/dist/tsconfig.tsbuildinfo +0 -1
  136. package/dist/vitest.config.d.ts +0 -3
  137. package/dist/vitest.config.d.ts.map +0 -1
  138. package/dist/vitest.config.js +0 -7
  139. package/dist/vitest.config.js.map +0 -1
@@ -1,496 +0,0 @@
1
- import path from "node:path";
2
- import { beforeEach, describe, expect, it, vi } from "vitest";
3
- vi.mock("node:fs", async () => {
4
- // eslint-disable-next-line @typescript-eslint/consistent-type-imports
5
- const actual = await vi.importActual("node:fs");
6
- return {
7
- ...actual,
8
- existsSync: vi.fn(),
9
- readFileSync: vi.fn(),
10
- readdirSync: vi.fn(),
11
- };
12
- });
13
- vi.mock("../../utils/package-manager.js", async () => {
14
- // eslint-disable-next-line @typescript-eslint/consistent-type-imports
15
- const actual = await vi.importActual("../../utils/package-manager.js");
16
- return {
17
- ...actual,
18
- packageManagers: {
19
- pnpm: {
20
- buildAffected: "pnpm run build:affected",
21
- updateCommand: "pnpm update {{dependency}}",
22
- installCommand: "pnpm install {{dependency}}",
23
- workspaceOption: "--workspace-root",
24
- lockfile: "pnpm-lock.yaml",
25
- },
26
- },
27
- getPackageManagerFromLockfile: vi.fn(),
28
- getProjectInfo: vi.fn(),
29
- };
30
- });
31
- vi.mock("../../utils/dependencies.js", async () => {
32
- // eslint-disable-next-line @typescript-eslint/consistent-type-imports
33
- const actual = await vi.importActual("../../utils/dependencies.js");
34
- return {
35
- ...actual,
36
- installDependency: vi.fn(),
37
- updateDependencyVersionString: vi.fn(),
38
- };
39
- });
40
- vi.mock("../use.js", async () => {
41
- // eslint-disable-next-line @typescript-eslint/consistent-type-imports
42
- const actual = await vi.importActual("../use.js");
43
- return {
44
- ...actual,
45
- useCommand: vi.fn(actual.useCommand),
46
- };
47
- });
48
- import { Command } from "commander";
49
- import * as fs from "node:fs";
50
- import { installDependency, updateDependencyVersionString, } from "../../utils/dependencies.js";
51
- import { getPackageManagerFromLockfile, getProjectInfo, } from "../../utils/package-manager.js";
52
- import { useCommand } from "../use.old.js";
53
- describe("useCommand", () => {
54
- let program;
55
- beforeEach(() => {
56
- vi.clearAllMocks();
57
- program = new Command();
58
- useCommand(program);
59
- const mpkg = vi.mocked(getPackageManagerFromLockfile);
60
- const mproj = vi.mocked(getProjectInfo);
61
- const mexists = vi.mocked(fs.existsSync);
62
- const mread = vi.mocked(fs.readFileSync);
63
- const minstall = vi.mocked(installDependency);
64
- mpkg.mockReturnValue("pnpm");
65
- mproj.mockResolvedValue({ path: "/test/project" });
66
- mexists.mockImplementation((p) => {
67
- const pathStr = p;
68
- const validPaths = [
69
- "/test/project",
70
- "/test/project/package.json",
71
- path.join("/test/project", "package.json"),
72
- path.join("/test/project", "pnpm-lock.yaml"),
73
- ];
74
- const isPackagePath = pathStr.includes("/path/to/local/packages/");
75
- const isAppPath = pathStr.includes("/path/to/local/apps/");
76
- const isCliPath = pathStr.includes("/path/to/local/clis/");
77
- return (validPaths.includes(pathStr) || isPackagePath || isAppPath || isCliPath);
78
- });
79
- mread.mockImplementation((p) => {
80
- if (p === path.join("/test/project", "package.json")) {
81
- return JSON.stringify({
82
- dependencies: {
83
- "@powerhousedao/common": "1.0.0",
84
- "@powerhousedao/design-system": "1.0.0",
85
- "@powerhousedao/reactor-browser": "1.0.0",
86
- "document-model": "1.0.0",
87
- "document-drive": "1.0.0",
88
- "some-other-package": "1.0.0",
89
- },
90
- devDependencies: {
91
- "@powerhousedao/builder-tools": "1.0.0",
92
- "@powerhousedao/codegen": "1.0.0",
93
- },
94
- });
95
- }
96
- return "";
97
- });
98
- minstall.mockImplementation(() => { });
99
- });
100
- it("should register the use command with correct options", () => {
101
- const cmd = program.commands.find((c) => c.name() === "use");
102
- expect(cmd).toBeDefined();
103
- expect(cmd?.description()).toContain("change your environment");
104
- const options = cmd?.options.map((opt) => opt.attributeName());
105
- expect(options).toContain("packageManager");
106
- expect(options).toContain("debug");
107
- });
108
- it("should execute use command with dev environment", async () => {
109
- const cmd = program.commands.find((c) => c.name() === "use");
110
- await cmd?.parseAsync(["node", "test", "dev"]);
111
- expect(updateDependencyVersionString).toHaveBeenCalledWith("pnpm", expect.arrayContaining([
112
- "@powerhousedao/common@dev",
113
- "@powerhousedao/design-system@dev",
114
- "@powerhousedao/reactor-browser@dev",
115
- "@powerhousedao/builder-tools@dev",
116
- "@powerhousedao/codegen@dev",
117
- "document-model@dev",
118
- "document-drive@dev",
119
- ]), "/test/project");
120
- });
121
- it("should execute use command with prod environment", async () => {
122
- const cmd = program.commands.find((c) => c.name() === "use");
123
- await cmd?.parseAsync(["node", "test", "prod"]);
124
- expect(updateDependencyVersionString).toHaveBeenCalledWith("pnpm", expect.arrayContaining([
125
- "@powerhousedao/common@latest",
126
- "@powerhousedao/design-system@latest",
127
- "@powerhousedao/reactor-browser@latest",
128
- "@powerhousedao/builder-tools@latest",
129
- "@powerhousedao/codegen@latest",
130
- "document-model@latest",
131
- "document-drive@latest",
132
- ]), "/test/project");
133
- });
134
- it("should execute use command with local environment", async () => {
135
- const cmd = program.commands.find((c) => c.name() === "use");
136
- await cmd?.parseAsync(["node", "test", "local", "/path/to/local"]);
137
- expect(installDependency).toHaveBeenCalledWith("pnpm", expect.arrayContaining([
138
- "/path/to/local/packages/common",
139
- "/path/to/local/packages/design-system",
140
- "/path/to/local/packages/reactor-browser",
141
- "/path/to/local/packages/builder-tools",
142
- "/path/to/local/packages/codegen",
143
- "/path/to/local/packages/document-model",
144
- "/path/to/local/packages/document-drive",
145
- ]), "/test/project");
146
- });
147
- it("should handle debug flag", async () => {
148
- const consoleSpy = vi.spyOn(console, "log");
149
- const cmd = program.commands.find((c) => c.name() === "use");
150
- await cmd?.parseAsync(["node", "test", "dev", "--debug"]);
151
- expect(consoleSpy).toHaveBeenCalledWith(">>> options", expect.any(Object));
152
- expect(consoleSpy).toHaveBeenCalledWith(">>> projectInfo", expect.any(Object));
153
- expect(consoleSpy).toHaveBeenCalledWith(">>> pkgManager", "pnpm");
154
- expect(consoleSpy).toHaveBeenCalledWith(">>> dependencies to update", expect.any(Array));
155
- });
156
- it("should throw error when no environment is specified", async () => {
157
- const cmd = program.commands.find((c) => c.name() === "use");
158
- const exitSpy = vi.spyOn(process, "exit").mockImplementation((code) => {
159
- throw new Error(`process.exit called with ${code}`);
160
- });
161
- await expect(cmd?.parseAsync(["node", "test"])).rejects.toThrow("process.exit called with 1");
162
- expect(exitSpy).toHaveBeenCalledWith(1);
163
- });
164
- it("should use specified package manager", async () => {
165
- const cmd = program.commands.find((c) => c.name() === "use");
166
- await cmd?.parseAsync(["node", "test", "dev", "--package-manager", "npm"]);
167
- expect(updateDependencyVersionString).toHaveBeenCalledWith("npm", expect.any(Array), "/test/project");
168
- });
169
- it("should not update dependencies that are not installed", async () => {
170
- const cmd = program.commands.find((c) => c.name() === "use");
171
- await cmd?.parseAsync(["node", "test", "dev"]);
172
- // Verify that only installed dependencies are updated
173
- const call = vi.mocked(updateDependencyVersionString).mock.calls[0];
174
- const updatedDependencies = call[1];
175
- expect(updatedDependencies).not.toContain("@powerhousedao/reactor-api@dev");
176
- expect(updatedDependencies).not.toContain("@powerhousedao/reactor-local@dev");
177
- expect(updatedDependencies).not.toContain("@powerhousedao/scalars@dev");
178
- expect(updatedDependencies).not.toContain("@powerhousedao/ph-cli@dev");
179
- });
180
- it("should show message when no Powerhouse dependencies are found", async () => {
181
- // Mock package.json with no Powerhouse dependencies
182
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
183
- if (p === path.join("/test/project", "package.json")) {
184
- return JSON.stringify({
185
- dependencies: {
186
- "some-other-package": "1.0.0",
187
- },
188
- });
189
- }
190
- return "";
191
- });
192
- const consoleSpy = vi.spyOn(console, "log");
193
- const cmd = program.commands.find((c) => c.name() === "use");
194
- await cmd?.parseAsync(["node", "test", "dev"]);
195
- expect(consoleSpy).toHaveBeenCalledWith("ℹ️ No Powerhouse dependencies found to update");
196
- expect(installDependency).not.toHaveBeenCalled();
197
- });
198
- it("should handle special packages without @powerhousedao prefix", async () => {
199
- // Mock package.json with only special packages
200
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
201
- if (p === path.join("/test/project", "package.json")) {
202
- return JSON.stringify({
203
- dependencies: {
204
- "document-model": "1.0.0",
205
- "document-drive": "1.0.0",
206
- },
207
- });
208
- }
209
- return "";
210
- });
211
- const cmd = program.commands.find((c) => c.name() === "use");
212
- await cmd?.parseAsync(["node", "test", "dev"]);
213
- expect(updateDependencyVersionString).toHaveBeenCalledWith("pnpm", ["document-model@dev", "document-drive@dev"], "/test/project");
214
- });
215
- it("should update only existing @powerhousedao dependencies", async () => {
216
- // Mock package.json with only common and design-system
217
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
218
- if (p === path.join("/test/project", "package.json")) {
219
- return JSON.stringify({
220
- dependencies: {
221
- "@powerhousedao/common": "1.0.0",
222
- "@powerhousedao/design-system": "1.0.0",
223
- },
224
- });
225
- }
226
- return "";
227
- });
228
- const cmd = program.commands.find((c) => c.name() === "use");
229
- await cmd?.parseAsync(["node", "test", "dev"]);
230
- expect(updateDependencyVersionString).toHaveBeenCalledWith("pnpm", ["@powerhousedao/common@dev", "@powerhousedao/design-system@dev"], "/test/project");
231
- });
232
- it("should update only existing document-model and document-drive without adding @powerhousedao prefix", async () => {
233
- // Mock package.json with only document-model and document-drive
234
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
235
- if (p === path.join("/test/project", "package.json")) {
236
- return JSON.stringify({
237
- dependencies: {
238
- "document-model": "1.0.0",
239
- "document-drive": "1.0.0",
240
- },
241
- });
242
- }
243
- return "";
244
- });
245
- const cmd = program.commands.find((c) => c.name() === "use");
246
- await cmd?.parseAsync(["node", "test", "dev"]);
247
- const updatedDependencies = vi.mocked(updateDependencyVersionString).mock
248
- .calls[0][1];
249
- expect(updatedDependencies).toEqual([
250
- "document-model@dev",
251
- "document-drive@dev",
252
- ]);
253
- expect(updatedDependencies).not.toContain("@powerhousedao/document-model@dev");
254
- expect(updatedDependencies).not.toContain("@powerhousedao/document-drive@dev");
255
- });
256
- // New dynamic detection tests
257
- it("should dynamically detect all @powerhousedao packages except excluded external dependencies", async () => {
258
- // Mock package.json with various @powerhousedao packages including excluded ones
259
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
260
- if (p === path.join("/test/project", "package.json")) {
261
- return JSON.stringify({
262
- dependencies: {
263
- "@powerhousedao/common": "1.0.0",
264
- "@powerhousedao/design-system": "1.0.0",
265
- "@powerhousedao/document-engineering": "1.27.0", // Should be excluded
266
- "@powerhousedao/diff-analyzer": "^0.0.0-dev.10", // Should be excluded
267
- "@powerhousedao/analytics-engine-core": "^0.5.0", // Should be excluded
268
- "@powerhousedao/new-package": "1.0.0", // Should be included
269
- "document-model": "1.0.0",
270
- "some-other-package": "1.0.0", // Should be ignored
271
- },
272
- });
273
- }
274
- return "";
275
- });
276
- const cmd = program.commands.find((c) => c.name() === "use");
277
- await cmd?.parseAsync(["node", "test", "dev"]);
278
- const updatedDependencies = vi.mocked(updateDependencyVersionString).mock
279
- .calls[0][1];
280
- // Should include detected @powerhousedao packages except excluded ones
281
- expect(updatedDependencies).toContain("@powerhousedao/common@dev");
282
- expect(updatedDependencies).toContain("@powerhousedao/design-system@dev");
283
- expect(updatedDependencies).toContain("@powerhousedao/new-package@dev");
284
- expect(updatedDependencies).toContain("document-model@dev");
285
- // Should exclude external dependencies and non-powerhouse packages
286
- expect(updatedDependencies).not.toContain("@powerhousedao/document-engineering@dev");
287
- expect(updatedDependencies).not.toContain("@powerhousedao/diff-analyzer@dev");
288
- expect(updatedDependencies).not.toContain("@powerhousedao/analytics-engine-core@dev");
289
- expect(updatedDependencies).not.toContain("some-other-package@dev");
290
- });
291
- it("should correctly map packages to monorepo directories for local environment", async () => {
292
- // Mock fs.existsSync to simulate directory structure
293
- vi.spyOn(fs, "existsSync").mockImplementation((p) => {
294
- const pathStr = p;
295
- // Simulate directory structure
296
- if (pathStr === "/path/to/local/packages")
297
- return true;
298
- if (pathStr === "/path/to/local/apps")
299
- return true;
300
- if (pathStr === "/path/to/local/clis")
301
- return true;
302
- // Simulate package.json files
303
- if (pathStr === "/path/to/local/packages/common/package.json")
304
- return true;
305
- if (pathStr === "/path/to/local/apps/connect/package.json")
306
- return true;
307
- if (pathStr === "/path/to/local/clis/ph-cli/package.json")
308
- return true;
309
- if (pathStr === "/path/to/local/packages/document-model/package.json")
310
- return true;
311
- // Default paths
312
- const validPaths = [
313
- "/test/project",
314
- "/test/project/package.json",
315
- path.join("/test/project", "package.json"),
316
- ];
317
- return validPaths.includes(pathStr);
318
- });
319
- // Mock fs.readdirSync to simulate directory contents
320
- const mockReaddirSync = vi.spyOn(fs, "readdirSync");
321
- // @ts-expect-error - Mock implementation for testing purposes
322
- mockReaddirSync.mockImplementation((p) => {
323
- const pathStr = p;
324
- if (pathStr === "/path/to/local/packages") {
325
- return [
326
- { name: "common", isDirectory: () => true },
327
- { name: "document-model", isDirectory: () => true },
328
- ];
329
- }
330
- if (pathStr === "/path/to/local/apps") {
331
- return [{ name: "connect", isDirectory: () => true }];
332
- }
333
- if (pathStr === "/path/to/local/clis") {
334
- return [{ name: "ph-cli", isDirectory: () => true }];
335
- }
336
- return [];
337
- });
338
- // Mock package.json with packages from different locations
339
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
340
- const pathStr = p;
341
- if (pathStr === path.join("/test/project", "package.json")) {
342
- return JSON.stringify({
343
- dependencies: {
344
- "@powerhousedao/common": "1.0.0", // packages/
345
- "@powerhousedao/connect": "1.0.0", // apps/
346
- "@powerhousedao/ph-cli": "1.0.0", // clis/
347
- "document-model": "1.0.0", // packages/
348
- },
349
- });
350
- }
351
- if (pathStr === "/path/to/local/packages/common/package.json") {
352
- return JSON.stringify({ name: "@powerhousedao/common" });
353
- }
354
- if (pathStr === "/path/to/local/apps/connect/package.json") {
355
- return JSON.stringify({ name: "@powerhousedao/connect" });
356
- }
357
- if (pathStr === "/path/to/local/clis/ph-cli/package.json") {
358
- return JSON.stringify({ name: "@powerhousedao/ph-cli" });
359
- }
360
- if (pathStr === "/path/to/local/packages/document-model/package.json") {
361
- return JSON.stringify({ name: "document-model" });
362
- }
363
- return "";
364
- });
365
- const cmd = program.commands.find((c) => c.name() === "use");
366
- await cmd?.parseAsync(["node", "test", "local", "/path/to/local"]);
367
- const installedPaths = vi.mocked(installDependency).mock.calls[0][1];
368
- expect(installedPaths).toContain("/path/to/local/packages/common");
369
- expect(installedPaths).toContain("/path/to/local/apps/connect");
370
- expect(installedPaths).toContain("/path/to/local/clis/ph-cli");
371
- expect(installedPaths).toContain("/path/to/local/packages/document-model");
372
- });
373
- it("should handle new @powerhousedao packages not in previous hardcoded list", async () => {
374
- // Mock package.json with a new fictional @powerhousedao package
375
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
376
- if (p === path.join("/test/project", "package.json")) {
377
- return JSON.stringify({
378
- dependencies: {
379
- "@powerhousedao/future-package": "1.0.0",
380
- "@powerhousedao/another-new-one": "2.0.0",
381
- },
382
- });
383
- }
384
- return "";
385
- });
386
- const cmd = program.commands.find((c) => c.name() === "use");
387
- await cmd?.parseAsync(["node", "test", "dev"]);
388
- const updatedDependencies = vi.mocked(updateDependencyVersionString).mock
389
- .calls[0][1];
390
- expect(updatedDependencies).toContain("@powerhousedao/future-package@dev");
391
- expect(updatedDependencies).toContain("@powerhousedao/another-new-one@dev");
392
- });
393
- it("should handle mixed @powerhousedao and other organization packages", async () => {
394
- // Mock package.json with packages from different organizations
395
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
396
- if (p === path.join("/test/project", "package.json")) {
397
- return JSON.stringify({
398
- dependencies: {
399
- "@powerhousedao/common": "1.0.0", // Should be included
400
- "@other-org/some-package": "1.0.0", // Should be ignored
401
- "@microsoft/typescript": "1.0.0", // Should be ignored
402
- "document-model": "1.0.0", // Should be included (special package)
403
- react: "18.0.0", // Should be ignored
404
- },
405
- });
406
- }
407
- return "";
408
- });
409
- const cmd = program.commands.find((c) => c.name() === "use");
410
- await cmd?.parseAsync(["node", "test", "dev"]);
411
- const updatedDependencies = vi.mocked(updateDependencyVersionString).mock
412
- .calls[0][1];
413
- expect(updatedDependencies).toContain("@powerhousedao/common@dev");
414
- expect(updatedDependencies).toContain("document-model@dev");
415
- expect(updatedDependencies).not.toContain("@other-org/some-package@dev");
416
- expect(updatedDependencies).not.toContain("@microsoft/typescript@dev");
417
- expect(updatedDependencies).not.toContain("react@dev");
418
- });
419
- it("should handle empty dependencies gracefully", async () => {
420
- // Mock package.json with no dependencies
421
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
422
- if (p === path.join("/test/project", "package.json")) {
423
- return JSON.stringify({});
424
- }
425
- return "";
426
- });
427
- const consoleSpy = vi.spyOn(console, "log");
428
- const cmd = program.commands.find((c) => c.name() === "use");
429
- await cmd?.parseAsync(["node", "test", "dev"]);
430
- expect(consoleSpy).toHaveBeenCalledWith("ℹ️ No Powerhouse dependencies found to update");
431
- expect(updateDependencyVersionString).not.toHaveBeenCalled();
432
- });
433
- it("should correctly resolve package names that don't match directory names", async () => {
434
- // Mock fs.readdirSync for directory scanning
435
- const mockReaddirSync = vi.spyOn(fs, "readdirSync");
436
- // @ts-expect-error - Mock implementation for testing purposes
437
- mockReaddirSync.mockImplementation((dirPath) => {
438
- const pathStr = dirPath;
439
- if (pathStr.endsWith("/path/to/local/packages")) {
440
- return [
441
- { name: "common", isDirectory: () => true },
442
- { name: "renown", isDirectory: () => true }, // Directory name is "renown"
443
- ];
444
- }
445
- return [];
446
- });
447
- // Mock fs.existsSync for package.json files
448
- vi.spyOn(fs, "existsSync").mockImplementation((p) => {
449
- const pathStr = p;
450
- // Mock directory existence
451
- if (pathStr === "/test/project")
452
- return true;
453
- if (pathStr === "/test/project/package.json")
454
- return true;
455
- if (pathStr === "/path/to/local/packages")
456
- return true;
457
- if (pathStr === "/path/to/local/apps")
458
- return false;
459
- if (pathStr === "/path/to/local/clis")
460
- return false;
461
- // Mock package.json files
462
- if (pathStr === "/path/to/local/packages/common/package.json")
463
- return true;
464
- if (pathStr === "/path/to/local/packages/renown/package.json")
465
- return true;
466
- return false;
467
- });
468
- // Mock fs.readFileSync for package.json content
469
- vi.spyOn(fs, "readFileSync").mockImplementation((p) => {
470
- const pathStr = p;
471
- if (pathStr === path.join("/test/project", "package.json")) {
472
- return JSON.stringify({
473
- dependencies: {
474
- "@powerhousedao/common": "1.0.0",
475
- "@renown/sdk": "1.0.0", // Package name is @renown/sdk
476
- },
477
- });
478
- }
479
- if (pathStr === "/path/to/local/packages/common/package.json") {
480
- return JSON.stringify({ name: "@powerhousedao/common" });
481
- }
482
- if (pathStr === "/path/to/local/packages/renown/package.json") {
483
- return JSON.stringify({ name: "@renown/sdk" }); // Package name differs from directory
484
- }
485
- return "";
486
- });
487
- const cmd = program.commands.find((c) => c.name() === "use");
488
- await cmd?.parseAsync(["node", "test", "local", "/path/to/local"]);
489
- const installedPaths = vi.mocked(installDependency).mock.calls[0][1];
490
- // Should find @powerhousedao/common in packages/common/
491
- expect(installedPaths).toContain("/path/to/local/packages/common");
492
- // Should find @renown/sdk in packages/renown/ (not packages/sdk/)
493
- expect(installedPaths).toContain("/path/to/local/packages/renown");
494
- });
495
- });
496
- //# sourceMappingURL=use.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use.test.js","sourceRoot":"","sources":["../../../../src/commands/__tests__/use.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { Command } from "commander";
2
- import type { CommandActionType } from "../types.js";
3
- export type CheckoutOptions = {
4
- remoteDrive: string;
5
- packageManager?: string;
6
- };
7
- export declare const checkout: CommandActionType<[CheckoutOptions]>;
8
- export declare function checkoutCommand(program: Command): Command;
9
- //# sourceMappingURL=checkout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../../src/commands/checkout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAgCzD,CAAC;AAEF,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAWzD"}
@@ -1,37 +0,0 @@
1
- import { cloneRepository, installDependencies } from "@powerhousedao/codegen";
2
- import { checkoutHelp } from "../help.js";
3
- import { withCustomHelp } from "../utils/index.js";
4
- import { getPackageManagerFromLockfile } from "../utils/package-manager.js";
5
- import { getPackageDocument } from "../utils/validate-remote-drive-checkout.js";
6
- export const checkout = async (options) => {
7
- console.log("Checking out project from remote drive...");
8
- try {
9
- // Validate remote drive and get GitHub URL
10
- const packageDocument = await getPackageDocument(options.remoteDrive);
11
- if (!packageDocument.isValid) {
12
- console.error(packageDocument.error);
13
- process.exit(1);
14
- }
15
- // Clone repository
16
- const projectPath = cloneRepository(packageDocument.githubUrl);
17
- // Detect package manager from lock files or use user-provided one
18
- const detectedPackageManager = getPackageManagerFromLockfile(projectPath);
19
- const packageManager = options.packageManager ?? detectedPackageManager;
20
- // Install dependencies
21
- installDependencies(projectPath, packageManager);
22
- console.log("\x1b[32m", "Checkout completed successfully!", "\x1b[0m");
23
- }
24
- catch (error) {
25
- console.error("Failed to checkout the project", error instanceof Error ? error.message : String(error));
26
- process.exit(1);
27
- }
28
- };
29
- export function checkoutCommand(program) {
30
- const checkoutCmd = program
31
- .command("checkout")
32
- .description("Checkout an existing project from a remote drive")
33
- .requiredOption("-r, --remote-drive <remoteDrive>", "Remote drive identifier")
34
- .option("--package-manager <packageManager>", "Package manager to use");
35
- return withCustomHelp(checkoutCmd, checkout, checkoutHelp);
36
- }
37
- //# sourceMappingURL=checkout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../../src/commands/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAOhF,MAAM,CAAC,MAAM,QAAQ,GAAyC,KAAK,EACjE,OAAO,EACP,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEtE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,MAAM,WAAW,GAAG,eAAe,CAAC,eAAe,CAAC,SAAU,CAAC,CAAC;QAEhE,kEAAkE;QAClE,MAAM,sBAAsB,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,sBAAsB,CAAC;QAExE,uBAAuB;QACvB,mBAAmB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEjD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,kCAAkC,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,gCAAgC,EAChC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,MAAM,WAAW,GAAG,OAAO;SACxB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,cAAc,CACb,kCAAkC,EAClC,yBAAyB,CAC1B;SACA,MAAM,CAAC,oCAAoC,EAAE,wBAAwB,CAAC,CAAC;IAE1E,OAAO,cAAc,CAAoB,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAChF,CAAC"}
@@ -1,7 +0,0 @@
1
- type ForwardPHCommandOptions = {
2
- debug?: boolean;
3
- logOutput?: boolean;
4
- };
5
- export declare const forwardCommand: (args: string, options: ForwardPHCommandOptions) => Promise<void>;
6
- export {};
7
- //# sourceMappingURL=forward.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forward.d.ts","sourceRoot":"","sources":["../../../src/commands/forward.ts"],"names":[],"mappings":"AAMA,KAAK,uBAAuB,GAAG;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAMF,eAAO,MAAM,cAAc,GACzB,MAAM,MAAM,EACZ,SAAS,uBAAuB,kBAwDjC,CAAC"}