@shirokuma-library/shirokuma-docs 0.1.0-alpha.10

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.

Potentially problematic release.


This version of @shirokuma-library/shirokuma-docs might be problematic. Click here for more details.

Files changed (761) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +346 -0
  3. package/README.md +346 -0
  4. package/THIRD_PARTY_NOTICES.md +18 -0
  5. package/bin/shirokuma-docs +2 -0
  6. package/dist/analyzers/details-test-analysis.d.ts +31 -0
  7. package/dist/analyzers/details-test-analysis.d.ts.map +1 -0
  8. package/dist/analyzers/details-test-analysis.js +174 -0
  9. package/dist/analyzers/details-test-analysis.js.map +1 -0
  10. package/dist/analyzers/feature-map-builder.d.ts +20 -0
  11. package/dist/analyzers/feature-map-builder.d.ts.map +1 -0
  12. package/dist/analyzers/feature-map-builder.js +154 -0
  13. package/dist/analyzers/feature-map-builder.js.map +1 -0
  14. package/dist/analyzers/feature-map-references.d.ts +34 -0
  15. package/dist/analyzers/feature-map-references.d.ts.map +1 -0
  16. package/dist/analyzers/feature-map-references.js +249 -0
  17. package/dist/analyzers/feature-map-references.js.map +1 -0
  18. package/dist/analyzers/reference-analyzer.d.ts +95 -0
  19. package/dist/analyzers/reference-analyzer.d.ts.map +1 -0
  20. package/dist/analyzers/reference-analyzer.js +372 -0
  21. package/dist/analyzers/reference-analyzer.js.map +1 -0
  22. package/dist/commands/adr.d.ts +26 -0
  23. package/dist/commands/adr.d.ts.map +1 -0
  24. package/dist/commands/adr.js +129 -0
  25. package/dist/commands/adr.js.map +1 -0
  26. package/dist/commands/api-tools.d.ts +83 -0
  27. package/dist/commands/api-tools.d.ts.map +1 -0
  28. package/dist/commands/api-tools.js +775 -0
  29. package/dist/commands/api-tools.js.map +1 -0
  30. package/dist/commands/coverage.d.ts +139 -0
  31. package/dist/commands/coverage.d.ts.map +1 -0
  32. package/dist/commands/coverage.js +481 -0
  33. package/dist/commands/coverage.js.map +1 -0
  34. package/dist/commands/deps.d.ts +24 -0
  35. package/dist/commands/deps.d.ts.map +1 -0
  36. package/dist/commands/deps.js +211 -0
  37. package/dist/commands/deps.js.map +1 -0
  38. package/dist/commands/details-context.d.ts +38 -0
  39. package/dist/commands/details-context.d.ts.map +1 -0
  40. package/dist/commands/details-context.js +195 -0
  41. package/dist/commands/details-context.js.map +1 -0
  42. package/dist/commands/details-types.d.ts +315 -0
  43. package/dist/commands/details-types.d.ts.map +1 -0
  44. package/dist/commands/details-types.js +7 -0
  45. package/dist/commands/details-types.js.map +1 -0
  46. package/dist/commands/details.d.ts +24 -0
  47. package/dist/commands/details.d.ts.map +1 -0
  48. package/dist/commands/details.js +299 -0
  49. package/dist/commands/details.js.map +1 -0
  50. package/dist/commands/discussion-templates.d.ts +26 -0
  51. package/dist/commands/discussion-templates.d.ts.map +1 -0
  52. package/dist/commands/discussion-templates.js +270 -0
  53. package/dist/commands/discussion-templates.js.map +1 -0
  54. package/dist/commands/discussions.d.ts +31 -0
  55. package/dist/commands/discussions.d.ts.map +1 -0
  56. package/dist/commands/discussions.js +744 -0
  57. package/dist/commands/discussions.js.map +1 -0
  58. package/dist/commands/feature-map-types.d.ts +294 -0
  59. package/dist/commands/feature-map-types.d.ts.map +1 -0
  60. package/dist/commands/feature-map-types.js +8 -0
  61. package/dist/commands/feature-map-types.js.map +1 -0
  62. package/dist/commands/feature-map.d.ts +30 -0
  63. package/dist/commands/feature-map.d.ts.map +1 -0
  64. package/dist/commands/feature-map.js +137 -0
  65. package/dist/commands/feature-map.js.map +1 -0
  66. package/dist/commands/generate.d.ts +16 -0
  67. package/dist/commands/generate.d.ts.map +1 -0
  68. package/dist/commands/generate.js +88 -0
  69. package/dist/commands/generate.js.map +1 -0
  70. package/dist/commands/gh-discussions.d.ts +31 -0
  71. package/dist/commands/gh-discussions.d.ts.map +1 -0
  72. package/dist/commands/gh-discussions.js +743 -0
  73. package/dist/commands/gh-discussions.js.map +1 -0
  74. package/dist/commands/gh-issues-pr.d.ts +74 -0
  75. package/dist/commands/gh-issues-pr.d.ts.map +1 -0
  76. package/dist/commands/gh-issues-pr.js +417 -0
  77. package/dist/commands/gh-issues-pr.js.map +1 -0
  78. package/dist/commands/gh-issues.d.ts +90 -0
  79. package/dist/commands/gh-issues.d.ts.map +1 -0
  80. package/dist/commands/gh-issues.js +1297 -0
  81. package/dist/commands/gh-issues.js.map +1 -0
  82. package/dist/commands/gh-projects.d.ts +54 -0
  83. package/dist/commands/gh-projects.d.ts.map +1 -0
  84. package/dist/commands/gh-projects.js +966 -0
  85. package/dist/commands/gh-projects.js.map +1 -0
  86. package/dist/commands/gh-repo.d.ts +18 -0
  87. package/dist/commands/gh-repo.d.ts.map +1 -0
  88. package/dist/commands/gh-repo.js +253 -0
  89. package/dist/commands/gh-repo.js.map +1 -0
  90. package/dist/commands/github-data.d.ts +67 -0
  91. package/dist/commands/github-data.d.ts.map +1 -0
  92. package/dist/commands/github-data.js +361 -0
  93. package/dist/commands/github-data.js.map +1 -0
  94. package/dist/commands/i18n.d.ts +102 -0
  95. package/dist/commands/i18n.d.ts.map +1 -0
  96. package/dist/commands/i18n.js +829 -0
  97. package/dist/commands/i18n.js.map +1 -0
  98. package/dist/commands/impact.d.ts +14 -0
  99. package/dist/commands/impact.d.ts.map +1 -0
  100. package/dist/commands/impact.js +263 -0
  101. package/dist/commands/impact.js.map +1 -0
  102. package/dist/commands/init.d.ts +53 -0
  103. package/dist/commands/init.d.ts.map +1 -0
  104. package/dist/commands/init.js +468 -0
  105. package/dist/commands/init.js.map +1 -0
  106. package/dist/commands/issues-pr.d.ts +83 -0
  107. package/dist/commands/issues-pr.d.ts.map +1 -0
  108. package/dist/commands/issues-pr.js +572 -0
  109. package/dist/commands/issues-pr.js.map +1 -0
  110. package/dist/commands/issues.d.ts +78 -0
  111. package/dist/commands/issues.d.ts.map +1 -0
  112. package/dist/commands/issues.js +1541 -0
  113. package/dist/commands/issues.js.map +1 -0
  114. package/dist/commands/link-docs.d.ts +21 -0
  115. package/dist/commands/link-docs.d.ts.map +1 -0
  116. package/dist/commands/link-docs.js +990 -0
  117. package/dist/commands/link-docs.js.map +1 -0
  118. package/dist/commands/lint-annotations.d.ts +28 -0
  119. package/dist/commands/lint-annotations.d.ts.map +1 -0
  120. package/dist/commands/lint-annotations.js +511 -0
  121. package/dist/commands/lint-annotations.js.map +1 -0
  122. package/dist/commands/lint-code.d.ts +26 -0
  123. package/dist/commands/lint-code.d.ts.map +1 -0
  124. package/dist/commands/lint-code.js +428 -0
  125. package/dist/commands/lint-code.js.map +1 -0
  126. package/dist/commands/lint-coverage.d.ts +33 -0
  127. package/dist/commands/lint-coverage.d.ts.map +1 -0
  128. package/dist/commands/lint-coverage.js +379 -0
  129. package/dist/commands/lint-coverage.js.map +1 -0
  130. package/dist/commands/lint-docs.d.ts +23 -0
  131. package/dist/commands/lint-docs.d.ts.map +1 -0
  132. package/dist/commands/lint-docs.js +338 -0
  133. package/dist/commands/lint-docs.js.map +1 -0
  134. package/dist/commands/lint-structure.d.ts +38 -0
  135. package/dist/commands/lint-structure.d.ts.map +1 -0
  136. package/dist/commands/lint-structure.js +350 -0
  137. package/dist/commands/lint-structure.js.map +1 -0
  138. package/dist/commands/lint-tests.d.ts +25 -0
  139. package/dist/commands/lint-tests.d.ts.map +1 -0
  140. package/dist/commands/lint-tests.js +105 -0
  141. package/dist/commands/lint-tests.js.map +1 -0
  142. package/dist/commands/lint-workflow.d.ts +36 -0
  143. package/dist/commands/lint-workflow.d.ts.map +1 -0
  144. package/dist/commands/lint-workflow.js +255 -0
  145. package/dist/commands/lint-workflow.js.map +1 -0
  146. package/dist/commands/overview.d.ts +21 -0
  147. package/dist/commands/overview.d.ts.map +1 -0
  148. package/dist/commands/overview.js +1300 -0
  149. package/dist/commands/overview.js.map +1 -0
  150. package/dist/commands/packages.d.ts +107 -0
  151. package/dist/commands/packages.d.ts.map +1 -0
  152. package/dist/commands/packages.js +308 -0
  153. package/dist/commands/packages.js.map +1 -0
  154. package/dist/commands/portal-nextjs.d.ts +23 -0
  155. package/dist/commands/portal-nextjs.d.ts.map +1 -0
  156. package/dist/commands/portal-nextjs.js +336 -0
  157. package/dist/commands/portal-nextjs.js.map +1 -0
  158. package/dist/commands/portal.d.ts +24 -0
  159. package/dist/commands/portal.d.ts.map +1 -0
  160. package/dist/commands/portal.js +16 -0
  161. package/dist/commands/portal.js.map +1 -0
  162. package/dist/commands/projects.d.ts +54 -0
  163. package/dist/commands/projects.d.ts.map +1 -0
  164. package/dist/commands/projects.js +1191 -0
  165. package/dist/commands/projects.js.map +1 -0
  166. package/dist/commands/repo-pairs.d.ts +19 -0
  167. package/dist/commands/repo-pairs.d.ts.map +1 -0
  168. package/dist/commands/repo-pairs.js +529 -0
  169. package/dist/commands/repo-pairs.js.map +1 -0
  170. package/dist/commands/repo.d.ts +18 -0
  171. package/dist/commands/repo.d.ts.map +1 -0
  172. package/dist/commands/repo.js +253 -0
  173. package/dist/commands/repo.js.map +1 -0
  174. package/dist/commands/schema.d.ts +49 -0
  175. package/dist/commands/schema.d.ts.map +1 -0
  176. package/dist/commands/schema.js +830 -0
  177. package/dist/commands/schema.js.map +1 -0
  178. package/dist/commands/screenshots.d.ts +203 -0
  179. package/dist/commands/screenshots.d.ts.map +1 -0
  180. package/dist/commands/screenshots.js +1234 -0
  181. package/dist/commands/screenshots.js.map +1 -0
  182. package/dist/commands/search-index.d.ts +83 -0
  183. package/dist/commands/search-index.d.ts.map +1 -0
  184. package/dist/commands/search-index.js +389 -0
  185. package/dist/commands/search-index.js.map +1 -0
  186. package/dist/commands/search.d.ts +24 -0
  187. package/dist/commands/search.d.ts.map +1 -0
  188. package/dist/commands/search.js +254 -0
  189. package/dist/commands/search.js.map +1 -0
  190. package/dist/commands/session.d.ts +159 -0
  191. package/dist/commands/session.d.ts.map +1 -0
  192. package/dist/commands/session.js +1274 -0
  193. package/dist/commands/session.js.map +1 -0
  194. package/dist/commands/test-cases-types.d.ts +154 -0
  195. package/dist/commands/test-cases-types.d.ts.map +1 -0
  196. package/dist/commands/test-cases-types.js +7 -0
  197. package/dist/commands/test-cases-types.js.map +1 -0
  198. package/dist/commands/test-cases.d.ts +28 -0
  199. package/dist/commands/test-cases.d.ts.map +1 -0
  200. package/dist/commands/test-cases.js +192 -0
  201. package/dist/commands/test-cases.js.map +1 -0
  202. package/dist/commands/typedoc.d.ts +21 -0
  203. package/dist/commands/typedoc.d.ts.map +1 -0
  204. package/dist/commands/typedoc.js +192 -0
  205. package/dist/commands/typedoc.js.map +1 -0
  206. package/dist/commands/update-skills.d.ts +56 -0
  207. package/dist/commands/update-skills.d.ts.map +1 -0
  208. package/dist/commands/update-skills.js +626 -0
  209. package/dist/commands/update-skills.js.map +1 -0
  210. package/dist/generators/details-entity-pages.d.ts +40 -0
  211. package/dist/generators/details-entity-pages.d.ts.map +1 -0
  212. package/dist/generators/details-entity-pages.js +301 -0
  213. package/dist/generators/details-entity-pages.js.map +1 -0
  214. package/dist/generators/details-html.d.ts +23 -0
  215. package/dist/generators/details-html.d.ts.map +1 -0
  216. package/dist/generators/details-html.js +324 -0
  217. package/dist/generators/details-html.js.map +1 -0
  218. package/dist/generators/details-module-page.d.ts +33 -0
  219. package/dist/generators/details-module-page.d.ts.map +1 -0
  220. package/dist/generators/details-module-page.js +408 -0
  221. package/dist/generators/details-module-page.js.map +1 -0
  222. package/dist/generators/details-styles.d.ts +39 -0
  223. package/dist/generators/details-styles.d.ts.map +1 -0
  224. package/dist/generators/details-styles.js +409 -0
  225. package/dist/generators/details-styles.js.map +1 -0
  226. package/dist/generators/feature-map-html.d.ts +66 -0
  227. package/dist/generators/feature-map-html.d.ts.map +1 -0
  228. package/dist/generators/feature-map-html.js +569 -0
  229. package/dist/generators/feature-map-html.js.map +1 -0
  230. package/dist/generators/feature-map-styles.d.ts +39 -0
  231. package/dist/generators/feature-map-styles.d.ts.map +1 -0
  232. package/dist/generators/feature-map-styles.js +449 -0
  233. package/dist/generators/feature-map-styles.js.map +1 -0
  234. package/dist/generators/test-cases-hierarchy.d.ts +21 -0
  235. package/dist/generators/test-cases-hierarchy.d.ts.map +1 -0
  236. package/dist/generators/test-cases-hierarchy.js +336 -0
  237. package/dist/generators/test-cases-hierarchy.js.map +1 -0
  238. package/dist/generators/test-cases-main.d.ts +20 -0
  239. package/dist/generators/test-cases-main.d.ts.map +1 -0
  240. package/dist/generators/test-cases-main.js +439 -0
  241. package/dist/generators/test-cases-main.js.map +1 -0
  242. package/dist/generators/test-cases-styles.d.ts +64 -0
  243. package/dist/generators/test-cases-styles.d.ts.map +1 -0
  244. package/dist/generators/test-cases-styles.js +1277 -0
  245. package/dist/generators/test-cases-styles.js.map +1 -0
  246. package/dist/index.d.ts +13 -0
  247. package/dist/index.d.ts.map +1 -0
  248. package/dist/index.js +600 -0
  249. package/dist/index.js.map +1 -0
  250. package/dist/lint/annotation-lint.d.ts +198 -0
  251. package/dist/lint/annotation-lint.d.ts.map +1 -0
  252. package/dist/lint/annotation-lint.js +510 -0
  253. package/dist/lint/annotation-lint.js.map +1 -0
  254. package/dist/lint/annotation-types.d.ts +161 -0
  255. package/dist/lint/annotation-types.d.ts.map +1 -0
  256. package/dist/lint/annotation-types.js +31 -0
  257. package/dist/lint/annotation-types.js.map +1 -0
  258. package/dist/lint/code-types.d.ts +135 -0
  259. package/dist/lint/code-types.d.ts.map +1 -0
  260. package/dist/lint/code-types.js +25 -0
  261. package/dist/lint/code-types.js.map +1 -0
  262. package/dist/lint/coverage-types.d.ts +128 -0
  263. package/dist/lint/coverage-types.d.ts.map +1 -0
  264. package/dist/lint/coverage-types.js +24 -0
  265. package/dist/lint/coverage-types.js.map +1 -0
  266. package/dist/lint/docs-types.d.ts +214 -0
  267. package/dist/lint/docs-types.d.ts.map +1 -0
  268. package/dist/lint/docs-types.js +18 -0
  269. package/dist/lint/docs-types.js.map +1 -0
  270. package/dist/lint/formatters/index.d.ts +14 -0
  271. package/dist/lint/formatters/index.d.ts.map +1 -0
  272. package/dist/lint/formatters/index.js +28 -0
  273. package/dist/lint/formatters/index.js.map +1 -0
  274. package/dist/lint/formatters/json.d.ts +11 -0
  275. package/dist/lint/formatters/json.d.ts.map +1 -0
  276. package/dist/lint/formatters/json.js +12 -0
  277. package/dist/lint/formatters/json.js.map +1 -0
  278. package/dist/lint/formatters/summary.d.ts +11 -0
  279. package/dist/lint/formatters/summary.d.ts.map +1 -0
  280. package/dist/lint/formatters/summary.js +37 -0
  281. package/dist/lint/formatters/summary.js.map +1 -0
  282. package/dist/lint/formatters/terminal.d.ts +11 -0
  283. package/dist/lint/formatters/terminal.d.ts.map +1 -0
  284. package/dist/lint/formatters/terminal.js +99 -0
  285. package/dist/lint/formatters/terminal.js.map +1 -0
  286. package/dist/lint/index.d.ts +18 -0
  287. package/dist/lint/index.d.ts.map +1 -0
  288. package/dist/lint/index.js +103 -0
  289. package/dist/lint/index.js.map +1 -0
  290. package/dist/lint/rules/annotation-required.d.ts +35 -0
  291. package/dist/lint/rules/annotation-required.d.ts.map +1 -0
  292. package/dist/lint/rules/annotation-required.js +127 -0
  293. package/dist/lint/rules/annotation-required.js.map +1 -0
  294. package/dist/lint/rules/code-rules.d.ts +12 -0
  295. package/dist/lint/rules/code-rules.d.ts.map +1 -0
  296. package/dist/lint/rules/code-rules.js +11 -0
  297. package/dist/lint/rules/code-rules.js.map +1 -0
  298. package/dist/lint/rules/describe-coverage.d.ts +8 -0
  299. package/dist/lint/rules/describe-coverage.d.ts.map +1 -0
  300. package/dist/lint/rules/describe-coverage.js +43 -0
  301. package/dist/lint/rules/describe-coverage.js.map +1 -0
  302. package/dist/lint/rules/duplicate-testdoc.d.ts +8 -0
  303. package/dist/lint/rules/duplicate-testdoc.d.ts.map +1 -0
  304. package/dist/lint/rules/duplicate-testdoc.js +38 -0
  305. package/dist/lint/rules/duplicate-testdoc.js.map +1 -0
  306. package/dist/lint/rules/index.d.ts +29 -0
  307. package/dist/lint/rules/index.d.ts.map +1 -0
  308. package/dist/lint/rules/index.js +55 -0
  309. package/dist/lint/rules/index.js.map +1 -0
  310. package/dist/lint/rules/server-action-structure.d.ts +37 -0
  311. package/dist/lint/rules/server-action-structure.d.ts.map +1 -0
  312. package/dist/lint/rules/server-action-structure.js +152 -0
  313. package/dist/lint/rules/server-action-structure.js.map +1 -0
  314. package/dist/lint/rules/skipped-test-report.d.ts +11 -0
  315. package/dist/lint/rules/skipped-test-report.d.ts.map +1 -0
  316. package/dist/lint/rules/skipped-test-report.js +31 -0
  317. package/dist/lint/rules/skipped-test-report.js.map +1 -0
  318. package/dist/lint/rules/structure-rules.d.ts +67 -0
  319. package/dist/lint/rules/structure-rules.d.ts.map +1 -0
  320. package/dist/lint/rules/structure-rules.js +617 -0
  321. package/dist/lint/rules/structure-rules.js.map +1 -0
  322. package/dist/lint/rules/testdoc-japanese.d.ts +8 -0
  323. package/dist/lint/rules/testdoc-japanese.d.ts.map +1 -0
  324. package/dist/lint/rules/testdoc-japanese.js +31 -0
  325. package/dist/lint/rules/testdoc-japanese.js.map +1 -0
  326. package/dist/lint/rules/testdoc-min-length.d.ts +8 -0
  327. package/dist/lint/rules/testdoc-min-length.d.ts.map +1 -0
  328. package/dist/lint/rules/testdoc-min-length.js +31 -0
  329. package/dist/lint/rules/testdoc-min-length.js.map +1 -0
  330. package/dist/lint/rules/testdoc-required.d.ts +8 -0
  331. package/dist/lint/rules/testdoc-required.d.ts.map +1 -0
  332. package/dist/lint/rules/testdoc-required.js +27 -0
  333. package/dist/lint/rules/testdoc-required.js.map +1 -0
  334. package/dist/lint/rules/workflow-branch-naming.d.ts +20 -0
  335. package/dist/lint/rules/workflow-branch-naming.d.ts.map +1 -0
  336. package/dist/lint/rules/workflow-branch-naming.js +85 -0
  337. package/dist/lint/rules/workflow-branch-naming.js.map +1 -0
  338. package/dist/lint/rules/workflow-commit-format.d.ts +27 -0
  339. package/dist/lint/rules/workflow-commit-format.d.ts.map +1 -0
  340. package/dist/lint/rules/workflow-commit-format.js +92 -0
  341. package/dist/lint/rules/workflow-commit-format.js.map +1 -0
  342. package/dist/lint/rules/workflow-issue-fields.d.ts +24 -0
  343. package/dist/lint/rules/workflow-issue-fields.d.ts.map +1 -0
  344. package/dist/lint/rules/workflow-issue-fields.js +89 -0
  345. package/dist/lint/rules/workflow-issue-fields.js.map +1 -0
  346. package/dist/lint/rules/workflow-main-protection.d.ts +32 -0
  347. package/dist/lint/rules/workflow-main-protection.d.ts.map +1 -0
  348. package/dist/lint/rules/workflow-main-protection.js +114 -0
  349. package/dist/lint/rules/workflow-main-protection.js.map +1 -0
  350. package/dist/lint/structure-types.d.ts +216 -0
  351. package/dist/lint/structure-types.d.ts.map +1 -0
  352. package/dist/lint/structure-types.js +96 -0
  353. package/dist/lint/structure-types.js.map +1 -0
  354. package/dist/lint/types.d.ts +154 -0
  355. package/dist/lint/types.d.ts.map +1 -0
  356. package/dist/lint/types.js +21 -0
  357. package/dist/lint/types.js.map +1 -0
  358. package/dist/lint/workflow-types.d.ts +90 -0
  359. package/dist/lint/workflow-types.d.ts.map +1 -0
  360. package/dist/lint/workflow-types.js +7 -0
  361. package/dist/lint/workflow-types.js.map +1 -0
  362. package/dist/md/analyzer/index.d.ts +46 -0
  363. package/dist/md/analyzer/index.d.ts.map +1 -0
  364. package/dist/md/analyzer/index.js +288 -0
  365. package/dist/md/analyzer/index.js.map +1 -0
  366. package/dist/md/builder/index.d.ts +91 -0
  367. package/dist/md/builder/index.d.ts.map +1 -0
  368. package/dist/md/builder/index.js +446 -0
  369. package/dist/md/builder/index.js.map +1 -0
  370. package/dist/md/cli/analyze.d.ts +11 -0
  371. package/dist/md/cli/analyze.d.ts.map +1 -0
  372. package/dist/md/cli/analyze.js +118 -0
  373. package/dist/md/cli/analyze.js.map +1 -0
  374. package/dist/md/cli/build.d.ts +11 -0
  375. package/dist/md/cli/build.d.ts.map +1 -0
  376. package/dist/md/cli/build.js +74 -0
  377. package/dist/md/cli/build.js.map +1 -0
  378. package/dist/md/cli/extract.d.ts +25 -0
  379. package/dist/md/cli/extract.d.ts.map +1 -0
  380. package/dist/md/cli/extract.js +230 -0
  381. package/dist/md/cli/extract.js.map +1 -0
  382. package/dist/md/cli/index.d.ts +3 -0
  383. package/dist/md/cli/index.d.ts.map +1 -0
  384. package/dist/md/cli/index.js +99 -0
  385. package/dist/md/cli/index.js.map +1 -0
  386. package/dist/md/cli/lint.d.ts +11 -0
  387. package/dist/md/cli/lint.d.ts.map +1 -0
  388. package/dist/md/cli/lint.js +165 -0
  389. package/dist/md/cli/lint.js.map +1 -0
  390. package/dist/md/cli/list.d.ts +16 -0
  391. package/dist/md/cli/list.d.ts.map +1 -0
  392. package/dist/md/cli/list.js +85 -0
  393. package/dist/md/cli/list.js.map +1 -0
  394. package/dist/md/cli/program.d.ts +11 -0
  395. package/dist/md/cli/program.d.ts.map +1 -0
  396. package/dist/md/cli/program.js +104 -0
  397. package/dist/md/cli/program.js.map +1 -0
  398. package/dist/md/cli/validate.d.ts +8 -0
  399. package/dist/md/cli/validate.d.ts.map +1 -0
  400. package/dist/md/cli/validate.js +82 -0
  401. package/dist/md/cli/validate.js.map +1 -0
  402. package/dist/md/constants.d.ts +69 -0
  403. package/dist/md/constants.d.ts.map +1 -0
  404. package/dist/md/constants.js +69 -0
  405. package/dist/md/constants.js.map +1 -0
  406. package/dist/md/extractor/index.d.ts +57 -0
  407. package/dist/md/extractor/index.d.ts.map +1 -0
  408. package/dist/md/extractor/index.js +365 -0
  409. package/dist/md/extractor/index.js.map +1 -0
  410. package/dist/md/index.d.ts +26 -0
  411. package/dist/md/index.d.ts.map +1 -0
  412. package/dist/md/index.js +30 -0
  413. package/dist/md/index.js.map +1 -0
  414. package/dist/md/linter/index.d.ts +20 -0
  415. package/dist/md/linter/index.d.ts.map +1 -0
  416. package/dist/md/linter/index.js +421 -0
  417. package/dist/md/linter/index.js.map +1 -0
  418. package/dist/md/linter/token-optimizer.d.ts +66 -0
  419. package/dist/md/linter/token-optimizer.d.ts.map +1 -0
  420. package/dist/md/linter/token-optimizer.js +292 -0
  421. package/dist/md/linter/token-optimizer.js.map +1 -0
  422. package/dist/md/lister/index.d.ts +42 -0
  423. package/dist/md/lister/index.d.ts.map +1 -0
  424. package/dist/md/lister/index.js +317 -0
  425. package/dist/md/lister/index.js.map +1 -0
  426. package/dist/md/parser/heading-numbers.d.ts +43 -0
  427. package/dist/md/parser/heading-numbers.d.ts.map +1 -0
  428. package/dist/md/parser/heading-numbers.js +97 -0
  429. package/dist/md/parser/heading-numbers.js.map +1 -0
  430. package/dist/md/parser/section-meta.d.ts +50 -0
  431. package/dist/md/parser/section-meta.d.ts.map +1 -0
  432. package/dist/md/parser/section-meta.js +212 -0
  433. package/dist/md/parser/section-meta.js.map +1 -0
  434. package/dist/md/parser/template.d.ts +56 -0
  435. package/dist/md/parser/template.d.ts.map +1 -0
  436. package/dist/md/parser/template.js +122 -0
  437. package/dist/md/parser/template.js.map +1 -0
  438. package/dist/md/plugins/loader.d.ts +15 -0
  439. package/dist/md/plugins/loader.d.ts.map +1 -0
  440. package/dist/md/plugins/loader.js +80 -0
  441. package/dist/md/plugins/loader.js.map +1 -0
  442. package/dist/md/plugins/normalize-headings.d.ts +43 -0
  443. package/dist/md/plugins/normalize-headings.d.ts.map +1 -0
  444. package/dist/md/plugins/normalize-headings.js +51 -0
  445. package/dist/md/plugins/normalize-headings.js.map +1 -0
  446. package/dist/md/plugins/normalize-whitespace.d.ts +46 -0
  447. package/dist/md/plugins/normalize-whitespace.d.ts.map +1 -0
  448. package/dist/md/plugins/normalize-whitespace.js +86 -0
  449. package/dist/md/plugins/normalize-whitespace.js.map +1 -0
  450. package/dist/md/plugins/remove-badges.d.ts +36 -0
  451. package/dist/md/plugins/remove-badges.d.ts.map +1 -0
  452. package/dist/md/plugins/remove-badges.js +59 -0
  453. package/dist/md/plugins/remove-badges.js.map +1 -0
  454. package/dist/md/plugins/remove-comments.d.ts +27 -0
  455. package/dist/md/plugins/remove-comments.d.ts.map +1 -0
  456. package/dist/md/plugins/remove-comments.js +40 -0
  457. package/dist/md/plugins/remove-comments.js.map +1 -0
  458. package/dist/md/plugins/remove-duplicates.d.ts +40 -0
  459. package/dist/md/plugins/remove-duplicates.d.ts.map +1 -0
  460. package/dist/md/plugins/remove-duplicates.js +72 -0
  461. package/dist/md/plugins/remove-duplicates.js.map +1 -0
  462. package/dist/md/plugins/remove-internal-links.d.ts +38 -0
  463. package/dist/md/plugins/remove-internal-links.d.ts.map +1 -0
  464. package/dist/md/plugins/remove-internal-links.js +66 -0
  465. package/dist/md/plugins/remove-internal-links.js.map +1 -0
  466. package/dist/md/plugins/strip-heading-numbers.d.ts +35 -0
  467. package/dist/md/plugins/strip-heading-numbers.d.ts.map +1 -0
  468. package/dist/md/plugins/strip-heading-numbers.js +59 -0
  469. package/dist/md/plugins/strip-heading-numbers.js.map +1 -0
  470. package/dist/md/plugins/strip-section-meta.d.ts +37 -0
  471. package/dist/md/plugins/strip-section-meta.d.ts.map +1 -0
  472. package/dist/md/plugins/strip-section-meta.js +62 -0
  473. package/dist/md/plugins/strip-section-meta.js.map +1 -0
  474. package/dist/md/types/config.d.ts +260 -0
  475. package/dist/md/types/config.d.ts.map +1 -0
  476. package/dist/md/types/config.js +156 -0
  477. package/dist/md/types/config.js.map +1 -0
  478. package/dist/md/types/document.d.ts +37 -0
  479. package/dist/md/types/document.d.ts.map +1 -0
  480. package/dist/md/types/document.js +2 -0
  481. package/dist/md/types/document.js.map +1 -0
  482. package/dist/md/types/validation.d.ts +107 -0
  483. package/dist/md/types/validation.d.ts.map +1 -0
  484. package/dist/md/types/validation.js +2 -0
  485. package/dist/md/types/validation.js.map +1 -0
  486. package/dist/md/utils/code-blocks.d.ts +136 -0
  487. package/dist/md/utils/code-blocks.d.ts.map +1 -0
  488. package/dist/md/utils/code-blocks.js +178 -0
  489. package/dist/md/utils/code-blocks.js.map +1 -0
  490. package/dist/md/utils/config.d.ts +10 -0
  491. package/dist/md/utils/config.d.ts.map +1 -0
  492. package/dist/md/utils/config.js +99 -0
  493. package/dist/md/utils/config.js.map +1 -0
  494. package/dist/md/utils/file-collector.d.ts +78 -0
  495. package/dist/md/utils/file-collector.d.ts.map +1 -0
  496. package/dist/md/utils/file-collector.js +100 -0
  497. package/dist/md/utils/file-collector.js.map +1 -0
  498. package/dist/md/utils/markdown.d.ts +18 -0
  499. package/dist/md/utils/markdown.d.ts.map +1 -0
  500. package/dist/md/utils/markdown.js +93 -0
  501. package/dist/md/utils/markdown.js.map +1 -0
  502. package/dist/md/utils/remark.d.ts +91 -0
  503. package/dist/md/utils/remark.d.ts.map +1 -0
  504. package/dist/md/utils/remark.js +125 -0
  505. package/dist/md/utils/remark.js.map +1 -0
  506. package/dist/md/utils/tokens.d.ts +9 -0
  507. package/dist/md/utils/tokens.d.ts.map +1 -0
  508. package/dist/md/utils/tokens.js +31 -0
  509. package/dist/md/utils/tokens.js.map +1 -0
  510. package/dist/md/validator/index.d.ts +40 -0
  511. package/dist/md/validator/index.d.ts.map +1 -0
  512. package/dist/md/validator/index.js +299 -0
  513. package/dist/md/validator/index.js.map +1 -0
  514. package/dist/parsers/details-jsdoc.d.ts +42 -0
  515. package/dist/parsers/details-jsdoc.d.ts.map +1 -0
  516. package/dist/parsers/details-jsdoc.js +256 -0
  517. package/dist/parsers/details-jsdoc.js.map +1 -0
  518. package/dist/parsers/details-zod.d.ts +22 -0
  519. package/dist/parsers/details-zod.d.ts.map +1 -0
  520. package/dist/parsers/details-zod.js +146 -0
  521. package/dist/parsers/details-zod.js.map +1 -0
  522. package/dist/parsers/drizzle-schema.d.ts +92 -0
  523. package/dist/parsers/drizzle-schema.d.ts.map +1 -0
  524. package/dist/parsers/drizzle-schema.js +376 -0
  525. package/dist/parsers/drizzle-schema.js.map +1 -0
  526. package/dist/parsers/feature-map-tags.d.ts +45 -0
  527. package/dist/parsers/feature-map-tags.d.ts.map +1 -0
  528. package/dist/parsers/feature-map-tags.js +292 -0
  529. package/dist/parsers/feature-map-tags.js.map +1 -0
  530. package/dist/parsers/feature-map-type-extraction.d.ts +62 -0
  531. package/dist/parsers/feature-map-type-extraction.d.ts.map +1 -0
  532. package/dist/parsers/feature-map-type-extraction.js +347 -0
  533. package/dist/parsers/feature-map-type-extraction.js.map +1 -0
  534. package/dist/parsers/feature-map-utils.d.ts +34 -0
  535. package/dist/parsers/feature-map-utils.d.ts.map +1 -0
  536. package/dist/parsers/feature-map-utils.js +101 -0
  537. package/dist/parsers/feature-map-utils.js.map +1 -0
  538. package/dist/parsers/jsdoc-common.d.ts +209 -0
  539. package/dist/parsers/jsdoc-common.d.ts.map +1 -0
  540. package/dist/parsers/jsdoc-common.js +650 -0
  541. package/dist/parsers/jsdoc-common.js.map +1 -0
  542. package/dist/parsers/jsdoc.d.ts +76 -0
  543. package/dist/parsers/jsdoc.d.ts.map +1 -0
  544. package/dist/parsers/jsdoc.js +238 -0
  545. package/dist/parsers/jsdoc.js.map +1 -0
  546. package/dist/parsers/screenshot-annotations.d.ts +96 -0
  547. package/dist/parsers/screenshot-annotations.d.ts.map +1 -0
  548. package/dist/parsers/screenshot-annotations.js +227 -0
  549. package/dist/parsers/screenshot-annotations.js.map +1 -0
  550. package/dist/parsers/test-annotations.d.ts +46 -0
  551. package/dist/parsers/test-annotations.d.ts.map +1 -0
  552. package/dist/parsers/test-annotations.js +393 -0
  553. package/dist/parsers/test-annotations.js.map +1 -0
  554. package/dist/parsers/test-categorization.d.ts +42 -0
  555. package/dist/parsers/test-categorization.d.ts.map +1 -0
  556. package/dist/parsers/test-categorization.js +182 -0
  557. package/dist/parsers/test-categorization.js.map +1 -0
  558. package/dist/parsers/zod-schema.d.ts +105 -0
  559. package/dist/parsers/zod-schema.d.ts.map +1 -0
  560. package/dist/parsers/zod-schema.js +271 -0
  561. package/dist/parsers/zod-schema.js.map +1 -0
  562. package/dist/utils/action-inference.d.ts +23 -0
  563. package/dist/utils/action-inference.d.ts.map +1 -0
  564. package/dist/utils/action-inference.js +36 -0
  565. package/dist/utils/action-inference.js.map +1 -0
  566. package/dist/utils/app-inference.d.ts +31 -0
  567. package/dist/utils/app-inference.d.ts.map +1 -0
  568. package/dist/utils/app-inference.js +41 -0
  569. package/dist/utils/app-inference.js.map +1 -0
  570. package/dist/utils/auto-infer.d.ts +93 -0
  571. package/dist/utils/auto-infer.d.ts.map +1 -0
  572. package/dist/utils/auto-infer.js +184 -0
  573. package/dist/utils/auto-infer.js.map +1 -0
  574. package/dist/utils/config.d.ts +709 -0
  575. package/dist/utils/config.d.ts.map +1 -0
  576. package/dist/utils/config.js +504 -0
  577. package/dist/utils/config.js.map +1 -0
  578. package/dist/utils/file.d.ts +46 -0
  579. package/dist/utils/file.d.ts.map +1 -0
  580. package/dist/utils/file.js +103 -0
  581. package/dist/utils/file.js.map +1 -0
  582. package/dist/utils/formatters.d.ts +123 -0
  583. package/dist/utils/formatters.d.ts.map +1 -0
  584. package/dist/utils/formatters.js +199 -0
  585. package/dist/utils/formatters.js.map +1 -0
  586. package/dist/utils/gh-config.d.ts +99 -0
  587. package/dist/utils/gh-config.d.ts.map +1 -0
  588. package/dist/utils/gh-config.js +247 -0
  589. package/dist/utils/gh-config.js.map +1 -0
  590. package/dist/utils/github.d.ts +108 -0
  591. package/dist/utils/github.d.ts.map +1 -0
  592. package/dist/utils/github.js +320 -0
  593. package/dist/utils/github.js.map +1 -0
  594. package/dist/utils/html.d.ts +107 -0
  595. package/dist/utils/html.d.ts.map +1 -0
  596. package/dist/utils/html.js +376 -0
  597. package/dist/utils/html.js.map +1 -0
  598. package/dist/utils/i18n.d.ts +40 -0
  599. package/dist/utils/i18n.d.ts.map +1 -0
  600. package/dist/utils/i18n.js +148 -0
  601. package/dist/utils/i18n.js.map +1 -0
  602. package/dist/utils/logger.d.ts +20 -0
  603. package/dist/utils/logger.d.ts.map +1 -0
  604. package/dist/utils/logger.js +49 -0
  605. package/dist/utils/logger.js.map +1 -0
  606. package/dist/utils/project-fields.d.ts +71 -0
  607. package/dist/utils/project-fields.d.ts.map +1 -0
  608. package/dist/utils/project-fields.js +318 -0
  609. package/dist/utils/project-fields.js.map +1 -0
  610. package/dist/utils/repo-pairs.d.ts +94 -0
  611. package/dist/utils/repo-pairs.d.ts.map +1 -0
  612. package/dist/utils/repo-pairs.js +196 -0
  613. package/dist/utils/repo-pairs.js.map +1 -0
  614. package/dist/utils/route-inference.d.ts +81 -0
  615. package/dist/utils/route-inference.d.ts.map +1 -0
  616. package/dist/utils/route-inference.js +137 -0
  617. package/dist/utils/route-inference.js.map +1 -0
  618. package/dist/utils/sanitize.d.ts +27 -0
  619. package/dist/utils/sanitize.d.ts.map +1 -0
  620. package/dist/utils/sanitize.js +38 -0
  621. package/dist/utils/sanitize.js.map +1 -0
  622. package/dist/utils/setup-check.d.ts +48 -0
  623. package/dist/utils/setup-check.d.ts.map +1 -0
  624. package/dist/utils/setup-check.js +226 -0
  625. package/dist/utils/setup-check.js.map +1 -0
  626. package/dist/utils/shirokumaignore.d.ts +55 -0
  627. package/dist/utils/shirokumaignore.d.ts.map +1 -0
  628. package/dist/utils/shirokumaignore.js +94 -0
  629. package/dist/utils/shirokumaignore.js.map +1 -0
  630. package/dist/utils/skills-repo.d.ts +353 -0
  631. package/dist/utils/skills-repo.d.ts.map +1 -0
  632. package/dist/utils/skills-repo.js +793 -0
  633. package/dist/utils/skills-repo.js.map +1 -0
  634. package/dist/utils/status-workflow.d.ts +54 -0
  635. package/dist/utils/status-workflow.d.ts.map +1 -0
  636. package/dist/utils/status-workflow.js +103 -0
  637. package/dist/utils/status-workflow.js.map +1 -0
  638. package/dist/validators/frontmatter.d.ts +41 -0
  639. package/dist/validators/frontmatter.d.ts.map +1 -0
  640. package/dist/validators/frontmatter.js +117 -0
  641. package/dist/validators/frontmatter.js.map +1 -0
  642. package/dist/validators/link-checker.d.ts +48 -0
  643. package/dist/validators/link-checker.d.ts.map +1 -0
  644. package/dist/validators/link-checker.js +108 -0
  645. package/dist/validators/link-checker.js.map +1 -0
  646. package/dist/validators/markdown-structure.d.ts +50 -0
  647. package/dist/validators/markdown-structure.d.ts.map +1 -0
  648. package/dist/validators/markdown-structure.js +253 -0
  649. package/dist/validators/markdown-structure.js.map +1 -0
  650. package/i18n/cli/en.json +164 -0
  651. package/i18n/cli/ja.json +164 -0
  652. package/i18n/discussion/en.json +191 -0
  653. package/i18n/discussion/ja.json +191 -0
  654. package/package.json +113 -0
  655. package/portal/app/api-tools/api-tools-client.tsx +411 -0
  656. package/portal/app/api-tools/api-tools-document.tsx +240 -0
  657. package/portal/app/api-tools/page.tsx +56 -0
  658. package/portal/app/api-tools/swagger-view.tsx +114 -0
  659. package/portal/app/apps/[appId]/[type]/[module]/[item]/item-tabs-client.tsx +71 -0
  660. package/portal/app/apps/[appId]/[type]/[module]/[item]/page.tsx +1422 -0
  661. package/portal/app/apps/[appId]/[type]/[module]/page.tsx +373 -0
  662. package/portal/app/apps/[appId]/feature-map/feature-map-app-document.tsx +298 -0
  663. package/portal/app/apps/[appId]/feature-map/page.tsx +224 -0
  664. package/portal/app/apps/[appId]/i18n/page.tsx +139 -0
  665. package/portal/app/apps/[appId]/test-cases/page.tsx +840 -0
  666. package/portal/app/apps/[appId]/tools/[tool]/page.tsx +351 -0
  667. package/portal/app/apps/[appId]/tools/api-tools-client.tsx +429 -0
  668. package/portal/app/apps/[appId]/tools/page.tsx +119 -0
  669. package/portal/app/db-schema/[db]/[table]/page.tsx +235 -0
  670. package/portal/app/db-schema/[db]/diagram/page.tsx +81 -0
  671. package/portal/app/db-schema/[db]/page.tsx +148 -0
  672. package/portal/app/db-schema/db-schema-document.tsx +100 -0
  673. package/portal/app/db-schema/diagram/client.tsx +211 -0
  674. package/portal/app/db-schema/diagram/page.tsx +20 -0
  675. package/portal/app/db-schema/page.tsx +145 -0
  676. package/portal/app/db-schema/table-detail-document.tsx +710 -0
  677. package/portal/app/db-schema/table-detail.tsx +747 -0
  678. package/portal/app/db-schema/table-list-document.tsx +224 -0
  679. package/portal/app/db-schema/table-list.tsx +247 -0
  680. package/portal/app/details/[type]/[module]/[item]/item-tabs-client.tsx +71 -0
  681. package/portal/app/details/[type]/[module]/[item]/page.tsx +1286 -0
  682. package/portal/app/details/[type]/[module]/page.tsx +884 -0
  683. package/portal/app/feature-map/feature-map-client.tsx +681 -0
  684. package/portal/app/feature-map/feature-map-document.tsx +313 -0
  685. package/portal/app/feature-map/page.tsx +438 -0
  686. package/portal/app/globals.css +205 -0
  687. package/portal/app/i18n/[...namespace]/page.tsx +190 -0
  688. package/portal/app/i18n/i18n-client.tsx +369 -0
  689. package/portal/app/i18n/page.tsx +339 -0
  690. package/portal/app/layout.tsx +37 -0
  691. package/portal/app/overview/page.tsx +65 -0
  692. package/portal/app/packages/[packageId]/page.tsx +201 -0
  693. package/portal/app/packages/page.tsx +148 -0
  694. package/portal/app/page.tsx +568 -0
  695. package/portal/app/test-cases/[file]/[line]/page.tsx +455 -0
  696. package/portal/app/test-cases/[file]/[line]/test-detail-document.tsx +335 -0
  697. package/portal/app/test-cases/[file]/page.tsx +323 -0
  698. package/portal/app/test-cases/[file]/test-file-document.tsx +335 -0
  699. package/portal/app/test-cases/page.tsx +546 -0
  700. package/portal/app/test-cases/test-cases-document.tsx +384 -0
  701. package/portal/components/code-block.tsx +57 -0
  702. package/portal/components/document/doc-params-table.tsx +71 -0
  703. package/portal/components/document/doc-section.tsx +133 -0
  704. package/portal/components/document/doc-table.tsx +119 -0
  705. package/portal/components/document/index.ts +9 -0
  706. package/portal/components/drawflow-er-diagram.tsx +607 -0
  707. package/portal/components/interactive-er-diagram.tsx +228 -0
  708. package/portal/components/layout/app-sidebar.tsx +490 -0
  709. package/portal/components/layout/er-sidebar.tsx +116 -0
  710. package/portal/components/layout/global-header.tsx +117 -0
  711. package/portal/components/layout/layout-content.tsx +48 -0
  712. package/portal/components/markdown-content.tsx +120 -0
  713. package/portal/components/mermaid-diagram.tsx +83 -0
  714. package/portal/components/reactflow-er-diagram.tsx +475 -0
  715. package/portal/components/search-dialog.tsx +268 -0
  716. package/portal/components/shared/coverage-score-bar.tsx +144 -0
  717. package/portal/components/swagger/endpoint-accordion.tsx +117 -0
  718. package/portal/components/swagger/index.ts +7 -0
  719. package/portal/components/swagger/method-badge.tsx +55 -0
  720. package/portal/components/swagger/params-table.tsx +78 -0
  721. package/portal/components/tabs-with-hash.tsx +43 -0
  722. package/portal/components/test/index.ts +2 -0
  723. package/portal/components/test/test-bdd-card.tsx +192 -0
  724. package/portal/components/test/test-matrix.tsx +242 -0
  725. package/portal/components/ui/accordion.tsx +66 -0
  726. package/portal/components/ui/badge.tsx +46 -0
  727. package/portal/components/ui/breadcrumb.tsx +109 -0
  728. package/portal/components/ui/button.tsx +62 -0
  729. package/portal/components/ui/card.tsx +92 -0
  730. package/portal/components/ui/collapsible.tsx +33 -0
  731. package/portal/components/ui/dialog.tsx +118 -0
  732. package/portal/components/ui/progress.tsx +28 -0
  733. package/portal/components/ui/scroll-area.tsx +58 -0
  734. package/portal/components/ui/sheet.tsx +139 -0
  735. package/portal/components/ui/table.tsx +116 -0
  736. package/portal/components/ui/tabs.tsx +66 -0
  737. package/portal/components.json +21 -0
  738. package/portal/lib/constants/test-categories.ts +186 -0
  739. package/portal/lib/data-loader.ts +1181 -0
  740. package/portal/lib/db-schema-utils.ts +182 -0
  741. package/portal/lib/format.ts +43 -0
  742. package/portal/lib/hooks/use-hash-tab.ts +144 -0
  743. package/portal/lib/path-utils.ts +25 -0
  744. package/portal/lib/search-index-generator.ts +214 -0
  745. package/portal/lib/search.ts +126 -0
  746. package/portal/lib/sidebar-context.tsx +111 -0
  747. package/portal/lib/types.ts +740 -0
  748. package/portal/lib/utils.ts +6 -0
  749. package/portal/next.config.ts +18 -0
  750. package/portal/package.json +45 -0
  751. package/portal/postcss.config.mjs +8 -0
  752. package/portal/tsconfig.json +42 -0
  753. package/portal/types/drawflow.d.ts +80 -0
  754. package/templates/README.md +73 -0
  755. package/templates/coverage.html +367 -0
  756. package/templates/dark-theme.css +443 -0
  757. package/templates/discussion/adr.yml.hbs +65 -0
  758. package/templates/discussion/handovers.yml.hbs +57 -0
  759. package/templates/discussion/knowledge.yml.hbs +60 -0
  760. package/templates/discussion/reports.yml.hbs +68 -0
  761. package/templates/discussion/research.yml.hbs +61 -0
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Repo Pairs Utility
3
+ *
4
+ * Central utility for public/private repository pair management.
5
+ * Used by repo-pairs command, --public flag, and session management.
6
+ */
7
+ import { type RepoPairConfig, type GhConfig } from "./gh-config.js";
8
+ /** Default files/directories to exclude from public release */
9
+ export declare const DEFAULT_EXCLUDE_PATTERNS: string[];
10
+ /**
11
+ * Parse "owner/name" into { owner, name }
12
+ */
13
+ export declare function parseRepoFullName(fullName: string): {
14
+ owner: string;
15
+ name: string;
16
+ } | null;
17
+ /**
18
+ * Get all configured repo pairs
19
+ */
20
+ export declare function getAllRepoPairs(config?: GhConfig): RepoPairConfig[];
21
+ /**
22
+ * Get a specific repo pair by alias
23
+ */
24
+ export declare function getRepoPair(alias: string, config?: GhConfig): RepoPairConfig | null;
25
+ /**
26
+ * Detect which repo pair matches the current repository.
27
+ * Checks if current repo matches either the private or public side.
28
+ */
29
+ export declare function detectCurrentRepoPair(config?: GhConfig): RepoPairConfig | null;
30
+ /**
31
+ * Resolve target repository for --public flag.
32
+ *
33
+ * When --public is passed, finds the matching repo pair for the current repo
34
+ * and returns the public counterpart.
35
+ *
36
+ * @returns { owner, name } of the target repo, or null if not found
37
+ */
38
+ export declare function resolveTargetRepo(options: {
39
+ public?: boolean;
40
+ repo?: string;
41
+ }, config?: GhConfig): {
42
+ owner: string;
43
+ name: string;
44
+ } | null;
45
+ /**
46
+ * Resolve a cross-repo alias to { owner, name }
47
+ */
48
+ export declare function resolveCrossRepo(alias: string, config?: GhConfig): {
49
+ owner: string;
50
+ name: string;
51
+ } | null;
52
+ /**
53
+ * Get all configured cross-repo aliases
54
+ */
55
+ export declare function getAllCrossRepos(config?: GhConfig): Array<{
56
+ alias: string;
57
+ repo: string;
58
+ }>;
59
+ /**
60
+ * Validate a cross-repo alias and return detailed error info if invalid.
61
+ *
62
+ * Checks:
63
+ * 1. Is it a known alias?
64
+ * 2. Is it a full path (owner/repo) instead of an alias?
65
+ * 3. Are there any configured aliases at all?
66
+ *
67
+ * @returns null if valid, error message string if invalid
68
+ */
69
+ export declare function validateCrossRepoAlias(alias: string, config?: GhConfig): string | null;
70
+ /**
71
+ * Check if a repo full name matches the private side of any pair
72
+ */
73
+ export declare function isPrivateRepo(repoFullName: string, config?: GhConfig): boolean;
74
+ /**
75
+ * Check if a repo full name matches the public side of any pair
76
+ */
77
+ export declare function isPublicRepo(repoFullName: string, config?: GhConfig): boolean;
78
+ /**
79
+ * Get merged exclude patterns for a repo pair release.
80
+ *
81
+ * Combines patterns from three sources (in order):
82
+ * 1. DEFAULT_EXCLUDE_PATTERNS (built-in base patterns)
83
+ * 2. Config patterns (repoPairs[alias].exclude in config YAML)
84
+ * 3. .shirokumaignore file patterns (project root)
85
+ *
86
+ * Patterns are deduplicated while preserving order.
87
+ *
88
+ * @param alias - Repo pair alias
89
+ * @param projectPath - Absolute path to the project root
90
+ * @param config - Optional pre-loaded config
91
+ * @returns Deduplicated array of all exclude patterns
92
+ */
93
+ export declare function getMergedExcludePatterns(alias: string, projectPath: string, config?: GhConfig): string[];
94
+ //# sourceMappingURL=repo-pairs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-pairs.d.ts","sourceRoot":"","sources":["../../src/utils/repo-pairs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAOlF,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB,UAKpC,CAAC;AAMF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM1F;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,EAAE,CAWnE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,CAGnF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,CAU9E;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EAC5C,MAAM,CAAC,EAAE,QAAQ,GAChB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkBxC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQzG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAK1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CA8BtF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAG9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAG7E;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,QAAQ,GAChB,MAAM,EAAE,CAmBV"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Repo Pairs Utility
3
+ *
4
+ * Central utility for public/private repository pair management.
5
+ * Used by repo-pairs command, --public flag, and session management.
6
+ */
7
+ import { getRepoInfo } from "./github.js";
8
+ import { loadGhConfig } from "./gh-config.js";
9
+ import { loadShirokumaIgnoreFile, mergeExcludePatterns } from "./shirokumaignore.js";
10
+ // ========================================
11
+ // Default Patterns
12
+ // ========================================
13
+ /** Default files/directories to exclude from public release */
14
+ export const DEFAULT_EXCLUDE_PATTERNS = [
15
+ ".claude/",
16
+ ".github/DISCUSSION_TEMPLATE/",
17
+ "docs/internal/",
18
+ ".shirokumaignore",
19
+ ];
20
+ // ========================================
21
+ // Repo Pair Resolution
22
+ // ========================================
23
+ /**
24
+ * Parse "owner/name" into { owner, name }
25
+ */
26
+ export function parseRepoFullName(fullName) {
27
+ const parts = fullName.split("/");
28
+ if (parts.length !== 2 || !parts[0] || !parts[1]) {
29
+ return null;
30
+ }
31
+ return { owner: parts[0], name: parts[1] };
32
+ }
33
+ /**
34
+ * Get all configured repo pairs
35
+ */
36
+ export function getAllRepoPairs(config) {
37
+ const cfg = config ?? loadGhConfig();
38
+ if (!cfg.repoPairs)
39
+ return [];
40
+ return Object.entries(cfg.repoPairs).map(([alias, pair]) => ({
41
+ alias,
42
+ private: pair.private,
43
+ public: pair.public,
44
+ exclude: pair.exclude ?? DEFAULT_EXCLUDE_PATTERNS,
45
+ defaultBranch: pair.defaultBranch ?? "main",
46
+ }));
47
+ }
48
+ /**
49
+ * Get a specific repo pair by alias
50
+ */
51
+ export function getRepoPair(alias, config) {
52
+ const pairs = getAllRepoPairs(config);
53
+ return pairs.find(p => p.alias === alias) ?? null;
54
+ }
55
+ /**
56
+ * Detect which repo pair matches the current repository.
57
+ * Checks if current repo matches either the private or public side.
58
+ */
59
+ export function detectCurrentRepoPair(config) {
60
+ const repoInfo = getRepoInfo();
61
+ if (!repoInfo)
62
+ return null;
63
+ const currentFullName = `${repoInfo.owner}/${repoInfo.name}`;
64
+ const pairs = getAllRepoPairs(config);
65
+ return pairs.find(p => p.private === currentFullName || p.public === currentFullName) ?? null;
66
+ }
67
+ /**
68
+ * Resolve target repository for --public flag.
69
+ *
70
+ * When --public is passed, finds the matching repo pair for the current repo
71
+ * and returns the public counterpart.
72
+ *
73
+ * @returns { owner, name } of the target repo, or null if not found
74
+ */
75
+ export function resolveTargetRepo(options, config) {
76
+ const cfg = config ?? loadGhConfig();
77
+ // If --repo alias is specified (cross-repo), resolve from crossRepos
78
+ if (options.repo) {
79
+ return resolveCrossRepo(options.repo, cfg);
80
+ }
81
+ // If --public is not set, return current repo
82
+ if (!options.public) {
83
+ return getRepoInfo();
84
+ }
85
+ // Find the repo pair for current repo
86
+ const pair = detectCurrentRepoPair(cfg);
87
+ if (!pair)
88
+ return null;
89
+ return parseRepoFullName(pair.public);
90
+ }
91
+ /**
92
+ * Resolve a cross-repo alias to { owner, name }
93
+ */
94
+ export function resolveCrossRepo(alias, config) {
95
+ const cfg = config ?? loadGhConfig();
96
+ if (!cfg.crossRepos)
97
+ return null;
98
+ const fullName = cfg.crossRepos[alias];
99
+ if (!fullName)
100
+ return null;
101
+ return parseRepoFullName(fullName);
102
+ }
103
+ /**
104
+ * Get all configured cross-repo aliases
105
+ */
106
+ export function getAllCrossRepos(config) {
107
+ const cfg = config ?? loadGhConfig();
108
+ if (!cfg.crossRepos)
109
+ return [];
110
+ return Object.entries(cfg.crossRepos).map(([alias, repo]) => ({ alias, repo }));
111
+ }
112
+ /**
113
+ * Validate a cross-repo alias and return detailed error info if invalid.
114
+ *
115
+ * Checks:
116
+ * 1. Is it a known alias?
117
+ * 2. Is it a full path (owner/repo) instead of an alias?
118
+ * 3. Are there any configured aliases at all?
119
+ *
120
+ * @returns null if valid, error message string if invalid
121
+ */
122
+ export function validateCrossRepoAlias(alias, config) {
123
+ const cfg = config ?? loadGhConfig();
124
+ const crossRepos = cfg.crossRepos;
125
+ // No crossRepos configured at all
126
+ if (!crossRepos || Object.keys(crossRepos).length === 0) {
127
+ return `No cross-repo aliases configured.\nAdd crossRepos to shirokuma-docs.config.yaml:\n crossRepos:\n myalias: "owner/repo"`;
128
+ }
129
+ // Check if alias exists
130
+ if (crossRepos[alias]) {
131
+ return null; // Valid
132
+ }
133
+ const availableAliases = Object.entries(crossRepos)
134
+ .map(([a, repo]) => ` ${a} (${repo})`)
135
+ .join("\n");
136
+ // Check if input looks like a full path (owner/repo)
137
+ if (alias.includes("/")) {
138
+ // Check if this full path matches any configured repo
139
+ const matchingAlias = Object.entries(crossRepos).find(([, repo]) => repo === alias);
140
+ if (matchingAlias) {
141
+ return `Use the alias '${matchingAlias[0]}' instead of '${alias}'.\nAvailable aliases:\n${availableAliases}`;
142
+ }
143
+ return `Unknown repo '${alias}'.\nUse a configured alias instead of owner/repo.\nAvailable aliases:\n${availableAliases}\nSee crossRepos in shirokuma-docs.config.yaml`;
144
+ }
145
+ // Unknown alias
146
+ return `Unknown repo alias '${alias}'.\nAvailable aliases:\n${availableAliases}\nSee crossRepos in shirokuma-docs.config.yaml`;
147
+ }
148
+ /**
149
+ * Check if a repo full name matches the private side of any pair
150
+ */
151
+ export function isPrivateRepo(repoFullName, config) {
152
+ const pairs = getAllRepoPairs(config);
153
+ return pairs.some(p => p.private === repoFullName);
154
+ }
155
+ /**
156
+ * Check if a repo full name matches the public side of any pair
157
+ */
158
+ export function isPublicRepo(repoFullName, config) {
159
+ const pairs = getAllRepoPairs(config);
160
+ return pairs.some(p => p.public === repoFullName);
161
+ }
162
+ // ========================================
163
+ // Merged Exclude Patterns
164
+ // ========================================
165
+ /**
166
+ * Get merged exclude patterns for a repo pair release.
167
+ *
168
+ * Combines patterns from three sources (in order):
169
+ * 1. DEFAULT_EXCLUDE_PATTERNS (built-in base patterns)
170
+ * 2. Config patterns (repoPairs[alias].exclude in config YAML)
171
+ * 3. .shirokumaignore file patterns (project root)
172
+ *
173
+ * Patterns are deduplicated while preserving order.
174
+ *
175
+ * @param alias - Repo pair alias
176
+ * @param projectPath - Absolute path to the project root
177
+ * @param config - Optional pre-loaded config
178
+ * @returns Deduplicated array of all exclude patterns
179
+ */
180
+ export function getMergedExcludePatterns(alias, projectPath, config) {
181
+ const cfg = config ?? loadGhConfig();
182
+ // Access raw config to check if exclude was explicitly set.
183
+ // Note: getRepoPair() → getAllRepoPairs() applies fallback
184
+ // (pair.exclude ?? DEFAULT_EXCLUDE_PATTERNS), so pair.exclude
185
+ // is never undefined there. We need the raw config value.
186
+ const rawExclude = cfg.repoPairs?.[alias]?.exclude;
187
+ // .shirokumaignore file patterns
188
+ const filePatterns = loadShirokumaIgnoreFile(projectPath);
189
+ // If no explicit exclude config, use only defaults + file patterns
190
+ if (rawExclude === undefined) {
191
+ return mergeExcludePatterns(DEFAULT_EXCLUDE_PATTERNS, [], filePatterns);
192
+ }
193
+ // Explicit config: merge defaults + config + file patterns
194
+ return mergeExcludePatterns(DEFAULT_EXCLUDE_PATTERNS, rawExclude, filePatterns);
195
+ }
196
+ //# sourceMappingURL=repo-pairs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-pairs.js","sourceRoot":"","sources":["../../src/utils/repo-pairs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Route Inference Utility
3
+ *
4
+ * Utilities for inferring URL routes from Next.js App Router file paths
5
+ * and applying route parameter substitution.
6
+ *
7
+ * @module utils/route-inference
8
+ */
9
+ /**
10
+ * Infer URL route from Next.js App Router file path.
11
+ *
12
+ * Extracts the route from a page.tsx file path by:
13
+ * 1. Finding the 'app' directory
14
+ * 2. Removing layout groups (parenthesized segments)
15
+ * 3. Removing the page.tsx filename
16
+ *
17
+ * @param filePath - Relative file path (e.g., "apps/web/app/[locale]/(dashboard)/page.tsx")
18
+ * @returns Inferred route (e.g., "/[locale]") or null if not a page file
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * inferRouteFromPath("apps/web/app/[locale]/(dashboard)/[orgSlug]/page.tsx")
23
+ * // Returns: "/[locale]/[orgSlug]"
24
+ * ```
25
+ */
26
+ export declare function inferRouteFromPath(filePath: string): string | null;
27
+ /**
28
+ * Apply route parameter substitution.
29
+ *
30
+ * Replaces dynamic route segments like [locale] with actual values
31
+ * from the routeParams configuration.
32
+ *
33
+ * @param route - Route with dynamic segments (e.g., "/[locale]/[orgSlug]")
34
+ * @param routeParams - Parameter mapping (e.g., { "[locale]": "ja", "[orgSlug]": "demo-org" })
35
+ * @returns Route with substituted values (e.g., "/ja/demo-org")
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * applyRouteParams("/[locale]/[orgSlug]", { "[locale]": "ja", "[orgSlug]": "test" })
40
+ * // Returns: "/ja/test"
41
+ * ```
42
+ */
43
+ export declare function applyRouteParams(route: string, routeParams: Record<string, string>): string;
44
+ /**
45
+ * Normalize route string.
46
+ *
47
+ * Ensures consistent route format:
48
+ * - Adds leading slash if missing
49
+ * - Removes trailing slash (except for root "/")
50
+ * - Collapses multiple consecutive slashes
51
+ *
52
+ * @param route - Route string to normalize
53
+ * @returns Normalized route string
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * normalizeRoute("ja/dashboard/") // Returns: "/ja/dashboard"
58
+ * normalizeRoute("/ja//dashboard") // Returns: "/ja/dashboard"
59
+ * normalizeRoute("/") // Returns: "/"
60
+ * ```
61
+ */
62
+ export declare function normalizeRoute(route: string): string;
63
+ /**
64
+ * Infer screen name from file path.
65
+ *
66
+ * Generates a screen name from the file path by:
67
+ * 1. Extracting the last meaningful segment before page.tsx
68
+ * 2. Converting to PascalCase
69
+ * 3. Appending "Screen" suffix
70
+ *
71
+ * @param filePath - File path to generate screen name from
72
+ * @returns Inferred screen name (e.g., "DashboardScreen")
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * inferScreenNameFromPath("apps/web/app/[locale]/dashboard/page.tsx")
77
+ * // Returns: "DashboardScreen"
78
+ * ```
79
+ */
80
+ export declare function inferScreenNameFromPath(filePath: string): string;
81
+ //# sourceMappingURL=route-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-inference.d.ts","sourceRoot":"","sources":["../../src/utils/route-inference.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA8BlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,MAAM,CAQR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqBhE"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Route Inference Utility
3
+ *
4
+ * Utilities for inferring URL routes from Next.js App Router file paths
5
+ * and applying route parameter substitution.
6
+ *
7
+ * @module utils/route-inference
8
+ */
9
+ /**
10
+ * Infer URL route from Next.js App Router file path.
11
+ *
12
+ * Extracts the route from a page.tsx file path by:
13
+ * 1. Finding the 'app' directory
14
+ * 2. Removing layout groups (parenthesized segments)
15
+ * 3. Removing the page.tsx filename
16
+ *
17
+ * @param filePath - Relative file path (e.g., "apps/web/app/[locale]/(dashboard)/page.tsx")
18
+ * @returns Inferred route (e.g., "/[locale]") or null if not a page file
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * inferRouteFromPath("apps/web/app/[locale]/(dashboard)/[orgSlug]/page.tsx")
23
+ * // Returns: "/[locale]/[orgSlug]"
24
+ * ```
25
+ */
26
+ export function inferRouteFromPath(filePath) {
27
+ // Only process page.tsx files
28
+ if (!filePath.endsWith("page.tsx") && !filePath.endsWith("page.ts")) {
29
+ return null;
30
+ }
31
+ // Find the 'app' directory in the path
32
+ const appIndex = filePath.indexOf("/app/");
33
+ if (appIndex === -1) {
34
+ return null;
35
+ }
36
+ // Extract the route part (after 'app/')
37
+ const routePart = filePath.substring(appIndex + 5); // +5 for '/app/'
38
+ // Remove page.tsx filename (handles both /page.tsx and page.tsx at root)
39
+ const withoutFilename = routePart.replace(/\/?page\.(tsx|ts)$/, "");
40
+ // Split into segments
41
+ const segments = withoutFilename.split("/").filter((s) => s.length > 0);
42
+ // Filter out layout groups (segments in parentheses)
43
+ const filteredSegments = segments.filter((segment) => !segment.startsWith("("));
44
+ // Build the route
45
+ if (filteredSegments.length === 0) {
46
+ return "/";
47
+ }
48
+ return "/" + filteredSegments.join("/");
49
+ }
50
+ /**
51
+ * Apply route parameter substitution.
52
+ *
53
+ * Replaces dynamic route segments like [locale] with actual values
54
+ * from the routeParams configuration.
55
+ *
56
+ * @param route - Route with dynamic segments (e.g., "/[locale]/[orgSlug]")
57
+ * @param routeParams - Parameter mapping (e.g., { "[locale]": "ja", "[orgSlug]": "demo-org" })
58
+ * @returns Route with substituted values (e.g., "/ja/demo-org")
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * applyRouteParams("/[locale]/[orgSlug]", { "[locale]": "ja", "[orgSlug]": "test" })
63
+ * // Returns: "/ja/test"
64
+ * ```
65
+ */
66
+ export function applyRouteParams(route, routeParams) {
67
+ let result = route;
68
+ for (const [param, value] of Object.entries(routeParams)) {
69
+ result = result.replaceAll(param, value);
70
+ }
71
+ return result;
72
+ }
73
+ /**
74
+ * Normalize route string.
75
+ *
76
+ * Ensures consistent route format:
77
+ * - Adds leading slash if missing
78
+ * - Removes trailing slash (except for root "/")
79
+ * - Collapses multiple consecutive slashes
80
+ *
81
+ * @param route - Route string to normalize
82
+ * @returns Normalized route string
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * normalizeRoute("ja/dashboard/") // Returns: "/ja/dashboard"
87
+ * normalizeRoute("/ja//dashboard") // Returns: "/ja/dashboard"
88
+ * normalizeRoute("/") // Returns: "/"
89
+ * ```
90
+ */
91
+ export function normalizeRoute(route) {
92
+ // Add leading slash if missing
93
+ let normalized = route.startsWith("/") ? route : "/" + route;
94
+ // Collapse multiple slashes
95
+ normalized = normalized.replace(/\/+/g, "/");
96
+ // Remove trailing slash (except for root)
97
+ if (normalized.length > 1 && normalized.endsWith("/")) {
98
+ normalized = normalized.slice(0, -1);
99
+ }
100
+ return normalized;
101
+ }
102
+ /**
103
+ * Infer screen name from file path.
104
+ *
105
+ * Generates a screen name from the file path by:
106
+ * 1. Extracting the last meaningful segment before page.tsx
107
+ * 2. Converting to PascalCase
108
+ * 3. Appending "Screen" suffix
109
+ *
110
+ * @param filePath - File path to generate screen name from
111
+ * @returns Inferred screen name (e.g., "DashboardScreen")
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * inferScreenNameFromPath("apps/web/app/[locale]/dashboard/page.tsx")
116
+ * // Returns: "DashboardScreen"
117
+ * ```
118
+ */
119
+ export function inferScreenNameFromPath(filePath) {
120
+ // Extract route first
121
+ const route = inferRouteFromPath(filePath);
122
+ if (!route || route === "/") {
123
+ return "HomeScreen";
124
+ }
125
+ // Get the last segment
126
+ const segments = route.split("/").filter((s) => s.length > 0);
127
+ const lastSegment = segments[segments.length - 1];
128
+ // Remove brackets from dynamic segments
129
+ const cleanSegment = lastSegment.replace(/^\[|\]$/g, "");
130
+ // Convert to PascalCase
131
+ const pascalCase = cleanSegment
132
+ .split(/[-_]/)
133
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
134
+ .join("");
135
+ return pascalCase + "Screen";
136
+ }
137
+ //# sourceMappingURL=route-inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-inference.js","sourceRoot":"","sources":["../../src/utils/route-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * sanitize - 入力サニタイズユーティリティ
3
+ *
4
+ * 外部入力を安全に扱うための共通関数群。
5
+ * GitHub search クエリ構築、正規表現パターン構築で使用。
6
+ */
7
+ /**
8
+ * ダブルクォートを除去
9
+ *
10
+ * GitHub search の `category:"..."` 等、クォート内に埋め込む値から
11
+ * ダブルクォートを除去し、構文破壊を防ぐ。
12
+ */
13
+ export declare function stripDoubleQuotes(str: string): string;
14
+ /**
15
+ * 正規表現の特殊文字をエスケープ
16
+ *
17
+ * 外部入力を `new RegExp()` のパターンに埋め込む際に使用。
18
+ */
19
+ export declare function escapeRegExp(str: string): string;
20
+ /**
21
+ * 安全に RegExp を構築
22
+ *
23
+ * 設定ファイル等から意図的に正規表現パターンを受け取る場合に使用。
24
+ * 無効なパターンの場合は null を返す。
25
+ */
26
+ export declare function safeRegExp(pattern: string, flags?: string): RegExp | null;
27
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMzE"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * sanitize - 入力サニタイズユーティリティ
3
+ *
4
+ * 外部入力を安全に扱うための共通関数群。
5
+ * GitHub search クエリ構築、正規表現パターン構築で使用。
6
+ */
7
+ /**
8
+ * ダブルクォートを除去
9
+ *
10
+ * GitHub search の `category:"..."` 等、クォート内に埋め込む値から
11
+ * ダブルクォートを除去し、構文破壊を防ぐ。
12
+ */
13
+ export function stripDoubleQuotes(str) {
14
+ return str.replace(/"/g, "");
15
+ }
16
+ /**
17
+ * 正規表現の特殊文字をエスケープ
18
+ *
19
+ * 外部入力を `new RegExp()` のパターンに埋め込む際に使用。
20
+ */
21
+ export function escapeRegExp(str) {
22
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
23
+ }
24
+ /**
25
+ * 安全に RegExp を構築
26
+ *
27
+ * 設定ファイル等から意図的に正規表現パターンを受け取る場合に使用。
28
+ * 無効なパターンの場合は null を返す。
29
+ */
30
+ export function safeRegExp(pattern, flags) {
31
+ try {
32
+ return new RegExp(pattern, flags);
33
+ }
34
+ catch {
35
+ return null;
36
+ }
37
+ }
38
+ //# sourceMappingURL=sanitize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,KAAc;IACxD,IAAI,CAAC;QACH,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * GitHub setup validation utility (#345, #527)
3
+ *
4
+ * Checks whether manual GitHub configuration steps have been completed:
5
+ * - Discussion categories (Handovers, ADR, Knowledge, Research) with recommended settings
6
+ * - Project existence and required fields (Status, Priority, Type, Size)
7
+ * - Project workflow automations (Item closed → Done, PR merged → Done)
8
+ * - Metrics text fields (if metrics enabled)
9
+ */
10
+ import type { Logger } from "./logger.js";
11
+ /** Discussion カテゴリの推奨設定 */
12
+ export interface RecommendedCategorySetting {
13
+ description: string;
14
+ emoji: string;
15
+ format: "Open-ended discussion" | "Question / Answer";
16
+ }
17
+ export interface SetupCheckItem {
18
+ category: "discussions" | "workflows" | "metrics" | "project";
19
+ name: string;
20
+ ok: boolean;
21
+ hint?: string;
22
+ url?: string;
23
+ /** Discussion カテゴリの推奨設定(discussions カテゴリのみ) */
24
+ recommended?: RecommendedCategorySetting;
25
+ }
26
+ export interface SetupCheckResult {
27
+ repository: string;
28
+ items: SetupCheckItem[];
29
+ summary: {
30
+ total: number;
31
+ ok: number;
32
+ missing: number;
33
+ };
34
+ }
35
+ /**
36
+ * 各 Discussion カテゴリの推奨設定
37
+ * GitHub UI でカテゴリを作成する際に使用する値
38
+ */
39
+ export declare const RECOMMENDED_CATEGORY_SETTINGS: Record<string, RecommendedCategorySetting>;
40
+ /**
41
+ * Validate GitHub setup and return results
42
+ */
43
+ export declare function validateGitHubSetup(logger: Logger): SetupCheckResult | null;
44
+ /**
45
+ * Print setup check results to logger (human-friendly format)
46
+ */
47
+ export declare function printSetupCheckResults(result: SetupCheckResult, logger: Logger): void;
48
+ //# sourceMappingURL=setup-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-check.d.ts","sourceRoot":"","sources":["../../src/utils/setup-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAM1C,2BAA2B;AAC3B,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,uBAAuB,GAAG,mBAAmB,CAAC;CACvD;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,WAAW,CAAC,EAAE,0BAA0B,CAAC;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAWD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAqBpF,CAAC;AAgJF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAoC3E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,GACb,IAAI,CAwCN"}