@camaradesuk/git-worktree-tools 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/README.md +4 -0
  2. package/dist/cli/cleanpr.d.ts +1 -6
  3. package/dist/cli/cleanpr.d.ts.map +1 -1
  4. package/dist/cli/cleanpr.js +110 -302
  5. package/dist/cli/cleanpr.js.map +1 -1
  6. package/dist/cli/cleanpr.test.d.ts +2 -0
  7. package/dist/cli/cleanpr.test.d.ts.map +1 -0
  8. package/dist/cli/cleanpr.test.js +225 -0
  9. package/dist/cli/cleanpr.test.js.map +1 -0
  10. package/dist/cli/lswt.d.ts +1 -4
  11. package/dist/cli/lswt.d.ts.map +1 -1
  12. package/dist/cli/lswt.js +32 -251
  13. package/dist/cli/lswt.js.map +1 -1
  14. package/dist/cli/lswt.test.d.ts +2 -0
  15. package/dist/cli/lswt.test.d.ts.map +1 -0
  16. package/dist/cli/lswt.test.js +165 -0
  17. package/dist/cli/lswt.test.js.map +1 -0
  18. package/dist/cli/newpr.d.ts +1 -4
  19. package/dist/cli/newpr.d.ts.map +1 -1
  20. package/dist/cli/newpr.js +98 -493
  21. package/dist/cli/newpr.js.map +1 -1
  22. package/dist/cli/newpr.test.d.ts +2 -0
  23. package/dist/cli/newpr.test.d.ts.map +1 -0
  24. package/dist/cli/newpr.test.js +329 -0
  25. package/dist/cli/newpr.test.js.map +1 -0
  26. package/dist/cli/wtlink.test.d.ts +2 -0
  27. package/dist/cli/wtlink.test.d.ts.map +1 -0
  28. package/dist/cli/wtlink.test.js +148 -0
  29. package/dist/cli/wtlink.test.js.map +1 -0
  30. package/dist/e2e/cli.e2e.test.js +44 -1
  31. package/dist/e2e/cli.e2e.test.js.map +1 -1
  32. package/dist/integration/git.integration.test.js.map +1 -1
  33. package/dist/lib/cleanpr/args.d.ts +14 -0
  34. package/dist/lib/cleanpr/args.d.ts.map +1 -0
  35. package/dist/lib/cleanpr/args.js +82 -0
  36. package/dist/lib/cleanpr/args.js.map +1 -0
  37. package/dist/lib/cleanpr/args.test.d.ts +2 -0
  38. package/dist/lib/cleanpr/args.test.d.ts.map +1 -0
  39. package/dist/lib/cleanpr/args.test.js +192 -0
  40. package/dist/lib/cleanpr/args.test.js.map +1 -0
  41. package/dist/lib/cleanpr/cleanup.d.ts +61 -0
  42. package/dist/lib/cleanpr/cleanup.d.ts.map +1 -0
  43. package/dist/lib/cleanpr/cleanup.js +97 -0
  44. package/dist/lib/cleanpr/cleanup.js.map +1 -0
  45. package/dist/lib/cleanpr/cleanup.test.d.ts +2 -0
  46. package/dist/lib/cleanpr/cleanup.test.d.ts.map +1 -0
  47. package/dist/lib/cleanpr/cleanup.test.js +264 -0
  48. package/dist/lib/cleanpr/cleanup.test.js.map +1 -0
  49. package/dist/lib/cleanpr/index.d.ts +10 -0
  50. package/dist/lib/cleanpr/index.d.ts.map +1 -0
  51. package/dist/lib/cleanpr/index.js +8 -0
  52. package/dist/lib/cleanpr/index.js.map +1 -0
  53. package/dist/lib/cleanpr/types.d.ts +49 -0
  54. package/dist/lib/cleanpr/types.d.ts.map +1 -0
  55. package/dist/lib/cleanpr/types.js +5 -0
  56. package/dist/lib/cleanpr/types.js.map +1 -0
  57. package/dist/lib/cleanpr/worktree-info.d.ts +27 -0
  58. package/dist/lib/cleanpr/worktree-info.d.ts.map +1 -0
  59. package/dist/lib/cleanpr/worktree-info.js +95 -0
  60. package/dist/lib/cleanpr/worktree-info.js.map +1 -0
  61. package/dist/lib/cleanpr/worktree-info.test.d.ts +2 -0
  62. package/dist/lib/cleanpr/worktree-info.test.d.ts.map +1 -0
  63. package/dist/lib/cleanpr/worktree-info.test.js +160 -0
  64. package/dist/lib/cleanpr/worktree-info.test.js.map +1 -0
  65. package/dist/lib/colors.test.js +73 -0
  66. package/dist/lib/colors.test.js.map +1 -1
  67. package/dist/lib/config.test.js +79 -2
  68. package/dist/lib/config.test.js.map +1 -1
  69. package/dist/lib/git.d.ts.map +1 -1
  70. package/dist/lib/git.js +4 -3
  71. package/dist/lib/git.js.map +1 -1
  72. package/dist/lib/git.test.js +7 -7
  73. package/dist/lib/git.test.js.map +1 -1
  74. package/dist/lib/github.d.ts.map +1 -1
  75. package/dist/lib/github.js +4 -3
  76. package/dist/lib/github.js.map +1 -1
  77. package/dist/lib/github.test.js +2 -2
  78. package/dist/lib/github.test.js.map +1 -1
  79. package/dist/lib/lswt/args.d.ts +14 -0
  80. package/dist/lib/lswt/args.d.ts.map +1 -0
  81. package/dist/lib/lswt/args.js +67 -0
  82. package/dist/lib/lswt/args.js.map +1 -0
  83. package/dist/lib/lswt/args.test.d.ts +2 -0
  84. package/dist/lib/lswt/args.test.d.ts.map +1 -0
  85. package/dist/lib/lswt/args.test.js +135 -0
  86. package/dist/lib/lswt/args.test.js.map +1 -0
  87. package/dist/lib/lswt/formatters.d.ts +29 -0
  88. package/dist/lib/lswt/formatters.d.ts.map +1 -0
  89. package/dist/lib/lswt/formatters.js +113 -0
  90. package/dist/lib/lswt/formatters.js.map +1 -0
  91. package/dist/lib/lswt/formatters.test.d.ts +2 -0
  92. package/dist/lib/lswt/formatters.test.d.ts.map +1 -0
  93. package/dist/lib/lswt/formatters.test.js +233 -0
  94. package/dist/lib/lswt/formatters.test.js.map +1 -0
  95. package/dist/lib/lswt/index.d.ts +9 -0
  96. package/dist/lib/lswt/index.d.ts.map +1 -0
  97. package/dist/lib/lswt/index.js +9 -0
  98. package/dist/lib/lswt/index.js.map +1 -0
  99. package/dist/lib/lswt/types.d.ts +44 -0
  100. package/dist/lib/lswt/types.d.ts.map +1 -0
  101. package/dist/lib/lswt/types.js +5 -0
  102. package/dist/lib/lswt/types.js.map +1 -0
  103. package/dist/lib/lswt/worktree-info.d.ts +23 -0
  104. package/dist/lib/lswt/worktree-info.d.ts.map +1 -0
  105. package/dist/lib/lswt/worktree-info.js +81 -0
  106. package/dist/lib/lswt/worktree-info.js.map +1 -0
  107. package/dist/lib/lswt/worktree-info.test.d.ts +2 -0
  108. package/dist/lib/lswt/worktree-info.test.d.ts.map +1 -0
  109. package/dist/lib/lswt/worktree-info.test.js +190 -0
  110. package/dist/lib/lswt/worktree-info.test.js.map +1 -0
  111. package/dist/lib/newpr/actions.d.ts +56 -0
  112. package/dist/lib/newpr/actions.d.ts.map +1 -0
  113. package/dist/lib/newpr/actions.js +130 -0
  114. package/dist/lib/newpr/actions.js.map +1 -0
  115. package/dist/lib/newpr/actions.test.d.ts +2 -0
  116. package/dist/lib/newpr/actions.test.d.ts.map +1 -0
  117. package/dist/lib/newpr/actions.test.js +254 -0
  118. package/dist/lib/newpr/actions.test.js.map +1 -0
  119. package/dist/lib/newpr/args.d.ts +17 -0
  120. package/dist/lib/newpr/args.d.ts.map +1 -0
  121. package/dist/lib/newpr/args.js +123 -0
  122. package/dist/lib/newpr/args.js.map +1 -0
  123. package/dist/lib/newpr/args.test.d.ts +2 -0
  124. package/dist/lib/newpr/args.test.d.ts.map +1 -0
  125. package/dist/lib/newpr/args.test.js +271 -0
  126. package/dist/lib/newpr/args.test.js.map +1 -0
  127. package/dist/lib/newpr/index.d.ts +10 -0
  128. package/dist/lib/newpr/index.d.ts.map +1 -0
  129. package/dist/lib/newpr/index.js +8 -0
  130. package/dist/lib/newpr/index.js.map +1 -0
  131. package/dist/lib/newpr/scenario-handler.d.ts +40 -0
  132. package/dist/lib/newpr/scenario-handler.d.ts.map +1 -0
  133. package/dist/lib/newpr/scenario-handler.js +261 -0
  134. package/dist/lib/newpr/scenario-handler.js.map +1 -0
  135. package/dist/lib/newpr/scenario-handler.test.d.ts +2 -0
  136. package/dist/lib/newpr/scenario-handler.test.d.ts.map +1 -0
  137. package/dist/lib/newpr/scenario-handler.test.js +250 -0
  138. package/dist/lib/newpr/scenario-handler.test.js.map +1 -0
  139. package/dist/lib/newpr/types.d.ts +76 -0
  140. package/dist/lib/newpr/types.d.ts.map +1 -0
  141. package/dist/lib/newpr/types.js +5 -0
  142. package/dist/lib/newpr/types.js.map +1 -0
  143. package/dist/lib/state-detection.d.ts.map +1 -1
  144. package/dist/lib/state-detection.js +12 -3
  145. package/dist/lib/state-detection.js.map +1 -1
  146. package/dist/lib/state-detection.test.js +253 -2
  147. package/dist/lib/state-detection.test.js.map +1 -1
  148. package/dist/lib/wtlink/link-configs.d.ts +40 -0
  149. package/dist/lib/wtlink/link-configs.d.ts.map +1 -1
  150. package/dist/lib/wtlink/link-configs.js +126 -11
  151. package/dist/lib/wtlink/link-configs.js.map +1 -1
  152. package/dist/lib/wtlink/link-configs.test.js +237 -84
  153. package/dist/lib/wtlink/link-configs.test.js.map +1 -1
  154. package/dist/lib/wtlink/manage-manifest.d.ts +86 -0
  155. package/dist/lib/wtlink/manage-manifest.d.ts.map +1 -1
  156. package/dist/lib/wtlink/manage-manifest.js +18 -15
  157. package/dist/lib/wtlink/manage-manifest.js.map +1 -1
  158. package/dist/lib/wtlink/manage-manifest.test.d.ts +2 -0
  159. package/dist/lib/wtlink/manage-manifest.test.d.ts.map +1 -0
  160. package/dist/lib/wtlink/manage-manifest.test.js +383 -0
  161. package/dist/lib/wtlink/manage-manifest.test.js.map +1 -0
  162. package/dist/lib/wtlink/validate-manifest.d.ts +27 -0
  163. package/dist/lib/wtlink/validate-manifest.d.ts.map +1 -1
  164. package/dist/lib/wtlink/validate-manifest.js +103 -28
  165. package/dist/lib/wtlink/validate-manifest.js.map +1 -1
  166. package/dist/lib/wtlink/validate-manifest.test.js +170 -65
  167. package/dist/lib/wtlink/validate-manifest.test.js.map +1 -1
  168. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-info.test.js","sourceRoot":"","sources":["../../../src/lib/lswt/worktree-info.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * newpr actions - git operations with dependency injection
3
+ *
4
+ * Executes state actions based on scenario handler decisions.
5
+ * Uses dependency injection for testability.
6
+ */
7
+ import type { StateAction, ActionResult } from './types.js';
8
+ /**
9
+ * Dependencies interface for action execution
10
+ */
11
+ export interface ActionDeps {
12
+ gitAdd: (path: string, cwd?: string) => void;
13
+ gitStash: (options: {
14
+ message?: string;
15
+ keepIndex?: boolean;
16
+ }, cwd?: string) => string | null;
17
+ gitPush: (options: {
18
+ remote: string;
19
+ branch: string;
20
+ setUpstream?: boolean;
21
+ }, cwd?: string) => void;
22
+ gitCommit: (options: {
23
+ message: string;
24
+ allowEmpty?: boolean;
25
+ }, cwd?: string) => void;
26
+ }
27
+ /**
28
+ * Execute a state action and return result
29
+ * Pure function with injected dependencies
30
+ */
31
+ export declare function executeStateAction(action: StateAction, _description: string, branchName: string, deps: ActionDeps, cwd?: string): ActionResult;
32
+ /**
33
+ * Get the git branch point for an action
34
+ */
35
+ export declare function getBranchPoint(action: StateAction, baseBranch: string): string;
36
+ /**
37
+ * Check if action requires staging all changes
38
+ */
39
+ export declare function requiresStageAll(action: StateAction): boolean;
40
+ /**
41
+ * Check if action involves stashing
42
+ */
43
+ export declare function involvesStashing(action: StateAction): boolean;
44
+ /**
45
+ * Check if action needs to push to origin/main first
46
+ */
47
+ export declare function needsPushToMain(action: StateAction): boolean;
48
+ /**
49
+ * Check if action commits to current branch before PR
50
+ */
51
+ export declare function commitsToCurrentBranch(action: StateAction): boolean;
52
+ /**
53
+ * Get the action description for logging
54
+ */
55
+ export declare function getActionDescription(action: StateAction): string;
56
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/lib/newpr/actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC9F,OAAO,EAAE,CACP,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,EAClE,GAAG,CAAC,EAAE,MAAM,KACT,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACvF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,YAAY,CAsEd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAM7D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA6BhE"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * newpr actions - git operations with dependency injection
3
+ *
4
+ * Executes state actions based on scenario handler decisions.
5
+ * Uses dependency injection for testability.
6
+ */
7
+ /**
8
+ * Execute a state action and return result
9
+ * Pure function with injected dependencies
10
+ */
11
+ export function executeStateAction(action, _description, branchName, deps, cwd) {
12
+ let stashRef = null;
13
+ try {
14
+ switch (action.action) {
15
+ case 'empty_commit':
16
+ // No action needed before branch creation
17
+ break;
18
+ case 'commit_staged':
19
+ // Will commit staged changes after creating branch
20
+ break;
21
+ case 'commit_all':
22
+ deps.gitAdd('.', cwd);
23
+ break;
24
+ case 'stash_and_empty':
25
+ stashRef = deps.gitStash({ message: `newpr: auto-stash before creating ${branchName}` }, cwd);
26
+ break;
27
+ case 'use_commits':
28
+ case 'branch_from_detached':
29
+ // Branch from HEAD instead of origin/main - no pre-action needed
30
+ break;
31
+ case 'use_commits_and_commit_all':
32
+ deps.gitAdd('.', cwd);
33
+ break;
34
+ case 'use_commits_and_stash':
35
+ stashRef = deps.gitStash({ message: `newpr: auto-stash before creating ${branchName}` }, cwd);
36
+ break;
37
+ case 'push_then_branch':
38
+ deps.gitPush({ remote: 'origin', branch: 'main' }, cwd);
39
+ break;
40
+ case 'pr_for_branch_commit_all':
41
+ deps.gitAdd('.', cwd);
42
+ deps.gitCommit({ message: 'chore: work in progress\n\n🤖 Committed with newpr' }, cwd);
43
+ break;
44
+ case 'pr_for_branch_stash':
45
+ stashRef = deps.gitStash({ message: 'newpr: auto-stash before creating PR' }, cwd);
46
+ break;
47
+ case 'create_pr_for_branch':
48
+ // No pre-action needed - will delegate to existing branch mode
49
+ break;
50
+ }
51
+ return {
52
+ success: true,
53
+ stashRef,
54
+ };
55
+ }
56
+ catch (err) {
57
+ const message = err instanceof Error ? err.message : String(err);
58
+ return {
59
+ success: false,
60
+ stashRef,
61
+ message,
62
+ };
63
+ }
64
+ }
65
+ /**
66
+ * Get the git branch point for an action
67
+ */
68
+ export function getBranchPoint(action, baseBranch) {
69
+ return action.branchFrom === 'head' ? 'HEAD' : `origin/${baseBranch}`;
70
+ }
71
+ /**
72
+ * Check if action requires staging all changes
73
+ */
74
+ export function requiresStageAll(action) {
75
+ return action.action === 'commit_all' || action.action === 'use_commits_and_commit_all';
76
+ }
77
+ /**
78
+ * Check if action involves stashing
79
+ */
80
+ export function involvesStashing(action) {
81
+ return (action.action === 'stash_and_empty' ||
82
+ action.action === 'use_commits_and_stash' ||
83
+ action.action === 'pr_for_branch_stash');
84
+ }
85
+ /**
86
+ * Check if action needs to push to origin/main first
87
+ */
88
+ export function needsPushToMain(action) {
89
+ return action.action === 'push_then_branch';
90
+ }
91
+ /**
92
+ * Check if action commits to current branch before PR
93
+ */
94
+ export function commitsToCurrentBranch(action) {
95
+ return action.action === 'pr_for_branch_commit_all';
96
+ }
97
+ /**
98
+ * Get the action description for logging
99
+ */
100
+ export function getActionDescription(action) {
101
+ switch (action.action) {
102
+ case 'empty_commit':
103
+ return 'Creating empty initial commit';
104
+ case 'commit_staged':
105
+ return 'Committing staged changes';
106
+ case 'commit_all':
107
+ return 'Staging and committing all changes';
108
+ case 'stash_and_empty':
109
+ return 'Stashing changes and creating empty commit';
110
+ case 'use_commits':
111
+ return 'Using existing commits for PR';
112
+ case 'push_then_branch':
113
+ return 'Pushing to main before creating branch';
114
+ case 'use_commits_and_commit_all':
115
+ return 'Using commits and staging all changes';
116
+ case 'use_commits_and_stash':
117
+ return 'Using commits and stashing uncommitted changes';
118
+ case 'create_pr_for_branch':
119
+ return 'Creating PR for current branch';
120
+ case 'pr_for_branch_commit_all':
121
+ return 'Committing changes to current branch for PR';
122
+ case 'pr_for_branch_stash':
123
+ return 'Stashing changes before creating PR';
124
+ case 'branch_from_detached':
125
+ return 'Creating branch from detached HEAD';
126
+ default:
127
+ return 'Executing action';
128
+ }
129
+ }
130
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../src/lib/newpr/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=actions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.test.d.ts","sourceRoot":"","sources":["../../../src/lib/newpr/actions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,254 @@
1
+ import { describe, it, expect, vi } from 'vitest';
2
+ import { executeStateAction, getBranchPoint, requiresStageAll, involvesStashing, needsPushToMain, commitsToCurrentBranch, getActionDescription, } from './actions.js';
3
+ describe('newpr/actions', () => {
4
+ const makeDeps = (overrides = {}) => ({
5
+ gitAdd: vi.fn(),
6
+ gitStash: vi.fn().mockReturnValue('stash@{0}'),
7
+ gitPush: vi.fn(),
8
+ gitCommit: vi.fn(),
9
+ ...overrides,
10
+ });
11
+ const makeAction = (overrides = {}) => ({
12
+ action: 'empty_commit',
13
+ branchFrom: 'origin_main',
14
+ stashUnstaged: false,
15
+ ...overrides,
16
+ });
17
+ describe('executeStateAction', () => {
18
+ describe('empty_commit action', () => {
19
+ it('does nothing and returns success', () => {
20
+ const deps = makeDeps();
21
+ const action = makeAction({ action: 'empty_commit' });
22
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
23
+ expect(result.success).toBe(true);
24
+ expect(result.stashRef).toBeNull();
25
+ expect(deps.gitAdd).not.toHaveBeenCalled();
26
+ expect(deps.gitStash).not.toHaveBeenCalled();
27
+ });
28
+ });
29
+ describe('commit_staged action', () => {
30
+ it('does nothing before branch creation', () => {
31
+ const deps = makeDeps();
32
+ const action = makeAction({ action: 'commit_staged' });
33
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
34
+ expect(result.success).toBe(true);
35
+ expect(deps.gitAdd).not.toHaveBeenCalled();
36
+ });
37
+ });
38
+ describe('commit_all action', () => {
39
+ it('stages all changes', () => {
40
+ const deps = makeDeps();
41
+ const action = makeAction({ action: 'commit_all' });
42
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
43
+ expect(result.success).toBe(true);
44
+ expect(deps.gitAdd).toHaveBeenCalledWith('.', undefined);
45
+ });
46
+ it('passes cwd when provided', () => {
47
+ const deps = makeDeps();
48
+ const action = makeAction({ action: 'commit_all' });
49
+ executeStateAction(action, 'My feature', 'feat/my-feature', deps, '/custom/path');
50
+ expect(deps.gitAdd).toHaveBeenCalledWith('.', '/custom/path');
51
+ });
52
+ });
53
+ describe('stash_and_empty action', () => {
54
+ it('stashes with branch name in message', () => {
55
+ const deps = makeDeps();
56
+ const action = makeAction({ action: 'stash_and_empty' });
57
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
58
+ expect(result.success).toBe(true);
59
+ expect(result.stashRef).toBe('stash@{0}');
60
+ expect(deps.gitStash).toHaveBeenCalledWith({ message: 'newpr: auto-stash before creating feat/my-feature' }, undefined);
61
+ });
62
+ });
63
+ describe('use_commits action', () => {
64
+ it('does nothing - branches from HEAD', () => {
65
+ const deps = makeDeps();
66
+ const action = makeAction({ action: 'use_commits', branchFrom: 'head' });
67
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
68
+ expect(result.success).toBe(true);
69
+ expect(deps.gitAdd).not.toHaveBeenCalled();
70
+ });
71
+ });
72
+ describe('branch_from_detached action', () => {
73
+ it('does nothing - branches from HEAD', () => {
74
+ const deps = makeDeps();
75
+ const action = makeAction({ action: 'branch_from_detached', branchFrom: 'head' });
76
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
77
+ expect(result.success).toBe(true);
78
+ });
79
+ });
80
+ describe('use_commits_and_commit_all action', () => {
81
+ it('stages all changes', () => {
82
+ const deps = makeDeps();
83
+ const action = makeAction({ action: 'use_commits_and_commit_all', branchFrom: 'head' });
84
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
85
+ expect(result.success).toBe(true);
86
+ expect(deps.gitAdd).toHaveBeenCalledWith('.', undefined);
87
+ });
88
+ });
89
+ describe('use_commits_and_stash action', () => {
90
+ it('stashes uncommitted changes', () => {
91
+ const deps = makeDeps();
92
+ const action = makeAction({ action: 'use_commits_and_stash', branchFrom: 'head' });
93
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
94
+ expect(result.success).toBe(true);
95
+ expect(result.stashRef).toBe('stash@{0}');
96
+ expect(deps.gitStash).toHaveBeenCalled();
97
+ });
98
+ });
99
+ describe('push_then_branch action', () => {
100
+ it('pushes to origin/main', () => {
101
+ const deps = makeDeps();
102
+ const action = makeAction({ action: 'push_then_branch' });
103
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
104
+ expect(result.success).toBe(true);
105
+ expect(deps.gitPush).toHaveBeenCalledWith({ remote: 'origin', branch: 'main' }, undefined);
106
+ });
107
+ });
108
+ describe('pr_for_branch_commit_all action', () => {
109
+ it('stages all and commits', () => {
110
+ const deps = makeDeps();
111
+ const action = makeAction({ action: 'pr_for_branch_commit_all', branchFrom: 'head' });
112
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
113
+ expect(result.success).toBe(true);
114
+ expect(deps.gitAdd).toHaveBeenCalledWith('.', undefined);
115
+ expect(deps.gitCommit).toHaveBeenCalledWith({ message: 'chore: work in progress\n\n🤖 Committed with newpr' }, undefined);
116
+ });
117
+ });
118
+ describe('pr_for_branch_stash action', () => {
119
+ it('stashes uncommitted changes', () => {
120
+ const deps = makeDeps();
121
+ const action = makeAction({ action: 'pr_for_branch_stash', branchFrom: 'head' });
122
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
123
+ expect(result.success).toBe(true);
124
+ expect(result.stashRef).toBe('stash@{0}');
125
+ expect(deps.gitStash).toHaveBeenCalledWith({ message: 'newpr: auto-stash before creating PR' }, undefined);
126
+ });
127
+ });
128
+ describe('create_pr_for_branch action', () => {
129
+ it('does nothing - delegates to existing branch mode', () => {
130
+ const deps = makeDeps();
131
+ const action = makeAction({ action: 'create_pr_for_branch', branchFrom: 'head' });
132
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
133
+ expect(result.success).toBe(true);
134
+ expect(deps.gitAdd).not.toHaveBeenCalled();
135
+ });
136
+ });
137
+ describe('error handling', () => {
138
+ it('returns failure on error', () => {
139
+ const deps = makeDeps({
140
+ gitAdd: vi.fn().mockImplementation(() => {
141
+ throw new Error('Permission denied');
142
+ }),
143
+ });
144
+ const action = makeAction({ action: 'commit_all' });
145
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
146
+ expect(result.success).toBe(false);
147
+ expect(result.message).toContain('Permission denied');
148
+ });
149
+ it('preserves stashRef on error', () => {
150
+ const deps = makeDeps({
151
+ gitStash: vi.fn().mockReturnValue('stash@{0}'),
152
+ gitPush: vi.fn().mockImplementation(() => {
153
+ throw new Error('Network error');
154
+ }),
155
+ });
156
+ // This scenario wouldn't happen in practice, but tests error path
157
+ const action = makeAction({ action: 'push_then_branch' });
158
+ const result = executeStateAction(action, 'My feature', 'feat/my-feature', deps);
159
+ expect(result.success).toBe(false);
160
+ });
161
+ });
162
+ });
163
+ describe('getBranchPoint', () => {
164
+ it('returns HEAD for head branchFrom', () => {
165
+ const action = makeAction({ branchFrom: 'head' });
166
+ expect(getBranchPoint(action, 'main')).toBe('HEAD');
167
+ });
168
+ it('returns origin/baseBranch for origin_main branchFrom', () => {
169
+ const action = makeAction({ branchFrom: 'origin_main' });
170
+ expect(getBranchPoint(action, 'main')).toBe('origin/main');
171
+ });
172
+ it('uses provided base branch', () => {
173
+ const action = makeAction({ branchFrom: 'origin_main' });
174
+ expect(getBranchPoint(action, 'develop')).toBe('origin/develop');
175
+ });
176
+ });
177
+ describe('requiresStageAll', () => {
178
+ it('returns true for commit_all', () => {
179
+ const action = makeAction({ action: 'commit_all' });
180
+ expect(requiresStageAll(action)).toBe(true);
181
+ });
182
+ it('returns true for use_commits_and_commit_all', () => {
183
+ const action = makeAction({ action: 'use_commits_and_commit_all' });
184
+ expect(requiresStageAll(action)).toBe(true);
185
+ });
186
+ it('returns false for other actions', () => {
187
+ expect(requiresStageAll(makeAction({ action: 'empty_commit' }))).toBe(false);
188
+ expect(requiresStageAll(makeAction({ action: 'stash_and_empty' }))).toBe(false);
189
+ });
190
+ });
191
+ describe('involvesStashing', () => {
192
+ it('returns true for stash_and_empty', () => {
193
+ const action = makeAction({ action: 'stash_and_empty' });
194
+ expect(involvesStashing(action)).toBe(true);
195
+ });
196
+ it('returns true for use_commits_and_stash', () => {
197
+ const action = makeAction({ action: 'use_commits_and_stash' });
198
+ expect(involvesStashing(action)).toBe(true);
199
+ });
200
+ it('returns true for pr_for_branch_stash', () => {
201
+ const action = makeAction({ action: 'pr_for_branch_stash' });
202
+ expect(involvesStashing(action)).toBe(true);
203
+ });
204
+ it('returns false for other actions', () => {
205
+ expect(involvesStashing(makeAction({ action: 'empty_commit' }))).toBe(false);
206
+ expect(involvesStashing(makeAction({ action: 'commit_all' }))).toBe(false);
207
+ });
208
+ });
209
+ describe('needsPushToMain', () => {
210
+ it('returns true for push_then_branch', () => {
211
+ const action = makeAction({ action: 'push_then_branch' });
212
+ expect(needsPushToMain(action)).toBe(true);
213
+ });
214
+ it('returns false for other actions', () => {
215
+ expect(needsPushToMain(makeAction({ action: 'empty_commit' }))).toBe(false);
216
+ expect(needsPushToMain(makeAction({ action: 'use_commits' }))).toBe(false);
217
+ });
218
+ });
219
+ describe('commitsToCurrentBranch', () => {
220
+ it('returns true for pr_for_branch_commit_all', () => {
221
+ const action = makeAction({ action: 'pr_for_branch_commit_all' });
222
+ expect(commitsToCurrentBranch(action)).toBe(true);
223
+ });
224
+ it('returns false for other actions', () => {
225
+ expect(commitsToCurrentBranch(makeAction({ action: 'commit_all' }))).toBe(false);
226
+ expect(commitsToCurrentBranch(makeAction({ action: 'pr_for_branch_stash' }))).toBe(false);
227
+ });
228
+ });
229
+ describe('getActionDescription', () => {
230
+ it('returns description for each action type', () => {
231
+ expect(getActionDescription(makeAction({ action: 'empty_commit' }))).toContain('empty');
232
+ expect(getActionDescription(makeAction({ action: 'commit_staged' }))).toContain('staged');
233
+ expect(getActionDescription(makeAction({ action: 'commit_all' }))).toContain('all');
234
+ expect(getActionDescription(makeAction({ action: 'stash_and_empty' }))).toContain('Stashing');
235
+ expect(getActionDescription(makeAction({ action: 'use_commits' }))).toContain('existing');
236
+ expect(getActionDescription(makeAction({ action: 'push_then_branch' }))).toContain('Pushing');
237
+ expect(getActionDescription(makeAction({ action: 'use_commits_and_commit_all' }))).toContain('staging');
238
+ expect(getActionDescription(makeAction({ action: 'use_commits_and_stash' }))).toContain('stashing');
239
+ expect(getActionDescription(makeAction({ action: 'create_pr_for_branch' }))).toContain('current branch');
240
+ expect(getActionDescription(makeAction({ action: 'pr_for_branch_commit_all' }))).toContain('Committing');
241
+ expect(getActionDescription(makeAction({ action: 'pr_for_branch_stash' }))).toContain('Stashing');
242
+ expect(getActionDescription(makeAction({ action: 'branch_from_detached' }))).toContain('detached');
243
+ });
244
+ it('returns generic description for unknown action', () => {
245
+ const action = {
246
+ action: 'unknown',
247
+ branchFrom: 'origin_main',
248
+ stashUnstaged: false,
249
+ };
250
+ expect(getActionDescription(action)).toBe('Executing action');
251
+ });
252
+ });
253
+ });
254
+ //# sourceMappingURL=actions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.test.js","sourceRoot":"","sources":["../../../src/lib/newpr/actions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GAErB,MAAM,cAAc,CAAC;AAGtB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,QAAQ,GAAG,CAAC,YAAiC,EAAE,EAAc,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;QACf,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC;QAC9C,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,GAAG,SAAS;KACb,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,YAAkC,EAAE,EAAe,EAAE,CAAC,CAAC;QACzE,MAAM,EAAE,cAAc;QACtB,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,KAAK;QACpB,GAAG,SAAS;KACb,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;YACnC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;gBAC1C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;gBAEtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;YACpC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC7C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;gBAEvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACjC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC5B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;gBAEpD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;gBAEpD,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;gBAElF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC7C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAEzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACxC,EAAE,OAAO,EAAE,mDAAmD,EAAE,EAChE,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC3C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEzE,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;gBAC3C,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAElF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;YACjD,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;gBAC5B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAExF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;YAC5C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACrC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEnF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACvC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;gBAC/B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAE1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;gBAChC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEtF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACzC,EAAE,OAAO,EAAE,oDAAoD,EAAE,EACjE,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;YAC1C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACrC,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAEjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACxC,EAAE,OAAO,EAAE,sCAAsC,EAAE,EACnD,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;gBAElF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,IAAI,GAAG,QAAQ,CAAC;oBACpB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;wBACtC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACvC,CAAC,CAAC;iBACH,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;gBAEpD,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACrC,MAAM,IAAI,GAAG,QAAQ,CAAC;oBACpB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC;oBAC9C,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;wBACvC,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;oBACnC,CAAC,CAAC;iBACH,CAAC,CAAC;gBACH,kEAAkE;gBAClE,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAE1D,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;YACpD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACpE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7E,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACzD,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;YAC/D,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7E,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjF,MAAM,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC1F,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC9F,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC1F,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9F,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAC1F,SAAS,CACV,CAAC;YACF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACrF,UAAU,CACX,CAAC;YACF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACpF,gBAAgB,CACjB,CAAC;YACF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACxF,YAAY,CACb,CAAC;YACF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACnF,UAAU,CACX,CAAC;YACF,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CACpF,UAAU,CACX,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,SAAkC;gBAC1C,UAAU,EAAE,aAAsB;gBAClC,aAAa,EAAE,KAAK;aACrB,CAAC;YACF,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * newpr args - pure argument parsing
3
+ */
4
+ import type { Options, ParseResult } from './types.js';
5
+ /**
6
+ * Default options
7
+ */
8
+ export declare function getDefaultOptions(): Options;
9
+ /**
10
+ * Parse command line arguments - pure function, no side effects
11
+ */
12
+ export declare function parseArgs(args: string[]): ParseResult;
13
+ /**
14
+ * Get help text as a string
15
+ */
16
+ export declare function getHelpText(): string;
17
+ //# sourceMappingURL=args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../../src/lib/newpr/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAS3C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAsFrD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAuBpC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * newpr args - pure argument parsing
3
+ */
4
+ /**
5
+ * Default options
6
+ */
7
+ export function getDefaultOptions() {
8
+ return {
9
+ mode: 'new',
10
+ baseBranch: 'main',
11
+ draft: true,
12
+ installDeps: false,
13
+ openEditor: false,
14
+ runWtlink: true,
15
+ };
16
+ }
17
+ /**
18
+ * Parse command line arguments - pure function, no side effects
19
+ */
20
+ export function parseArgs(args) {
21
+ const options = getDefaultOptions();
22
+ let i = 0;
23
+ while (i < args.length) {
24
+ const arg = args[i];
25
+ switch (arg) {
26
+ case '-h':
27
+ case '--help':
28
+ return { kind: 'help' };
29
+ case '--pr':
30
+ case '-p':
31
+ options.mode = 'pr';
32
+ i++;
33
+ if (!args[i] || args[i].startsWith('-')) {
34
+ return { kind: 'error', message: '--pr requires a PR number' };
35
+ }
36
+ options.prNumber = parseInt(args[i], 10);
37
+ if (isNaN(options.prNumber)) {
38
+ return { kind: 'error', message: 'PR number must be numeric' };
39
+ }
40
+ break;
41
+ case '--branch':
42
+ case '-B':
43
+ options.mode = 'branch';
44
+ i++;
45
+ if (!args[i] || args[i].startsWith('-')) {
46
+ return { kind: 'error', message: '--branch requires a branch name' };
47
+ }
48
+ options.branchName = args[i];
49
+ break;
50
+ case '-b':
51
+ case '--base':
52
+ i++;
53
+ if (!args[i] || args[i].startsWith('-')) {
54
+ return { kind: 'error', message: '--base requires a branch name' };
55
+ }
56
+ options.baseBranch = args[i];
57
+ break;
58
+ case '-i':
59
+ case '--install':
60
+ options.installDeps = true;
61
+ break;
62
+ case '-c':
63
+ case '--code':
64
+ options.openEditor = true;
65
+ break;
66
+ case '-r':
67
+ case '--ready':
68
+ options.draft = false;
69
+ break;
70
+ case '--no-wtlink':
71
+ options.runWtlink = false;
72
+ break;
73
+ default:
74
+ if (arg.startsWith('-')) {
75
+ return { kind: 'error', message: `Unknown option: ${arg}` };
76
+ }
77
+ // Positional argument = description
78
+ if (!options.description && options.mode === 'new') {
79
+ options.description = arg;
80
+ }
81
+ else {
82
+ return { kind: 'error', message: `Unexpected argument: ${arg}` };
83
+ }
84
+ }
85
+ i++;
86
+ }
87
+ // Validate
88
+ if (options.mode === 'new' && !options.description) {
89
+ return {
90
+ kind: 'error',
91
+ message: 'Description required. Usage: newpr "feature description"',
92
+ };
93
+ }
94
+ return { kind: 'success', options };
95
+ }
96
+ /**
97
+ * Get help text as a string
98
+ */
99
+ export function getHelpText() {
100
+ return `
101
+ newpr - Create or setup a PR with a dedicated worktree
102
+
103
+ Usage:
104
+ newpr "description" Create new branch + PR + worktree
105
+ newpr --pr <NUMBER> Setup worktree for existing PR
106
+ newpr --branch <NAME> Create PR for existing branch + worktree
107
+
108
+ Options:
109
+ -b, --base BRANCH Base branch for PR (default: main)
110
+ -i, --install Install dependencies after setup
111
+ -c, --code Open editor to the new worktree
112
+ -r, --ready Create PR as ready for review (default: draft)
113
+ --no-wtlink Skip wtlink config sync
114
+ -h, --help Show this help message
115
+
116
+ Examples:
117
+ newpr "Add user authentication"
118
+ newpr "Fix login bug" --install --code
119
+ newpr --pr 1234
120
+ newpr --branch feat/my-feature
121
+ `.trim();
122
+ }
123
+ //# sourceMappingURL=args.js.map