ph-cmd 5.2.0-staging.9 → 5.3.0-staging.2

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 (67) hide show
  1. package/dist/src/cli.js +30 -1
  2. package/dist/src/cli.js.map +1 -1
  3. package/dist/src/commands/__tests__/update.test.js +1 -1
  4. package/dist/src/commands/__tests__/update.test.js.map +1 -1
  5. package/dist/src/commands/__tests__/use.test.js +1 -1
  6. package/dist/src/commands/__tests__/use.test.js.map +1 -1
  7. package/dist/src/commands/index.d.ts +1 -4
  8. package/dist/src/commands/index.d.ts.map +1 -1
  9. package/dist/src/commands/index.js +1 -7
  10. package/dist/src/commands/index.js.map +1 -1
  11. package/dist/src/commands/init.d.ts +1 -21
  12. package/dist/src/commands/init.d.ts.map +1 -1
  13. package/dist/src/commands/init.js +153 -65
  14. package/dist/src/commands/init.js.map +1 -1
  15. package/dist/src/commands/setup-globals.js +1 -1
  16. package/dist/src/commands/setup-globals.js.map +1 -1
  17. package/dist/src/commands/update.d.ts +1 -12
  18. package/dist/src/commands/update.d.ts.map +1 -1
  19. package/dist/src/commands/update.js +92 -101
  20. package/dist/src/commands/update.js.map +1 -1
  21. package/dist/src/commands/update.old.d.ts +13 -0
  22. package/dist/src/commands/update.old.d.ts.map +1 -0
  23. package/dist/src/commands/update.old.js +105 -0
  24. package/dist/src/commands/update.old.js.map +1 -0
  25. package/dist/src/commands/use-local.d.ts +2 -0
  26. package/dist/src/commands/use-local.d.ts.map +1 -0
  27. package/dist/src/commands/use-local.js +115 -0
  28. package/dist/src/commands/use-local.js.map +1 -0
  29. package/dist/src/commands/use.d.ts +1 -49
  30. package/dist/src/commands/use.d.ts.map +1 -1
  31. package/dist/src/commands/use.js +106 -188
  32. package/dist/src/commands/use.js.map +1 -1
  33. package/dist/src/commands/use.old.d.ts +55 -0
  34. package/dist/src/commands/use.old.d.ts.map +1 -0
  35. package/dist/src/commands/use.old.js +219 -0
  36. package/dist/src/commands/use.old.js.map +1 -0
  37. package/dist/src/help.d.ts +1 -1
  38. package/dist/src/help.d.ts.map +1 -1
  39. package/dist/src/help.js +12 -7
  40. package/dist/src/help.js.map +1 -1
  41. package/dist/src/utils/constants.d.ts +4 -0
  42. package/dist/src/utils/constants.d.ts.map +1 -1
  43. package/dist/src/utils/constants.js +26 -0
  44. package/dist/src/utils/constants.js.map +1 -1
  45. package/dist/src/utils/file-system.d.ts +2 -0
  46. package/dist/src/utils/file-system.d.ts.map +1 -0
  47. package/dist/src/utils/file-system.js +12 -0
  48. package/dist/src/utils/file-system.js.map +1 -0
  49. package/dist/src/utils/help-formatting.d.ts.map +1 -1
  50. package/dist/src/utils/help-formatting.js +13 -1
  51. package/dist/src/utils/help-formatting.js.map +1 -1
  52. package/dist/src/utils/package-manager.d.ts +0 -7
  53. package/dist/src/utils/package-manager.d.ts.map +1 -1
  54. package/dist/src/utils/package-manager.js +3 -22
  55. package/dist/src/utils/package-manager.js.map +1 -1
  56. package/dist/src/utils/parsing.d.ts +20 -0
  57. package/dist/src/utils/parsing.d.ts.map +1 -0
  58. package/dist/src/utils/parsing.js +52 -0
  59. package/dist/src/utils/parsing.js.map +1 -0
  60. package/dist/src/utils/run-cmd.d.ts +2 -0
  61. package/dist/src/utils/run-cmd.d.ts.map +1 -0
  62. package/dist/src/utils/run-cmd.js +11 -0
  63. package/dist/src/utils/run-cmd.js.map +1 -0
  64. package/dist/src/version.d.ts +1 -1
  65. package/dist/src/version.js +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +10 -3
@@ -1,104 +1,95 @@
1
- import { execSync } from "node:child_process";
2
- import fs from "node:fs";
3
- import path from "node:path";
4
- import { updateHelp } from "../help.js";
5
- import { findContainerDirectory, getPackageManagerFromLockfile, getProjectInfo, packageManagers, resolvePackageManagerOptions, withCustomHelp, } from "../utils/index.js";
6
- import { detectPowerhousePackages, ENV_MAP, updatePackageJson } from "./use.js";
7
- const FILE_PROTOCOL = "file:";
8
- const LINK_PROTOCOL = "link:";
9
- const MONOREPO_FILE = "pnpm-workspace.yaml";
10
- const buildLocalDependencies = (localDependencyPath, pkgManagerName) => {
11
- const monorepoPath = findContainerDirectory(localDependencyPath, MONOREPO_FILE);
12
- if (!monorepoPath) {
13
- throw new Error("Monorepo root directory not found");
14
- }
15
- const pkgManager = packageManagers[pkgManagerName];
16
- console.log("⚙️ Building local dependencies...");
17
- execSync(pkgManager.buildAffected, {
18
- stdio: "inherit",
19
- cwd: monorepoPath,
20
- });
21
- };
22
- const getLocalDependencyPath = (projectPath) => {
23
- // read package json from projectInfo.path
24
- const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, "package.json"), "utf-8"));
25
- // Get all Powerhouse packages from package.json
26
- const powerhousePackages = detectPowerhousePackages(packageJson);
27
- // filter dependencies
28
- const filteredDependencies = Object.entries({
29
- ...(packageJson.dependencies || {}),
30
- ...(packageJson.devDependencies || {}),
31
- }).filter(([name]) => powerhousePackages.includes(name));
32
- const [_, localDependencyPath] = filteredDependencies.find(([_, version]) => version.startsWith(FILE_PROTOCOL) || version.startsWith(LINK_PROTOCOL)) || [null, null];
33
- if (!localDependencyPath)
34
- return null;
35
- return localDependencyPath
36
- .replace(FILE_PROTOCOL, "")
37
- .replace(LINK_PROTOCOL, "");
38
- };
39
- const getInstalledDependencies = (projectPath) => {
40
- // read package json from projectInfo.path
41
- const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, "package.json"), "utf-8"));
42
- // Get all installed Powerhouse dependencies using dynamic detection
43
- const powerhousePackages = detectPowerhousePackages(packageJson);
44
- const installedDeps = powerhousePackages.sort(); // Sort dependencies alphabetically
45
- return installedDeps;
46
- };
47
- export const update = async (options) => {
48
- const { force, debug } = options;
49
- if (debug) {
50
- console.log(">>> options", options);
51
- }
52
- const projectInfo = await getProjectInfo();
53
- const pkgManagerName = (resolvePackageManagerOptions(options) ||
54
- getPackageManagerFromLockfile(projectInfo.path));
55
- const localDependencyPath = getLocalDependencyPath(projectInfo.path);
56
- if (debug) {
57
- console.log(">>> projectInfo", projectInfo);
58
- console.log(">>> pkgManagerName", pkgManagerName);
59
- console.log(">>> localDependencyPath", localDependencyPath);
60
- }
61
- if (localDependencyPath) {
62
- buildLocalDependencies(localDependencyPath, pkgManagerName);
63
- }
64
- if (force) {
65
- const supportedEnvs = Object.keys(ENV_MAP);
66
- if (!supportedEnvs.includes(force)) {
67
- throw new Error(`Invalid environment: ${force}, supported envs: ${supportedEnvs.join(", ")}`);
1
+ import { getPackageVersion } from "@powerhousedao/codegen/utils";
2
+ import chalk from "chalk";
3
+ import { boolean, command, flag, optional, run } from "cmd-ts";
4
+ import { detect } from "package-manager-detector/detect";
5
+ import { readPackage } from "read-pkg";
6
+ import { writePackage } from "write-package";
7
+ import { ALL_POWERHOUSE_DEPENDENCIES } from "../utils/constants.js";
8
+ import { getTagFromVersion, logVersionUpdate } from "../utils/parsing.js";
9
+ import { runCmd } from "../utils/run-cmd.js";
10
+ const commandParser = command({
11
+ name: "ph update",
12
+ description: "Update your powerhouse dependencies to their latest tagged version",
13
+ args: {
14
+ skipInstall: flag({
15
+ type: optional(boolean),
16
+ long: "skip-install",
17
+ short: "s",
18
+ description: "Skip running `install` with your package manager",
19
+ }),
20
+ },
21
+ handler: async ({ skipInstall }) => {
22
+ console.log(`\n▶️ Updating Powerhouse dependencies...\n`);
23
+ const packageJson = await readPackage();
24
+ if (packageJson.dependencies) {
25
+ for (const [name, version] of Object.entries(packageJson.dependencies)) {
26
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
27
+ const tag = getTagFromVersion(version);
28
+ const newVersion = await getPackageVersion({ name, tag });
29
+ packageJson.dependencies[name] = newVersion;
30
+ logVersionUpdate({
31
+ name,
32
+ version,
33
+ newVersion,
34
+ });
35
+ }
36
+ }
68
37
  }
69
- const env = force;
70
- await updatePackageJson(env, undefined, pkgManagerName, debug);
71
- return;
72
- }
73
- const installedDeps = getInstalledDependencies(projectInfo.path);
74
- if (installedDeps.length === 0) {
75
- console.log("ℹ️ No Powerhouse dependencies found to update");
76
- return;
77
- }
78
- const pkgManager = packageManagers[pkgManagerName];
79
- const deps = installedDeps.join(" ");
80
- const updateCommand = pkgManager.updateCommand.replace("{{dependency}}", deps);
81
- if (options.debug) {
82
- console.log(">>> dependencies to update", installedDeps);
83
- }
84
- const commandOptions = { cwd: projectInfo.path };
85
- execSync(updateCommand, {
86
- stdio: "inherit",
87
- ...commandOptions,
88
- });
89
- };
90
- export function updateCommand(program) {
91
- const updateCmd = program
92
- .command("update")
93
- .alias("up")
94
- .description("Allows you to update your dependencies to the latest version based on the specified range in package.json. If you want to update to the latest available version, use the --force flag.")
95
- .option("--force <env>", "Force update to latest available version for the environment specified (dev, prod, latest)")
96
- .option("--package-manager <packageManager>", "package manager to be used")
97
- .option("--pnpm", "Use 'pnpm' as package manager")
98
- .option("--yarn", "Use 'yarn' as package manager")
99
- .option("--bun", "Use 'bun' as package manager")
100
- .option("--debug", "Show additional logs");
101
- // Use withCustomHelp instead of withHelpAction and addHelpText
102
- return withCustomHelp(updateCmd, update, updateHelp);
38
+ if (packageJson.devDependencies) {
39
+ for (const [name, version] of Object.entries(packageJson.devDependencies)) {
40
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
41
+ const tag = getTagFromVersion(version);
42
+ const newVersion = await getPackageVersion({ name, tag });
43
+ packageJson.devDependencies[name] = newVersion;
44
+ logVersionUpdate({
45
+ name,
46
+ version,
47
+ newVersion,
48
+ });
49
+ }
50
+ }
51
+ }
52
+ if (packageJson.optionalDependencies) {
53
+ for (const [name, version] of Object.entries(packageJson.optionalDependencies)) {
54
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
55
+ const tag = getTagFromVersion(version);
56
+ const newVersion = await getPackageVersion({ name, tag });
57
+ packageJson.optionalDependencies[name] = newVersion;
58
+ logVersionUpdate({
59
+ name,
60
+ version,
61
+ newVersion,
62
+ });
63
+ }
64
+ }
65
+ }
66
+ if (packageJson.peerDependencies) {
67
+ for (const [name, version] of Object.entries(packageJson.peerDependencies)) {
68
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
69
+ const tag = getTagFromVersion(version);
70
+ const newVersion = await getPackageVersion({ name, tag });
71
+ packageJson.peerDependencies[name] = newVersion;
72
+ logVersionUpdate({
73
+ name,
74
+ version,
75
+ newVersion,
76
+ });
77
+ }
78
+ }
79
+ }
80
+ await writePackage(packageJson);
81
+ console.log(chalk.green(`\n✅ Project updated successfully\n`));
82
+ if (skipInstall)
83
+ return;
84
+ const packageManager = await detect();
85
+ if (!packageManager) {
86
+ throw new Error(`❌ Failed to detect your package manager. Run install manually.`);
87
+ }
88
+ console.log(`▶️ Installing updated dependencies with \`${packageManager.agent}\`\n`);
89
+ runCmd(`${packageManager.agent} install`);
90
+ },
91
+ });
92
+ export async function update(args) {
93
+ await run(commandParser, args);
103
94
  }
104
95
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,cAAc,EACd,eAAe,EACf,4BAA4B,EAC5B,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOhF,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAE5C,MAAM,sBAAsB,GAAG,CAC7B,mBAA2B,EAC3B,cAA8B,EAC9B,EAAE;IACF,MAAM,YAAY,GAAG,sBAAsB,CACzC,mBAAmB,EACnB,aAAa,CACd,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAEnD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE;QACjC,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,YAAY;KAClB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAE,EAAE;IACrD,0CAA0C;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAClD,CAAC;IAEjB,gDAAgD;IAChD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAEjE,sBAAsB;IACtB,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1C,GAAG,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,CAAC,eAAe,IAAI,EAAE,CAAC;KACvC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzD,MAAM,CAAC,CAAC,EAAE,mBAAmB,CAAC,GAAG,oBAAoB,CAAC,IAAI,CACxD,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CACf,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CACzE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAElB,IAAI,CAAC,mBAAmB;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,mBAAmB;SACvB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAE,EAAE;IACvD,0CAA0C;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAClD,CAAC;IAEjB,oEAAoE;IACpE,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,mCAAmC;IAEpF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAYF,MAAM,CAAC,MAAM,MAAM,GAAuC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC1E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEjC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAC3C,MAAM,cAAc,GAAG,CAAC,4BAA4B,CAAC,OAAO,CAAC;QAC3D,6BAA6B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAmB,CAAC;IAErE,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAErE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,mBAAmB,EAAE,CAAC;QACxB,sBAAsB,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,qBAAqB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,KAAoB,CAAC;QACjC,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,wBAAwB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEjE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CACpD,gBAAgB,EAChB,IAAI,CACL,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;IAEjD,QAAQ,CAAC,aAAa,EAAE;QACtB,KAAK,EAAE,SAAS;QAChB,GAAG,cAAc;KAClB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CACV,yLAAyL,CAC1L;SACA,MAAM,CACL,eAAe,EACf,4FAA4F,CAC7F;SACA,MAAM,CAAC,oCAAoC,EAAE,4BAA4B,CAAC;SAC1E,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,OAAO,EAAE,8BAA8B,CAAC;SAC/C,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAE7C,+DAA+D;IAC/D,OAAO,cAAc,CAAkB,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Command } from "commander";
2
+ import type { CommandActionType } from "../types.js";
3
+ export type UpdateOptions = {
4
+ force?: string;
5
+ debug?: boolean;
6
+ packageManager?: string;
7
+ pnpm?: boolean;
8
+ yarn?: boolean;
9
+ bun?: boolean;
10
+ };
11
+ export declare const update: CommandActionType<[UpdateOptions]>;
12
+ export declare function updateCommand(program: Command): Command;
13
+ //# sourceMappingURL=update.old.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.old.d.ts","sourceRoot":"","sources":["../../../src/commands/update.old.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAwFrD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,iBAAiB,CAAC,CAAC,aAAa,CAAC,CA4DrD,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAmBvD"}
@@ -0,0 +1,105 @@
1
+ import { execSync } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import path from "node:path";
4
+ import { updateHelp } from "../help.js";
5
+ import { findContainerDirectory, getPackageManagerFromLockfile, getProjectInfo, packageManagers, withCustomHelp, } from "../utils/index.js";
6
+ import { parsePackageManager } from "../utils/parsing.js";
7
+ import { detectPowerhousePackages, ENV_MAP, updatePackageJson, } from "./use.old.js";
8
+ const FILE_PROTOCOL = "file:";
9
+ const LINK_PROTOCOL = "link:";
10
+ const MONOREPO_FILE = "pnpm-workspace.yaml";
11
+ const buildLocalDependencies = (localDependencyPath, pkgManagerName) => {
12
+ const monorepoPath = findContainerDirectory(localDependencyPath, MONOREPO_FILE);
13
+ if (!monorepoPath) {
14
+ throw new Error("Monorepo root directory not found");
15
+ }
16
+ const pkgManager = packageManagers[pkgManagerName];
17
+ console.log("⚙️ Building local dependencies...");
18
+ execSync(pkgManager.buildAffected, {
19
+ stdio: "inherit",
20
+ cwd: monorepoPath,
21
+ });
22
+ };
23
+ const getLocalDependencyPath = (projectPath) => {
24
+ // read package json from projectInfo.path
25
+ const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, "package.json"), "utf-8"));
26
+ // Get all Powerhouse packages from package.json
27
+ const powerhousePackages = detectPowerhousePackages(packageJson);
28
+ // filter dependencies
29
+ const filteredDependencies = Object.entries({
30
+ ...(packageJson.dependencies || {}),
31
+ ...(packageJson.devDependencies || {}),
32
+ }).filter(([name]) => powerhousePackages.includes(name));
33
+ const [_, localDependencyPath] = filteredDependencies.find(([_, version]) => version.startsWith(FILE_PROTOCOL) || version.startsWith(LINK_PROTOCOL)) || [null, null];
34
+ if (!localDependencyPath)
35
+ return null;
36
+ return localDependencyPath
37
+ .replace(FILE_PROTOCOL, "")
38
+ .replace(LINK_PROTOCOL, "");
39
+ };
40
+ const getInstalledDependencies = (projectPath) => {
41
+ // read package json from projectInfo.path
42
+ const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, "package.json"), "utf-8"));
43
+ // Get all installed Powerhouse dependencies using dynamic detection
44
+ const powerhousePackages = detectPowerhousePackages(packageJson);
45
+ const installedDeps = powerhousePackages.sort(); // Sort dependencies alphabetically
46
+ return installedDeps;
47
+ };
48
+ export const update = async (options) => {
49
+ const { force, debug } = options;
50
+ if (debug) {
51
+ console.log(">>> options", options);
52
+ }
53
+ const projectInfo = await getProjectInfo();
54
+ const pkgManagerName = (parsePackageManager(options) ||
55
+ getPackageManagerFromLockfile(projectInfo.path));
56
+ const localDependencyPath = getLocalDependencyPath(projectInfo.path);
57
+ if (debug) {
58
+ console.log(">>> projectInfo", projectInfo);
59
+ console.log(">>> pkgManagerName", pkgManagerName);
60
+ console.log(">>> localDependencyPath", localDependencyPath);
61
+ }
62
+ if (localDependencyPath) {
63
+ buildLocalDependencies(localDependencyPath, pkgManagerName);
64
+ }
65
+ if (force) {
66
+ const supportedEnvs = Object.keys(ENV_MAP);
67
+ if (!supportedEnvs.includes(force)) {
68
+ throw new Error(`Invalid environment: ${force}, supported envs: ${supportedEnvs.join(", ")}`);
69
+ }
70
+ const env = force;
71
+ await updatePackageJson(env, undefined, pkgManagerName, debug);
72
+ return;
73
+ }
74
+ const installedDeps = getInstalledDependencies(projectInfo.path);
75
+ if (installedDeps.length === 0) {
76
+ console.log("ℹ️ No Powerhouse dependencies found to update");
77
+ return;
78
+ }
79
+ const pkgManager = packageManagers[pkgManagerName];
80
+ const deps = installedDeps.join(" ");
81
+ const updateCommand = pkgManager.updateCommand.replace("{{dependency}}", deps);
82
+ if (options.debug) {
83
+ console.log(">>> dependencies to update", installedDeps);
84
+ }
85
+ const commandOptions = { cwd: projectInfo.path };
86
+ execSync(updateCommand, {
87
+ stdio: "inherit",
88
+ ...commandOptions,
89
+ });
90
+ };
91
+ export function updateCommand(program) {
92
+ const updateCmd = program
93
+ .command("update")
94
+ .alias("up")
95
+ .description("Allows you to update your dependencies to the latest version based on the specified range in package.json. If you want to update to the latest available version, use the --force flag.")
96
+ .option("--force <env>", "Force update to latest available version for the environment specified (dev, prod, latest)")
97
+ .option("--package-manager <packageManager>", "package manager to be used")
98
+ .option("--pnpm", "Use 'pnpm' as package manager")
99
+ .option("--yarn", "Use 'yarn' as package manager")
100
+ .option("--bun", "Use 'bun' as package manager")
101
+ .option("--debug", "Show additional logs");
102
+ // Use withCustomHelp instead of withHelpAction and addHelpText
103
+ return withCustomHelp(updateCmd, update, updateHelp);
104
+ }
105
+ //# sourceMappingURL=update.old.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.old.js","sourceRoot":"","sources":["../../../src/commands/update.old.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function useLocal(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=use-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-local.d.ts","sourceRoot":"","sources":["../../../src/commands/use-local.ts"],"names":[],"mappings":"AAsKA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,iBAE5C"}
@@ -0,0 +1,115 @@
1
+ import chalk from "chalk";
2
+ import { boolean, command, flag, option, optional, positional, run, string, } from "cmd-ts";
3
+ import path from "path";
4
+ import { readPackage } from "read-pkg";
5
+ import { writePackage } from "write-package";
6
+ import { ALL_POWERHOUSE_DEPENDENCIES, APPS_DEPENDENCIES, CLIS_DEPENDENCIES, } from "../utils/constants.js";
7
+ import { dirExists } from "../utils/file-system.js";
8
+ import { logVersionUpdate } from "../utils/parsing.js";
9
+ import { runCmd } from "../utils/run-cmd.js";
10
+ const commandParser = command({
11
+ name: "ph use-local",
12
+ description: "Use your local `powerhouse` monorepo dependencies the current project. NOTE: The monorepo uses `pnpm`, so this only works with `pnpm`.",
13
+ args: {
14
+ monorepoPathPositional: positional({
15
+ type: optional(string),
16
+ displayName: "monorepo path",
17
+ description: "Path to your local powerhouse monorepo relative to this project",
18
+ }),
19
+ monorepoPathOption: option({
20
+ type: optional(string),
21
+ long: "path",
22
+ short: "p",
23
+ description: "Path to your local powerhouse monorepo relative to this project",
24
+ }),
25
+ skipInstall: flag({
26
+ type: optional(boolean),
27
+ long: "skip-install",
28
+ short: "s",
29
+ description: "Skip running `install` with `pnpm`",
30
+ }),
31
+ },
32
+ handler: async ({ monorepoPathPositional, monorepoPathOption, skipInstall, }) => {
33
+ const monorepoPath = monorepoPathPositional ?? monorepoPathOption;
34
+ if (!monorepoPath) {
35
+ throw new Error("❌ Please provide the path to your local powerhouse monorepo.");
36
+ }
37
+ const monorepoDirExists = await dirExists(monorepoPath);
38
+ if (!monorepoDirExists) {
39
+ throw new Error("❌ No directory found at the powerhouse monorepo path you specified.");
40
+ }
41
+ console.log(`\n▶️ Linking powerhouse dependencies to "${chalk.bold(monorepoPath)}...\n`);
42
+ const packageJson = await readPackage();
43
+ if (packageJson.dependencies) {
44
+ for (const [name, version] of Object.entries(packageJson.dependencies)) {
45
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
46
+ const newVersion = buildPnpmLink(name, monorepoPath);
47
+ packageJson.dependencies[name] = newVersion;
48
+ logVersionUpdate({
49
+ name,
50
+ version,
51
+ newVersion,
52
+ });
53
+ }
54
+ }
55
+ }
56
+ if (packageJson.devDependencies) {
57
+ for (const [name, version] of Object.entries(packageJson.devDependencies)) {
58
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
59
+ const newVersion = buildPnpmLink(name, monorepoPath);
60
+ packageJson.devDependencies[name] = newVersion;
61
+ logVersionUpdate({
62
+ name,
63
+ version,
64
+ newVersion,
65
+ });
66
+ }
67
+ }
68
+ }
69
+ if (packageJson.optionalDependencies) {
70
+ for (const [name, version] of Object.entries(packageJson.optionalDependencies)) {
71
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
72
+ const newVersion = buildPnpmLink(name, monorepoPath);
73
+ packageJson.optionalDependencies[name] = newVersion;
74
+ logVersionUpdate({
75
+ name,
76
+ version,
77
+ newVersion,
78
+ });
79
+ }
80
+ }
81
+ }
82
+ if (packageJson.peerDependencies) {
83
+ for (const [name, version] of Object.entries(packageJson.peerDependencies)) {
84
+ if (version && ALL_POWERHOUSE_DEPENDENCIES.includes(name)) {
85
+ const newVersion = buildPnpmLink(name, monorepoPath);
86
+ packageJson.peerDependencies[name] = newVersion;
87
+ logVersionUpdate({
88
+ name,
89
+ version,
90
+ newVersion,
91
+ });
92
+ }
93
+ }
94
+ }
95
+ await writePackage(packageJson);
96
+ console.log(chalk.green(`\n✅ Project linked successfully\n`));
97
+ if (skipInstall)
98
+ return;
99
+ console.log(`Installing linked dependencies with \`pnpm\`\n`);
100
+ runCmd(`pnpm install`);
101
+ },
102
+ });
103
+ function buildPnpmLink(packageName, monorepoPath) {
104
+ const isCli = CLIS_DEPENDENCIES.includes(packageName);
105
+ const isApp = APPS_DEPENDENCIES.includes(packageName);
106
+ const packageDir = isCli ? "clis" : isApp ? "apps" : "packages";
107
+ const packageNameWithoutNamespace = packageName.replace("@powerhousedao/", "");
108
+ const packagePath = path.join(monorepoPath, packageDir, packageNameWithoutNamespace);
109
+ const pnpmLink = `link:${packagePath}`;
110
+ return pnpmLink;
111
+ }
112
+ export async function useLocal(args) {
113
+ await run(commandParser, args);
114
+ }
115
+ //# sourceMappingURL=use-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-local.js","sourceRoot":"","sources":["../../../src/commands/use-local.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,2 @@
1
- import type { Command } from "commander";
2
- import type { CommandActionType } from "../types.js";
3
- import type { PackageManager } from "../utils/index.js";
4
- export declare const ORG = "@powerhousedao";
5
- export declare const SPECIAL_PACKAGES: string[];
6
- export declare const EXCLUDED_PACKAGES: string[];
7
- /**
8
- * Detects all Powerhouse packages from package.json dependencies
9
- * @param packageJson - The parsed package.json object
10
- * @returns Array of package names to process
11
- */
12
- export declare function detectPowerhousePackages(packageJson: {
13
- dependencies?: Record<string, string>;
14
- devDependencies?: Record<string, string>;
15
- }): string[];
16
- /**
17
- * Maps a package name to its monorepo directory path by reading package.json files
18
- * @param packageName - The package name (e.g., '@powerhousedao/common' or 'document-model')
19
- * @param localPath - The base path to the monorepo
20
- * @returns The full path to the package directory
21
- */
22
- export declare function mapPackageToMonorepoPath(packageName: string, localPath: string): string;
23
- export declare const ENV_MAP: {
24
- dev: string;
25
- staging: string;
26
- prod: string;
27
- latest: string;
28
- };
29
- export type Environment = keyof typeof ENV_MAP;
30
- export declare const updatePackageJson: (env: Environment, localPath?: string, packageManager?: PackageManager, debug?: boolean, useResolved?: boolean) => Promise<void>;
31
- export type UseOptions = {
32
- dev?: boolean;
33
- prod?: boolean;
34
- local?: string;
35
- debug?: boolean;
36
- latest?: boolean;
37
- force?: boolean;
38
- packageManager?: string;
39
- pnpm?: boolean;
40
- yarn?: boolean;
41
- bun?: boolean;
42
- useResolved?: boolean;
43
- };
44
- export declare const use: CommandActionType<[
45
- string | undefined,
46
- string | undefined,
47
- UseOptions
48
- ]>;
49
- export declare function useCommand(program: Command): Command;
1
+ export declare function use(args: string[]): Promise<void>;
50
2
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD,eAAO,MAAM,GAAG,mBAAmB,CAAC;AAGpC,eAAO,MAAM,gBAAgB,UAI5B,CAAC;AAGF,eAAO,MAAM,iBAAiB,UAS7B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C,GAAG,MAAM,EAAE,CAuBX;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CA2CR;AAED,eAAO,MAAM,OAAO;;;;;CAKnB,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,OAAO,CAAC;AAE/C,eAAO,MAAM,iBAAiB,GAC5B,KAAK,WAAW,EAChB,YAAY,MAAM,EAClB,iBAAiB,cAAc,EAC/B,QAAQ,OAAO,EACf,cAAc,OAAO,kBA0DtB,CAAC;AAGF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,iBAAiB,CACjC;IAAC,MAAM,GAAG,SAAS;IAAE,MAAM,GAAG,SAAS;IAAE,UAAU;CAAC,CAuCrD,CAAC;AAEF,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAyCpD"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/use.ts"],"names":[],"mappings":"AAiKA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,iBAEvC"}