worktree-add 1.3.0 → 1.3.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 (98) hide show
  1. package/README.md +5 -2
  2. package/dist/app/get-unsafe-app-name-reason.d.ts +1 -0
  3. package/dist/app/get-unsafe-app-name-reason.d.ts.map +1 -0
  4. package/dist/app/get-unsafe-app-name-reason.js +1 -0
  5. package/dist/app/get-unsafe-app-name-reason.js.map +1 -0
  6. package/dist/app/resolve-apps.d.ts +1 -0
  7. package/dist/app/resolve-apps.d.ts.map +1 -0
  8. package/dist/app/resolve-apps.js +1 -0
  9. package/dist/app/resolve-apps.js.map +1 -0
  10. package/dist/cli/cleanup-worktree.d.ts +1 -0
  11. package/dist/cli/cleanup-worktree.d.ts.map +1 -0
  12. package/dist/cli/cleanup-worktree.js +1 -0
  13. package/dist/cli/cleanup-worktree.js.map +1 -0
  14. package/dist/cli/open-worktree-apps.d.ts +1 -0
  15. package/dist/cli/open-worktree-apps.d.ts.map +1 -0
  16. package/dist/cli/open-worktree-apps.js +1 -0
  17. package/dist/cli/open-worktree-apps.js.map +1 -0
  18. package/dist/cli/register-sigint-handler.d.ts +1 -0
  19. package/dist/cli/register-sigint-handler.d.ts.map +1 -0
  20. package/dist/cli/register-sigint-handler.js +1 -0
  21. package/dist/cli/register-sigint-handler.js.map +1 -0
  22. package/dist/cli/resolve-worktree-context.d.ts +3 -1
  23. package/dist/cli/resolve-worktree-context.d.ts.map +1 -0
  24. package/dist/cli/resolve-worktree-context.js +7 -3
  25. package/dist/cli/resolve-worktree-context.js.map +1 -0
  26. package/dist/cli/run-worktree-add.d.ts +1 -0
  27. package/dist/cli/run-worktree-add.d.ts.map +1 -0
  28. package/dist/cli/run-worktree-add.js +21 -0
  29. package/dist/cli/run-worktree-add.js.map +1 -0
  30. package/dist/cli.d.ts +3 -1
  31. package/dist/cli.d.ts.map +1 -0
  32. package/dist/cli.js +4 -2
  33. package/dist/cli.js.map +1 -0
  34. package/dist/git/create-worktree.d.ts +1 -0
  35. package/dist/git/create-worktree.d.ts.map +1 -0
  36. package/dist/git/create-worktree.js +2 -1
  37. package/dist/git/create-worktree.js.map +1 -0
  38. package/dist/git/extract-diagnostic-line.d.ts +1 -0
  39. package/dist/git/extract-diagnostic-line.d.ts.map +1 -0
  40. package/dist/git/extract-diagnostic-line.js +1 -0
  41. package/dist/git/extract-diagnostic-line.js.map +1 -0
  42. package/dist/git/fetch-remote-branch.d.ts +18 -5
  43. package/dist/git/fetch-remote-branch.d.ts.map +1 -0
  44. package/dist/git/fetch-remote-branch.js +29 -24
  45. package/dist/git/fetch-remote-branch.js.map +1 -0
  46. package/dist/git/git.d.ts +2 -1
  47. package/dist/git/git.d.ts.map +1 -0
  48. package/dist/git/git.js +4 -3
  49. package/dist/git/git.js.map +1 -0
  50. package/dist/git/remove-worktree.d.ts +1 -0
  51. package/dist/git/remove-worktree.d.ts.map +1 -0
  52. package/dist/git/remove-worktree.js +1 -0
  53. package/dist/git/remove-worktree.js.map +1 -0
  54. package/dist/git/worktree-discovery.d.ts +4 -2
  55. package/dist/git/worktree-discovery.d.ts.map +1 -0
  56. package/dist/git/worktree-discovery.js +55 -14
  57. package/dist/git/worktree-discovery.js.map +1 -0
  58. package/dist/output/create-status-logger.d.ts +1 -0
  59. package/dist/output/create-status-logger.d.ts.map +1 -0
  60. package/dist/output/create-status-logger.js +1 -0
  61. package/dist/output/create-status-logger.js.map +1 -0
  62. package/dist/output/get-status-logger.d.ts +1 -0
  63. package/dist/output/get-status-logger.d.ts.map +1 -0
  64. package/dist/output/get-status-logger.js +1 -0
  65. package/dist/output/get-status-logger.js.map +1 -0
  66. package/dist/project/install-commands.d.ts +1 -0
  67. package/dist/project/install-commands.d.ts.map +1 -0
  68. package/dist/project/install-commands.js +1 -0
  69. package/dist/project/install-commands.js.map +1 -0
  70. package/dist/project/next.d.ts +1 -0
  71. package/dist/project/next.d.ts.map +1 -0
  72. package/dist/project/next.js +1 -0
  73. package/dist/project/next.js.map +1 -0
  74. package/dist/project/package-manager-commands.d.ts +1 -0
  75. package/dist/project/package-manager-commands.d.ts.map +1 -0
  76. package/dist/project/package-manager-commands.js +2 -1
  77. package/dist/project/package-manager-commands.js.map +1 -0
  78. package/dist/project/package-manager.d.ts +1 -0
  79. package/dist/project/package-manager.d.ts.map +1 -0
  80. package/dist/project/package-manager.js +1 -0
  81. package/dist/project/package-manager.js.map +1 -0
  82. package/dist/project/setup.d.ts +1 -0
  83. package/dist/project/setup.d.ts.map +1 -0
  84. package/dist/project/setup.js +1 -0
  85. package/dist/project/setup.js.map +1 -0
  86. package/dist/worktree/destination-directory.d.ts +1 -0
  87. package/dist/worktree/destination-directory.d.ts.map +1 -0
  88. package/dist/worktree/destination-directory.js +1 -0
  89. package/dist/worktree/destination-directory.js.map +1 -0
  90. package/dist/worktree/file-patterns.d.ts +1 -0
  91. package/dist/worktree/file-patterns.d.ts.map +1 -0
  92. package/dist/worktree/file-patterns.js +1 -0
  93. package/dist/worktree/file-patterns.js.map +1 -0
  94. package/dist/worktree/untracked-file-copy.d.ts +1 -0
  95. package/dist/worktree/untracked-file-copy.d.ts.map +1 -0
  96. package/dist/worktree/untracked-file-copy.js +1 -0
  97. package/dist/worktree/untracked-file-copy.js.map +1 -0
  98. package/package.json +12 -12
package/README.md CHANGED
@@ -9,10 +9,12 @@ Running `worktree-add <branch>` from inside a repo:
9
9
  1. Normalizes `<branch>` (supports `origin/foo`, `refs/heads/foo`, etc.).
10
10
  2. Refuses if that branch is already checked out in any worktree.
11
11
  3. Picks a destination next to your current repo: `../<repo>-<safe-branch>`.
12
+ - If the current checkout is a submodule inside a parent repo, it places the new worktree outside the parent repo so it does not show up as an untracked directory there.
12
13
  4. If the destination exists, pass `--interactive` to be prompted for confirmation, or `--yes` to move it to the system trash without prompting. Without either flag, the command exits.
13
14
  5. Fetches `origin/<branch>` and refreshes your local branch when safe:
14
15
  - fast-forwards the local branch if it’s strictly behind `origin/<branch>`
15
- - warns and keeps the local branch as-is if it’s ahead/diverged
16
+ - warns and keeps the local branch as-is if it’s ahead
17
+ - exits with recovery steps if local and remote have diverged
16
18
  6. Creates a git worktree:
17
19
  - reuses an existing local branch
18
20
  - or creates a tracking branch from `origin/<branch>`
@@ -28,7 +30,7 @@ Your original checkout is left untouched.
28
30
 
29
31
  ## Requirements
30
32
 
31
- - Node.js ≥ 22.14.0
33
+ - Node.js ≥ 22.19.0
32
34
  - Git with `git worktree` support
33
35
  - Git credentials configured for `origin/` (the tool is non-interactive and won’t prompt for authentication)
34
36
 
@@ -56,6 +58,7 @@ worktree-add <branch> [options]
56
58
  ```
57
59
 
58
60
  Run this inside an existing worktree of your project—the tool discovers the repo root from your current directory and creates the sibling worktree next to it.
61
+ If that checkout is a submodule inside a parent repo, the new worktree is created outside the parent repo instead.
59
62
 
60
63
  Example:
61
64
 
@@ -9,3 +9,4 @@
9
9
  * filter as a UX/diagnostics guardrail rather than a security boundary.
10
10
  */
11
11
  export declare function getUnsafeAppNameReason(appName: string): string | undefined;
12
+ //# sourceMappingURL=get-unsafe-app-name-reason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-unsafe-app-name-reason.d.ts","sourceRoot":"","sources":["../../src/app/get-unsafe-app-name-reason.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW1E"}
@@ -19,3 +19,4 @@ export function getUnsafeAppNameReason(appName) {
19
19
  }
20
20
  return undefined;
21
21
  }
22
+ //# sourceMappingURL=get-unsafe-app-name-reason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-unsafe-app-name-reason.js","sourceRoot":"","sources":["../../src/app/get-unsafe-app-name-reason.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACpD,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS;QAEtC,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,EAAE,CAAC;YAClE,OAAO,6BAA6B,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -4,3 +4,4 @@ interface ResolveAppsInput {
4
4
  }
5
5
  export declare function resolveApps({ optionApps, environmentApps, }: ResolveAppsInput): string[];
6
6
  export {};
7
+ //# sourceMappingURL=resolve-apps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-apps.d.ts","sourceRoot":"","sources":["../../src/app/resolve-apps.ts"],"names":[],"mappings":"AAAA,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAaD,wBAAgB,WAAW,CAAC,EAC1B,UAAU,EACV,eAAe,GAChB,EAAE,gBAAgB,GAAG,MAAM,EAAE,CA0B7B"}
@@ -29,3 +29,4 @@ export function resolveApps({ optionApps, environmentApps, }) {
29
29
  }
30
30
  return [];
31
31
  }
32
+ //# sourceMappingURL=resolve-apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-apps.js","sourceRoot":"","sources":["../../src/app/resolve-apps.ts"],"names":[],"mappings":"AAKA,SAAS,mBAAmB,CAAC,IAAc;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,UAAU,EACV,eAAe,GACE;IACjB,MAAM,sBAAsB,GAAG,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;IACjE,MAAM,oBAAoB,GACxB,UAAU,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAE7D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,sBAAsB,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,mBAAmB,CACxB,UAAU;aACP,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import type { StatusLogger } from "../output/create-status-logger.js";
2
2
  export declare function cleanupWorktree(destinationDirectory: string, logger: StatusLogger, reason: string): void;
3
+ //# sourceMappingURL=cleanup-worktree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-worktree.d.ts","sourceRoot":"","sources":["../../src/cli/cleanup-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGtE,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,IAAI,CAeN"}
@@ -11,3 +11,4 @@ export function cleanupWorktree(destinationDirectory, logger, reason) {
11
11
  logger.warn(`Failed to clean up worktree at ${JSON.stringify(destinationDirectory)}: ${cleanupMessage}`);
12
12
  }
13
13
  }
14
+ //# sourceMappingURL=cleanup-worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-worktree.js","sourceRoot":"","sources":["../../src/cli/cleanup-worktree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,UAAU,eAAe,CAC7B,oBAA4B,EAC5B,MAAoB,EACpB,MAAc;IAEd,MAAM,CAAC,IAAI,CACT,2BAA2B,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,MAAM,GAAG,CAC7E,CAAC;IACF,IAAI,CAAC;QACH,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,MAAM,cAAc,GAClB,YAAY,YAAY,KAAK;YAC3B,CAAC,CAAC,YAAY,CAAC,OAAO;YACtB,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CACT,kCAAkC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,cAAc,EAAE,CAC5F,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -3,3 +3,4 @@ export declare function openWorktreeApps(destinationDirectory: string, apps: str
3
3
  dryRun?: boolean;
4
4
  logger?: StatusLogger;
5
5
  }): Promise<void>;
6
+ //# sourceMappingURL=open-worktree-apps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-worktree-apps.d.ts","sourceRoot":"","sources":["../../src/cli/open-worktree-apps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE,wBAAsB,gBAAgB,CACpC,oBAAoB,EAAE,MAAM,EAC5B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAO,GACxD,OAAO,CAAC,IAAI,CAAC,CAqCf"}
@@ -31,3 +31,4 @@ export async function openWorktreeApps(destinationDirectory, apps, options = {})
31
31
  }
32
32
  }));
33
33
  }
34
+ //# sourceMappingURL=open-worktree-apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-worktree-apps.js","sourceRoot":"","sources":["../../src/cli/open-worktree-apps.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,oBAA4B,EAC5B,IAAc,EACd,UAAuD,EAAE;IAEzD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IAEvC,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACrB,MAAM,YAAY,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CACT,cAAc,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC/E,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,oBAAoB,EAAE;gBAC/B,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;gBACpB,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,kBAAkB;gBACrC,CAAC,CAAC,gIAAgI;gBAClI,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,CAAC,IAAI,CACT,kBAAkB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,YAAY,EAAE,CACpE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -6,3 +6,4 @@ type SigintHandlerOptions = {
6
6
  };
7
7
  export declare function registerSigintHandler(options: SigintHandlerOptions): () => void;
8
8
  export {};
9
+ //# sourceMappingURL=register-sigint-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-sigint-handler.d.ts","sourceRoot":"","sources":["../../src/cli/register-sigint-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,oBAAoB,GAC5B,MAAM,IAAI,CAqBZ"}
@@ -17,3 +17,4 @@ export function registerSigintHandler(options) {
17
17
  process.off("SIGINT", handler);
18
18
  };
19
19
  }
20
+ //# sourceMappingURL=register-sigint-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-sigint-handler.js","sourceRoot":"","sources":["../../src/cli/register-sigint-handler.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,qBAAqB,CACnC,OAA6B;IAE7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,0EAA0E;YAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAClD,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CACX,oFAAoF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CACpI,CAAC;QACF,0EAA0E;QAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +1,8 @@
1
- export type WorktreeContext = {
1
+ type WorktreeContext = {
2
2
  readonly branch: string;
3
3
  readonly repoRoot: string;
4
4
  readonly destinationDirectory: string;
5
5
  };
6
6
  export declare function resolveWorktreeContext(branchRaw: string): WorktreeContext;
7
+ export {};
8
+ //# sourceMappingURL=resolve-worktree-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-worktree-context.d.ts","sourceRoot":"","sources":["../../src/cli/resolve-worktree-context.ts"],"names":[],"mappings":"AAWA,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAgCzE"}
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { exitWithMessage, findWorktreeByBranchName, getRepositoryName, git, normalizeBranchName, toSafePathSegment, } from "../git/git.js";
2
+ import { exitWithMessage, findWorktreeByBranchName, getCurrentWorktreeRoot, getRepositoryName, getSuperprojectRoot, normalizeBranchName, toSafePathSegment, } from "../git/git.js";
3
3
  export function resolveWorktreeContext(branchRaw) {
4
4
  const branch = normalizeBranchName(branchRaw);
5
5
  if (branch.length === 0) {
@@ -14,9 +14,13 @@ export function resolveWorktreeContext(branchRaw) {
14
14
  "Open that worktree instead or remove it before retrying.\n" +
15
15
  "If that path no longer exists, run `git worktree prune` and retry.");
16
16
  }
17
- const repoRoot = git("rev-parse", "--show-toplevel");
17
+ const repoRoot = getCurrentWorktreeRoot();
18
+ const superprojectRoot = getSuperprojectRoot();
18
19
  const repoName = getRepositoryName();
19
20
  const branchDirectorySegment = toSafePathSegment(branch);
20
- const destinationDirectory = path.join(path.dirname(repoRoot), `${repoName}-${branchDirectorySegment}`);
21
+ const destinationDirectory = path.join(superprojectRoot === undefined
22
+ ? path.dirname(repoRoot)
23
+ : path.dirname(superprojectRoot), `${repoName}-${branchDirectorySegment}`);
21
24
  return { branch, repoRoot, destinationDirectory };
22
25
  }
26
+ //# sourceMappingURL=resolve-worktree-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-worktree-context.js","sourceRoot":"","sources":["../../src/cli/resolve-worktree-context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAQvB,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,eAAe,CACb,yBAAyB;YACvB,4EAA4E;YAC5E,qDAAqD,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,gBAAgB,EAAE,CAAC;QACrB,eAAe,CACb,WAAW,MAAM,gCAAgC,gBAAgB,IAAI;YACnE,wDAAwD;YACxD,4DAA4D;YAC5D,oEAAoE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;IACrC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CACpC,gBAAgB,KAAK,SAAS;QAC5B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAClC,GAAG,QAAQ,IAAI,sBAAsB,EAAE,CACxC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;AACpD,CAAC"}
@@ -7,3 +7,4 @@ export type CliOptions = {
7
7
  readonly verbose?: boolean;
8
8
  };
9
9
  export declare function runWorktreeAdd(branchRaw: string, options: CliOptions): Promise<void>;
10
+ //# sourceMappingURL=run-worktree-add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-worktree-add.d.ts","sourceRoot":"","sources":["../../src/cli/run-worktree-add.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAKF,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAyHf"}
@@ -10,6 +10,7 @@ import { cleanupWorktree } from "./cleanup-worktree.js";
10
10
  import { openWorktreeApps } from "./open-worktree-apps.js";
11
11
  import { registerSigintHandler } from "./register-sigint-handler.js";
12
12
  import { resolveWorktreeContext } from "./resolve-worktree-context.js";
13
+ const quoteForShell = (value) => `'${value.replaceAll("'", "'\"'\"'")}'`;
13
14
  export async function runWorktreeAdd(branchRaw, options) {
14
15
  const dryRun = options.dryRun ?? false;
15
16
  const verbose = options.verbose ?? false;
@@ -66,6 +67,25 @@ export async function runWorktreeAdd(branchRaw, options) {
66
67
  "Refusing to create a new branch from HEAD in this ambiguous state.\n" +
67
68
  `Re-run with --offline to force creating a new local '${context.branch}' from the current HEAD.`);
68
69
  }
70
+ if (remoteStatus.status === "diverged") {
71
+ const { ahead, behind } = remoteStatus.divergence;
72
+ const branchForShell = quoteForShell(context.branch);
73
+ const archivedBranchForShell = quoteForShell(`${context.branch}-old`);
74
+ exitWithMessage(`Local branch '${context.branch}' and origin/${context.branch} have diverged (ahead by ${ahead} and behind by ${behind}).\n` +
75
+ "This can mean either a stale local branch-name collision or legitimate local commits plus new remote commits.\n" +
76
+ "Refusing to reuse the local branch automatically.\n" +
77
+ "Note: commands below use POSIX shell quoting. On Windows cmd.exe/PowerShell, adapt quoting for your shell.\n" +
78
+ "If you want to keep local commits, use your local branch directly:\n" +
79
+ ` git worktree add -- <path> ${branchForShell}\n` +
80
+ ` # or merge/rebase '${context.branch}' with origin/${context.branch}, then retry.\n` +
81
+ "To work on the remote branch, run:\n" +
82
+ " git fetch origin --prune\n" +
83
+ " # if '<branch>-old' already exists, pick a different archive name.\n" +
84
+ ` git branch -m -- ${branchForShell} ${archivedBranchForShell}\n` +
85
+ " # or delete the stale local branch instead:\n" +
86
+ ` # git branch -D -- ${branchForShell}\n` +
87
+ ` worktree-add -- ${branchForShell}`);
88
+ }
69
89
  // Only treat origin as existing when confirmed; "unknown" remains false.
70
90
  const remoteBranchExists = remoteStatus.status === "exists";
71
91
  createWorktree(context.branch, context.destinationDirectory, {
@@ -98,3 +118,4 @@ export async function runWorktreeAdd(branchRaw, options) {
98
118
  unregisterSigintHandler();
99
119
  }
100
120
  }
121
+ //# sourceMappingURL=run-worktree-add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-worktree-add.js","sourceRoot":"","sources":["../../src/cli/run-worktree-add.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -4,6 +4,8 @@
4
4
  *
5
5
  * Create or reuse a Git worktree for <branch> as a sibling of the current worktree.
6
6
  * Note: the destination is placed next to whichever worktree you run this from,
7
- * not necessarily the original "main" checkout.
7
+ * except for submodule checkouts inside a superproject, where it is placed
8
+ * outside the superproject to avoid nesting the new worktree inside the parent repo.
8
9
  */
9
10
  export {};
11
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
package/dist/cli.js CHANGED
@@ -4,7 +4,8 @@
4
4
  *
5
5
  * Create or reuse a Git worktree for <branch> as a sibling of the current worktree.
6
6
  * Note: the destination is placed next to whichever worktree you run this from,
7
- * not necessarily the original "main" checkout.
7
+ * except for submodule checkouts inside a superproject, where it is placed
8
+ * outside the superproject to avoid nesting the new worktree inside the parent repo.
8
9
  */
9
10
  import { Command } from "@commander-js/extra-typings";
10
11
  import packageJson from "../package.json" with { type: "json" };
@@ -14,7 +15,7 @@ function collectApp(app, previous) {
14
15
  }
15
16
  const program = new Command()
16
17
  .name(packageJson.name)
17
- .description("Create or reuse a Git worktree for a branch as a sibling of the current worktree")
18
+ .description("Create or reuse a Git worktree for a branch next to the current worktree, or outside the outermost superproject when run from a submodule")
18
19
  .version(packageJson.version)
19
20
  .argument("<branch>", "branch name for the worktree")
20
21
  .option("-a, --app <name>", "Open the worktree in an app (repeatable)", collectApp)
@@ -60,3 +61,4 @@ Dependencies:
60
61
  if (!process.env.VITEST) {
61
62
  await program.parseAsync();
62
63
  }
64
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,SAAS,UAAU,CAAC,GAAW,EAAE,QAA8B;IAC7D,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;KAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;KACtB,WAAW,CACV,2IAA2I,CAC5I;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC;KACpD,MAAM,CACL,kBAAkB,EAClB,0CAA0C,EAC1C,UAAU,CACX;KACA,MAAM,CACL,WAAW,EACX,iHAAiH,CAClH;KACA,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;KACzE,MAAM,CAAC,WAAW,EAAE,+CAA+C,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,6CAA6C,CAAC;KACtE,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;KACvD,kBAAkB,CAAC,yCAAyC,CAAC;KAC7D,wBAAwB,EAAE;KAC1B,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;CAgBH,CACE;KACA,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAmB,EAAE,EAAE;IACpD,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IACxB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC"}
@@ -7,3 +7,4 @@ export declare function createWorktree(branch: string, destinationDirectory: str
7
7
  dryRun?: boolean;
8
8
  logger?: StatusLogger;
9
9
  }): void;
10
+ //# sourceMappingURL=create-worktree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-worktree.d.ts","sourceRoot":"","sources":["../../src/git/create-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAUtE;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE;IACR,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GACA,IAAI,CAwDN"}
@@ -22,7 +22,7 @@ export function createWorktree(branch, destinationDirectory, options) {
22
22
  }
23
23
  catch (error) {
24
24
  const diagnostic = extractDiagnosticLine(error);
25
- throw new Error(`Failed to reach origin to check whether '${normalized}' exists: ${diagnostic}`);
25
+ throw new Error(`Failed to reach origin to check whether '${normalized}' exists: ${diagnostic}`, { cause: error });
26
26
  }
27
27
  }
28
28
  if (branchExistsOnOrigin) {
@@ -37,3 +37,4 @@ export function createWorktree(branch, destinationDirectory, options) {
37
37
  return;
38
38
  git("worktree", "add", "-b", normalized, "--", destinationDirectory);
39
39
  }
40
+ //# sourceMappingURL=create-worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-worktree.js","sourceRoot":"","sources":["../../src/git/create-worktree.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,GAAG,EACH,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,oBAA4B,EAC5B,OAIC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IACxC,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,uBAAuB,oBAAoB,eAAe,UAAU,EAAE,CACpG,CAAC;QACF,IAAI,MAAM;YAAE,OAAO;QACnB,GAAG,CACD,UAAU,EACV,KAAK,EACL,IAAI,EACJ,oBAAoB,EACpB,cAAc,UAAU,EAAE,CAC3B,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,oBAAoB,GAAG,OAAO,EAAE,kBAAkB,CAAC;IACvD,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,oBAAoB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,4CAA4C,UAAU,aAAa,UAAU,EAAE,EAC/E,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,+BAA+B,UAAU,OAAO,oBAAoB,WAAW,UAAU,EAAE,CACzH,CAAC;QACF,IAAI,MAAM;YAAE,OAAO;QACnB,GAAG,CACD,UAAU,EACV,KAAK,EACL,SAAS,EACT,IAAI,EACJ,UAAU,EACV,IAAI,EACJ,oBAAoB,EACpB,UAAU,UAAU,EAAE,CACvB,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,CAAC,IAAI,CACT,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,uBAAuB,UAAU,OAAO,oBAAoB,EAAE,CAC5F,CAAC;IACF,IAAI,MAAM;QAAE,OAAO;IACnB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AACvE,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare function extractDiagnosticLine(error: unknown): string;
2
+ //# sourceMappingURL=extract-diagnostic-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-diagnostic-line.d.ts","sourceRoot":"","sources":["../../src/git/extract-diagnostic-line.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAa5D"}
@@ -11,3 +11,4 @@ export function extractDiagnosticLine(error) {
11
11
  nonEmptyLines.at(-1) ??
12
12
  trimmed);
13
13
  }
14
+ //# sourceMappingURL=extract-diagnostic-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-diagnostic-line.js","sourceRoot":"","sources":["../../src/git/extract-diagnostic-line.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,OAAO;SAC1B,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,OAAO;IACL,gGAAgG;IAChG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CACR,CAAC;AACJ,CAAC"}
@@ -1,9 +1,22 @@
1
1
  import type { StatusLogger } from "../output/create-status-logger.js";
2
- export type RemoteBranchStatus = "exists" | "missing" | "unknown";
2
+ type RemoteBranchStatus = "exists" | "missing" | "unknown" | "diverged";
3
+ type BranchDivergence = {
4
+ ahead: number;
5
+ behind: number;
6
+ };
7
+ type NonDivergedRemoteBranchStatus = Exclude<RemoteBranchStatus, "diverged">;
8
+ type FetchRemoteBranchResult = {
9
+ status: "diverged";
10
+ localExists: true;
11
+ divergence: BranchDivergence;
12
+ } | {
13
+ status: NonDivergedRemoteBranchStatus;
14
+ localExists: boolean;
15
+ divergence: undefined;
16
+ };
3
17
  export declare function fetchRemoteBranch(branch: string, options?: {
4
18
  dryRun?: boolean;
5
19
  logger?: StatusLogger;
6
- }): {
7
- status: RemoteBranchStatus;
8
- localExists: boolean;
9
- };
20
+ }): FetchRemoteBranchResult;
21
+ export {};
22
+ //# sourceMappingURL=fetch-remote-branch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-remote-branch.d.ts","sourceRoot":"","sources":["../../src/git/fetch-remote-branch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAetE,KAAK,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AACxE,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,KAAK,6BAA6B,GAAG,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAC7E,KAAK,uBAAuB,GACxB;IACE,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,gBAAgB,CAAC;CAC9B,GACD;IACE,MAAM,EAAE,6BAA6B,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;CACvB,CAAC;AAEN,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,GACpD,uBAAuB,CAsIzB"}
@@ -14,15 +14,17 @@ export function fetchRemoteBranch(branch, options) {
14
14
  catch (error) {
15
15
  const diagnostic = extractDiagnosticLine(error);
16
16
  logger.warn(`Failed to query origin for '${normalized}': ${diagnostic}. Using existing local branch. (If you expected a remote branch, double-check your network connection and branch name.)`);
17
- return { status: "unknown", localExists };
17
+ return { status: "unknown", localExists, divergence: undefined };
18
+ }
19
+ if (!remoteExists) {
20
+ return { status: "missing", localExists, divergence: undefined };
18
21
  }
19
- if (!remoteExists)
20
- return { status: "missing", localExists };
21
22
  try {
22
23
  if (dryRun) {
23
24
  logger.step(`Would fetch origin/${normalized}`);
24
25
  logger.detail(`Dry run: local '${normalized}' may be fast-forwarded after fetch if it is behind origin/${normalized}.`);
25
- return { status: "exists", localExists };
26
+ logger.detail("Dry run does not check local/remote divergence because it skips fetch; a real run may stop with a divergence error.");
27
+ return { status: "exists", localExists, divergence: undefined };
26
28
  }
27
29
  logger.step(`Fetching origin/${normalized} …`);
28
30
  fetchOriginBranch(normalized);
@@ -30,12 +32,12 @@ export function fetchRemoteBranch(branch, options) {
30
32
  catch (error) {
31
33
  const diagnostic = extractDiagnosticLine(error);
32
34
  logger.warn(`Failed to fetch origin/${normalized}: ${diagnostic}. Using existing local branch (origin status unknown).`);
33
- return { status: "unknown", localExists };
35
+ return { status: "unknown", localExists, divergence: undefined };
34
36
  }
35
37
  const localHead = getLocalBranchHead(normalized);
36
38
  const remoteHead = getRemoteBranchHead(normalized);
37
39
  if (!localHead || !remoteHead || localHead === remoteHead) {
38
- return { status: "exists", localExists };
40
+ return { status: "exists", localExists, divergence: undefined };
39
41
  }
40
42
  let counts;
41
43
  try {
@@ -44,7 +46,7 @@ export function fetchRemoteBranch(branch, options) {
44
46
  catch (error) {
45
47
  const diagnostic = extractDiagnosticLine(error);
46
48
  logger.warn(`Failed to compare local '${normalized}' with origin/${normalized}: ${diagnostic}. Using existing local branch as-is.`);
47
- return { status: "exists", localExists };
49
+ return { status: "exists", localExists, divergence: undefined };
48
50
  }
49
51
  const { ahead, behind } = counts;
50
52
  if (ahead === 0 && behind > 0) {
@@ -53,27 +55,28 @@ export function fetchRemoteBranch(branch, options) {
53
55
  const activeWorktree = findWorktreeByBranchName(normalized);
54
56
  if (activeWorktree) {
55
57
  logger.warn(`Local branch '${normalized}' is checked out in ${activeWorktree}; skipping fast-forward.`);
56
- return { status: "exists", localExists };
58
+ return { status: "exists", localExists, divergence: undefined };
57
59
  }
58
60
  logger.detail(`Fast-forwarding '${normalized}' from ${localHead} to ${remoteHead}.`);
59
61
  logger.step(`Fast-forwarding local '${normalized}' to origin/${normalized} …`);
60
62
  git("branch", "-f", "--", normalized, `origin/${normalized}`);
61
- return { status: "exists", localExists };
63
+ return { status: "exists", localExists, divergence: undefined };
62
64
  }
63
65
  if (ahead === 0 && behind === 0) {
64
66
  // Defensive: rev-list should report differences when heads differ,
65
67
  // but shallow/corrupted refs can yield 0/0 counts.
66
68
  logger.warn(`Local branch '${normalized}' differs from origin/${normalized}, but Git reports no ahead/behind differences. Using existing local branch; if you encounter issues, try re-cloning the repository.`);
67
- return { status: "exists", localExists };
69
+ return { status: "exists", localExists, divergence: undefined };
70
+ }
71
+ if (ahead > 0 && behind > 0) {
72
+ return {
73
+ status: "diverged",
74
+ localExists,
75
+ divergence: { ahead, behind },
76
+ };
68
77
  }
69
- const descriptors = [];
70
- if (ahead > 0)
71
- descriptors.push(`ahead by ${ahead}`);
72
- if (behind > 0)
73
- descriptors.push(`behind by ${behind}`);
74
- const relationship = behind > 0 ? "has diverged from" : "is ahead of";
75
- logger.warn(`Local branch '${normalized}' ${relationship} origin/${normalized} (${descriptors.join(" and ")}); using existing local branch as-is.`);
76
- return { status: "exists", localExists };
78
+ logger.warn(`Local branch '${normalized}' is ahead of origin/${normalized} (ahead by ${ahead}); using existing local branch as-is.`);
79
+ return { status: "exists", localExists, divergence: undefined };
77
80
  }
78
81
  let remoteExists;
79
82
  try {
@@ -82,21 +85,23 @@ export function fetchRemoteBranch(branch, options) {
82
85
  catch (error) {
83
86
  const diagnostic = extractDiagnosticLine(error);
84
87
  logger.warn(`Failed to reach origin to check whether '${normalized}' exists: ${diagnostic}. (If you expected a remote branch, double-check your network connection and branch name.)`);
85
- return { status: "unknown", localExists };
88
+ return { status: "unknown", localExists, divergence: undefined };
89
+ }
90
+ if (!remoteExists) {
91
+ return { status: "missing", localExists, divergence: undefined };
86
92
  }
87
- if (!remoteExists)
88
- return { status: "missing", localExists };
89
93
  try {
90
94
  if (dryRun) {
91
95
  logger.step(`Would fetch origin/${normalized}`);
92
- return { status: "exists", localExists };
96
+ return { status: "exists", localExists, divergence: undefined };
93
97
  }
94
98
  logger.step(`Fetching origin/${normalized} …`);
95
99
  fetchOriginBranch(normalized);
96
100
  }
97
101
  catch (error) {
98
102
  const diagnostic = extractDiagnosticLine(error);
99
- throw new Error(`Failed to fetch origin/${normalized}: ${diagnostic}. Cannot proceed without a local branch.`);
103
+ throw new Error(`Failed to fetch origin/${normalized}: ${diagnostic}. Cannot proceed without a local branch.`, { cause: error });
100
104
  }
101
- return { status: "exists", localExists };
105
+ return { status: "exists", localExists, divergence: undefined };
102
106
  }
107
+ //# sourceMappingURL=fetch-remote-branch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-remote-branch.js","sourceRoot":"","sources":["../../src/git/fetch-remote-branch.ts"],"names":[],"mappings":"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"}
package/dist/git/git.d.ts CHANGED
@@ -66,4 +66,5 @@ export declare function exitWithMessage(message: string): never;
66
66
  * @returns Promise<boolean> - true if user confirms, false otherwise
67
67
  */
68
68
  export declare function confirm(message: string): Promise<boolean>;
69
- export { getRepositoryName, findWorktreeByBranchName, } from "./worktree-discovery.js";
69
+ export { getCurrentWorktreeRoot, getRepositoryName, getSuperprojectRoot, findWorktreeByBranchName, } from "./worktree-discovery.js";
70
+ //# sourceMappingURL=git.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/git/git.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,GAAG,CACjB,GAAG,UAAU,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,EAAE,GACxD,MAAM,CA+BR;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQzD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAK1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAItD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOtE;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAcnC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAItD;AAkBD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAI/D;AAGD,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC"}
package/dist/git/git.js CHANGED
@@ -113,8 +113,8 @@ export function getRemoteBranchHead(branch) {
113
113
  export function getAheadBehindCounts(localHead, remoteHead) {
114
114
  const output = git("rev-list", "--left-right", "--count", `${localHead}...${remoteHead}`);
115
115
  const [aheadRaw, behindRaw] = output.split(/\s+/u);
116
- const ahead = Number.parseInt(aheadRaw ?? "0");
117
- const behind = Number.parseInt(behindRaw ?? "0");
116
+ const ahead = Number.parseInt(aheadRaw ?? "0", 10);
117
+ const behind = Number.parseInt(behindRaw ?? "0", 10);
118
118
  return {
119
119
  ahead: Number.isNaN(ahead) ? 0 : ahead,
120
120
  behind: Number.isNaN(behind) ? 0 : behind,
@@ -180,4 +180,5 @@ export async function confirm(message) {
180
180
  return normalized === "y" || normalized === "yes";
181
181
  }
182
182
  // Re-export worktree parsing functions for backward compatibility
183
- export { getRepositoryName, findWorktreeByBranchName, } from "./worktree-discovery.js";
183
+ export { getCurrentWorktreeRoot, getRepositoryName, getSuperprojectRoot, findWorktreeByBranchName, } from "./worktree-discovery.js";
184
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare function removeWorktree(destinationDirectory: string): void;
2
+ //# sourceMappingURL=remove-worktree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-worktree.d.ts","sourceRoot":"","sources":["../../src/git/remove-worktree.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAEjE"}
@@ -2,3 +2,4 @@ import { git } from "./git.js";
2
2
  export function removeWorktree(destinationDirectory) {
3
3
  git("worktree", "remove", "--force", "--", destinationDirectory);
4
4
  }
5
+ //# sourceMappingURL=remove-worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-worktree.js","sourceRoot":"","sources":["../../src/git/remove-worktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,UAAU,cAAc,CAAC,oBAA4B;IACzD,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;AACnE,CAAC"}
@@ -3,9 +3,10 @@
3
3
  *
4
4
  * Utilities for parsing Git worktree information
5
5
  */
6
+ export declare function getCurrentWorktreeRoot(): string;
7
+ export declare function getSuperprojectRoot(): string | undefined;
6
8
  /**
7
- * Get the repository name from the main repository directory
8
- * Works universally across all Git setups (worktrees, bare repos, no remotes, etc.)
9
+ * Get the repository name from the main visible repository directory.
9
10
  */
10
11
  export declare function getRepositoryName(): string;
11
12
  /**
@@ -13,3 +14,4 @@ export declare function getRepositoryName(): string;
13
14
  * Returns the worktree path if found, otherwise undefined.
14
15
  */
15
16
  export declare function findWorktreeByBranchName(branchName: string): string | undefined;
17
+ //# sourceMappingURL=worktree-discovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-discovery.d.ts","sourceRoot":"","sources":["../../src/git/worktree-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AA4CD,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CA8BxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CA6BpB"}
@@ -5,34 +5,74 @@
5
5
  */
6
6
  import path from "node:path";
7
7
  import { git } from "./git.js";
8
+ const MAX_SUPERPROJECT_NESTING = 10;
9
+ export function getCurrentWorktreeRoot() {
10
+ return git("rev-parse", "--show-toplevel");
11
+ }
12
+ function getGitCommonDirectory() {
13
+ const repoRoot = getCurrentWorktreeRoot();
14
+ const commonDirectory = git("rev-parse", "--git-common-dir", {
15
+ cwd: repoRoot,
16
+ });
17
+ return path.resolve(repoRoot, commonDirectory);
18
+ }
19
+ function getMainWorktreePath() {
20
+ const repoRoot = getCurrentWorktreeRoot();
21
+ const commonDirectory = getGitCommonDirectory();
22
+ const configuredWorktree = git("config", "--file", path.join(commonDirectory, "config"), "--default", "", "--get", "core.worktree");
23
+ if (configuredWorktree.length === 0) {
24
+ const primaryWorktreeLine = git("worktree", "list", "--porcelain")
25
+ .split(/\n/u)
26
+ .find((line) => line.startsWith("worktree "));
27
+ if (primaryWorktreeLine === undefined) {
28
+ return repoRoot;
29
+ }
30
+ const primaryWorktreePath = path.resolve(primaryWorktreeLine.replace(/^worktree\s+/u, "").trim());
31
+ return primaryWorktreePath === commonDirectory
32
+ ? repoRoot
33
+ : primaryWorktreePath;
34
+ }
35
+ return path.resolve(commonDirectory, configuredWorktree);
36
+ }
37
+ export function getSuperprojectRoot() {
38
+ let currentDirectory = getCurrentWorktreeRoot();
39
+ let topmostSuperprojectRoot = git("rev-parse", "--show-superproject-working-tree", { cwd: currentDirectory });
40
+ if (topmostSuperprojectRoot.length === 0) {
41
+ return undefined;
42
+ }
43
+ for (let depth = 1; depth < MAX_SUPERPROJECT_NESTING; depth += 1) {
44
+ currentDirectory = topmostSuperprojectRoot;
45
+ const superprojectRoot = git("rev-parse", "--show-superproject-working-tree", { cwd: currentDirectory });
46
+ if (superprojectRoot.length === 0) {
47
+ return topmostSuperprojectRoot;
48
+ }
49
+ topmostSuperprojectRoot = superprojectRoot;
50
+ }
51
+ throw new Error(`Expected at most ${MAX_SUPERPROJECT_NESTING} nested superprojects while resolving the topmost superproject`);
52
+ }
8
53
  /**
9
- * Get the repository name from the main repository directory
10
- * Works universally across all Git setups (worktrees, bare repos, no remotes, etc.)
54
+ * Get the repository name from the main visible repository directory.
11
55
  */
12
56
  export function getRepositoryName() {
13
- // Get the main worktree path from git worktree list
14
- const wtList = git("worktree", "list", "--porcelain");
15
- const mainLine = wtList.split(/\n/u).find((l) => l.startsWith("worktree "));
16
- if (mainLine) {
17
- // Extract path from "worktree /path/to/main/repo"
18
- const mainWorktreePath = mainLine.replace(/^worktree\s+/u, "").trim();
19
- return path.basename(mainWorktreePath);
20
- }
21
- // Fallback to current directory if worktree list fails
22
- const repoRoot = git("rev-parse", "--show-toplevel");
23
- return path.basename(repoRoot);
57
+ return path.basename(getMainWorktreePath());
24
58
  }
25
59
  /**
26
60
  * Find the worktree path where the given branch is currently checked out.
27
61
  * Returns the worktree path if found, otherwise undefined.
28
62
  */
29
63
  export function findWorktreeByBranchName(branchName) {
64
+ const commonDirectory = getGitCommonDirectory();
65
+ const mainWorktreePath = getMainWorktreePath();
30
66
  const wtList = git("worktree", "list", "--porcelain");
31
67
  const wtLines = wtList.split(/\n/u);
32
68
  let currentWorktreePath;
33
69
  for (const line of wtLines) {
34
70
  if (line.startsWith("worktree ")) {
35
- currentWorktreePath = line.replace(/^worktree\s+/u, "").trim();
71
+ const listedWorktreePath = path.resolve(line.replace(/^worktree\s+/u, "").trim());
72
+ currentWorktreePath =
73
+ listedWorktreePath === commonDirectory
74
+ ? mainWorktreePath
75
+ : listedWorktreePath;
36
76
  }
37
77
  else if (line.startsWith("branch ") && currentWorktreePath) {
38
78
  const referenceOrName = line.replace(/^branch\s+/u, "").trim();
@@ -46,3 +86,4 @@ export function findWorktreeByBranchName(branchName) {
46
86
  }
47
87
  return undefined;
48
88
  }
89
+ //# sourceMappingURL=worktree-discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-discovery.js","sourceRoot":"","sources":["../../src/git/worktree-discovery.ts"],"names":[],"mappings":"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"}
@@ -11,3 +11,4 @@ type StatusLoggerOptions = {
11
11
  };
12
12
  export declare function createStatusLogger(options: StatusLoggerOptions): StatusLogger;
13
13
  export {};
14
+ //# sourceMappingURL=create-status-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-status-logger.d.ts","sourceRoot":"","sources":["../../src/output/create-status-logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B,CAAC;AAMF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CA0B7E"}
@@ -30,3 +30,4 @@ export function createStatusLogger(options) {
30
30
  },
31
31
  };
32
32
  }
33
+ //# sourceMappingURL=create-status-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-status-logger.js","sourceRoot":"","sources":["../../src/output/create-status-logger.ts"],"names":[],"mappings":"AAaA,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;IACrC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,OAAO;QACL,IAAI,CAAC,OAAe;YAClB,IAAI,CAAC,cAAc;gBAAE,OAAO;YAC5B,IAAI,CAAC,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,OAAe;YACrB,IAAI,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO;YAC7B,IAAI,CAAC,GAAG,YAAY,GAAG,aAAa,GAAG,OAAO,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,CAAC,OAAe;YACpB,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YAC9B,IAAI,CAAC,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,OAAe;YAClB,IAAI,CAAC,GAAG,aAAa,GAAG,OAAO,EAAE,CAAC,CAAC;QACrC,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import type { StatusLogger } from "./create-status-logger.js";
2
2
  export declare function getStatusLogger(logger: StatusLogger | undefined): StatusLogger;
3
+ //# sourceMappingURL=get-status-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-status-logger.d.ts","sourceRoot":"","sources":["../../src/output/get-status-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAY9D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,YAAY,CAEd"}
@@ -10,3 +10,4 @@ const fallbackLogger = {
10
10
  export function getStatusLogger(logger) {
11
11
  return logger ?? fallbackLogger;
12
12
  }
13
+ //# sourceMappingURL=get-status-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-status-logger.js","sourceRoot":"","sources":["../../src/output/get-status-logger.ts"],"names":[],"mappings":"AAEA,2EAA2E;AAC3E,MAAM,cAAc,GAAiB;IACnC,IAAI,KAAI,CAAC;IACT,OAAO,KAAI,CAAC;IACZ,MAAM,KAAI,CAAC;IACX,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,MAAgC;IAEhC,OAAO,MAAM,IAAI,cAAc,CAAC;AAClC,CAAC"}
@@ -17,3 +17,4 @@ export declare function getInstallCommand(pm: PackageManager, cwd: string): Prom
17
17
  */
18
18
  export declare function getInstallMessage(cmd: InstallCommand): string;
19
19
  export {};
20
+ //# sourceMappingURL=install-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-commands.d.ts","sourceRoot":"","sources":["../../src/project/install-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE3E,UAAU,cAAc;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAK7D"}
@@ -44,3 +44,4 @@ export function getInstallMessage(cmd) {
44
44
  }
45
45
  return `Running ${formatCommand(cmd.command, cmd.args)} …`;
46
46
  }
47
+ //# sourceMappingURL=install-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-commands.js","sourceRoot":"","sources":["../../src/project/install-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,aAAa,EACb,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AASvC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAkB,EAClB,GAAW;IAEX,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACrE,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,aAAa,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QAClD,CAAC;QAED,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAE,CAAC;QACpE,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC;QAC5D,CAAC;QAED,KAAK,KAAK,CAAC;QACX,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,uDAAuD;YACvD,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;YAC1E,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAmB;IACnD,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,4CAA4C,CAAC;IACtD,CAAC;IACD,OAAO,WAAW,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7D,CAAC"}
@@ -8,3 +8,4 @@ export declare const isNextProject: (directory: string) => Promise<boolean>;
8
8
  export declare const isNextTypegenSupported: (directory: string, options?: {
9
9
  logger?: StatusLogger;
10
10
  }) => Promise<boolean>;
11
+ //# sourceMappingURL=next.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/project/next.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAwBtE,eAAO,MAAM,aAAa,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAQtE,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EACjB,UAAS;IAAE,MAAM,CAAC,EAAE,YAAY,CAAA;CAAO,KACtC,OAAO,CAAC,OAAO,CAiBjB,CAAC"}
@@ -40,3 +40,4 @@ export const isNextTypegenSupported = async (directory, options = {}) => {
40
40
  return false;
41
41
  }
42
42
  };
43
+ //# sourceMappingURL=next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next.js","sourceRoot":"","sources":["../../src/project/next.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAU/D,MAAM,eAAe,GAAG,KAAK,EAC3B,SAAiB,EACiB,EAAE;IACpC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,SAAiB,EAAoB,EAAE;IACzE,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CACZ,WAAW,CAAC,YAAY,EAAE,IAAI,IAAI,WAAW,CAAC,eAAe,EAAE,IAAI,CACpE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACzC,SAAiB,EACjB,UAAqC,EAAE,EACrB,EAAE;IACpB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,SAAS,EACT,MAAM,EACN,CAAC,QAAQ,CAAC,EACV,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC1C,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,MAAM;aACjB,KAAK,CAAC,IAAI,CAAC;aACX,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
@@ -9,3 +9,4 @@ export declare const getBinaryRunCommand: (pm: "npm" | "yarn" | "pnpm" | "bun" |
9
9
  command: string;
10
10
  args: string[];
11
11
  };
12
+ //# sourceMappingURL=package-manager-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager-commands.d.ts","sourceRoot":"","sources":["../../src/project/package-manager-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,YAAY,MAAM,EAAE,KACnB,MAEF,CAAC;AAWF,eAAO,MAAM,uBAAuB,GAAI,KAAK,MAAM,KAAG,MAAM,EAe3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,EACxD,QAAQ,MAAM,EACd,YAAY,MAAM,EAAE,KACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAiBnC,CAAC"}
@@ -12,7 +12,7 @@ const parseMajorVersion = (value) => {
12
12
  if (!match) {
13
13
  return undefined;
14
14
  }
15
- const major = Number.parseInt(match[1] ?? "");
15
+ const major = Number.parseInt(match[1] ?? "", 10);
16
16
  return Number.isNaN(major) ? undefined : major;
17
17
  };
18
18
  export const getYarnInstallArguments = (cwd) => {
@@ -47,3 +47,4 @@ export const getBinaryRunCommand = (pm, binary, arguments_) => {
47
47
  }
48
48
  }
49
49
  };
50
+ //# sourceMappingURL=package-manager-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager-commands.js","sourceRoot":"","sources":["../../src/project/package-manager-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAe,EACf,UAAoB,EACZ,EAAE;IACV,OAAO,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAsB,EAAE;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAY,EAAE;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE;QAC9C,GAAG;QACH,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,EAAwD,EACxD,MAAc,EACd,UAAoB,EACiB,EAAE;IACvC,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACpE,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAChE,CAAC;QACD,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC,CAAC"}
@@ -22,3 +22,4 @@ export declare function installDependencies(cwd: string, options?: {
22
22
  }): Promise<void>;
23
23
  export declare function runPackageManagerBinary(cwd: string, binary: string, arguments_?: string[], options?: RunOptions): Promise<RunBinaryResult | undefined>;
24
24
  export {};
25
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/project/package-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGtE,UAAU,UAAU;IAClB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,UAAU,eAAe;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmDD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAO,GACxD,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,MAAM,EAAO,EACzB,OAAO,GAAE,UAAe,GACvB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAqBtC"}
@@ -70,3 +70,4 @@ export async function runPackageManagerBinary(cwd, binary, arguments_ = [], opti
70
70
  }
71
71
  return undefined;
72
72
  }
73
+ //# sourceMappingURL=package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/project/package-manager.ts"],"names":[],"mappings":"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"}
@@ -11,3 +11,4 @@ export declare function setupProject(destinationDirectory: string, options?: {
11
11
  dryRun?: boolean;
12
12
  logger?: StatusLogger;
13
13
  }): Promise<void>;
14
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/project/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQtE;;GAEG;AACH,wBAAsB,YAAY,CAChC,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAO,GACxD,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
@@ -37,3 +37,4 @@ export async function setupProject(destinationDirectory, options = {}) {
37
37
  }
38
38
  }
39
39
  }
40
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/project/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,oBAA4B,EAC5B,UAAuD,EAAE;IAEzD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;IACxE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,MAAM,mBAAmB,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAEpE,4CAA4C;IAC5C,IAAI,MAAM,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC9C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,MAAM,iBAAiB,GAAG,MAAM,sBAAsB,CACpD,oBAAoB,EACpB,EAAE,MAAM,EAAE,CACX,CAAC;QACF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;gBACvE,MAAM;aACP,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CACT,6EAA6E,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -15,3 +15,4 @@ type HandleExistingDirectoryOptions = {
15
15
  };
16
16
  export declare function handleExistingDirectory(destinationDirectory: string, options?: HandleExistingDirectoryOptions): Promise<boolean>;
17
17
  export {};
18
+ //# sourceMappingURL=destination-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination-directory.d.ts","sourceRoot":"","sources":["../../src/worktree/destination-directory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGtE;;GAEG;AACH,KAAK,8BAA8B,GAAG;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC,CAAC;AAEF,wBAAsB,uBAAuB,CAC3C,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,OAAO,CAAC,CA0IlB"}
@@ -121,3 +121,4 @@ export async function handleExistingDirectory(destinationDirectory, options = {}
121
121
  }
122
122
  return true;
123
123
  }
124
+ //# sourceMappingURL=destination-directory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destination-directory.js","sourceRoot":"","sources":["../../src/worktree/destination-directory.ts"],"names":[],"mappings":"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"}
@@ -6,3 +6,4 @@
6
6
  export declare const EXTRA_IGNORED_PATTERNS: string[];
7
7
  export declare const globToRegExp: (globPattern: string) => RegExp;
8
8
  export declare const toPosixPath: (value: string) => string;
9
+ //# sourceMappingURL=file-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-patterns.d.ts","sourceRoot":"","sources":["../../src/worktree/file-patterns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAiB1C,CAAC;AAKF,eAAO,MAAM,YAAY,GAAI,aAAa,MAAM,KAAG,MAyBlD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MACf,CAAC"}
@@ -51,3 +51,4 @@ export const globToRegExp = (globPattern) => {
51
51
  return new RegExp(`^${regexBody}$`, "u");
52
52
  };
53
53
  export const toPosixPath = (value) => value.replaceAll("\\", "/");
54
+ //# sourceMappingURL=file-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-patterns.js","sourceRoot":"","sources":["../../src/worktree/file-patterns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,iBAAiB;IACjB,UAAU;IACV,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,aAAa;IACb,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,kBAAkB;IAClB,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,OAAO;CACzB,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAa,EAAU,EAAE,CAChD,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAU,EAAE;IAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;gBAC1B,SAAS,IAAI,IAAI,CAAC;gBAClB,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,SAAS,IAAI,OAAO,CAAC;YACvB,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,SAAS,IAAI,MAAM,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,SAAS,IAAI,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,SAAS,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CACnD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC"}
@@ -11,3 +11,4 @@ export declare function copyUntrackedFiles(repoRoot: string, destinationDirector
11
11
  dryRun?: boolean;
12
12
  logger?: StatusLogger;
13
13
  }): Promise<void>;
14
+ //# sourceMappingURL=untracked-file-copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"untracked-file-copy.d.ts","sourceRoot":"","sources":["../../src/worktree/untracked-file-copy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGtE;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,GACpD,OAAO,CAAC,IAAI,CAAC,CAmFf"}
@@ -75,3 +75,4 @@ export async function copyUntrackedFiles(repoRoot, destinationDirectory, options
75
75
  logger.detail(`Copied ${relativePath}`);
76
76
  }
77
77
  }
78
+ //# sourceMappingURL=untracked-file-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"untracked-file-copy.js","sourceRoot":"","sources":["../../src/worktree/untracked-file-copy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "worktree-add",
3
3
  "author": "Łukasz Jerciński",
4
4
  "license": "MIT",
5
- "version": "1.3.0",
5
+ "version": "1.3.2",
6
6
  "description": "Create a Git worktree next to your current repo for a branch, copy useful local files, install deps, and open it in your apps.",
7
7
  "repository": {
8
8
  "type": "git",
@@ -24,7 +24,7 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "prepare": "git config core.hooksPath .githooks",
27
- "prepublishOnly": "pnpm run rebuild",
27
+ "prepack": "pnpm run rebuild",
28
28
  "build": "tsc -p tsconfig.app.json",
29
29
  "clean": "rm -rf dist *.tsbuildinfo",
30
30
  "format": "prettier --write .",
@@ -47,28 +47,28 @@
47
47
  "git-worktree",
48
48
  "development"
49
49
  ],
50
- "packageManager": "pnpm@10.25.0",
50
+ "packageManager": "pnpm@10.30.1",
51
51
  "engines": {
52
- "node": ">=22.14.0"
52
+ "node": ">=22.19.0"
53
53
  },
54
54
  "dependencies": {
55
55
  "@commander-js/extra-typings": "^14.0.0",
56
- "commander": "^14.0.2",
56
+ "commander": "^14.0.3",
57
57
  "open": "^11.0.0",
58
58
  "package-manager-detector": "^1.6.0",
59
- "trash": "^10.0.1"
59
+ "trash": "^10.1.1"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@total-typescript/ts-reset": "^0.6.1",
63
- "@types/node": "^25.0.10",
63
+ "@types/node": "^25.3.5",
64
64
  "@vitest/coverage-v8": "^4.0.18",
65
- "eslint": "^9.39.2",
66
- "eslint-config-axkit": "^1.1.0",
65
+ "eslint": "^10.0.2",
66
+ "eslint-config-axkit": "^1.4.0",
67
67
  "fta-check": "^1.5.1",
68
68
  "fta-cli": "^3.0.0",
69
- "knip": "^5.82.1",
70
- "prettier": "3.7.4",
71
- "semantic-release": "^25.0.2",
69
+ "knip": "^5.85.0",
70
+ "prettier": "3.8.1",
71
+ "semantic-release": "^25.0.3",
72
72
  "typescript": "^5.9.3",
73
73
  "vitest": "^4.0.18"
74
74
  }