@next-vibe/checker 1.0.52 → 3.0.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 (430) hide show
  1. package/LICENSE +669 -5
  2. package/README.md +179 -200
  3. package/check.config.ts +85 -16
  4. package/generated/alias-map.ts +30 -0
  5. package/generated/endpoint.ts +75 -0
  6. package/{src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts → oxlint-plugins/i18n.ts} +45 -9
  7. package/{src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts → oxlint-plugins/jsx-capitalization.ts} +84 -17
  8. package/{src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts → oxlint-plugins/restricted-syntax.ts} +40 -14
  9. package/package.json +28 -132
  10. package/.dist/LICENSE +0 -674
  11. package/.dist/README.md +0 -257
  12. package/.dist/bin/vibe-runtime.js +0 -58166
  13. package/.dist/bin/vibe-runtime.js.map +0 -451
  14. package/.dist/oxlint-plugins/i18n.js +0 -381
  15. package/.dist/oxlint-plugins/jsx-capitalization.js +0 -436
  16. package/.dist/oxlint-plugins/restricted-syntax.js +0 -409
  17. package/src/app/api/[locale]/LICENSE +0 -674
  18. package/src/app/api/[locale]/i18n/de/index.ts +0 -15
  19. package/src/app/api/[locale]/i18n/en/index.ts +0 -14
  20. package/src/app/api/[locale]/i18n/pl/index.ts +0 -13
  21. package/src/app/api/[locale]/shared/i18n/de/index.ts +0 -85
  22. package/src/app/api/[locale]/shared/i18n/en/index.ts +0 -83
  23. package/src/app/api/[locale]/shared/i18n/pl/index.ts +0 -85
  24. package/src/app/api/[locale]/shared/stats-filtering.ts +0 -174
  25. package/src/app/api/[locale]/shared/types/common.schema.ts +0 -55
  26. package/src/app/api/[locale]/shared/types/response.schema.ts +0 -411
  27. package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +0 -315
  28. package/src/app/api/[locale]/shared/types/utils.ts +0 -187
  29. package/src/app/api/[locale]/shared/utils/base64.ts +0 -46
  30. package/src/app/api/[locale]/shared/utils/env-util.ts +0 -36
  31. package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +0 -21
  32. package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +0 -19
  33. package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +0 -21
  34. package/src/app/api/[locale]/shared/utils/index.ts +0 -11
  35. package/src/app/api/[locale]/shared/utils/object-path.ts +0 -41
  36. package/src/app/api/[locale]/shared/utils/object.test.ts +0 -82
  37. package/src/app/api/[locale]/shared/utils/object.ts +0 -73
  38. package/src/app/api/[locale]/shared/utils/parse-error.ts +0 -134
  39. package/src/app/api/[locale]/shared/utils/parse-json.ts +0 -62
  40. package/src/app/api/[locale]/shared/utils/time.ts +0 -46
  41. package/src/app/api/[locale]/shared/utils/validation.ts +0 -117
  42. package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +0 -115
  43. package/src/app/api/[locale]/system/builder/definition.ts +0 -1750
  44. package/src/app/api/[locale]/system/builder/enum.ts +0 -78
  45. package/src/app/api/[locale]/system/builder/i18n/de/index.ts +0 -645
  46. package/src/app/api/[locale]/system/builder/i18n/en/index.ts +0 -653
  47. package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +0 -643
  48. package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +0 -178
  49. package/src/app/api/[locale]/system/builder/repository/build-executor.ts +0 -538
  50. package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +0 -250
  51. package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +0 -170
  52. package/src/app/api/[locale]/system/builder/repository/config-loader.ts +0 -146
  53. package/src/app/api/[locale]/system/builder/repository/config-validator.ts +0 -97
  54. package/src/app/api/[locale]/system/builder/repository/constants.ts +0 -125
  55. package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +0 -67
  56. package/src/app/api/[locale]/system/builder/repository/file-copier.ts +0 -90
  57. package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +0 -75
  58. package/src/app/api/[locale]/system/builder/repository/index.ts +0 -2
  59. package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +0 -143
  60. package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +0 -104
  61. package/src/app/api/[locale]/system/builder/repository/profile-service.ts +0 -79
  62. package/src/app/api/[locale]/system/builder/repository/report-generator.ts +0 -109
  63. package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +0 -277
  64. package/src/app/api/[locale]/system/builder/route.ts +0 -21
  65. package/src/app/api/[locale]/system/builder/test-files/file1.ts +0 -2
  66. package/src/app/api/[locale]/system/builder/test-files/file2.tsx +0 -10
  67. package/src/app/api/[locale]/system/builder/test-files/file3.tsx +0 -16
  68. package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +0 -2
  69. package/src/app/api/[locale]/system/builder/test-files/test-config.ts +0 -38
  70. package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +0 -8
  71. package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +0 -24
  72. package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +0 -6
  73. package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +0 -18
  74. package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +0 -7
  75. package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +0 -27
  76. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +0 -19
  77. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +0 -1
  78. package/src/app/api/[locale]/system/builder/test-files/test3.css +0 -1
  79. package/src/app/api/[locale]/system/check/config/create/definition.ts +0 -266
  80. package/src/app/api/[locale]/system/check/config/create/i18n/de/index.ts +0 -151
  81. package/src/app/api/[locale]/system/check/config/create/i18n/en/index.ts +0 -146
  82. package/src/app/api/[locale]/system/check/config/create/i18n/pl/index.ts +0 -148
  83. package/src/app/api/[locale]/system/check/config/create/repository.ts +0 -269
  84. package/src/app/api/[locale]/system/check/config/create/route.ts +0 -21
  85. package/src/app/api/[locale]/system/check/config/repository.ts +0 -846
  86. package/src/app/api/[locale]/system/check/config/shared.ts +0 -364
  87. package/src/app/api/[locale]/system/check/config/types.ts +0 -610
  88. package/src/app/api/[locale]/system/check/config/utils.ts +0 -155
  89. package/src/app/api/[locale]/system/check/i18n/de/index.ts +0 -19
  90. package/src/app/api/[locale]/system/check/i18n/en/index.ts +0 -18
  91. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +0 -19
  92. package/src/app/api/[locale]/system/check/lint/definition.ts +0 -383
  93. package/src/app/api/[locale]/system/check/lint/enum.ts +0 -34
  94. package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +0 -160
  95. package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +0 -158
  96. package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +0 -160
  97. package/src/app/api/[locale]/system/check/lint/repository.ts +0 -844
  98. package/src/app/api/[locale]/system/check/lint/route.ts +0 -21
  99. package/src/app/api/[locale]/system/check/oxlint/README.md +0 -190
  100. package/src/app/api/[locale]/system/check/oxlint/definition.ts +0 -375
  101. package/src/app/api/[locale]/system/check/oxlint/enum.ts +0 -34
  102. package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +0 -166
  103. package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +0 -164
  104. package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +0 -166
  105. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +0 -269
  106. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +0 -74
  107. package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +0 -283
  108. package/src/app/api/[locale]/system/check/oxlint/repository.ts +0 -553
  109. package/src/app/api/[locale]/system/check/oxlint/route.ts +0 -21
  110. package/src/app/api/[locale]/system/check/oxlint/types.ts +0 -191
  111. package/src/app/api/[locale]/system/check/test-project/.vscode/settings.json +0 -48
  112. package/src/app/api/[locale]/system/check/test-project/bun.lock +0 -640
  113. package/src/app/api/[locale]/system/check/test-project/check.config.ts +0 -955
  114. package/src/app/api/[locale]/system/check/test-project/package.json +0 -17
  115. package/src/app/api/[locale]/system/check/test-project/src/constants.ts +0 -6
  116. package/src/app/api/[locale]/system/check/test-project/src/greet.ts +0 -18
  117. package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +0 -107
  118. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +0 -37
  119. package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +0 -135
  120. package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +0 -113
  121. package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +0 -127
  122. package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +0 -92
  123. package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +0 -73
  124. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +0 -95
  125. package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +0 -61
  126. package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +0 -78
  127. package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +0 -27
  128. package/src/app/api/[locale]/system/check/test-project/tsconfig.json +0 -22
  129. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +0 -1
  130. package/src/app/api/[locale]/system/check/typecheck/definition.ts +0 -328
  131. package/src/app/api/[locale]/system/check/typecheck/enum.ts +0 -34
  132. package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +0 -148
  133. package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +0 -145
  134. package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +0 -148
  135. package/src/app/api/[locale]/system/check/typecheck/repository.ts +0 -863
  136. package/src/app/api/[locale]/system/check/typecheck/route.ts +0 -21
  137. package/src/app/api/[locale]/system/check/typecheck/utils.ts +0 -160
  138. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +0 -448
  139. package/src/app/api/[locale]/system/check/vibe-check/enum.ts +0 -63
  140. package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +0 -164
  141. package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +0 -161
  142. package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +0 -163
  143. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +0 -516
  144. package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +0 -1010
  145. package/src/app/api/[locale]/system/check/vibe-check/route.ts +0 -21
  146. package/src/app/api/[locale]/system/generated/endpoint.ts +0 -274
  147. package/src/app/api/[locale]/system/generated/endpoints.ts +0 -138
  148. package/src/app/api/[locale]/system/generated/route-handlers.ts +0 -213
  149. package/src/app/api/[locale]/system/generators/endpoint/definition.ts +0 -167
  150. package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +0 -48
  151. package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +0 -48
  152. package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +0 -50
  153. package/src/app/api/[locale]/system/generators/endpoint/repository.ts +0 -286
  154. package/src/app/api/[locale]/system/generators/endpoint/route.ts +0 -18
  155. package/src/app/api/[locale]/system/generators/endpoints/definition.ts +0 -246
  156. package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +0 -54
  157. package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +0 -52
  158. package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +0 -54
  159. package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +0 -425
  160. package/src/app/api/[locale]/system/generators/endpoints/repository.ts +0 -368
  161. package/src/app/api/[locale]/system/generators/endpoints/route.ts +0 -17
  162. package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +0 -166
  163. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +0 -71
  164. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +0 -69
  165. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +0 -71
  166. package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +0 -279
  167. package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +0 -18
  168. package/src/app/api/[locale]/system/generators/generate-all/definition.ts +0 -327
  169. package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +0 -96
  170. package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +0 -94
  171. package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +0 -96
  172. package/src/app/api/[locale]/system/generators/generate-all/repository.ts +0 -240
  173. package/src/app/api/[locale]/system/generators/generate-all/route.ts +0 -19
  174. package/src/app/api/[locale]/system/generators/i18n/de/index.ts +0 -15
  175. package/src/app/api/[locale]/system/generators/i18n/en/index.ts +0 -14
  176. package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +0 -15
  177. package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +0 -178
  178. package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +0 -48
  179. package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +0 -48
  180. package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +0 -50
  181. package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +0 -267
  182. package/src/app/api/[locale]/system/generators/route-handlers/route.ts +0 -14
  183. package/src/app/api/[locale]/system/generators/shared/utils.ts +0 -215
  184. package/src/app/api/[locale]/system/help/definition.ts +0 -433
  185. package/src/app/api/[locale]/system/help/i18n/de/index.ts +0 -263
  186. package/src/app/api/[locale]/system/help/i18n/en/index.ts +0 -259
  187. package/src/app/api/[locale]/system/help/i18n/pl/index.ts +0 -262
  188. package/src/app/api/[locale]/system/help/interactive/definition.ts +0 -122
  189. package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +0 -21
  190. package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +0 -19
  191. package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +0 -21
  192. package/src/app/api/[locale]/system/help/interactive/repository.ts +0 -1131
  193. package/src/app/api/[locale]/system/help/interactive/route.ts +0 -43
  194. package/src/app/api/[locale]/system/help/list/definition.ts +0 -362
  195. package/src/app/api/[locale]/system/help/list/repository.ts +0 -99
  196. package/src/app/api/[locale]/system/help/list/route.ts +0 -21
  197. package/src/app/api/[locale]/system/help/repository.ts +0 -238
  198. package/src/app/api/[locale]/system/help/route.ts +0 -16
  199. package/src/app/api/[locale]/system/i18n/de/index.ts +0 -67
  200. package/src/app/api/[locale]/system/i18n/en/index.ts +0 -66
  201. package/src/app/api/[locale]/system/i18n/pl/index.ts +0 -67
  202. package/src/app/api/[locale]/system/release-tool/definition.ts +0 -2925
  203. package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +0 -782
  204. package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +0 -779
  205. package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +0 -781
  206. package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +0 -122
  207. package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +0 -205
  208. package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +0 -540
  209. package/src/app/api/[locale]/system/release-tool/repository/config.ts +0 -106
  210. package/src/app/api/[locale]/system/release-tool/repository/constants.ts +0 -406
  211. package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +0 -496
  212. package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +0 -378
  213. package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +0 -96
  214. package/src/app/api/[locale]/system/release-tool/repository/index.ts +0 -1
  215. package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +0 -575
  216. package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +0 -150
  217. package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +0 -241
  218. package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +0 -413
  219. package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +0 -283
  220. package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +0 -1084
  221. package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +0 -132
  222. package/src/app/api/[locale]/system/release-tool/repository/utils.ts +0 -603
  223. package/src/app/api/[locale]/system/release-tool/repository/validation.ts +0 -265
  224. package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +0 -275
  225. package/src/app/api/[locale]/system/release-tool/route.ts +0 -21
  226. package/src/app/api/[locale]/system/unified-interface/README.md +0 -328
  227. package/src/app/api/[locale]/system/unified-interface/cli/README.md +0 -349
  228. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +0 -82
  229. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +0 -120
  230. package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +0 -244
  231. package/src/app/api/[locale]/system/unified-interface/cli/env.ts +0 -24
  232. package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +0 -159
  233. package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +0 -158
  234. package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +0 -159
  235. package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +0 -573
  236. package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +0 -128
  237. package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +0 -155
  238. package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +0 -423
  239. package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +0 -252
  240. package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +0 -901
  241. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +0 -12
  242. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +0 -11
  243. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +0 -12
  244. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +0 -235
  245. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +0 -54
  246. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +0 -52
  247. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +0 -54
  248. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +0 -444
  249. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +0 -25
  250. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +0 -159
  251. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +0 -61
  252. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +0 -59
  253. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +0 -61
  254. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +0 -181
  255. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +0 -22
  256. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +0 -164
  257. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +0 -54
  258. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +0 -52
  259. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +0 -54
  260. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +0 -195
  261. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +0 -24
  262. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +0 -180
  263. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +0 -54
  264. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +0 -52
  265. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +0 -54
  266. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +0 -105
  267. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +0 -22
  268. package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +0 -264
  269. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +0 -246
  270. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +0 -305
  271. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +0 -116
  272. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +0 -67
  273. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +0 -65
  274. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +0 -67
  275. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +0 -70
  276. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +0 -37
  277. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +0 -52
  278. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +0 -285
  279. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +0 -71
  280. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +0 -281
  281. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +0 -83
  282. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +0 -175
  283. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +0 -61
  284. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +0 -518
  285. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +0 -75
  286. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +0 -357
  287. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +0 -93
  288. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +0 -49
  289. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +0 -63
  290. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +0 -667
  291. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +0 -78
  292. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +0 -99
  293. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +0 -54
  294. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +0 -46
  295. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +0 -123
  296. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +0 -269
  297. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +0 -114
  298. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +0 -138
  299. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +0 -59
  300. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +0 -76
  301. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +0 -37
  302. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +0 -403
  303. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +0 -504
  304. package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +0 -39
  305. package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +0 -37
  306. package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +0 -39
  307. package/src/app/api/[locale]/system/unified-interface/mcp/README.md +0 -114
  308. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +0 -136
  309. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +0 -180
  310. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +0 -178
  311. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +0 -180
  312. package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +0 -305
  313. package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +0 -124
  314. package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +0 -44
  315. package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +0 -14
  316. package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +0 -291
  317. package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +0 -155
  318. package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +0 -191
  319. package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +0 -247
  320. package/src/app/api/[locale]/system/unified-interface/react/icons.tsx +0 -346
  321. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +0 -1413
  322. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +0 -525
  323. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +0 -52
  324. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +0 -144
  325. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +0 -262
  326. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +0 -656
  327. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +0 -220
  328. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +0 -313
  329. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +0 -182
  330. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +0 -173
  331. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +0 -58
  332. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +0 -45
  333. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +0 -43
  334. package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +0 -58
  335. package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +0 -107
  336. package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +0 -336
  337. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +0 -385
  338. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +0 -1827
  339. package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +0 -108
  340. package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +0 -288
  341. package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +0 -114
  342. package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +0 -155
  343. package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +0 -85
  344. package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +0 -167
  345. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +0 -82
  346. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +0 -34
  347. package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +0 -1
  348. package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +0 -284
  349. package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +0 -1101
  350. package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +0 -383
  351. package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +0 -34
  352. package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +0 -76
  353. package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +0 -72
  354. package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +0 -27
  355. package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +0 -80
  356. package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +0 -225
  357. package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +0 -251
  358. package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +0 -1060
  359. package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +0 -70
  360. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +0 -75
  361. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +0 -69
  362. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +0 -86
  363. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +0 -283
  364. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +0 -190
  365. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +0 -114
  366. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +0 -71
  367. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +0 -228
  368. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +0 -119
  369. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +0 -367
  370. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +0 -81
  371. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +0 -71
  372. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +0 -79
  373. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +0 -426
  374. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +0 -38
  375. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +0 -112
  376. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +0 -110
  377. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +0 -66
  378. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +0 -79
  379. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +0 -159
  380. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +0 -225
  381. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +0 -85
  382. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +0 -63
  383. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +0 -73
  384. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +0 -96
  385. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +0 -57
  386. package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +0 -236
  387. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +0 -120
  388. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +0 -414
  389. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +0 -37
  390. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +0 -427
  391. package/src/app/api/[locale]/user/auth/i18n/de/index.ts +0 -204
  392. package/src/app/api/[locale]/user/auth/i18n/en/index.ts +0 -199
  393. package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +0 -203
  394. package/src/app/api/[locale]/user/auth/types.ts +0 -45
  395. package/src/app/api/[locale]/user/enum.ts +0 -64
  396. package/src/app/api/[locale]/user/i18n/de/index.ts +0 -75
  397. package/src/app/api/[locale]/user/i18n/en/index.ts +0 -74
  398. package/src/app/api/[locale]/user/i18n/pl/index.ts +0 -75
  399. package/src/app/api/[locale]/user/types.ts +0 -111
  400. package/src/app/api/[locale]/user/user-roles/enum.ts +0 -103
  401. package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +0 -85
  402. package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +0 -83
  403. package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +0 -85
  404. package/src/app/api/[locale]/user/user-roles/types.ts +0 -32
  405. package/src/app/api/i18n/de/index.ts +0 -6
  406. package/src/app/api/i18n/en/index.ts +0 -5
  407. package/src/app/api/i18n/pl/index.ts +0 -5
  408. package/src/app/i18n/de/index.ts +0 -18
  409. package/src/app/i18n/en/index.ts +0 -18
  410. package/src/app/i18n/pl/index.ts +0 -17
  411. package/src/config/constants.ts +0 -8
  412. package/src/config/debug.ts +0 -30
  413. package/src/config/env-client.ts +0 -57
  414. package/src/config/env.ts +0 -56
  415. package/src/config/i18n/de/index.ts +0 -3
  416. package/src/config/i18n/en/index.ts +0 -51
  417. package/src/config/i18n/pl/index.ts +0 -3
  418. package/src/i18n/core/config.ts +0 -225
  419. package/src/i18n/core/language-utils.ts +0 -226
  420. package/src/i18n/core/localization-utils.ts +0 -394
  421. package/src/i18n/core/scoped-translation.ts +0 -104
  422. package/src/i18n/core/shared-component.tsx +0 -28
  423. package/src/i18n/core/shared-translation-utils.ts +0 -97
  424. package/src/i18n/core/shared.ts +0 -44
  425. package/src/i18n/core/static-types.ts +0 -64
  426. package/src/i18n/core/translation-utils.ts +0 -186
  427. package/src/i18n/de/index.ts +0 -8
  428. package/src/i18n/en/index.ts +0 -7
  429. package/src/i18n/index.ts +0 -100
  430. package/src/i18n/pl/index.ts +0 -7
@@ -1,846 +0,0 @@
1
- /**
2
- * Unified Check Configuration Repository
3
- *
4
- * Centralizes all configuration operations for code quality tools:
5
- * - Loading and validating check.config.ts
6
- * - Generating output files (.oxlintrc.json, .oxfmtrc.json)
7
- * - Updating VSCode settings
8
- * - Providing configuration to all check modules
9
- */
10
-
11
- import { existsSync, promises as fs } from "node:fs";
12
- import { dirname, resolve } from "node:path";
13
- import { fileURLToPath } from "node:url";
14
-
15
- import type { EndpointLogger } from "@/app/api/[locale]/system/unified-interface/shared/logger/endpoint";
16
-
17
- import { parseError } from "../../../shared/utils/parse-error";
18
- import { parseJsonWithComments } from "../../../shared/utils/parse-json";
19
- import type { CheckConfig, JsonObject, OxlintJsPlugin } from "./types";
20
-
21
- // ============================================================
22
- // Result Types
23
- // ============================================================
24
-
25
- export interface ConfigReadyResult {
26
- ready: true;
27
- config: CheckConfig;
28
- regenerated: boolean;
29
- }
30
-
31
- export interface ConfigErrorResult {
32
- ready: false;
33
- error: "missing" | "exists" | "creation_failed" | "load_failed";
34
- message: string;
35
- configPath: string;
36
- }
37
-
38
- export type EnsureConfigResult = ConfigReadyResult | ConfigErrorResult;
39
-
40
- // ============================================================
41
- // Repository Interface
42
- // ============================================================
43
-
44
- export interface ConfigRepositoryInterface {
45
- ensureConfigReady(logger: EndpointLogger, createConfig?: boolean): Promise<EnsureConfigResult>;
46
-
47
- generateAllConfigs(
48
- logger: EndpointLogger,
49
- config: CheckConfig,
50
- ): Promise<{
51
- success: boolean;
52
- oxlintConfigPath?: string;
53
- oxfmtConfigPath?: string;
54
- eslintConfigPath?: string;
55
- error?: string;
56
- }>;
57
-
58
- generateVSCodeSettings(
59
- logger: EndpointLogger,
60
- config: CheckConfig,
61
- ): Promise<{ success: boolean; settingsPath: string; error?: string }>;
62
-
63
- createDefaultCheckConfig(
64
- logger: EndpointLogger,
65
- ): Promise<{ success: boolean; configPath: string; error?: string }>;
66
-
67
- createDefaultMcpConfig(
68
- logger: EndpointLogger,
69
- ): Promise<{ success: boolean; mcpConfigPath: string; error?: string }>;
70
- }
71
-
72
- // ============================================================
73
- // Repository Implementation
74
- // ============================================================
75
-
76
- export class ConfigRepositoryImpl implements ConfigRepositoryInterface {
77
- // --------------------------------------------------------
78
- // Static Private Helpers - Path Resolution
79
- // --------------------------------------------------------
80
-
81
- private static getConfigFilePath(): string {
82
- return resolve(process.cwd(), "check.config.ts");
83
- }
84
-
85
- private static resolveJsPluginPath(pluginPath: string): string {
86
- // Pattern: @next-vibe/checker/oxlint-plugins/restricted-syntax.ts or .js
87
- if (pluginPath.startsWith("@next-vibe/checker/oxlint-plugins/")) {
88
- const fileName = pluginPath.slice("@next-vibe/checker/oxlint-plugins/".length);
89
- const baseName = fileName.replace(/\.(ts|js)$/, "");
90
- const extension = fileName.endsWith(".ts") ? "ts" : "js";
91
-
92
- if (extension === "ts") {
93
- // Local development: .ts -> source files
94
- const sourcePath = resolve(
95
- process.cwd(),
96
- "src",
97
- "app",
98
- "api",
99
- "[locale]",
100
- "system",
101
- "check",
102
- "oxlint",
103
- "plugins",
104
- baseName,
105
- "src",
106
- "index.ts",
107
- );
108
- if (existsSync(sourcePath)) {
109
- return sourcePath;
110
- }
111
- } else {
112
- // Installed package: .js -> compiled files
113
- const compiledPath = resolve(
114
- process.cwd(),
115
- "node_modules",
116
- "@next-vibe",
117
- "checker",
118
- ".dist",
119
- "oxlint-plugins",
120
- fileName,
121
- );
122
- if (existsSync(compiledPath)) {
123
- return compiledPath;
124
- }
125
- }
126
-
127
- // Fallback: return expected path
128
- return extension === "ts"
129
- ? resolve(
130
- process.cwd(),
131
- "src",
132
- "app",
133
- "api",
134
- "[locale]",
135
- "system",
136
- "check",
137
- "oxlint",
138
- "plugins",
139
- baseName,
140
- "src",
141
- "index.ts",
142
- )
143
- : resolve(
144
- process.cwd(),
145
- "node_modules",
146
- "@next-vibe",
147
- "checker",
148
- ".dist",
149
- "oxlint-plugins",
150
- fileName,
151
- );
152
- }
153
-
154
- // If no prefix matched, return absolute path if it exists, otherwise as-is
155
- if (pluginPath.startsWith("/")) {
156
- return pluginPath;
157
- }
158
-
159
- const absolutePath = resolve(process.cwd(), pluginPath);
160
- return existsSync(absolutePath) ? absolutePath : pluginPath;
161
- }
162
-
163
- private static resolveJsPlugins(jsPlugins: (string | OxlintJsPlugin)[] | undefined): string[] {
164
- if (!jsPlugins || jsPlugins.length === 0) {
165
- return [];
166
- }
167
-
168
- // Resolve paths - supports both string paths and objects with path property
169
- // Options in objects are for future oxlint native support, currently plugins read from config.oxlint.rules
170
- return jsPlugins.map((plugin) => {
171
- const pluginPath = typeof plugin === "string" ? plugin : plugin.path;
172
- return ConfigRepositoryImpl.resolveJsPluginPath(pluginPath);
173
- });
174
- }
175
-
176
- // --------------------------------------------------------
177
- // Static Private Helpers - Package Discovery
178
- // --------------------------------------------------------
179
-
180
- private static async findPackageRoot(startDir: string): Promise<string | null> {
181
- let currentDir = startDir;
182
- const root = resolve("/");
183
-
184
- while (currentDir !== root) {
185
- const packageJsonPath = resolve(currentDir, "package.json");
186
- if (existsSync(packageJsonPath)) {
187
- try {
188
- const content = await fs.readFile(packageJsonPath, "utf8");
189
- const pkg = JSON.parse(content) as { name?: string };
190
- if (pkg.name === "@next-vibe/checker" || pkg.name === "next-vibe") {
191
- return currentDir;
192
- }
193
- } catch {
194
- // Continue searching
195
- }
196
- }
197
- currentDir = dirname(currentDir);
198
- }
199
- return null;
200
- }
201
-
202
- // --------------------------------------------------------
203
- // Static Private Helpers - Config Generation
204
- // --------------------------------------------------------
205
-
206
- private static generateEslintConfigContent(): string {
207
- return `/**
208
- * ESLint Flat Config (Auto-generated)
209
- * Loads plugins and builds config from check.config.ts
210
- */
211
-
212
- import { createRequire } from "node:module";
213
- import { dirname, resolve } from "node:path";
214
- import { fileURLToPath } from "node:url";
215
-
216
- const __dirname = dirname(fileURLToPath(import.meta.url));
217
- const projectRoot = resolve(__dirname, "..");
218
- const require = createRequire(resolve(projectRoot, "package.json"));
219
-
220
- // Load ESLint plugins
221
- const reactCompilerPlugin = require("eslint-plugin-react-compiler");
222
- const reactHooksPlugin = require("eslint-plugin-react-hooks");
223
- const simpleImportSortPlugin = require("eslint-plugin-simple-import-sort");
224
- const tseslint = require("typescript-eslint");
225
-
226
- // Load check.config.ts and build flatConfig with plugins
227
- const exported = require(resolve(projectRoot, "check.config.ts")).default;
228
- const checkConfig = typeof exported === "function" ? exported() : exported;
229
-
230
- // Build flatConfig by calling buildFlatConfig with loaded plugins
231
- export default checkConfig.eslint?.buildFlatConfig?.(
232
- reactCompilerPlugin,
233
- reactHooksPlugin,
234
- simpleImportSortPlugin,
235
- tseslint
236
- ) || checkConfig.eslint?.flatConfig || [];
237
- `;
238
- }
239
-
240
- private static buildOxfmtConfig(
241
- prettierConfig: CheckConfig["prettier"] & { enabled: true },
242
- ): Record<string, boolean | string | number> {
243
- return {
244
- semi: prettierConfig.semi ?? true,
245
- singleQuote: prettierConfig.singleQuote ?? false,
246
- trailingComma: prettierConfig.trailingComma ?? "all",
247
- tabWidth: prettierConfig.tabWidth ?? 2,
248
- useTabs: prettierConfig.useTabs ?? false,
249
- printWidth: prettierConfig.printWidth ?? 80,
250
- arrowParens: prettierConfig.arrowParens ?? "always",
251
- endOfLine: prettierConfig.endOfLine ?? "lf",
252
- bracketSpacing: prettierConfig.bracketSpacing ?? true,
253
- jsxSingleQuote: prettierConfig.jsxSingleQuote ?? false,
254
- };
255
- }
256
-
257
- // --------------------------------------------------------
258
- // Static Private Helpers - VSCode Settings
259
- // --------------------------------------------------------
260
-
261
- private static applyOxcSettings(
262
- settings: JsonObject,
263
- oxc: NonNullable<NonNullable<CheckConfig["vscode"] & { enabled: true }>["settings"]>["oxc"],
264
- ): void {
265
- if (!oxc) {
266
- return;
267
- }
268
- if (oxc.enable !== undefined) {
269
- settings["oxc.enable"] = oxc.enable;
270
- }
271
- if (oxc.lintRun) {
272
- settings["oxc.lint.run"] = oxc.lintRun;
273
- }
274
- if (oxc.configPath) {
275
- settings["oxc.configPath"] = oxc.configPath;
276
- }
277
- if (oxc.fmtConfigPath) {
278
- settings["oxc.fmt.configPath"] = oxc.fmtConfigPath;
279
- }
280
- if (oxc.fmtExperimental !== undefined) {
281
- settings["oxc.fmt.experimental"] = oxc.fmtExperimental;
282
- }
283
- if (oxc.typeAware !== undefined) {
284
- settings["oxc.typeAware"] = oxc.typeAware;
285
- }
286
- if (oxc.traceServer) {
287
- settings["oxc.trace.server"] = oxc.traceServer;
288
- }
289
- }
290
-
291
- private static applyEditorSettings(
292
- settings: JsonObject,
293
- editor: NonNullable<
294
- NonNullable<CheckConfig["vscode"] & { enabled: true }>["settings"]
295
- >["editor"],
296
- ): void {
297
- if (!editor) {
298
- return;
299
- }
300
- if (editor.formatOnSave !== undefined) {
301
- settings["editor.formatOnSave"] = editor.formatOnSave;
302
- }
303
- if (editor.defaultFormatter) {
304
- settings["editor.defaultFormatter"] = editor.defaultFormatter;
305
- }
306
- if (editor.codeActionsOnSave) {
307
- settings["editor.codeActionsOnSave"] = editor.codeActionsOnSave;
308
- }
309
- }
310
-
311
- private static applyTypescriptSettings(
312
- settings: JsonObject,
313
- ts: NonNullable<
314
- NonNullable<CheckConfig["vscode"] & { enabled: true }>["settings"]
315
- >["typescript"],
316
- ): void {
317
- if (!ts) {
318
- return;
319
- }
320
- if (ts.validateEnable !== undefined) {
321
- settings["typescript.validate.enable"] = ts.validateEnable;
322
- }
323
- if (ts.suggestAutoImports !== undefined) {
324
- settings["typescript.suggest.autoImports"] = ts.suggestAutoImports;
325
- }
326
- if (ts.preferTypeOnlyAutoImports !== undefined) {
327
- settings["typescript.preferences.preferTypeOnlyAutoImports"] = ts.preferTypeOnlyAutoImports;
328
- }
329
- if (ts.experimentalUseTsgo !== undefined) {
330
- settings["typescript.experimental.useTsgo"] = ts.experimentalUseTsgo;
331
- }
332
- }
333
-
334
- private static applyFileSettings(
335
- settings: JsonObject,
336
- existing: JsonObject,
337
- files: NonNullable<NonNullable<CheckConfig["vscode"] & { enabled: true }>["settings"]>["files"],
338
- ): void {
339
- if (!files) {
340
- return;
341
- }
342
- if (files.eol) {
343
- settings["files.eol"] = files.eol;
344
- }
345
- if (files.exclude) {
346
- settings["files.exclude"] = {
347
- ...(existing["files.exclude"] as Record<string, boolean> | undefined),
348
- ...files.exclude,
349
- };
350
- }
351
- }
352
-
353
- private static applySearchSettings(
354
- settings: JsonObject,
355
- existing: JsonObject,
356
- search: NonNullable<
357
- NonNullable<CheckConfig["vscode"] & { enabled: true }>["settings"]
358
- >["search"],
359
- ): void {
360
- if (!search?.exclude) {
361
- return;
362
- }
363
- settings["search.exclude"] = {
364
- ...(existing["search.exclude"] as Record<string, boolean> | undefined),
365
- ...search.exclude,
366
- };
367
- }
368
-
369
- private static applyLanguageFormatterSettings(
370
- settings: JsonObject,
371
- existing: JsonObject,
372
- vscodeSettings: NonNullable<CheckConfig["vscode"] & { enabled: true }>["settings"],
373
- ): void {
374
- const formatter = vscodeSettings?.editor?.defaultFormatter;
375
- if (!formatter) {
376
- return;
377
- }
378
-
379
- for (const lang of ["typescript", "typescriptreact", "javascript", "javascriptreact"]) {
380
- const langKey = `[${lang}]`;
381
- const existingLang = existing[langKey] as JsonObject | undefined;
382
- settings[langKey] = {
383
- ...existingLang,
384
- "editor.defaultFormatter": formatter,
385
- "editor.formatOnSave": vscodeSettings?.editor?.formatOnSave ?? true,
386
- ...(lang.includes("typescript")
387
- ? {
388
- "editor.codeActionsOnSave": {
389
- "source.organizeImports": "always",
390
- },
391
- }
392
- : {}),
393
- };
394
- }
395
- }
396
-
397
- // --------------------------------------------------------
398
- // Public Methods
399
- // --------------------------------------------------------
400
-
401
- async ensureConfigReady(
402
- logger: EndpointLogger,
403
- createConfig = false,
404
- ): Promise<EnsureConfigResult> {
405
- const configPath = ConfigRepositoryImpl.getConfigFilePath();
406
- const configExists = existsSync(configPath);
407
-
408
- if (createConfig && configExists) {
409
- logger.debug("check.config.ts already exists", { path: configPath });
410
- return {
411
- ready: false,
412
- error: "exists",
413
- message:
414
- "check.config.ts already exists. To restore the default configuration, delete the existing file first and run 'npx @next-vibe/checker config-create' to create a new one.",
415
- configPath,
416
- };
417
- }
418
-
419
- if (!configExists) {
420
- if (createConfig) {
421
- logger.info("Creating default check.config.ts...");
422
- const createResult = await this.createDefaultCheckConfig(logger);
423
- if (!createResult.success) {
424
- return {
425
- ready: false,
426
- error: "creation_failed",
427
- message: `Failed to create check.config.ts: ${createResult.error}`,
428
- configPath,
429
- };
430
- }
431
- logger.info("Created check.config.ts successfully");
432
- } else {
433
- logger.debug("check.config.ts not found", { path: configPath });
434
- return {
435
- ready: false,
436
- error: "missing",
437
- message:
438
- "check.config.ts not found. Run 'npx @next-vibe/checker config-create' to create a default configuration.",
439
- configPath,
440
- };
441
- }
442
- }
443
-
444
- const config = await this.loadCheckConfig(logger);
445
- if (!config) {
446
- return {
447
- ready: false,
448
- error: "load_failed",
449
- message:
450
- "check.config.ts could not be loaded. Run 'npx @next-vibe/checker config-create' to create a default configuration.",
451
- configPath,
452
- };
453
- }
454
-
455
- const status = await this.checkConfigStatus(logger, config);
456
- let regenerated = false;
457
-
458
- if (status.needsRegeneration) {
459
- logger.debug("Regenerating config files");
460
- const genResult = await this.generateAllConfigs(logger, config);
461
- if (genResult.success) {
462
- regenerated = true;
463
- logger.debug("Config files regenerated successfully");
464
- } else {
465
- logger.warn("Failed to regenerate config files", {
466
- error: genResult.error,
467
- });
468
- }
469
- } else {
470
- logger.debug("Config files are up-to-date");
471
- }
472
-
473
- return { ready: true, config, regenerated };
474
- }
475
-
476
- async generateAllConfigs(
477
- logger: EndpointLogger,
478
- config: CheckConfig,
479
- ): Promise<{
480
- success: boolean;
481
- oxlintConfigPath?: string;
482
- oxfmtConfigPath?: string;
483
- eslintConfigPath?: string;
484
- error?: string;
485
- }> {
486
- try {
487
- let oxlintConfigPath: string | undefined;
488
- let oxfmtConfigPath: string | undefined;
489
- let eslintConfigPath: string | undefined;
490
-
491
- // Generate oxlint config if enabled
492
- if (config.oxlint.enabled) {
493
- oxlintConfigPath = await this.generateOxlintConfig(logger, config.oxlint);
494
- }
495
-
496
- // Generate prettier/oxfmt config if enabled
497
- if (config.prettier.enabled) {
498
- oxfmtConfigPath = await this.generatePrettierConfig(logger, config.prettier);
499
- }
500
-
501
- // Generate ESLint config if enabled
502
- if (config.eslint.enabled) {
503
- eslintConfigPath = await this.generateEslintConfig(logger, config.eslint);
504
- }
505
-
506
- return {
507
- success: true,
508
- oxlintConfigPath,
509
- oxfmtConfigPath,
510
- eslintConfigPath,
511
- };
512
- } catch (error) {
513
- const errorMessage = parseError(error).message;
514
- logger.error("Failed to generate configs", { error: errorMessage });
515
- return { success: false, error: errorMessage };
516
- }
517
- }
518
-
519
- async generateVSCodeSettings(
520
- logger: EndpointLogger,
521
- config: CheckConfig,
522
- ): Promise<{ success: boolean; settingsPath: string; error?: string }> {
523
- const settingsPath = resolve(process.cwd(), ".vscode", "settings.json");
524
-
525
- try {
526
- // Check if VSCode integration is enabled
527
- if (!config.vscode.enabled) {
528
- logger.debug("VSCode settings generation disabled");
529
- return { success: true, settingsPath };
530
- }
531
-
532
- const vscodeConfig = config.vscode;
533
- if (!vscodeConfig.autoGenerateSettings) {
534
- logger.debug("VSCode settings auto-generation disabled");
535
- return { success: true, settingsPath };
536
- }
537
-
538
- await fs.mkdir(dirname(settingsPath), { recursive: true });
539
-
540
- const existingSettings = await this.loadExistingSettings(settingsPath);
541
- const newSettings: JsonObject = { ...existingSettings };
542
-
543
- // Apply all settings using static helpers
544
- ConfigRepositoryImpl.applyOxcSettings(newSettings, vscodeConfig.settings?.oxc);
545
- ConfigRepositoryImpl.applyEditorSettings(newSettings, vscodeConfig.settings?.editor);
546
- ConfigRepositoryImpl.applyTypescriptSettings(newSettings, vscodeConfig.settings?.typescript);
547
- ConfigRepositoryImpl.applyFileSettings(
548
- newSettings,
549
- existingSettings,
550
- vscodeConfig.settings?.files,
551
- );
552
- ConfigRepositoryImpl.applySearchSettings(
553
- newSettings,
554
- existingSettings,
555
- vscodeConfig.settings?.search,
556
- );
557
- ConfigRepositoryImpl.applyLanguageFormatterSettings(
558
- newSettings,
559
- existingSettings,
560
- vscodeConfig.settings,
561
- );
562
-
563
- await fs.writeFile(settingsPath, JSON.stringify(newSettings, null, 2), "utf8");
564
- logger.debug("Generated VSCode settings", { path: settingsPath });
565
-
566
- return { success: true, settingsPath };
567
- } catch (error) {
568
- const errorMessage = parseError(error).message;
569
- logger.error("Failed to generate VSCode settings", {
570
- error: errorMessage,
571
- });
572
- return { success: false, settingsPath, error: errorMessage };
573
- }
574
- }
575
-
576
- async createDefaultCheckConfig(
577
- logger: EndpointLogger,
578
- ): Promise<{ success: boolean; configPath: string; error?: string }> {
579
- const configPath = ConfigRepositoryImpl.getConfigFilePath();
580
-
581
- try {
582
- const currentDir = dirname(fileURLToPath(import.meta.url));
583
- const packageRoot = await ConfigRepositoryImpl.findPackageRoot(currentDir);
584
-
585
- if (!packageRoot) {
586
- return {
587
- success: false,
588
- configPath,
589
- error: "Could not find next-vibe package root",
590
- };
591
- }
592
-
593
- const templatePath = resolve(packageRoot, "check.config.ts");
594
-
595
- if (!existsSync(templatePath)) {
596
- return {
597
- success: false,
598
- configPath,
599
- error: `Template check.config.ts not found at ${templatePath}`,
600
- };
601
- }
602
-
603
- let templateContent = await fs.readFile(templatePath, "utf8");
604
-
605
- // Replace .ts extensions with .js for installed package usage
606
- templateContent = templateContent.replace(
607
- /@next-vibe\/checker\/oxlint-plugins\/([^"']+)\.ts/g,
608
- "@next-vibe/checker/oxlint-plugins/$1.js",
609
- );
610
-
611
- await fs.writeFile(configPath, templateContent, "utf8");
612
-
613
- // Also create .mcp.json
614
- const mcpResult = await this.createDefaultMcpConfig(logger);
615
- if (!mcpResult.success) {
616
- logger.warn("Failed to create .mcp.json", {
617
- error: mcpResult.error,
618
- });
619
- }
620
-
621
- return { success: true, configPath };
622
- } catch (error) {
623
- const errorMessage = parseError(error).message;
624
- logger.error("Failed to create check.config.ts", { error: errorMessage });
625
- return { success: false, configPath, error: errorMessage };
626
- }
627
- }
628
-
629
- async createDefaultMcpConfig(
630
- logger: EndpointLogger,
631
- ): Promise<{ success: boolean; mcpConfigPath: string; error?: string }> {
632
- const mcpConfigPath = resolve(process.cwd(), ".mcp.json");
633
-
634
- try {
635
- const mcpConfig = {
636
- mcpServers: {
637
- vibe: {
638
- command: "npx",
639
- args: ["--yes", "@next-vibe/checker@latest", "mcp"],
640
- env: {
641
- PROJECT_ROOT: process.cwd(),
642
- },
643
- },
644
- },
645
- };
646
-
647
- await fs.writeFile(mcpConfigPath, JSON.stringify(mcpConfig, null, 2), "utf8");
648
-
649
- return { success: true, mcpConfigPath };
650
- } catch (error) {
651
- const errorMessage = parseError(error).message;
652
- logger.error("Failed to create .mcp.json", { error: errorMessage });
653
- return { success: false, mcpConfigPath, error: errorMessage };
654
- }
655
- }
656
-
657
- // --------------------------------------------------------
658
- // Private Methods
659
- // --------------------------------------------------------
660
-
661
- private async loadCheckConfig(logger: EndpointLogger): Promise<CheckConfig | null> {
662
- try {
663
- const configPath = ConfigRepositoryImpl.getConfigFilePath();
664
-
665
- if (!existsSync(configPath)) {
666
- logger.debug("check.config.ts not found", { path: configPath });
667
- return null;
668
- }
669
-
670
- // Use indirect import to prevent Turbopack static analysis
671
- // eslint-disable-next-line -- dynamic import required for runtime config loading
672
- const dynamicImport = new Function("p", "return import(p)") as (p: string) => Promise<{
673
- default?: CheckConfig | (() => CheckConfig);
674
- config?: CheckConfig | (() => CheckConfig);
675
- }>;
676
- const configModule = await dynamicImport(configPath);
677
- const exportedValue = configModule.default ?? configModule.config;
678
-
679
- if (!exportedValue) {
680
- logger.warn("check.config.ts must export 'default' or 'config'");
681
- return null;
682
- }
683
-
684
- // Support both direct object exports and factory functions
685
- const config = typeof exportedValue === "function" ? exportedValue() : exportedValue;
686
-
687
- logger.debug(`Loaded check.config.ts (path: ${configPath})`);
688
- return config;
689
- } catch (error) {
690
- logger.debug(`Failed to load check.config.ts (error: ${parseError(error).message})`);
691
- return null;
692
- }
693
- }
694
-
695
- private async checkConfigStatus(
696
- logger: EndpointLogger,
697
- config: CheckConfig,
698
- ): Promise<{ needsRegeneration: boolean }> {
699
- const configPath = ConfigRepositoryImpl.getConfigFilePath();
700
-
701
- // If no tools are enabled, no regeneration needed
702
- if (!config.oxlint.enabled && !config.prettier.enabled && !config.eslint.enabled) {
703
- return { needsRegeneration: false };
704
- }
705
-
706
- // Check if any enabled config file needs regeneration
707
- try {
708
- const configStats = await fs.stat(configPath);
709
-
710
- // Check oxlint config if enabled
711
- if (config.oxlint.enabled) {
712
- const oxlintConfigPath = resolve(process.cwd(), config.oxlint.configPath);
713
- if (!existsSync(oxlintConfigPath)) {
714
- return { needsRegeneration: true };
715
- }
716
- const oxlintStats = await fs.stat(oxlintConfigPath);
717
- if (configStats.mtime > oxlintStats.mtime) {
718
- return { needsRegeneration: true };
719
- }
720
- }
721
-
722
- return { needsRegeneration: false };
723
- } catch (error) {
724
- logger.debug("Error checking config status", {
725
- error: parseError(error).message,
726
- });
727
- return { needsRegeneration: true };
728
- }
729
- }
730
-
731
- private async loadExistingSettings(settingsPath: string): Promise<JsonObject> {
732
- if (!existsSync(settingsPath)) {
733
- return {};
734
- }
735
- try {
736
- const content = await fs.readFile(settingsPath, "utf8");
737
- const parseResult = parseJsonWithComments(content);
738
- if (parseResult.success && typeof parseResult.data === "object") {
739
- return parseResult.data as JsonObject;
740
- }
741
- } catch {
742
- // Return empty object if parsing fails
743
- }
744
- return {};
745
- }
746
-
747
- private async generateOxlintConfig(
748
- logger: EndpointLogger,
749
- oxlintConfig: CheckConfig["oxlint"] & { enabled: true },
750
- ): Promise<string> {
751
- const configPath = resolve(process.cwd(), oxlintConfig.configPath);
752
- await fs.mkdir(dirname(configPath), { recursive: true });
753
-
754
- // Convert jsPlugins to array of paths for .oxlintrc.json
755
- // Options are not yet supported by oxlint natively, used via direct import workaround
756
- const resolvedJsPlugins = ConfigRepositoryImpl.resolveJsPlugins(oxlintConfig.jsPlugins);
757
-
758
- // Only include valid oxlint schema fields (not CheckConfig metadata like enabled, configPath, cachePath, lintableExtensions)
759
- const oxlintConfigForFile: {
760
- $schema?: string;
761
- ignorePatterns?: string[];
762
- plugins?: string[];
763
- jsPlugins?: string[];
764
- categories?: typeof oxlintConfig.categories;
765
- rules?: typeof oxlintConfig.rules;
766
- settings?: typeof oxlintConfig.settings;
767
- env?: typeof oxlintConfig.env;
768
- globals?: typeof oxlintConfig.globals;
769
- } = {};
770
-
771
- if (oxlintConfig.$schema !== undefined) {
772
- oxlintConfigForFile.$schema = oxlintConfig.$schema;
773
- }
774
- if (oxlintConfig.ignorePatterns !== undefined) {
775
- oxlintConfigForFile.ignorePatterns = oxlintConfig.ignorePatterns;
776
- }
777
- if (oxlintConfig.plugins !== undefined) {
778
- oxlintConfigForFile.plugins = oxlintConfig.plugins;
779
- }
780
- if (resolvedJsPlugins.length > 0) {
781
- oxlintConfigForFile.jsPlugins = resolvedJsPlugins;
782
- }
783
- if (oxlintConfig.categories !== undefined) {
784
- oxlintConfigForFile.categories = oxlintConfig.categories;
785
- }
786
- if (oxlintConfig.rules !== undefined) {
787
- oxlintConfigForFile.rules = oxlintConfig.rules;
788
- }
789
- if (oxlintConfig.settings !== undefined) {
790
- oxlintConfigForFile.settings = oxlintConfig.settings;
791
- }
792
- if (oxlintConfig.env !== undefined) {
793
- oxlintConfigForFile.env = oxlintConfig.env;
794
- }
795
- if (oxlintConfig.globals !== undefined) {
796
- oxlintConfigForFile.globals = oxlintConfig.globals;
797
- }
798
-
799
- if (resolvedJsPlugins.length > 0) {
800
- logger.debug("Resolved jsPlugins paths", {
801
- paths: resolvedJsPlugins,
802
- });
803
- }
804
-
805
- await fs.writeFile(configPath, JSON.stringify(oxlintConfigForFile, null, 2), "utf8");
806
- logger.debug("Generated .oxlintrc.json", { path: configPath });
807
-
808
- return configPath;
809
- }
810
-
811
- private async generatePrettierConfig(
812
- logger: EndpointLogger,
813
- prettierConfig: CheckConfig["prettier"] & { enabled: true },
814
- ): Promise<string> {
815
- const configPath = resolve(process.cwd(), prettierConfig.configPath);
816
- await fs.mkdir(dirname(configPath), { recursive: true });
817
-
818
- const oxfmtConfig = ConfigRepositoryImpl.buildOxfmtConfig(prettierConfig);
819
- await fs.writeFile(configPath, JSON.stringify(oxfmtConfig, null, 2), "utf8");
820
- logger.debug("Generated .oxfmtrc.json", { path: configPath });
821
-
822
- return configPath;
823
- }
824
-
825
- private async generateEslintConfig(
826
- logger: EndpointLogger,
827
- eslintConfig: CheckConfig["eslint"] & { enabled: true },
828
- ): Promise<string> {
829
- const configPath = resolve(process.cwd(), eslintConfig.configPath);
830
- await fs.mkdir(dirname(configPath), { recursive: true });
831
-
832
- await fs.writeFile(configPath, ConfigRepositoryImpl.generateEslintConfigContent(), "utf8");
833
- logger.debug("Generated eslint.config.mjs", { path: configPath });
834
-
835
- return configPath;
836
- }
837
- }
838
-
839
- // ============================================================
840
- // Default Repository Instance
841
- // ============================================================
842
-
843
- export const configRepository = new ConfigRepositoryImpl();
844
-
845
- // Legacy export for backwards compatibility
846
- export const ensureConfigReady = configRepository.ensureConfigReady.bind(configRepository);