@sk8metal/michi-cli 0.5.0 → 0.7.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 (278) hide show
  1. package/CHANGELOG.md +122 -1
  2. package/README.md +2 -1
  3. package/dist/scripts/config/config-schema.d.ts +35 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js +56 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -1
  7. package/dist/scripts/confluence-sync.d.ts.map +1 -1
  8. package/dist/scripts/confluence-sync.js +15 -2
  9. package/dist/scripts/confluence-sync.js.map +1 -1
  10. package/dist/scripts/github-actions-client.d.ts +79 -0
  11. package/dist/scripts/github-actions-client.d.ts.map +1 -0
  12. package/dist/scripts/github-actions-client.js +182 -0
  13. package/dist/scripts/github-actions-client.js.map +1 -0
  14. package/dist/scripts/health-check-service.d.ts +46 -0
  15. package/dist/scripts/health-check-service.d.ts.map +1 -0
  16. package/dist/scripts/health-check-service.js +114 -0
  17. package/dist/scripts/health-check-service.js.map +1 -0
  18. package/dist/scripts/markdown-to-confluence.d.ts.map +1 -1
  19. package/dist/scripts/markdown-to-confluence.js +25 -3
  20. package/dist/scripts/markdown-to-confluence.js.map +1 -1
  21. package/dist/scripts/mermaid-converter.d.ts +24 -0
  22. package/dist/scripts/mermaid-converter.d.ts.map +1 -0
  23. package/dist/scripts/mermaid-converter.js +49 -0
  24. package/dist/scripts/mermaid-converter.js.map +1 -0
  25. package/dist/scripts/template/multi-repo-renderer.d.ts +67 -0
  26. package/dist/scripts/template/multi-repo-renderer.d.ts.map +1 -0
  27. package/dist/scripts/template/multi-repo-renderer.js +123 -0
  28. package/dist/scripts/template/multi-repo-renderer.js.map +1 -0
  29. package/dist/scripts/template/renderer.d.ts +4 -0
  30. package/dist/scripts/template/renderer.d.ts.map +1 -1
  31. package/dist/scripts/template/renderer.js.map +1 -1
  32. package/dist/scripts/test-execution-generator.d.ts.map +1 -1
  33. package/dist/scripts/test-execution-generator.js +94 -11
  34. package/dist/scripts/test-execution-generator.js.map +1 -1
  35. package/dist/scripts/test-script-runner.d.ts +33 -0
  36. package/dist/scripts/test-script-runner.d.ts.map +1 -0
  37. package/dist/scripts/test-script-runner.js +77 -0
  38. package/dist/scripts/test-script-runner.js.map +1 -0
  39. package/dist/scripts/utils/config-loader.d.ts +21 -1
  40. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  41. package/dist/scripts/utils/config-loader.js +149 -3
  42. package/dist/scripts/utils/config-loader.js.map +1 -1
  43. package/dist/scripts/utils/multi-repo-validator.d.ts +30 -0
  44. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -0
  45. package/dist/scripts/utils/multi-repo-validator.js +105 -0
  46. package/dist/scripts/utils/multi-repo-validator.js.map +1 -0
  47. package/dist/scripts/utils/spec-archiver.d.ts +38 -0
  48. package/dist/scripts/utils/spec-archiver.d.ts.map +1 -0
  49. package/dist/scripts/utils/spec-archiver.js +210 -0
  50. package/dist/scripts/utils/spec-archiver.js.map +1 -0
  51. package/dist/scripts/utils/spec-updater.d.ts +4 -0
  52. package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
  53. package/dist/scripts/utils/spec-updater.js.map +1 -1
  54. package/dist/src/cli.d.ts.map +1 -1
  55. package/dist/src/cli.js +262 -14
  56. package/dist/src/cli.js.map +1 -1
  57. package/dist/src/commands/multi-repo-add-repo.d.ts +26 -0
  58. package/dist/src/commands/multi-repo-add-repo.d.ts.map +1 -0
  59. package/dist/src/commands/multi-repo-add-repo.js +56 -0
  60. package/dist/src/commands/multi-repo-add-repo.js.map +1 -0
  61. package/dist/src/commands/multi-repo-ci-status.d.ts +46 -0
  62. package/dist/src/commands/multi-repo-ci-status.d.ts.map +1 -0
  63. package/dist/src/commands/multi-repo-ci-status.js +285 -0
  64. package/dist/src/commands/multi-repo-ci-status.js.map +1 -0
  65. package/dist/src/commands/multi-repo-confluence-sync.d.ts +45 -0
  66. package/dist/src/commands/multi-repo-confluence-sync.d.ts.map +1 -0
  67. package/dist/src/commands/multi-repo-confluence-sync.js +135 -0
  68. package/dist/src/commands/multi-repo-confluence-sync.js.map +1 -0
  69. package/dist/src/commands/multi-repo-init.d.ts +26 -0
  70. package/dist/src/commands/multi-repo-init.d.ts.map +1 -0
  71. package/dist/src/commands/multi-repo-init.js +101 -0
  72. package/dist/src/commands/multi-repo-init.js.map +1 -0
  73. package/dist/src/commands/multi-repo-list.d.ts +28 -0
  74. package/dist/src/commands/multi-repo-list.d.ts.map +1 -0
  75. package/dist/src/commands/multi-repo-list.js +38 -0
  76. package/dist/src/commands/multi-repo-list.js.map +1 -0
  77. package/dist/src/commands/multi-repo-test.d.ts +56 -0
  78. package/dist/src/commands/multi-repo-test.d.ts.map +1 -0
  79. package/dist/src/commands/multi-repo-test.js +70 -0
  80. package/dist/src/commands/multi-repo-test.js.map +1 -0
  81. package/dist/src/commands/spec-archive.d.ts +17 -0
  82. package/dist/src/commands/spec-archive.d.ts.map +1 -0
  83. package/dist/src/commands/spec-archive.js +40 -0
  84. package/dist/src/commands/spec-archive.js.map +1 -0
  85. package/dist/src/commands/spec-list.d.ts +15 -0
  86. package/dist/src/commands/spec-list.d.ts.map +1 -0
  87. package/dist/src/commands/spec-list.js +55 -0
  88. package/dist/src/commands/spec-list.js.map +1 -0
  89. package/docs/user-guide/guides/multi-repo-guide.md +591 -0
  90. package/docs/user-guide/guides/multi-repo-migration-guide.md +516 -0
  91. package/docs/user-guide/reference/multi-repo-api.md +771 -0
  92. package/docs/user-guide/reference/quick-reference.md +22 -37
  93. package/package.json +1 -4
  94. package/scripts/__tests__/config-loader-multi-repo.test.ts +342 -0
  95. package/scripts/__tests__/github-actions-client.test.ts +543 -0
  96. package/scripts/__tests__/health-check-service.test.ts +142 -0
  97. package/scripts/__tests__/markdown-to-confluence.test.ts +262 -0
  98. package/scripts/__tests__/mermaid-converter.test.ts +236 -0
  99. package/scripts/__tests__/multi-repo-config-schema.test.ts +335 -0
  100. package/scripts/__tests__/multi-repo-validator.test.ts +524 -0
  101. package/scripts/__tests__/spec-archiver.test.ts +512 -0
  102. package/scripts/__tests__/test-script-runner.test.ts +217 -0
  103. package/scripts/config/config-schema.ts +64 -0
  104. package/scripts/confluence-sync.ts +16 -2
  105. package/scripts/github-actions-client.ts +258 -0
  106. package/scripts/health-check-service.ts +171 -0
  107. package/scripts/markdown-to-confluence.ts +37 -6
  108. package/scripts/mermaid-converter.ts +56 -0
  109. package/scripts/template/__tests__/multi-repo-renderer.test.ts +261 -0
  110. package/scripts/template/multi-repo-renderer.ts +172 -0
  111. package/scripts/template/renderer.ts +5 -0
  112. package/scripts/test-execution-generator.ts +104 -11
  113. package/scripts/test-script-runner.ts +130 -0
  114. package/scripts/utils/__tests__/config-validator.test.ts +104 -6
  115. package/scripts/utils/__tests__/multi-repo-validator.test.ts +335 -0
  116. package/scripts/utils/config-loader.ts +197 -3
  117. package/scripts/utils/multi-repo-validator.ts +141 -0
  118. package/scripts/utils/spec-archiver.ts +260 -0
  119. package/scripts/utils/spec-updater.ts +4 -0
  120. package/templates/claude/agents/pr-size-monitor/AGENT.md +330 -0
  121. package/templates/claude/commands/michi/spec-impl.md +208 -35
  122. package/templates/multi-repo/docs/ci-status.md +51 -0
  123. package/templates/multi-repo/docs/release-notes.md +99 -0
  124. package/templates/multi-repo/overview/architecture.md +102 -0
  125. package/templates/multi-repo/overview/requirements.md +68 -0
  126. package/templates/multi-repo/overview/sequence.md +79 -0
  127. package/templates/multi-repo/steering/multi-repo.md +74 -0
  128. package/templates/multi-repo/tests/strategy.md +89 -0
  129. package/dist/scripts/__tests__/create-project.test.d.ts +0 -2
  130. package/dist/scripts/__tests__/create-project.test.d.ts.map +0 -1
  131. package/dist/scripts/__tests__/create-project.test.js +0 -243
  132. package/dist/scripts/__tests__/create-project.test.js.map +0 -1
  133. package/dist/scripts/__tests__/jira-transitions.test.d.ts +0 -5
  134. package/dist/scripts/__tests__/jira-transitions.test.d.ts.map +0 -1
  135. package/dist/scripts/__tests__/jira-transitions.test.js +0 -172
  136. package/dist/scripts/__tests__/jira-transitions.test.js.map +0 -1
  137. package/dist/scripts/__tests__/multi-project-estimate.test.d.ts +0 -2
  138. package/dist/scripts/__tests__/multi-project-estimate.test.d.ts.map +0 -1
  139. package/dist/scripts/__tests__/multi-project-estimate.test.js +0 -118
  140. package/dist/scripts/__tests__/multi-project-estimate.test.js.map +0 -1
  141. package/dist/scripts/__tests__/setup-existing-project.test.d.ts +0 -2
  142. package/dist/scripts/__tests__/setup-existing-project.test.d.ts.map +0 -1
  143. package/dist/scripts/__tests__/setup-existing-project.test.js +0 -208
  144. package/dist/scripts/__tests__/setup-existing-project.test.js.map +0 -1
  145. package/dist/scripts/__tests__/setup-interactive.test.d.ts +0 -2
  146. package/dist/scripts/__tests__/setup-interactive.test.d.ts.map +0 -1
  147. package/dist/scripts/__tests__/setup-interactive.test.js +0 -166
  148. package/dist/scripts/__tests__/setup-interactive.test.js.map +0 -1
  149. package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts +0 -5
  150. package/dist/scripts/__tests__/spec-impl-workflow.test.d.ts.map +0 -1
  151. package/dist/scripts/__tests__/spec-impl-workflow.test.js +0 -323
  152. package/dist/scripts/__tests__/spec-impl-workflow.test.js.map +0 -1
  153. package/dist/scripts/__tests__/spec-loader.test.d.ts +0 -5
  154. package/dist/scripts/__tests__/spec-loader.test.d.ts.map +0 -1
  155. package/dist/scripts/__tests__/spec-loader.test.js +0 -153
  156. package/dist/scripts/__tests__/spec-loader.test.js.map +0 -1
  157. package/dist/scripts/__tests__/validate-phase.test.d.ts +0 -5
  158. package/dist/scripts/__tests__/validate-phase.test.d.ts.map +0 -1
  159. package/dist/scripts/__tests__/validate-phase.test.js +0 -249
  160. package/dist/scripts/__tests__/validate-phase.test.js.map +0 -1
  161. package/dist/scripts/constants/__tests__/environments.test.d.ts +0 -2
  162. package/dist/scripts/constants/__tests__/environments.test.d.ts.map +0 -1
  163. package/dist/scripts/constants/__tests__/environments.test.js +0 -125
  164. package/dist/scripts/constants/__tests__/environments.test.js.map +0 -1
  165. package/dist/scripts/constants/__tests__/languages.test.d.ts +0 -2
  166. package/dist/scripts/constants/__tests__/languages.test.d.ts.map +0 -1
  167. package/dist/scripts/constants/__tests__/languages.test.js +0 -82
  168. package/dist/scripts/constants/__tests__/languages.test.js.map +0 -1
  169. package/dist/scripts/create-project.d.ts +0 -16
  170. package/dist/scripts/create-project.d.ts.map +0 -1
  171. package/dist/scripts/create-project.js +0 -334
  172. package/dist/scripts/create-project.js.map +0 -1
  173. package/dist/scripts/list-projects.d.ts +0 -7
  174. package/dist/scripts/list-projects.d.ts.map +0 -1
  175. package/dist/scripts/list-projects.js +0 -88
  176. package/dist/scripts/list-projects.js.map +0 -1
  177. package/dist/scripts/template/__tests__/renderer.test.d.ts +0 -2
  178. package/dist/scripts/template/__tests__/renderer.test.d.ts.map +0 -1
  179. package/dist/scripts/template/__tests__/renderer.test.js +0 -165
  180. package/dist/scripts/template/__tests__/renderer.test.js.map +0 -1
  181. package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts +0 -5
  182. package/dist/scripts/utils/__tests__/aidlc-parser.test.d.ts.map +0 -1
  183. package/dist/scripts/utils/__tests__/aidlc-parser.test.js +0 -315
  184. package/dist/scripts/utils/__tests__/aidlc-parser.test.js.map +0 -1
  185. package/dist/scripts/utils/__tests__/business-days.test.d.ts +0 -5
  186. package/dist/scripts/utils/__tests__/business-days.test.d.ts.map +0 -1
  187. package/dist/scripts/utils/__tests__/business-days.test.js +0 -171
  188. package/dist/scripts/utils/__tests__/business-days.test.js.map +0 -1
  189. package/dist/scripts/utils/__tests__/config-loader.test.d.ts +0 -5
  190. package/dist/scripts/utils/__tests__/config-loader.test.d.ts.map +0 -1
  191. package/dist/scripts/utils/__tests__/config-loader.test.js +0 -314
  192. package/dist/scripts/utils/__tests__/config-loader.test.js.map +0 -1
  193. package/dist/scripts/utils/__tests__/config-validator.test.d.ts +0 -5
  194. package/dist/scripts/utils/__tests__/config-validator.test.d.ts.map +0 -1
  195. package/dist/scripts/utils/__tests__/config-validator.test.js +0 -396
  196. package/dist/scripts/utils/__tests__/config-validator.test.js.map +0 -1
  197. package/dist/scripts/utils/__tests__/env-config.test.d.ts +0 -5
  198. package/dist/scripts/utils/__tests__/env-config.test.d.ts.map +0 -1
  199. package/dist/scripts/utils/__tests__/env-config.test.js +0 -216
  200. package/dist/scripts/utils/__tests__/env-config.test.js.map +0 -1
  201. package/dist/scripts/utils/__tests__/feature-name-validator.test.d.ts +0 -5
  202. package/dist/scripts/utils/__tests__/feature-name-validator.test.d.ts.map +0 -1
  203. package/dist/scripts/utils/__tests__/feature-name-validator.test.js +0 -106
  204. package/dist/scripts/utils/__tests__/feature-name-validator.test.js.map +0 -1
  205. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts +0 -5
  206. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.d.ts.map +0 -1
  207. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js +0 -202
  208. package/dist/scripts/utils/__tests__/jira-issue-type-fetcher.test.js.map +0 -1
  209. package/dist/scripts/utils/__tests__/project-meta.test.d.ts +0 -6
  210. package/dist/scripts/utils/__tests__/project-meta.test.d.ts.map +0 -1
  211. package/dist/scripts/utils/__tests__/project-meta.test.js +0 -154
  212. package/dist/scripts/utils/__tests__/project-meta.test.js.map +0 -1
  213. package/dist/scripts/utils/__tests__/security-validator.test.d.ts +0 -6
  214. package/dist/scripts/utils/__tests__/security-validator.test.d.ts.map +0 -1
  215. package/dist/scripts/utils/__tests__/security-validator.test.js +0 -219
  216. package/dist/scripts/utils/__tests__/security-validator.test.js.map +0 -1
  217. package/dist/scripts/utils/__tests__/spec-updater.test.d.ts +0 -5
  218. package/dist/scripts/utils/__tests__/spec-updater.test.d.ts.map +0 -1
  219. package/dist/scripts/utils/__tests__/spec-updater.test.js +0 -158
  220. package/dist/scripts/utils/__tests__/spec-updater.test.js.map +0 -1
  221. package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts +0 -5
  222. package/dist/scripts/utils/__tests__/tasks-converter.test.d.ts.map +0 -1
  223. package/dist/scripts/utils/__tests__/tasks-converter.test.js +0 -500
  224. package/dist/scripts/utils/__tests__/tasks-converter.test.js.map +0 -1
  225. package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts +0 -5
  226. package/dist/scripts/utils/__tests__/tasks-format-validator.test.d.ts.map +0 -1
  227. package/dist/scripts/utils/__tests__/tasks-format-validator.test.js +0 -314
  228. package/dist/scripts/utils/__tests__/tasks-format-validator.test.js.map +0 -1
  229. package/dist/scripts/utils/__tests__/test-runner.test.d.ts +0 -5
  230. package/dist/scripts/utils/__tests__/test-runner.test.d.ts.map +0 -1
  231. package/dist/scripts/utils/__tests__/test-runner.test.js +0 -64
  232. package/dist/scripts/utils/__tests__/test-runner.test.js.map +0 -1
  233. package/dist/src/__tests__/cli.test.d.ts +0 -5
  234. package/dist/src/__tests__/cli.test.d.ts.map +0 -1
  235. package/dist/src/__tests__/cli.test.js +0 -58
  236. package/dist/src/__tests__/cli.test.js.map +0 -1
  237. package/dist/src/__tests__/integration/internationalization.test.d.ts +0 -8
  238. package/dist/src/__tests__/integration/internationalization.test.d.ts.map +0 -1
  239. package/dist/src/__tests__/integration/internationalization.test.js +0 -333
  240. package/dist/src/__tests__/integration/internationalization.test.js.map +0 -1
  241. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts +0 -5
  242. package/dist/src/__tests__/integration/setup/claude-agent.test.d.ts.map +0 -1
  243. package/dist/src/__tests__/integration/setup/claude-agent.test.js +0 -122
  244. package/dist/src/__tests__/integration/setup/claude-agent.test.js.map +0 -1
  245. package/dist/src/__tests__/integration/setup/claude.test.d.ts +0 -5
  246. package/dist/src/__tests__/integration/setup/claude.test.d.ts.map +0 -1
  247. package/dist/src/__tests__/integration/setup/claude.test.js +0 -193
  248. package/dist/src/__tests__/integration/setup/claude.test.js.map +0 -1
  249. package/dist/src/__tests__/integration/setup/cursor.test.d.ts +0 -5
  250. package/dist/src/__tests__/integration/setup/cursor.test.d.ts.map +0 -1
  251. package/dist/src/__tests__/integration/setup/cursor.test.js +0 -166
  252. package/dist/src/__tests__/integration/setup/cursor.test.js.map +0 -1
  253. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts +0 -32
  254. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.d.ts.map +0 -1
  255. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js +0 -72
  256. package/dist/src/__tests__/integration/setup/helpers/fs-assertions.js.map +0 -1
  257. package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts +0 -38
  258. package/dist/src/__tests__/integration/setup/helpers/test-project.d.ts.map +0 -1
  259. package/dist/src/__tests__/integration/setup/helpers/test-project.js +0 -83
  260. package/dist/src/__tests__/integration/setup/helpers/test-project.js.map +0 -1
  261. package/dist/src/__tests__/integration/setup/init.test.d.ts +0 -5
  262. package/dist/src/__tests__/integration/setup/init.test.d.ts.map +0 -1
  263. package/dist/src/__tests__/integration/setup/init.test.js +0 -352
  264. package/dist/src/__tests__/integration/setup/init.test.js.map +0 -1
  265. package/dist/src/__tests__/integration/setup/validation.test.d.ts +0 -5
  266. package/dist/src/__tests__/integration/setup/validation.test.d.ts.map +0 -1
  267. package/dist/src/__tests__/integration/setup/validation.test.js +0 -301
  268. package/dist/src/__tests__/integration/setup/validation.test.js.map +0 -1
  269. package/dist/src/commands/__tests__/init.test.d.ts +0 -5
  270. package/dist/src/commands/__tests__/init.test.d.ts.map +0 -1
  271. package/dist/src/commands/__tests__/init.test.js +0 -255
  272. package/dist/src/commands/__tests__/init.test.js.map +0 -1
  273. package/dist/src/commands/__tests__/migrate.test.d.ts +0 -5
  274. package/dist/src/commands/__tests__/migrate.test.d.ts.map +0 -1
  275. package/dist/src/commands/__tests__/migrate.test.js +0 -216
  276. package/dist/src/commands/__tests__/migrate.test.js.map +0 -1
  277. package/scripts/create-project.ts +0 -386
  278. package/scripts/list-projects.ts +0 -112
@@ -1,153 +0,0 @@
1
- /**
2
- * spec-loader.ts のテスト
3
- */
4
- import { describe, it, expect, vi, beforeEach } from 'vitest';
5
- // spec-updater をモック
6
- vi.mock('../utils/spec-updater.js', () => ({
7
- loadSpecJson: vi.fn(),
8
- }));
9
- import { loadSpecJson } from '../utils/spec-updater.js';
10
- import { getJiraInfoFromSpec, checkJiraInfoStatus, canIntegrateWithJira, } from '../utils/spec-loader.js';
11
- const mockLoadSpecJson = vi.mocked(loadSpecJson);
12
- describe('spec-loader', () => {
13
- beforeEach(() => {
14
- vi.clearAllMocks();
15
- });
16
- describe('getJiraInfoFromSpec', () => {
17
- it('すべての JIRA 情報がある場合に正しく取得する', () => {
18
- mockLoadSpecJson.mockReturnValue({
19
- jira: {
20
- epicKey: 'PROJ-123',
21
- storyKeys: ['PROJ-124', 'PROJ-125'],
22
- projectKey: 'PROJ',
23
- epicUrl: 'https://test.atlassian.net/browse/PROJ-123',
24
- },
25
- });
26
- const result = getJiraInfoFromSpec('user-auth');
27
- expect(mockLoadSpecJson).toHaveBeenCalledWith('user-auth', process.cwd());
28
- expect(result).toEqual({
29
- epicKey: 'PROJ-123',
30
- storyKeys: ['PROJ-124', 'PROJ-125'],
31
- firstStoryKey: 'PROJ-124',
32
- projectKey: 'PROJ',
33
- epicUrl: 'https://test.atlassian.net/browse/PROJ-123',
34
- });
35
- });
36
- it('JIRA 情報がない場合は null を返す', () => {
37
- mockLoadSpecJson.mockReturnValue({});
38
- const result = getJiraInfoFromSpec('user-auth');
39
- expect(result).toEqual({
40
- epicKey: null,
41
- storyKeys: [],
42
- firstStoryKey: null,
43
- projectKey: null,
44
- epicUrl: null,
45
- });
46
- });
47
- it('Story のみの場合', () => {
48
- mockLoadSpecJson.mockReturnValue({
49
- jira: {
50
- storyKeys: ['PROJ-124'],
51
- },
52
- });
53
- const result = getJiraInfoFromSpec('user-auth');
54
- expect(result).toEqual({
55
- epicKey: null,
56
- storyKeys: ['PROJ-124'],
57
- firstStoryKey: 'PROJ-124',
58
- projectKey: null,
59
- epicUrl: null,
60
- });
61
- });
62
- it('Epic のみの場合', () => {
63
- mockLoadSpecJson.mockReturnValue({
64
- jira: {
65
- epicKey: 'PROJ-123',
66
- },
67
- });
68
- const result = getJiraInfoFromSpec('user-auth');
69
- expect(result).toEqual({
70
- epicKey: 'PROJ-123',
71
- storyKeys: [],
72
- firstStoryKey: null,
73
- projectKey: null,
74
- epicUrl: null,
75
- });
76
- });
77
- it('カスタム projectRoot を指定できる', () => {
78
- mockLoadSpecJson.mockReturnValue({ jira: { epicKey: 'PROJ-123' } });
79
- getJiraInfoFromSpec('user-auth', '/custom/path');
80
- expect(mockLoadSpecJson).toHaveBeenCalledWith('user-auth', '/custom/path');
81
- });
82
- });
83
- describe('checkJiraInfoStatus', () => {
84
- it('すべての JIRA 情報がある場合', () => {
85
- mockLoadSpecJson.mockReturnValue({
86
- jira: {
87
- epicKey: 'PROJ-123',
88
- storyKeys: ['PROJ-124'],
89
- },
90
- });
91
- const result = checkJiraInfoStatus('user-auth');
92
- expect(result).toEqual({
93
- hasJiraInfo: true,
94
- hasEpic: true,
95
- hasStories: true,
96
- missing: [],
97
- });
98
- });
99
- it('JIRA 情報がまったくない場合', () => {
100
- mockLoadSpecJson.mockReturnValue({});
101
- const result = checkJiraInfoStatus('user-auth');
102
- expect(result).toEqual({
103
- hasJiraInfo: false,
104
- hasEpic: false,
105
- hasStories: false,
106
- missing: ['Epic', 'Story'],
107
- });
108
- });
109
- it('Epic のみがある場合', () => {
110
- mockLoadSpecJson.mockReturnValue({
111
- jira: { epicKey: 'PROJ-123' },
112
- });
113
- const result = checkJiraInfoStatus('user-auth');
114
- expect(result).toEqual({
115
- hasJiraInfo: true,
116
- hasEpic: true,
117
- hasStories: false,
118
- missing: ['Story'],
119
- });
120
- });
121
- it('Story のみがある場合', () => {
122
- mockLoadSpecJson.mockReturnValue({
123
- jira: { storyKeys: ['PROJ-124'] },
124
- });
125
- const result = checkJiraInfoStatus('user-auth');
126
- expect(result).toEqual({
127
- hasJiraInfo: true,
128
- hasEpic: false,
129
- hasStories: true,
130
- missing: ['Epic'],
131
- });
132
- });
133
- });
134
- describe('canIntegrateWithJira', () => {
135
- it('Epic がある場合は連携可能', () => {
136
- mockLoadSpecJson.mockReturnValue({
137
- jira: { epicKey: 'PROJ-123' },
138
- });
139
- expect(canIntegrateWithJira('user-auth')).toBe(true);
140
- });
141
- it('Epic がない場合は連携不可', () => {
142
- mockLoadSpecJson.mockReturnValue({
143
- jira: { storyKeys: ['PROJ-124'] },
144
- });
145
- expect(canIntegrateWithJira('user-auth')).toBe(false);
146
- });
147
- it('JIRA 情報がない場合は連携不可', () => {
148
- mockLoadSpecJson.mockReturnValue({});
149
- expect(canIntegrateWithJira('user-auth')).toBe(false);
150
- });
151
- });
152
- });
153
- //# sourceMappingURL=spec-loader.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-loader.test.js","sourceRoot":"","sources":["../../../scripts/__tests__/spec-loader.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * validate-phase.ts の単体テスト
3
- */
4
- export {};
5
- //# sourceMappingURL=validate-phase.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-phase.test.d.ts","sourceRoot":"","sources":["../../../scripts/__tests__/validate-phase.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,249 +0,0 @@
1
- /**
2
- * validate-phase.ts の単体テスト
3
- */
4
- import { describe, it, expect, beforeEach, vi } from 'vitest';
5
- import { existsSync, readFileSync } from 'fs';
6
- import { validatePhase } from '../validate-phase.js';
7
- import { loadConfig } from '../utils/config-loader.js';
8
- // fsモジュールのモック
9
- vi.mock('fs', () => ({
10
- existsSync: vi.fn(),
11
- readFileSync: vi.fn(),
12
- }));
13
- // project-metaのモック
14
- vi.mock('../utils/project-meta.js', () => ({
15
- loadProjectMeta: vi.fn(() => ({
16
- projectId: 'test-project',
17
- projectName: 'テストプロジェクト',
18
- jiraProjectKey: 'TEST',
19
- })),
20
- }));
21
- // config-loaderのモック
22
- vi.mock('../utils/config-loader.js', () => ({
23
- loadConfig: vi.fn(() => ({
24
- validation: {
25
- weekdayNotation: true,
26
- businessDayCount: true,
27
- weekendExclusion: true,
28
- },
29
- })),
30
- }));
31
- describe('validatePhase', () => {
32
- beforeEach(() => {
33
- vi.clearAllMocks();
34
- });
35
- describe('基本動作', () => {
36
- it('すべての必須項目が揃っている場合、validationが成功する', () => {
37
- // Arrange: requirementsフェーズを代表例としてテスト
38
- vi.mocked(existsSync).mockReturnValue(true);
39
- vi.mocked(readFileSync).mockReturnValue(JSON.stringify({
40
- confluence: {
41
- spaceKey: 'TEST',
42
- requirementsPageId: '12345',
43
- },
44
- milestones: {
45
- requirements: {
46
- completed: true,
47
- },
48
- },
49
- }));
50
- // Act
51
- const result = validatePhase('test-feature', 'requirements');
52
- // Assert
53
- expect(result.valid).toBe(true);
54
- expect(result.errors).toHaveLength(0);
55
- expect(result.phase).toBe('requirements');
56
- });
57
- it('Confluenceページが作成されていない場合、エラーを返す', () => {
58
- // Arrange
59
- vi.mocked(existsSync).mockReturnValue(true);
60
- vi.mocked(readFileSync).mockReturnValue(JSON.stringify({
61
- confluence: {
62
- spaceKey: 'TEST',
63
- // requirementsPageId が存在しない
64
- },
65
- }));
66
- // Act
67
- const result = validatePhase('test-feature', 'requirements');
68
- // Assert
69
- expect(result.valid).toBe(false);
70
- expect(result.errors).toContain('❌ Confluenceページ(要件定義)が作成されていません');
71
- });
72
- });
73
- describe('フェーズ固有の検証', () => {
74
- it('designフェーズ: 前提条件(requirements完了)をチェックする', () => {
75
- // Arrange
76
- vi.mocked(existsSync).mockReturnValue(true);
77
- vi.mocked(readFileSync).mockReturnValue(JSON.stringify({
78
- confluence: {
79
- designPageId: '67890',
80
- },
81
- milestones: {
82
- requirements: {
83
- completed: false, // 前提条件が満たされていない
84
- },
85
- },
86
- }));
87
- // Act
88
- const result = validatePhase('test-feature', 'design');
89
- // Assert
90
- expect(result.valid).toBe(false);
91
- expect(result.errors).toContain('❌ 要件定義が完了していません(前提条件)');
92
- });
93
- it('tasksフェーズ: JIRA Epic/Story作成をチェックする', () => {
94
- // Arrange
95
- vi.mocked(existsSync).mockReturnValue(true);
96
- vi.mocked(readFileSync).mockImplementation((path) => {
97
- if (String(path).includes('tasks.md')) {
98
- return '11/06(木)Day 1';
99
- }
100
- return JSON.stringify({
101
- milestones: {
102
- design: {
103
- completed: true,
104
- },
105
- },
106
- jira: {
107
- // epicKey が存在しない(重要なチェック)
108
- },
109
- });
110
- });
111
- // Act
112
- const result = validatePhase('test-feature', 'tasks');
113
- // Assert
114
- expect(result.valid).toBe(false);
115
- expect(result.errors).toContain('❌ JIRA Epicが作成されていません');
116
- });
117
- it('tasksフェーズ: 営業日表記をチェックする(重要な独自機能)', () => {
118
- // Arrange
119
- vi.mocked(existsSync).mockReturnValue(true);
120
- vi.mocked(readFileSync).mockImplementation((path) => {
121
- if (String(path).includes('tasks.md')) {
122
- return 'タスク一覧(曜日表記なし)'; // 営業日表記がない
123
- }
124
- return JSON.stringify({
125
- milestones: {
126
- design: {
127
- completed: true,
128
- },
129
- },
130
- jira: {
131
- epicKey: 'TEST-1',
132
- stories: {
133
- created: 5,
134
- total: 5,
135
- },
136
- },
137
- });
138
- });
139
- // Act
140
- const result = validatePhase('test-feature', 'tasks');
141
- // Assert
142
- expect(result.valid).toBe(true); // 警告だけなのでvalid
143
- expect(result.warnings).toContain('⚠️ tasks.mdに曜日表記(月、火、水...)が含まれていません');
144
- });
145
- it('tasksフェーズ: 日本語曜日表記を受け入れる', () => {
146
- // Arrange
147
- vi.mocked(existsSync).mockReturnValue(true);
148
- vi.mocked(readFileSync).mockImplementation((path) => {
149
- if (String(path).includes('tasks.md')) {
150
- return 'Day 1(月):\n - タスク1\nDay 2(火):\n - タスク2\n土日休み';
151
- }
152
- return JSON.stringify({
153
- milestones: { design: { completed: true } },
154
- jira: { epicKey: 'TEST-1', storyKeys: ['TEST-2'] },
155
- });
156
- });
157
- vi.mocked(loadConfig).mockReturnValue({
158
- validation: {
159
- weekdayNotation: true,
160
- businessDayCount: true,
161
- weekendExclusion: true,
162
- },
163
- });
164
- // Act
165
- const result = validatePhase('test-feature', 'tasks');
166
- // Assert
167
- expect(result.warnings).not.toContain('⚠️ tasks.mdに曜日表記(月、火、水...)が含まれていません');
168
- });
169
- it('tasksフェーズ: 英語曜日表記を受け入れる', () => {
170
- // Arrange
171
- vi.mocked(existsSync).mockReturnValue(true);
172
- vi.mocked(readFileSync).mockImplementation((path) => {
173
- if (String(path).includes('tasks.md')) {
174
- return 'Day 1 (Mon):\n - Task 1\nDay 2 (Tue):\n - Task 2\nWeekends excluded';
175
- }
176
- return JSON.stringify({
177
- milestones: { design: { completed: true } },
178
- jira: { epicKey: 'TEST-1', storyKeys: ['TEST-2'] },
179
- });
180
- });
181
- vi.mocked(loadConfig).mockReturnValue({
182
- validation: {
183
- weekdayNotation: true,
184
- businessDayCount: true,
185
- weekendExclusion: true,
186
- },
187
- });
188
- // Act
189
- const result = validatePhase('test-feature', 'tasks');
190
- // Assert
191
- expect(result.warnings).not.toContain('⚠️ tasks.mdに曜日表記(月、火、水...)が含まれていません');
192
- });
193
- it('tasksフェーズ: バリデーション無効化設定を尊重する', () => {
194
- // Arrange
195
- vi.mocked(existsSync).mockReturnValue(true);
196
- vi.mocked(readFileSync).mockImplementation((path) => {
197
- if (String(path).includes('tasks.md')) {
198
- return 'タスク一覧(曜日表記なし)'; // 営業日表記がない
199
- }
200
- return JSON.stringify({
201
- milestones: { design: { completed: true } },
202
- jira: { epicKey: 'TEST-1', storyKeys: ['TEST-2'] },
203
- });
204
- });
205
- vi.mocked(loadConfig).mockReturnValue({
206
- validation: {
207
- weekdayNotation: false, // バリデーション無効化
208
- businessDayCount: true,
209
- weekendExclusion: true,
210
- },
211
- });
212
- // Act
213
- const result = validatePhase('test-feature', 'tasks');
214
- // Assert
215
- expect(result.warnings).not.toContain('⚠️ tasks.mdに曜日表記(月、火、水...)が含まれていません');
216
- });
217
- });
218
- describe('エッジケース', () => {
219
- it('spec.jsonが存在しない場合、エラーを返す', () => {
220
- // Arrange
221
- // requirements.mdは存在するが、spec.jsonは存在しない
222
- vi.mocked(existsSync).mockImplementation((path) => {
223
- const pathStr = typeof path === 'string'
224
- ? path
225
- : path instanceof URL
226
- ? path.pathname
227
- : path.toString();
228
- if (pathStr.includes('requirements.md')) {
229
- return true;
230
- }
231
- if (pathStr.includes('spec.json')) {
232
- return false;
233
- }
234
- return false;
235
- });
236
- // Act
237
- const result = validatePhase('test-feature', 'requirements');
238
- // Assert: エラーをスローせず、errors配列にエラーを含めて返す
239
- expect(result.valid).toBe(false);
240
- expect(result.errors).toContainEqual(expect.stringContaining('spec.json読み込みエラー'));
241
- expect(result.errors).toContainEqual(expect.stringContaining('spec.json not found'));
242
- });
243
- it('不正なフェーズ名の場合、エラーをスローする', () => {
244
- // Act & Assert
245
- expect(() => validatePhase('test-feature', 'invalid')).toThrow('Unknown phase: invalid');
246
- });
247
- });
248
- });
249
- //# sourceMappingURL=validate-phase.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-phase.test.js","sourceRoot":"","sources":["../../../scripts/__tests__/validate-phase.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,cAAc;AACd,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IACnB,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;IACnB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;CACtB,CAAC,CAAC,CAAC;AAEJ,mBAAmB;AACnB,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,WAAW;QACxB,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,oBAAoB;AACpB,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACvB,UAAU,EAAE;YACV,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;SACvB;KACF,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,sCAAsC;YACtC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,eAAe,CACrC,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,MAAM;oBAChB,kBAAkB,EAAE,OAAO;iBAC5B;gBACD,UAAU,EAAE;oBACV,YAAY,EAAE;wBACZ,SAAS,EAAE,IAAI;qBAChB;iBACF;aACF,CAAC,CACH,CAAC;YAEF,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAE7D,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,eAAe,CACrC,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,MAAM;oBAChB,4BAA4B;iBAC7B;aACF,CAAC,CACH,CAAC;YAEF,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAE7D,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAC7B,iCAAiC,CAClC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,eAAe,CACrC,IAAI,CAAC,SAAS,CAAC;gBACb,UAAU,EAAE;oBACV,YAAY,EAAE,OAAO;iBACtB;gBACD,UAAU,EAAE;oBACV,YAAY,EAAE;wBACZ,SAAS,EAAE,KAAK,EAAE,gBAAgB;qBACnC;iBACF;aACF,CAAC,CACH,CAAC;YAEF,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YAEvD,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAC7B,uBAAuB,CACxB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO,eAAe,CAAC;gBACzB,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,SAAS,EAAE,IAAI;yBAChB;qBACF;oBACD,IAAI,EAAE;oBACJ,0BAA0B;qBAC3B;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEtD,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO,eAAe,CAAC,CAAC,WAAW;gBACrC,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,SAAS,EAAE,IAAI;yBAChB;qBACF;oBACD,IAAI,EAAE;wBACJ,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE;4BACP,OAAO,EAAE,CAAC;4BACV,KAAK,EAAE,CAAC;yBACT;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEtD,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;YAChD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAC/B,sCAAsC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO,gDAAgD,CAAC;gBAC1D,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;oBAC3C,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC;gBACpC,UAAU,EAAE;oBACV,eAAe,EAAE,IAAI;oBACrB,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,IAAI;iBACvB;aACiC,CAAC,CAAC;YAEtC,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEtD,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CACnC,sCAAsC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO,uEAAuE,CAAC;gBACjF,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;oBAC3C,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC;gBACpC,UAAU,EAAE;oBACV,eAAe,EAAE,IAAI;oBACrB,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,IAAI;iBACvB;aACiC,CAAC,CAAC;YAEtC,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEtD,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CACnC,sCAAsC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,UAAU;YACV,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO,eAAe,CAAC,CAAC,WAAW;gBACrC,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC;oBACpB,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;oBAC3C,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE;iBACnD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC;gBACpC,UAAU,EAAE;oBACV,eAAe,EAAE,KAAK,EAAE,aAAa;oBACrC,gBAAgB,EAAE,IAAI;oBACtB,gBAAgB,EAAE,IAAI;iBACvB;aACiC,CAAC,CAAC;YAEtC,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAEtD,SAAS;YACT,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CACnC,sCAAsC,CACvC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,UAAU;YACV,wCAAwC;YACxC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,kBAAkB,CACtC,CAAC,IAA2B,EAAE,EAAE;gBAC9B,MAAM,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ;oBACtB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,IAAI,YAAY,GAAG;wBACnB,CAAC,CAAC,IAAI,CAAC,QAAQ;wBACf,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CACF,CAAC;YAEF,MAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;YAE7D,uCAAuC;YACvC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAClC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAC5C,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAClC,MAAM,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAC/C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,eAAe;YACf,MAAM,CAAC,GAAG,EAAE,CACV,aAAa,CAAC,cAAc,EAAE,SAA2B,CAAC,CAC3D,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=environments.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environments.test.d.ts","sourceRoot":"","sources":["../../../../scripts/constants/__tests__/environments.test.ts"],"names":[],"mappings":""}
@@ -1,125 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { ENV_CONFIG, getEnvironmentConfig, isSupportedEnvironment, getSupportedEnvironments, } from '../environments.js';
3
- describe('environments', () => {
4
- describe('ENV_CONFIG', () => {
5
- it('should have entries for all environments', () => {
6
- expect(ENV_CONFIG.claude).toBeDefined();
7
- expect(ENV_CONFIG['claude-agent']).toBeDefined();
8
- expect(ENV_CONFIG.cursor).toBeDefined();
9
- expect(ENV_CONFIG.gemini).toBeDefined();
10
- expect(ENV_CONFIG.codex).toBeDefined();
11
- expect(ENV_CONFIG.cline).toBeDefined();
12
- });
13
- it('should have correct structure for claude', () => {
14
- const config = ENV_CONFIG.claude;
15
- expect(config.rulesDir).toBe('.claude/rules');
16
- expect(config.commandsDir).toBe('.claude/commands/kiro');
17
- expect(config.templateSource).toBe('claude');
18
- });
19
- it('should have correct structure for claude-agent', () => {
20
- const config = ENV_CONFIG['claude-agent'];
21
- expect(config.rulesDir).toBe('.claude/agents');
22
- expect(config.commandsDir).toBe('.claude/commands/kiro');
23
- expect(config.templateSource).toBe('claude-agent');
24
- });
25
- it('should have correct structure for cursor', () => {
26
- const config = ENV_CONFIG.cursor;
27
- expect(config.rulesDir).toBe('.cursor/rules');
28
- expect(config.commandsDir).toBe('.cursor/commands/kiro');
29
- expect(config.templateSource).toBe('cursor');
30
- });
31
- it('should have correct structure for gemini', () => {
32
- const config = ENV_CONFIG.gemini;
33
- expect(config.rulesDir).toBe('.gemini');
34
- expect(config.commandsDir).toBe('.gemini/extensions');
35
- expect(config.templateSource).toBe('gemini');
36
- });
37
- it('should have correct structure for codex', () => {
38
- const config = ENV_CONFIG.codex;
39
- expect(config.rulesDir).toBe('.codex/docs');
40
- expect(config.commandsDir).toBe('.codex/docs');
41
- expect(config.templateSource).toBe('codex');
42
- });
43
- it('should have correct structure for cline', () => {
44
- const config = ENV_CONFIG.cline;
45
- expect(config.rulesDir).toBe('.clinerules/rules');
46
- expect(config.commandsDir).toBe('.clinerules/commands');
47
- expect(config.templateSource).toBe('cline');
48
- });
49
- it('should have all required properties for each environment', () => {
50
- for (const env of Object.keys(ENV_CONFIG)) {
51
- const config = ENV_CONFIG[env];
52
- expect(config).toHaveProperty('rulesDir');
53
- expect(config).toHaveProperty('commandsDir');
54
- expect(config).toHaveProperty('templateSource');
55
- expect(typeof config.rulesDir).toBe('string');
56
- expect(typeof config.commandsDir).toBe('string');
57
- expect(typeof config.templateSource).toBe('string');
58
- }
59
- });
60
- });
61
- describe('getEnvironmentConfig', () => {
62
- it('should return config for valid environment', () => {
63
- const config = getEnvironmentConfig('claude');
64
- expect(config).toBe(ENV_CONFIG.claude);
65
- });
66
- it('should return config for all supported environments', () => {
67
- const environments = [
68
- 'claude',
69
- 'claude-agent',
70
- 'cursor',
71
- 'gemini',
72
- 'codex',
73
- 'cline',
74
- ];
75
- for (const env of environments) {
76
- const config = getEnvironmentConfig(env);
77
- expect(config).toBeDefined();
78
- expect(config).toBe(ENV_CONFIG[env]);
79
- }
80
- });
81
- });
82
- describe('isSupportedEnvironment', () => {
83
- it('should return true for supported environments', () => {
84
- expect(isSupportedEnvironment('claude')).toBe(true);
85
- expect(isSupportedEnvironment('claude-agent')).toBe(true);
86
- expect(isSupportedEnvironment('cursor')).toBe(true);
87
- expect(isSupportedEnvironment('gemini')).toBe(true);
88
- expect(isSupportedEnvironment('codex')).toBe(true);
89
- expect(isSupportedEnvironment('cline')).toBe(true);
90
- });
91
- it('should return false for unsupported environments', () => {
92
- expect(isSupportedEnvironment('invalid')).toBe(false);
93
- expect(isSupportedEnvironment('vscode')).toBe(false);
94
- expect(isSupportedEnvironment('')).toBe(false);
95
- });
96
- it('should work as type guard', () => {
97
- const env = 'cursor';
98
- if (isSupportedEnvironment(env)) {
99
- // TypeScript should recognize env as Environment here
100
- const config = ENV_CONFIG[env];
101
- expect(config).toBeDefined();
102
- }
103
- });
104
- });
105
- describe('getSupportedEnvironments', () => {
106
- it('should return all supported environments', () => {
107
- const environments = getSupportedEnvironments();
108
- expect(environments).toHaveLength(6);
109
- expect(environments).toContain('claude');
110
- expect(environments).toContain('claude-agent');
111
- expect(environments).toContain('cursor');
112
- expect(environments).toContain('gemini');
113
- expect(environments).toContain('codex');
114
- expect(environments).toContain('cline');
115
- });
116
- it('should return array with correct type', () => {
117
- const environments = getSupportedEnvironments();
118
- expect(Array.isArray(environments)).toBe(true);
119
- environments.forEach((env) => {
120
- expect(isSupportedEnvironment(env)).toBe(true);
121
- });
122
- });
123
- });
124
- });
125
- //# sourceMappingURL=environments.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environments.test.js","sourceRoot":"","sources":["../../../../scripts/constants/__tests__/environments.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GAGzB,MAAM,oBAAoB,CAAC;AAE5B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;YAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB,EAAE,CAAC;gBAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;gBAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAChD,MAAM,CAAC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjD,MAAM,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,YAAY,GAAkB;gBAClC,QAAQ;gBACR,cAAc;gBACd,QAAQ;gBACR,QAAQ;gBACR,OAAO;gBACP,OAAO;aACR,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,GAAG,GAAW,QAAQ,CAAC;YAC7B,IAAI,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,sDAAsD;gBACtD,MAAM,MAAM,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;YAChD,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3B,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=languages.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"languages.test.d.ts","sourceRoot":"","sources":["../../../../scripts/constants/__tests__/languages.test.ts"],"names":[],"mappings":""}