@camaradesuk/git-worktree-tools 1.7.0 → 1.9.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 (295) hide show
  1. package/README.md +69 -8
  2. package/dist/cli/cleanpr.js +11 -5
  3. package/dist/cli/cleanpr.js.map +1 -1
  4. package/dist/cli/cleanpr.test.js +12 -1
  5. package/dist/cli/cleanpr.test.js.map +1 -1
  6. package/dist/cli/newpr.js +302 -37
  7. package/dist/cli/newpr.js.map +1 -1
  8. package/dist/cli/newpr.test.js +336 -9
  9. package/dist/cli/newpr.test.js.map +1 -1
  10. package/dist/cli/prs.d.ts +22 -0
  11. package/dist/cli/prs.d.ts.map +1 -0
  12. package/dist/cli/prs.js +275 -0
  13. package/dist/cli/prs.js.map +1 -0
  14. package/dist/cli/prs.test.d.ts +8 -0
  15. package/dist/cli/prs.test.d.ts.map +1 -0
  16. package/dist/cli/prs.test.js +410 -0
  17. package/dist/cli/prs.test.js.map +1 -0
  18. package/dist/cli/wt/interactive-menu.d.ts +2 -0
  19. package/dist/cli/wt/interactive-menu.d.ts.map +1 -1
  20. package/dist/cli/wt/interactive-menu.js +17 -0
  21. package/dist/cli/wt/interactive-menu.js.map +1 -1
  22. package/dist/cli/wt/interactive-menu.test.js +28 -0
  23. package/dist/cli/wt/interactive-menu.test.js.map +1 -1
  24. package/dist/cli/wt/prs.d.ts +21 -0
  25. package/dist/cli/wt/prs.d.ts.map +1 -0
  26. package/dist/cli/wt/prs.js +251 -0
  27. package/dist/cli/wt/prs.js.map +1 -0
  28. package/dist/cli/wt/prs.test.d.ts +5 -0
  29. package/dist/cli/wt/prs.test.d.ts.map +1 -0
  30. package/dist/cli/wt/prs.test.js +410 -0
  31. package/dist/cli/wt/prs.test.js.map +1 -0
  32. package/dist/cli/wt.d.ts +1 -0
  33. package/dist/cli/wt.d.ts.map +1 -1
  34. package/dist/cli/wt.js +5 -0
  35. package/dist/cli/wt.js.map +1 -1
  36. package/dist/cli/wtconfig.d.ts +1 -0
  37. package/dist/cli/wtconfig.d.ts.map +1 -1
  38. package/dist/cli/wtconfig.js +115 -0
  39. package/dist/cli/wtconfig.js.map +1 -1
  40. package/dist/cli/wtconfig.test.js +6 -0
  41. package/dist/cli/wtconfig.test.js.map +1 -1
  42. package/dist/cli/wtlink.d.ts +2 -1
  43. package/dist/cli/wtlink.d.ts.map +1 -1
  44. package/dist/cli/wtlink.js +60 -2
  45. package/dist/cli/wtlink.js.map +1 -1
  46. package/dist/e2e/cli.e2e.test.js +6 -2
  47. package/dist/e2e/cli.e2e.test.js.map +1 -1
  48. package/dist/e2e/helpers/cli-runner.d.ts.map +1 -1
  49. package/dist/e2e/helpers/cli-runner.js +1 -0
  50. package/dist/e2e/helpers/cli-runner.js.map +1 -1
  51. package/dist/e2e/helpers/gh-mock.d.ts.map +1 -1
  52. package/dist/e2e/helpers/gh-mock.js +55 -1
  53. package/dist/e2e/helpers/gh-mock.js.map +1 -1
  54. package/dist/e2e/helpers/pty-wrapper.d.ts +15 -0
  55. package/dist/e2e/helpers/pty-wrapper.d.ts.map +1 -1
  56. package/dist/e2e/helpers/pty-wrapper.js +65 -0
  57. package/dist/e2e/helpers/pty-wrapper.js.map +1 -1
  58. package/dist/e2e/newpr-full-flow.e2e.test.js +1 -0
  59. package/dist/e2e/newpr-full-flow.e2e.test.js.map +1 -1
  60. package/dist/e2e/prs/prs.e2e.test.d.ts +7 -0
  61. package/dist/e2e/prs/prs.e2e.test.d.ts.map +1 -0
  62. package/dist/e2e/prs/prs.e2e.test.js +606 -0
  63. package/dist/e2e/prs/prs.e2e.test.js.map +1 -0
  64. package/dist/e2e/wt/interactive-menu.e2e.test.d.ts +8 -0
  65. package/dist/e2e/wt/interactive-menu.e2e.test.d.ts.map +1 -0
  66. package/dist/e2e/wt/interactive-menu.e2e.test.js +583 -0
  67. package/dist/e2e/wt/interactive-menu.e2e.test.js.map +1 -0
  68. package/dist/e2e/wt/wt.e2e.test.js +217 -4
  69. package/dist/e2e/wt/wt.e2e.test.js.map +1 -1
  70. package/dist/integration/prs.integration.test.d.ts +8 -0
  71. package/dist/integration/prs.integration.test.d.ts.map +1 -0
  72. package/dist/integration/prs.integration.test.js +478 -0
  73. package/dist/integration/prs.integration.test.js.map +1 -0
  74. package/dist/lib/ai/types.d.ts +12 -0
  75. package/dist/lib/ai/types.d.ts.map +1 -1
  76. package/dist/lib/ai/types.js.map +1 -1
  77. package/dist/lib/cleanpr/worktree-info.d.ts.map +1 -1
  78. package/dist/lib/cleanpr/worktree-info.js +1 -6
  79. package/dist/lib/cleanpr/worktree-info.js.map +1 -1
  80. package/dist/lib/cleanpr/worktree-info.test.js +10 -13
  81. package/dist/lib/cleanpr/worktree-info.test.js.map +1 -1
  82. package/dist/lib/config-editor.d.ts.map +1 -1
  83. package/dist/lib/config-editor.js.map +1 -1
  84. package/dist/lib/config-migration/detector.d.ts +25 -0
  85. package/dist/lib/config-migration/detector.d.ts.map +1 -0
  86. package/dist/lib/config-migration/detector.js +372 -0
  87. package/dist/lib/config-migration/detector.js.map +1 -0
  88. package/dist/lib/config-migration/detector.test.d.ts +5 -0
  89. package/dist/lib/config-migration/detector.test.d.ts.map +1 -0
  90. package/dist/lib/config-migration/detector.test.js +201 -0
  91. package/dist/lib/config-migration/detector.test.js.map +1 -0
  92. package/dist/lib/config-migration/index.d.ts +29 -0
  93. package/dist/lib/config-migration/index.d.ts.map +1 -0
  94. package/dist/lib/config-migration/index.js +33 -0
  95. package/dist/lib/config-migration/index.js.map +1 -0
  96. package/dist/lib/config-migration/reporter.d.ts +53 -0
  97. package/dist/lib/config-migration/reporter.d.ts.map +1 -0
  98. package/dist/lib/config-migration/reporter.js +257 -0
  99. package/dist/lib/config-migration/reporter.js.map +1 -0
  100. package/dist/lib/config-migration/reporter.test.d.ts +5 -0
  101. package/dist/lib/config-migration/reporter.test.d.ts.map +1 -0
  102. package/dist/lib/config-migration/reporter.test.js +305 -0
  103. package/dist/lib/config-migration/reporter.test.js.map +1 -0
  104. package/dist/lib/config-migration/runner.d.ts +46 -0
  105. package/dist/lib/config-migration/runner.d.ts.map +1 -0
  106. package/dist/lib/config-migration/runner.js +364 -0
  107. package/dist/lib/config-migration/runner.js.map +1 -0
  108. package/dist/lib/config-migration/runner.test.d.ts +5 -0
  109. package/dist/lib/config-migration/runner.test.d.ts.map +1 -0
  110. package/dist/lib/config-migration/runner.test.js +235 -0
  111. package/dist/lib/config-migration/runner.test.js.map +1 -0
  112. package/dist/lib/config-migration/types.d.ts +120 -0
  113. package/dist/lib/config-migration/types.d.ts.map +1 -0
  114. package/dist/lib/config-migration/types.js +70 -0
  115. package/dist/lib/config-migration/types.js.map +1 -0
  116. package/dist/lib/config-validation.d.ts.map +1 -1
  117. package/dist/lib/config-validation.js +62 -0
  118. package/dist/lib/config-validation.js.map +1 -1
  119. package/dist/lib/config-validation.test.js +25 -0
  120. package/dist/lib/config-validation.test.js.map +1 -1
  121. package/dist/lib/config.d.ts +65 -7
  122. package/dist/lib/config.d.ts.map +1 -1
  123. package/dist/lib/config.js +12 -0
  124. package/dist/lib/config.js.map +1 -1
  125. package/dist/lib/git.d.ts +32 -0
  126. package/dist/lib/git.d.ts.map +1 -1
  127. package/dist/lib/git.js +95 -1
  128. package/dist/lib/git.js.map +1 -1
  129. package/dist/lib/git.test.js +118 -1
  130. package/dist/lib/git.test.js.map +1 -1
  131. package/dist/lib/github.d.ts +41 -0
  132. package/dist/lib/github.d.ts.map +1 -1
  133. package/dist/lib/github.js +109 -0
  134. package/dist/lib/github.js.map +1 -1
  135. package/dist/lib/global-check.d.ts +2 -2
  136. package/dist/lib/global-check.js +3 -3
  137. package/dist/lib/global-check.js.map +1 -1
  138. package/dist/lib/global-check.test.js +3 -6
  139. package/dist/lib/global-check.test.js.map +1 -1
  140. package/dist/lib/hooks/confirmation.d.ts +49 -0
  141. package/dist/lib/hooks/confirmation.d.ts.map +1 -0
  142. package/dist/lib/hooks/confirmation.js +147 -0
  143. package/dist/lib/hooks/confirmation.js.map +1 -0
  144. package/dist/lib/hooks/confirmation.test.d.ts +7 -0
  145. package/dist/lib/hooks/confirmation.test.d.ts.map +1 -0
  146. package/dist/lib/hooks/confirmation.test.js +300 -0
  147. package/dist/lib/hooks/confirmation.test.js.map +1 -0
  148. package/dist/lib/hooks/executor.d.ts +16 -1
  149. package/dist/lib/hooks/executor.d.ts.map +1 -1
  150. package/dist/lib/hooks/executor.js +53 -4
  151. package/dist/lib/hooks/executor.js.map +1 -1
  152. package/dist/lib/hooks/index.d.ts +4 -2
  153. package/dist/lib/hooks/index.d.ts.map +1 -1
  154. package/dist/lib/hooks/index.js +3 -2
  155. package/dist/lib/hooks/index.js.map +1 -1
  156. package/dist/lib/hooks/types.d.ts +16 -0
  157. package/dist/lib/hooks/types.d.ts.map +1 -1
  158. package/dist/lib/hooks/types.js +12 -0
  159. package/dist/lib/hooks/types.js.map +1 -1
  160. package/dist/lib/json-output.d.ts +1 -0
  161. package/dist/lib/json-output.d.ts.map +1 -1
  162. package/dist/lib/json-output.js +2 -0
  163. package/dist/lib/json-output.js.map +1 -1
  164. package/dist/lib/lswt/action-executors.d.ts +2 -0
  165. package/dist/lib/lswt/action-executors.d.ts.map +1 -1
  166. package/dist/lib/lswt/action-executors.js +6 -4
  167. package/dist/lib/lswt/action-executors.js.map +1 -1
  168. package/dist/lib/lswt/action-executors.test.js +8 -0
  169. package/dist/lib/lswt/action-executors.test.js.map +1 -1
  170. package/dist/lib/lswt/actions.d.ts +1 -0
  171. package/dist/lib/lswt/actions.d.ts.map +1 -1
  172. package/dist/lib/lswt/actions.js +38 -10
  173. package/dist/lib/lswt/actions.js.map +1 -1
  174. package/dist/lib/lswt/actions.test.js +34 -22
  175. package/dist/lib/lswt/actions.test.js.map +1 -1
  176. package/dist/lib/lswt/environment.d.ts +21 -2
  177. package/dist/lib/lswt/environment.d.ts.map +1 -1
  178. package/dist/lib/lswt/environment.js +73 -32
  179. package/dist/lib/lswt/environment.js.map +1 -1
  180. package/dist/lib/lswt/environment.test.js +79 -1
  181. package/dist/lib/lswt/environment.test.js.map +1 -1
  182. package/dist/lib/lswt/interactive.js +8 -8
  183. package/dist/lib/lswt/interactive.js.map +1 -1
  184. package/dist/lib/lswt/worktree-info.d.ts.map +1 -1
  185. package/dist/lib/lswt/worktree-info.js +1 -6
  186. package/dist/lib/lswt/worktree-info.js.map +1 -1
  187. package/dist/lib/lswt/worktree-info.test.js +5 -17
  188. package/dist/lib/lswt/worktree-info.test.js.map +1 -1
  189. package/dist/lib/newpr/args.d.ts.map +1 -1
  190. package/dist/lib/newpr/args.js +15 -1
  191. package/dist/lib/newpr/args.js.map +1 -1
  192. package/dist/lib/newpr/hook-runner.d.ts +11 -0
  193. package/dist/lib/newpr/hook-runner.d.ts.map +1 -1
  194. package/dist/lib/newpr/hook-runner.js +49 -1
  195. package/dist/lib/newpr/hook-runner.js.map +1 -1
  196. package/dist/lib/newpr/hook-runner.test.js +121 -0
  197. package/dist/lib/newpr/hook-runner.test.js.map +1 -1
  198. package/dist/lib/newpr/plan-generator.d.ts +121 -0
  199. package/dist/lib/newpr/plan-generator.d.ts.map +1 -0
  200. package/dist/lib/newpr/plan-generator.js +185 -0
  201. package/dist/lib/newpr/plan-generator.js.map +1 -0
  202. package/dist/lib/newpr/plan-generator.test.d.ts +7 -0
  203. package/dist/lib/newpr/plan-generator.test.d.ts.map +1 -0
  204. package/dist/lib/newpr/plan-generator.test.js +387 -0
  205. package/dist/lib/newpr/plan-generator.test.js.map +1 -0
  206. package/dist/lib/newpr/types.d.ts +6 -0
  207. package/dist/lib/newpr/types.d.ts.map +1 -1
  208. package/dist/lib/prompts.d.ts.map +1 -1
  209. package/dist/lib/prompts.js +16 -12
  210. package/dist/lib/prompts.js.map +1 -1
  211. package/dist/lib/prs/actions.d.ts +74 -0
  212. package/dist/lib/prs/actions.d.ts.map +1 -0
  213. package/dist/lib/prs/actions.js +446 -0
  214. package/dist/lib/prs/actions.js.map +1 -0
  215. package/dist/lib/prs/actions.test.d.ts +5 -0
  216. package/dist/lib/prs/actions.test.d.ts.map +1 -0
  217. package/dist/lib/prs/actions.test.js +356 -0
  218. package/dist/lib/prs/actions.test.js.map +1 -0
  219. package/dist/lib/prs/data.d.ts +48 -0
  220. package/dist/lib/prs/data.d.ts.map +1 -0
  221. package/dist/lib/prs/data.js +171 -0
  222. package/dist/lib/prs/data.js.map +1 -0
  223. package/dist/lib/prs/data.test.d.ts +5 -0
  224. package/dist/lib/prs/data.test.d.ts.map +1 -0
  225. package/dist/lib/prs/data.test.js +417 -0
  226. package/dist/lib/prs/data.test.js.map +1 -0
  227. package/dist/lib/prs/details.d.ts +57 -0
  228. package/dist/lib/prs/details.d.ts.map +1 -0
  229. package/dist/lib/prs/details.js +246 -0
  230. package/dist/lib/prs/details.js.map +1 -0
  231. package/dist/lib/prs/details.test.d.ts +5 -0
  232. package/dist/lib/prs/details.test.d.ts.map +1 -0
  233. package/dist/lib/prs/details.test.js +325 -0
  234. package/dist/lib/prs/details.test.js.map +1 -0
  235. package/dist/lib/prs/filters.d.ts +56 -0
  236. package/dist/lib/prs/filters.d.ts.map +1 -0
  237. package/dist/lib/prs/filters.js +171 -0
  238. package/dist/lib/prs/filters.js.map +1 -0
  239. package/dist/lib/prs/filters.test.d.ts +5 -0
  240. package/dist/lib/prs/filters.test.d.ts.map +1 -0
  241. package/dist/lib/prs/filters.test.js +312 -0
  242. package/dist/lib/prs/filters.test.js.map +1 -0
  243. package/dist/lib/prs/formatters.d.ts +83 -0
  244. package/dist/lib/prs/formatters.d.ts.map +1 -0
  245. package/dist/lib/prs/formatters.js +389 -0
  246. package/dist/lib/prs/formatters.js.map +1 -0
  247. package/dist/lib/prs/formatters.test.d.ts +2 -0
  248. package/dist/lib/prs/formatters.test.d.ts.map +1 -0
  249. package/dist/lib/prs/formatters.test.js +387 -0
  250. package/dist/lib/prs/formatters.test.js.map +1 -0
  251. package/dist/lib/prs/interactive.d.ts +50 -0
  252. package/dist/lib/prs/interactive.d.ts.map +1 -0
  253. package/dist/lib/prs/interactive.js +453 -0
  254. package/dist/lib/prs/interactive.js.map +1 -0
  255. package/dist/lib/prs/interactive.test.d.ts +5 -0
  256. package/dist/lib/prs/interactive.test.d.ts.map +1 -0
  257. package/dist/lib/prs/interactive.test.js +364 -0
  258. package/dist/lib/prs/interactive.test.js.map +1 -0
  259. package/dist/lib/prs/types.d.ts +152 -0
  260. package/dist/lib/prs/types.d.ts.map +1 -0
  261. package/dist/lib/prs/types.js +17 -0
  262. package/dist/lib/prs/types.js.map +1 -0
  263. package/dist/lib/wtconfig/environment.d.ts +18 -1
  264. package/dist/lib/wtconfig/environment.d.ts.map +1 -1
  265. package/dist/lib/wtconfig/environment.js +60 -24
  266. package/dist/lib/wtconfig/environment.js.map +1 -1
  267. package/dist/lib/wtconfig/environment.test.js +45 -1
  268. package/dist/lib/wtconfig/environment.test.js.map +1 -1
  269. package/dist/lib/wtlink/config-manifest.d.ts +101 -0
  270. package/dist/lib/wtlink/config-manifest.d.ts.map +1 -0
  271. package/dist/lib/wtlink/config-manifest.js +219 -0
  272. package/dist/lib/wtlink/config-manifest.js.map +1 -0
  273. package/dist/lib/wtlink/config-manifest.test.d.ts +2 -0
  274. package/dist/lib/wtlink/config-manifest.test.d.ts.map +1 -0
  275. package/dist/lib/wtlink/config-manifest.test.js +486 -0
  276. package/dist/lib/wtlink/config-manifest.test.js.map +1 -0
  277. package/dist/lib/wtlink/link-configs.d.ts.map +1 -1
  278. package/dist/lib/wtlink/link-configs.js +36 -11
  279. package/dist/lib/wtlink/link-configs.js.map +1 -1
  280. package/dist/lib/wtlink/main-menu.d.ts.map +1 -1
  281. package/dist/lib/wtlink/main-menu.js +58 -50
  282. package/dist/lib/wtlink/main-menu.js.map +1 -1
  283. package/dist/lib/wtlink/main-menu.test.js +42 -40
  284. package/dist/lib/wtlink/main-menu.test.js.map +1 -1
  285. package/dist/lib/wtlink/manage-manifest.d.ts +9 -0
  286. package/dist/lib/wtlink/manage-manifest.d.ts.map +1 -1
  287. package/dist/lib/wtlink/manage-manifest.js +346 -25
  288. package/dist/lib/wtlink/manage-manifest.js.map +1 -1
  289. package/dist/lib/wtlink/manage-manifest.test.js +52 -1
  290. package/dist/lib/wtlink/manage-manifest.test.js.map +1 -1
  291. package/dist/lib/wtlink/validate-manifest.d.ts.map +1 -1
  292. package/dist/lib/wtlink/validate-manifest.js +27 -6
  293. package/dist/lib/wtlink/validate-manifest.js.map +1 -1
  294. package/package.json +2 -1
  295. package/schemas/worktreerc.schema.json +49 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manifest.js","sourceRoot":"","sources":["../../../src/lib/wtlink/config-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-manifest.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manifest.test.d.ts","sourceRoot":"","sources":["../../../src/lib/wtlink/config-manifest.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,486 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { loadManifestData, saveManifestData, hasLegacyManifest, getLegacyManifestPath, hasConfigManifest, migrateLegacyManifest, getEnabledFiles, isManifestEmpty, } from './config-manifest.js';
6
+ // Mock dependencies
7
+ vi.mock('../config.js', () => ({
8
+ loadConfig: vi.fn(),
9
+ saveConfig: vi.fn(),
10
+ }));
11
+ vi.mock('../logger.js', () => ({
12
+ logger: {
13
+ debug: vi.fn(),
14
+ warn: vi.fn(),
15
+ info: vi.fn(),
16
+ error: vi.fn(),
17
+ },
18
+ }));
19
+ import { loadConfig, saveConfig } from '../config.js';
20
+ import { DEFAULT_MANIFEST_FILE } from '../constants.js';
21
+ const mockedLoadConfig = vi.mocked(loadConfig);
22
+ const mockedSaveConfig = vi.mocked(saveConfig);
23
+ describe('config-manifest', () => {
24
+ let tempDir;
25
+ beforeEach(() => {
26
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'config-manifest-test-'));
27
+ vi.clearAllMocks();
28
+ });
29
+ afterEach(() => {
30
+ fs.rmSync(tempDir, { recursive: true, force: true });
31
+ });
32
+ describe('loadManifestData', () => {
33
+ it('should load from .worktreerc config when wtlink section has entries', () => {
34
+ mockedLoadConfig.mockReturnValue({
35
+ configVersion: 1,
36
+ wtlink: {
37
+ enabled: ['.env.local', '.vscode/settings.json'],
38
+ disabled: ['.env.production'],
39
+ },
40
+ // Other required fields from Required<WorktreeConfig>
41
+ sharedRepos: [],
42
+ baseBranch: 'main',
43
+ draftPr: false,
44
+ worktreePattern: '{repo}.pr{number}',
45
+ worktreeParent: '..',
46
+ syncPatterns: [],
47
+ branchPrefix: 'feat',
48
+ previewLabel: 'preview',
49
+ preferredEditor: 'vscode',
50
+ ai: { provider: 'none' },
51
+ hooks: {},
52
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
53
+ plugins: [],
54
+ generators: {},
55
+ integrations: {},
56
+ logging: { level: 'info', timestamps: true },
57
+ global: { warnNotGlobal: true },
58
+ linkConfigFiles: undefined,
59
+ });
60
+ const result = loadManifestData(tempDir);
61
+ expect(result).toEqual({
62
+ enabled: ['.env.local', '.vscode/settings.json'],
63
+ disabled: ['.env.production'],
64
+ source: 'config',
65
+ });
66
+ });
67
+ it('should fall back to legacy .wtlinkrc file when config has no wtlink entries', () => {
68
+ mockedLoadConfig.mockReturnValue({
69
+ configVersion: 1,
70
+ wtlink: { enabled: [], disabled: [] },
71
+ sharedRepos: [],
72
+ baseBranch: 'main',
73
+ draftPr: false,
74
+ worktreePattern: '{repo}.pr{number}',
75
+ worktreeParent: '..',
76
+ syncPatterns: [],
77
+ branchPrefix: 'feat',
78
+ previewLabel: 'preview',
79
+ preferredEditor: 'vscode',
80
+ ai: { provider: 'none' },
81
+ hooks: {},
82
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
83
+ plugins: [],
84
+ generators: {},
85
+ integrations: {},
86
+ logging: { level: 'info', timestamps: true },
87
+ global: { warnNotGlobal: true },
88
+ linkConfigFiles: undefined,
89
+ });
90
+ // Create legacy manifest file
91
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
92
+ fs.writeFileSync(legacyPath, `.env.local
93
+ .vscode/settings.json
94
+ # .env.production
95
+ `);
96
+ const result = loadManifestData(tempDir);
97
+ expect(result).toEqual({
98
+ enabled: ['.env.local', '.vscode/settings.json'],
99
+ disabled: ['.env.production'],
100
+ source: 'legacy-file',
101
+ });
102
+ });
103
+ it('should return empty manifest when neither config nor legacy file exists', () => {
104
+ mockedLoadConfig.mockReturnValue({
105
+ configVersion: 1,
106
+ wtlink: { enabled: [], disabled: [] },
107
+ sharedRepos: [],
108
+ baseBranch: 'main',
109
+ draftPr: false,
110
+ worktreePattern: '{repo}.pr{number}',
111
+ worktreeParent: '..',
112
+ syncPatterns: [],
113
+ branchPrefix: 'feat',
114
+ previewLabel: 'preview',
115
+ preferredEditor: 'vscode',
116
+ ai: { provider: 'none' },
117
+ hooks: {},
118
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
119
+ plugins: [],
120
+ generators: {},
121
+ integrations: {},
122
+ logging: { level: 'info', timestamps: true },
123
+ global: { warnNotGlobal: true },
124
+ linkConfigFiles: undefined,
125
+ });
126
+ const result = loadManifestData(tempDir);
127
+ expect(result).toEqual({
128
+ enabled: [],
129
+ disabled: [],
130
+ source: 'empty',
131
+ });
132
+ });
133
+ it('should prefer config over legacy file when both exist', () => {
134
+ mockedLoadConfig.mockReturnValue({
135
+ configVersion: 1,
136
+ wtlink: {
137
+ enabled: ['from-config.json'],
138
+ disabled: [],
139
+ },
140
+ sharedRepos: [],
141
+ baseBranch: 'main',
142
+ draftPr: false,
143
+ worktreePattern: '{repo}.pr{number}',
144
+ worktreeParent: '..',
145
+ syncPatterns: [],
146
+ branchPrefix: 'feat',
147
+ previewLabel: 'preview',
148
+ preferredEditor: 'vscode',
149
+ ai: { provider: 'none' },
150
+ hooks: {},
151
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
152
+ plugins: [],
153
+ generators: {},
154
+ integrations: {},
155
+ logging: { level: 'info', timestamps: true },
156
+ global: { warnNotGlobal: true },
157
+ linkConfigFiles: undefined,
158
+ });
159
+ // Create legacy manifest file (should be ignored)
160
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
161
+ fs.writeFileSync(legacyPath, 'from-legacy.json\n');
162
+ const result = loadManifestData(tempDir);
163
+ expect(result.source).toBe('config');
164
+ expect(result.enabled).toEqual(['from-config.json']);
165
+ });
166
+ });
167
+ describe('saveManifestData', () => {
168
+ it('should save manifest data to config via saveConfig', () => {
169
+ saveManifestData(tempDir, ['.env.local'], ['.env.production']);
170
+ expect(mockedSaveConfig).toHaveBeenCalledWith(tempDir, {
171
+ wtlink: {
172
+ enabled: ['.env.local'],
173
+ disabled: ['.env.production'],
174
+ },
175
+ }, { validate: false });
176
+ });
177
+ it('should save empty arrays when no files provided', () => {
178
+ saveManifestData(tempDir, [], []);
179
+ expect(mockedSaveConfig).toHaveBeenCalledWith(tempDir, {
180
+ wtlink: {
181
+ enabled: [],
182
+ disabled: [],
183
+ },
184
+ }, { validate: false });
185
+ });
186
+ });
187
+ describe('hasLegacyManifest', () => {
188
+ it('should return true when legacy file exists', () => {
189
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
190
+ fs.writeFileSync(legacyPath, '.env.local\n');
191
+ expect(hasLegacyManifest(tempDir)).toBe(true);
192
+ });
193
+ it('should return false when legacy file does not exist', () => {
194
+ expect(hasLegacyManifest(tempDir)).toBe(false);
195
+ });
196
+ });
197
+ describe('getLegacyManifestPath', () => {
198
+ it('should return correct path to legacy manifest', () => {
199
+ const result = getLegacyManifestPath(tempDir);
200
+ expect(result).toBe(path.join(tempDir, DEFAULT_MANIFEST_FILE));
201
+ });
202
+ });
203
+ describe('hasConfigManifest', () => {
204
+ it('should return true when config has enabled entries', () => {
205
+ mockedLoadConfig.mockReturnValue({
206
+ configVersion: 1,
207
+ wtlink: { enabled: ['.env'], disabled: [] },
208
+ sharedRepos: [],
209
+ baseBranch: 'main',
210
+ draftPr: false,
211
+ worktreePattern: '{repo}.pr{number}',
212
+ worktreeParent: '..',
213
+ syncPatterns: [],
214
+ branchPrefix: 'feat',
215
+ previewLabel: 'preview',
216
+ preferredEditor: 'vscode',
217
+ ai: { provider: 'none' },
218
+ hooks: {},
219
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
220
+ plugins: [],
221
+ generators: {},
222
+ integrations: {},
223
+ logging: { level: 'info', timestamps: true },
224
+ global: { warnNotGlobal: true },
225
+ linkConfigFiles: undefined,
226
+ });
227
+ expect(hasConfigManifest(tempDir)).toBe(true);
228
+ });
229
+ it('should return true when config has disabled entries', () => {
230
+ mockedLoadConfig.mockReturnValue({
231
+ configVersion: 1,
232
+ wtlink: { enabled: [], disabled: ['.env'] },
233
+ sharedRepos: [],
234
+ baseBranch: 'main',
235
+ draftPr: false,
236
+ worktreePattern: '{repo}.pr{number}',
237
+ worktreeParent: '..',
238
+ syncPatterns: [],
239
+ branchPrefix: 'feat',
240
+ previewLabel: 'preview',
241
+ preferredEditor: 'vscode',
242
+ ai: { provider: 'none' },
243
+ hooks: {},
244
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
245
+ plugins: [],
246
+ generators: {},
247
+ integrations: {},
248
+ logging: { level: 'info', timestamps: true },
249
+ global: { warnNotGlobal: true },
250
+ linkConfigFiles: undefined,
251
+ });
252
+ expect(hasConfigManifest(tempDir)).toBe(true);
253
+ });
254
+ it('should return false when config has no entries', () => {
255
+ mockedLoadConfig.mockReturnValue({
256
+ configVersion: 1,
257
+ wtlink: { enabled: [], disabled: [] },
258
+ sharedRepos: [],
259
+ baseBranch: 'main',
260
+ draftPr: false,
261
+ worktreePattern: '{repo}.pr{number}',
262
+ worktreeParent: '..',
263
+ syncPatterns: [],
264
+ branchPrefix: 'feat',
265
+ previewLabel: 'preview',
266
+ preferredEditor: 'vscode',
267
+ ai: { provider: 'none' },
268
+ hooks: {},
269
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
270
+ plugins: [],
271
+ generators: {},
272
+ integrations: {},
273
+ logging: { level: 'info', timestamps: true },
274
+ global: { warnNotGlobal: true },
275
+ linkConfigFiles: undefined,
276
+ });
277
+ expect(hasConfigManifest(tempDir)).toBe(false);
278
+ });
279
+ });
280
+ describe('migrateLegacyManifest', () => {
281
+ beforeEach(() => {
282
+ // Reset hasConfigManifest check
283
+ mockedLoadConfig.mockReturnValue({
284
+ configVersion: 1,
285
+ wtlink: { enabled: [], disabled: [] },
286
+ sharedRepos: [],
287
+ baseBranch: 'main',
288
+ draftPr: false,
289
+ worktreePattern: '{repo}.pr{number}',
290
+ worktreeParent: '..',
291
+ syncPatterns: [],
292
+ branchPrefix: 'feat',
293
+ previewLabel: 'preview',
294
+ preferredEditor: 'vscode',
295
+ ai: { provider: 'none' },
296
+ hooks: {},
297
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
298
+ plugins: [],
299
+ generators: {},
300
+ integrations: {},
301
+ logging: { level: 'info', timestamps: true },
302
+ global: { warnNotGlobal: true },
303
+ linkConfigFiles: undefined,
304
+ });
305
+ });
306
+ it('should return not migrated when no legacy file exists', () => {
307
+ const result = migrateLegacyManifest(tempDir);
308
+ expect(result.migrated).toBe(false);
309
+ expect(result.message).toContain('No legacy');
310
+ });
311
+ it('should return not migrated when config already has manifest data', () => {
312
+ // Create legacy file
313
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
314
+ fs.writeFileSync(legacyPath, '.env.local\n');
315
+ // Mock that config already has entries
316
+ mockedLoadConfig.mockReturnValue({
317
+ configVersion: 1,
318
+ wtlink: { enabled: ['existing.json'], disabled: [] },
319
+ sharedRepos: [],
320
+ baseBranch: 'main',
321
+ draftPr: false,
322
+ worktreePattern: '{repo}.pr{number}',
323
+ worktreeParent: '..',
324
+ syncPatterns: [],
325
+ branchPrefix: 'feat',
326
+ previewLabel: 'preview',
327
+ preferredEditor: 'vscode',
328
+ ai: { provider: 'none' },
329
+ hooks: {},
330
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
331
+ plugins: [],
332
+ generators: {},
333
+ integrations: {},
334
+ logging: { level: 'info', timestamps: true },
335
+ global: { warnNotGlobal: true },
336
+ linkConfigFiles: undefined,
337
+ });
338
+ const result = migrateLegacyManifest(tempDir);
339
+ expect(result.migrated).toBe(false);
340
+ expect(result.message).toContain('already has wtlink section');
341
+ });
342
+ it('should perform dry run without making changes', () => {
343
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
344
+ fs.writeFileSync(legacyPath, `.env.local
345
+ # .env.disabled
346
+ `);
347
+ const result = migrateLegacyManifest(tempDir, { dryRun: true });
348
+ expect(result.migrated).toBe(false);
349
+ expect(result.message).toContain('[DRY RUN]');
350
+ expect(result.enabledCount).toBe(1);
351
+ expect(result.disabledCount).toBe(1);
352
+ expect(mockedSaveConfig).not.toHaveBeenCalled();
353
+ });
354
+ it('should migrate legacy file and preserve it by default', () => {
355
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
356
+ fs.writeFileSync(legacyPath, `.env.local
357
+ .vscode/settings.json
358
+ # .env.disabled
359
+ `);
360
+ const result = migrateLegacyManifest(tempDir);
361
+ expect(result.migrated).toBe(true);
362
+ expect(result.enabledCount).toBe(2);
363
+ expect(result.disabledCount).toBe(1);
364
+ expect(result.message).toContain('preserved');
365
+ expect(mockedSaveConfig).toHaveBeenCalled();
366
+ expect(fs.existsSync(legacyPath)).toBe(true); // Legacy file preserved
367
+ });
368
+ it('should migrate and delete legacy file when deleteLegacy is true', () => {
369
+ const legacyPath = path.join(tempDir, DEFAULT_MANIFEST_FILE);
370
+ fs.writeFileSync(legacyPath, '.env.local\n');
371
+ const result = migrateLegacyManifest(tempDir, { deleteLegacy: true });
372
+ expect(result.migrated).toBe(true);
373
+ expect(result.message).toContain('deleted');
374
+ expect(fs.existsSync(legacyPath)).toBe(false);
375
+ });
376
+ });
377
+ describe('getEnabledFiles', () => {
378
+ it('should return only enabled files from manifest', () => {
379
+ mockedLoadConfig.mockReturnValue({
380
+ configVersion: 1,
381
+ wtlink: {
382
+ enabled: ['file1.json', 'file2.json'],
383
+ disabled: ['disabled.json'],
384
+ },
385
+ sharedRepos: [],
386
+ baseBranch: 'main',
387
+ draftPr: false,
388
+ worktreePattern: '{repo}.pr{number}',
389
+ worktreeParent: '..',
390
+ syncPatterns: [],
391
+ branchPrefix: 'feat',
392
+ previewLabel: 'preview',
393
+ preferredEditor: 'vscode',
394
+ ai: { provider: 'none' },
395
+ hooks: {},
396
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
397
+ plugins: [],
398
+ generators: {},
399
+ integrations: {},
400
+ logging: { level: 'info', timestamps: true },
401
+ global: { warnNotGlobal: true },
402
+ linkConfigFiles: undefined,
403
+ });
404
+ const result = getEnabledFiles(tempDir);
405
+ expect(result).toEqual(['file1.json', 'file2.json']);
406
+ });
407
+ });
408
+ describe('isManifestEmpty', () => {
409
+ it('should return true when manifest has no entries', () => {
410
+ mockedLoadConfig.mockReturnValue({
411
+ configVersion: 1,
412
+ wtlink: { enabled: [], disabled: [] },
413
+ sharedRepos: [],
414
+ baseBranch: 'main',
415
+ draftPr: false,
416
+ worktreePattern: '{repo}.pr{number}',
417
+ worktreeParent: '..',
418
+ syncPatterns: [],
419
+ branchPrefix: 'feat',
420
+ previewLabel: 'preview',
421
+ preferredEditor: 'vscode',
422
+ ai: { provider: 'none' },
423
+ hooks: {},
424
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
425
+ plugins: [],
426
+ generators: {},
427
+ integrations: {},
428
+ logging: { level: 'info', timestamps: true },
429
+ global: { warnNotGlobal: true },
430
+ linkConfigFiles: undefined,
431
+ });
432
+ expect(isManifestEmpty(tempDir)).toBe(true);
433
+ });
434
+ it('should return false when manifest has enabled entries', () => {
435
+ mockedLoadConfig.mockReturnValue({
436
+ configVersion: 1,
437
+ wtlink: { enabled: ['.env'], disabled: [] },
438
+ sharedRepos: [],
439
+ baseBranch: 'main',
440
+ draftPr: false,
441
+ worktreePattern: '{repo}.pr{number}',
442
+ worktreeParent: '..',
443
+ syncPatterns: [],
444
+ branchPrefix: 'feat',
445
+ previewLabel: 'preview',
446
+ preferredEditor: 'vscode',
447
+ ai: { provider: 'none' },
448
+ hooks: {},
449
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
450
+ plugins: [],
451
+ generators: {},
452
+ integrations: {},
453
+ logging: { level: 'info', timestamps: true },
454
+ global: { warnNotGlobal: true },
455
+ linkConfigFiles: undefined,
456
+ });
457
+ expect(isManifestEmpty(tempDir)).toBe(false);
458
+ });
459
+ it('should return false when manifest has disabled entries', () => {
460
+ mockedLoadConfig.mockReturnValue({
461
+ configVersion: 1,
462
+ wtlink: { enabled: [], disabled: ['.env'] },
463
+ sharedRepos: [],
464
+ baseBranch: 'main',
465
+ draftPr: false,
466
+ worktreePattern: '{repo}.pr{number}',
467
+ worktreeParent: '..',
468
+ syncPatterns: [],
469
+ branchPrefix: 'feat',
470
+ previewLabel: 'preview',
471
+ preferredEditor: 'vscode',
472
+ ai: { provider: 'none' },
473
+ hooks: {},
474
+ hookDefaults: { timeout: 30000, maxTimeout: 60000 },
475
+ plugins: [],
476
+ generators: {},
477
+ integrations: {},
478
+ logging: { level: 'info', timestamps: true },
479
+ global: { warnNotGlobal: true },
480
+ linkConfigFiles: undefined,
481
+ });
482
+ expect(isManifestEmpty(tempDir)).toBe(false);
483
+ });
484
+ });
485
+ });
486
+ //# sourceMappingURL=config-manifest.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manifest.test.js","sourceRoot":"","sources":["../../../src/lib/wtlink/config-manifest.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,eAAe,GAEhB,MAAM,sBAAsB,CAAC;AAE9B,oBAAoB;AACpB,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;CACpB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACf;CACF,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC/C,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAE/C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,OAAe,CAAC;IAEpB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC7E,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC;oBAChD,QAAQ,EAAE,CAAC,iBAAiB,CAAC;iBAC9B;gBACD,sDAAsD;gBACtD,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,OAAO,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC;gBAChD,QAAQ,EAAE,CAAC,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;YACrF,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACrC,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,8BAA8B;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CACd,UAAU,EACV;;;CAGP,CACM,CAAC;YAEF,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,OAAO,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC;gBAChD,QAAQ,EAAE,CAAC,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;YACjF,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACrC,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,QAAQ,EAAE,EAAE;iBACb;gBACD,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,kDAAkD;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;YAEnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,gBAAgB,CAAC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE/D,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,OAAO,EACP;gBACE,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,QAAQ,EAAE,CAAC,iBAAiB,CAAC;iBAC9B;aACF,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,gBAAgB,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAElC,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,OAAO,EACP;gBACE,MAAM,EAAE;oBACN,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,EAAE;iBACb;aACF,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAE7C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC3C,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;gBAC3C,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACrC,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,UAAU,CAAC,GAAG,EAAE;YACd,gCAAgC;YAChC,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACrC,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,qBAAqB;YACrB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAE7C,uCAAuC;YACvC,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACpD,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CACd,UAAU,EACV;;CAEP,CACM,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CACd,UAAU,EACV;;;CAGP,CACM,CAAC;YAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAC7D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAEtE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;oBACrC,QAAQ,EAAE,CAAC,eAAe,CAAC;iBAC5B;gBACD,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAExC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;gBACrC,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;gBAC3C,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,gBAAgB,CAAC,eAAe,CAAC;gBAC/B,aAAa,EAAE,CAAC;gBAChB,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE;gBAC3C,WAAW,EAAE,EAAE;gBACf,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,mBAAmB;gBACpC,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,EAAE;gBAChB,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,SAAS;gBACvB,eAAe,EAAE,QAAQ;gBACzB,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACxB,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE;gBACnD,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;gBAC/B,eAAe,EAAE,SAAS;aACM,CAAC,CAAC;YAEpC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"link-configs.d.ts","sourceRoot":"","sources":["../../../src/lib/wtlink/link-configs.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,gBAAgB,GAAG,UAAU,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CA0CxF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAkC9D;AA6CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAarE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAG3D;AAqED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0B7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,cAAc,CA2BhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CA8BlF;AA+ID,wBAAsB,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAyNvD"}
1
+ {"version":3,"file":"link-configs.d.ts","sourceRoot":"","sources":["../../../src/lib/wtlink/link-configs.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,gBAAgB,GAAG,UAAU,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CA0CxF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAkC9D;AA6CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAarE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAG3D;AAqED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0B7E;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,cAAc,CA2BhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CA8BlF;AA+ID,wBAAsB,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAuPvD"}
@@ -3,7 +3,8 @@ import path from 'path';
3
3
  import inquirer from 'inquirer';
4
4
  import * as colors from '../colors.js';
5
5
  import * as git from '../git.js';
6
- import { COMMON_BASE_BRANCHES } from '../constants.js';
6
+ import { COMMON_BASE_BRANCHES, DEFAULT_MANIFEST_FILE } from '../constants.js';
7
+ import { loadManifestData, saveManifestData } from './config-manifest.js';
7
8
  /**
8
9
  * Parse manifest content into active and commented file entries
9
10
  */
@@ -363,8 +364,9 @@ export async function run(argv) {
363
364
  }
364
365
  const gitRoot = git.getRepoRoot(); // Current worktree root
365
366
  const mainWorktreeRoot = git.getMainWorktreeRoot(); // Main worktree root (for manifest location)
366
- const manifestFile = argv.manifestFile;
367
- const manifestPath = path.join(mainWorktreeRoot, manifestFile);
367
+ // Determine if using custom manifest file or config-based approach
368
+ const usingCustomManifest = argv.manifestFile !== DEFAULT_MANIFEST_FILE;
369
+ const manifestPath = path.join(mainWorktreeRoot, argv.manifestFile);
368
370
  const { sourceDir, destDir } = resolveWorktreePaths(argv, gitRoot);
369
371
  if (!fs.existsSync(sourceDir) || !fs.statSync(sourceDir).isDirectory()) {
370
372
  throw new Error(`Source directory does not exist or is not a directory: ${sourceDir}`);
@@ -378,14 +380,28 @@ export async function run(argv) {
378
380
  console.log(colors.yellow('\nOperation cancelled.'));
379
381
  return;
380
382
  }
381
- if (!fs.existsSync(manifestPath)) {
382
- throw new Error(`Manifest file not found at ${manifestPath}`);
383
+ // Load manifest data: use custom file if specified, otherwise use config-manifest adapter
384
+ let filesToLink;
385
+ let manifestData = null;
386
+ if (usingCustomManifest) {
387
+ // Legacy behavior for custom manifest files
388
+ if (!fs.existsSync(manifestPath)) {
389
+ throw new Error(`Manifest file not found at ${manifestPath}`);
390
+ }
391
+ filesToLink = fs
392
+ .readFileSync(manifestPath, 'utf-8')
393
+ .split('\n')
394
+ .map((line) => line.trim())
395
+ .filter((line) => line && !line.startsWith('#'));
396
+ }
397
+ else {
398
+ // Use config-manifest adapter (checks .worktreerc first, falls back to legacy .wtlinkrc)
399
+ manifestData = loadManifestData(mainWorktreeRoot);
400
+ filesToLink = manifestData.enabled;
401
+ if (manifestData.source === 'empty') {
402
+ throw new Error('No manifest found. Run `wtlink manage` to configure files to sync, or create a .worktreerc with a wtlink section.');
403
+ }
383
404
  }
384
- const filesToLink = fs
385
- .readFileSync(manifestPath, 'utf-8')
386
- .split('\n')
387
- .map((line) => line.trim())
388
- .filter((line) => line && !line.startsWith('#'));
389
405
  if (filesToLink.length === 0) {
390
406
  console.log(colors.yellow('Manifest is empty. Nothing to link.'));
391
407
  return;
@@ -470,7 +486,16 @@ export async function run(argv) {
470
486
  }
471
487
  // Update manifest if files were removed
472
488
  if (filesToRemoveFromManifest.length > 0) {
473
- updateManifest(manifestPath, filesToRemoveFromManifest);
489
+ if (usingCustomManifest) {
490
+ // Legacy behavior for custom manifest files
491
+ updateManifest(manifestPath, filesToRemoveFromManifest);
492
+ }
493
+ else if (manifestData) {
494
+ // Use config-manifest adapter to save updated manifest
495
+ const updatedEnabled = manifestData.enabled.filter((f) => !filesToRemoveFromManifest.includes(f));
496
+ const updatedDisabled = manifestData.disabled.filter((f) => !filesToRemoveFromManifest.includes(f));
497
+ saveManifestData(mainWorktreeRoot, updatedEnabled, updatedDisabled);
498
+ }
474
499
  console.log(colors.red(`Updated manifest: removed ${filesToRemoveFromManifest.length} files\n`));
475
500
  }
476
501
  let linkedCount = 0;