@next-vibe/checker 1.0.52 → 3.0.1

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 +27 -131
  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,155 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { dirname, join, resolve } from "node:path";
3
-
4
- import { config } from "dotenv";
5
-
6
- import { Platform } from "../../shared/types/platform";
7
-
8
- /** CLI-specific platforms (subset of Platform that applies to CLI environments) */
9
- export type CliPlatform = typeof Platform.CLI | typeof Platform.CLI_PACKAGE;
10
-
11
- /** Result of environment loading */
12
- export interface EnvironmentResult {
13
- /** Detected platform - always CLI or CLI_PACKAGE in CLI runtime */
14
- platform: CliPlatform;
15
- /** Path to .env file if found */
16
- envPath: string | null;
17
- /** Path to project root if found */
18
- projectRoot: string | null;
19
- /** Whether running from npm package */
20
- isPackage: boolean;
21
- }
22
-
23
- /** Global storage for environment result (set once at startup) */
24
- let cachedEnvironmentResult: EnvironmentResult | null = null;
25
-
26
- /**
27
- * Detect if running from npm package vs local development
28
- * Checks:
29
- * 1. If script path contains node_modules
30
- * 2. If we're in a next-vibe project structure
31
- */
32
- function detectIsPackage(): boolean {
33
- // Check if the main script is running from node_modules
34
- const mainScript = process.argv[1] || "";
35
- if (mainScript.includes("node_modules")) {
36
- return true;
37
- }
38
-
39
- // Check if we're in the next-vibe project (has src/app/api structure)
40
- const cwd = process.cwd();
41
- const localVibeStructure = join(cwd, "src/app/api/[locale]");
42
- if (existsSync(localVibeStructure)) {
43
- return false; // Local development
44
- }
45
-
46
- // Check if script is running from .dist/bin in a non-project context
47
- if (mainScript.includes(".dist/bin/vibe-runtime")) {
48
- // Could be local dist or package dist - check for src folder
49
- const scriptDir = dirname(mainScript);
50
- const projectRoot = resolve(scriptDir, "../..");
51
- const srcPath = join(projectRoot, "src/app/api/[locale]");
52
- if (!existsSync(srcPath)) {
53
- return true; // Running from package
54
- }
55
- }
56
-
57
- return false;
58
- }
59
-
60
- /**
61
- * Load environment variables and detect platform
62
- * Returns the detected platform for use in CLI initialization
63
- */
64
- export function loadEnvironment(): EnvironmentResult {
65
- // Return cached result if already loaded
66
- if (cachedEnvironmentResult) {
67
- return cachedEnvironmentResult;
68
- }
69
-
70
- const envFileName = ".env";
71
- let envPath: string | null = null;
72
- let projectRoot: string | null = null;
73
-
74
- // Detect if running from package
75
- const isPackage = detectIsPackage();
76
-
77
- // Strategy 1: Look for .env file starting from current directory and going up
78
- let currentDir = process.cwd();
79
- while (currentDir !== dirname(currentDir)) {
80
- const potentialEnvPath = join(currentDir, envFileName);
81
- if (existsSync(potentialEnvPath)) {
82
- envPath = potentialEnvPath;
83
- projectRoot = currentDir;
84
- break;
85
- }
86
- currentDir = dirname(currentDir);
87
- }
88
-
89
- // Strategy 2: If not found, look for package.json to identify project root
90
- // This handles cases where MCP Inspector starts the process from a different directory
91
- if (!envPath) {
92
- let searchDir = process.cwd();
93
- while (searchDir !== dirname(searchDir)) {
94
- const packageJsonPath = join(searchDir, "package.json");
95
- if (existsSync(packageJsonPath)) {
96
- // Found package.json, this is likely the project root
97
- projectRoot = searchDir;
98
- const potentialEnvPath = join(searchDir, envFileName);
99
- if (existsSync(potentialEnvPath)) {
100
- envPath = potentialEnvPath;
101
- break;
102
- }
103
- }
104
- searchDir = dirname(searchDir);
105
- }
106
- }
107
-
108
- // Strategy 3: Try common project locations relative to node_modules
109
- if (!envPath) {
110
- // If this script is in node_modules or installed globally, try to find project root
111
- const possibleRoots = [
112
- resolve(process.cwd(), ".."),
113
- resolve(process.cwd(), "../.."),
114
- resolve(process.cwd(), "../../.."),
115
- ];
116
-
117
- for (const root of possibleRoots) {
118
- const potentialEnvPath = join(root, envFileName);
119
- if (existsSync(potentialEnvPath)) {
120
- envPath = potentialEnvPath;
121
- projectRoot = root;
122
- break;
123
- }
124
- }
125
- }
126
-
127
- // Load the .env file if found
128
- if (envPath) {
129
- config({ path: envPath, quiet: true });
130
- } else {
131
- // Fallback to default dotenv behavior
132
- config({ quiet: true });
133
- }
134
-
135
- // Determine platform based on detection
136
- const platform = isPackage ? Platform.CLI_PACKAGE : Platform.CLI;
137
-
138
- // Cache and return result
139
- cachedEnvironmentResult = {
140
- platform,
141
- envPath,
142
- projectRoot,
143
- isPackage,
144
- };
145
-
146
- return cachedEnvironmentResult;
147
- }
148
-
149
- /**
150
- * Get the cached environment result
151
- * Must be called after loadEnvironment()
152
- */
153
- export function getEnvironmentResult(): EnvironmentResult | null {
154
- return cachedEnvironmentResult;
155
- }
@@ -1,423 +0,0 @@
1
- /**
2
- * Production-ready error handling for Vibe CLI
3
- */
4
-
5
- import type { EndpointLogger } from "../../shared/logger/endpoint";
6
-
7
- /**
8
- * Error context type
9
- */
10
- interface ErrorContext {
11
- [key: string]: string | number | boolean | string[] | undefined | Record<string, never>;
12
- }
13
-
14
- /**
15
- * Unknown error type for error handling
16
- */
17
- type UnknownError = Error | CliError | Record<string, never>;
18
-
19
- /**
20
- * Base CLI error class
21
- */
22
- export abstract class CliError extends Error {
23
- abstract readonly code: string;
24
- abstract readonly statusCode: number;
25
- readonly timestamp: Date;
26
- readonly context?: ErrorContext;
27
-
28
- constructor(message: string, context?: ErrorContext) {
29
- super(message);
30
- this.name = this.constructor.name;
31
- this.timestamp = new Date();
32
- this.context = context;
33
-
34
- // Maintain proper stack trace
35
- if (Error.captureStackTrace) {
36
- Error.captureStackTrace(this, this.constructor);
37
- }
38
- }
39
-
40
- /**
41
- * Safely get a string value from context
42
- */
43
- protected getContextString(key: string, fallback = "unknown"): string {
44
- const value = this.context?.[key];
45
- if (typeof value === "string") {
46
- return value;
47
- }
48
- if (typeof value === "number" || typeof value === "boolean") {
49
- return String(value);
50
- }
51
- return fallback;
52
- }
53
-
54
- /**
55
- * Convert error to JSON for logging/serialization
56
- */
57
- toJSON(): Record<string, string | number | ErrorContext | undefined> {
58
- return {
59
- name: this.name,
60
- code: this.code,
61
- message: this.message,
62
- statusCode: this.statusCode,
63
- timestamp: this.timestamp.toISOString(),
64
- context: this.context,
65
- stack: this.stack,
66
- };
67
- }
68
-
69
- /**
70
- * Get user-friendly error message
71
- */
72
- getUserMessage(): string {
73
- return this.message;
74
- }
75
- }
76
-
77
- /**
78
- * Command not found error
79
- */
80
- export class CommandNotFoundError extends CliError {
81
- readonly code = "COMMAND_NOT_FOUND";
82
- readonly statusCode = 404;
83
-
84
- constructor(command: string, availableCommands?: string[]) {
85
- // eslint-disable-next-line i18next/no-literal-string
86
- const message = `Command '${command}' not found`;
87
- super(message, { command, availableCommands });
88
- }
89
-
90
- getUserMessage(): string {
91
- // Type guard for availableCommands
92
- const commands = this.context?.availableCommands;
93
- const isStringArray =
94
- Array.isArray(commands) && commands.every((cmd) => typeof cmd === "string");
95
-
96
- /* eslint-disable i18next/no-literal-string */
97
- const suggestions = isStringArray
98
- ? `\n\nAvailable commands:\n${commands
99
- .slice(0, 10)
100
- .map((cmd) => ` - ${cmd}`)
101
- .join("\n")}`
102
- : "";
103
-
104
- return `❌ ${this.message}${suggestions}`;
105
- /* eslint-enable i18next/no-literal-string */
106
- }
107
- }
108
-
109
- /**
110
- * Route execution error
111
- */
112
- export class RouteExecutionError extends CliError {
113
- readonly code = "ROUTE_EXECUTION_ERROR";
114
- readonly statusCode = 500;
115
-
116
- constructor(route: string, originalError: Error, context?: ErrorContext) {
117
- // eslint-disable-next-line i18next/no-literal-string
118
- const message = `Failed to execute route '${route}': ${originalError.message}`;
119
- super(message, { route, originalError: originalError.message, ...context });
120
-
121
- // Preserve original stack trace
122
- if (originalError.stack) {
123
- this.stack = originalError.stack;
124
- }
125
- }
126
-
127
- getUserMessage(): string {
128
- const route = this.getContextString("route");
129
- const error = this.getContextString("originalError");
130
- // eslint-disable-next-line i18next/no-literal-string
131
- return `❌ Route execution failed: ${route}\n ${error}`;
132
- }
133
- }
134
-
135
- /**
136
- * Validation error
137
- */
138
- export class ValidationError extends CliError {
139
- readonly code = "VALIDATION_ERROR";
140
- readonly statusCode = 400;
141
-
142
- constructor(
143
- field: string,
144
- value: string | number | boolean | undefined,
145
- expectedType: string,
146
- details?: string,
147
- ) {
148
- // eslint-disable-next-line i18next/no-literal-string
149
- const message = `Validation failed for field '${field}': expected ${expectedType}, got ${typeof value}`;
150
- super(message, { field, value, expectedType, details });
151
- }
152
-
153
- getUserMessage(): string {
154
- const field = this.getContextString("field");
155
- const expectedType = this.getContextString("expectedType");
156
- const detailsValue = this.getContextString("details", "");
157
- // eslint-disable-next-line i18next/no-literal-string
158
- const details = detailsValue ? ` (${detailsValue})` : "";
159
- // eslint-disable-next-line i18next/no-literal-string
160
- return `❌ Invalid input for '${field}': expected ${expectedType}${details}`;
161
- }
162
- }
163
-
164
- /**
165
- * Configuration error
166
- */
167
- export class ConfigurationError extends CliError {
168
- readonly code = "CONFIGURATION_ERROR";
169
- readonly statusCode = 500;
170
-
171
- constructor(configKey: string, issue: string, context?: ErrorContext) {
172
- // eslint-disable-next-line i18next/no-literal-string
173
- const message = `Configuration error for '${configKey}': ${issue}`;
174
- super(message, { configKey, issue, ...context });
175
- }
176
-
177
- getUserMessage(): string {
178
- const issue = this.getContextString("issue");
179
- // eslint-disable-next-line i18next/no-literal-string
180
- return `❌ Configuration error: ${issue}`;
181
- }
182
- }
183
-
184
- /**
185
- * Route discovery error
186
- */
187
- export class RouteDiscoveryError extends CliError {
188
- readonly code = "ROUTE_DISCOVERY_ERROR";
189
- readonly statusCode = 500;
190
-
191
- constructor(directory: string, originalError: Error) {
192
- // eslint-disable-next-line i18next/no-literal-string
193
- const message = `Failed to discover routes in '${directory}': ${originalError.message}`;
194
- super(message, { directory, originalError: originalError.message });
195
- }
196
-
197
- getUserMessage(): string {
198
- const directory = this.getContextString("directory");
199
- // eslint-disable-next-line i18next/no-literal-string
200
- return `❌ Failed to discover routes in: ${directory}`;
201
- }
202
- }
203
-
204
- /**
205
- * Timeout error
206
- */
207
- export class TimeoutError extends CliError {
208
- readonly code = "TIMEOUT_ERROR";
209
- readonly statusCode = 408;
210
-
211
- constructor(operation: string, timeout: number) {
212
- // eslint-disable-next-line i18next/no-literal-string
213
- const message = `Operation '${operation}' timed out after ${timeout}ms`;
214
- super(message, { operation, timeout });
215
- }
216
-
217
- getUserMessage(): string {
218
- const operation = this.getContextString("operation");
219
- const timeout = this.getContextString("timeout");
220
- // eslint-disable-next-line i18next/no-literal-string
221
- return `❌ Operation timed out: ${operation} (${timeout}ms)`;
222
- }
223
- }
224
-
225
- /**
226
- * Permission error
227
- */
228
- export class PermissionError extends CliError {
229
- readonly code = "PERMISSION_ERROR";
230
- readonly statusCode = 403;
231
-
232
- constructor(resource: string, action: string, context?: ErrorContext) {
233
- // eslint-disable-next-line i18next/no-literal-string
234
- const message = `Permission denied: cannot ${action} ${resource}`;
235
- super(message, { resource, action, ...context });
236
- }
237
-
238
- getUserMessage(): string {
239
- const action = this.getContextString("action");
240
- const resource = this.getContextString("resource");
241
- // eslint-disable-next-line i18next/no-literal-string
242
- return `❌ Permission denied: cannot ${action} ${resource}`;
243
- }
244
- }
245
-
246
- /**
247
- * Resource not found error
248
- */
249
- export class ResourceNotFoundError extends CliError {
250
- readonly code = "RESOURCE_NOT_FOUND";
251
- readonly statusCode = 404;
252
-
253
- constructor(resourceType: string, identifier: string, context?: ErrorContext) {
254
- // eslint-disable-next-line i18next/no-literal-string
255
- const message = `${resourceType} '${identifier}' not found`;
256
- super(message, { resourceType, identifier, ...context });
257
- }
258
-
259
- getUserMessage(): string {
260
- // eslint-disable-next-line i18next/no-literal-string
261
- const resourceType = this.getContextString("resourceType", "Resource");
262
- const identifier = this.getContextString("identifier");
263
- // eslint-disable-next-line i18next/no-literal-string
264
- return `❌ ${resourceType} not found: ${identifier}`;
265
- }
266
- }
267
-
268
- /**
269
- * Error handler utility
270
- */
271
- export namespace ErrorHandler {
272
- /**
273
- * Safely convert error to string
274
- */
275
- function errorToString(error: UnknownError): string {
276
- if (error instanceof Error) {
277
- return error.message;
278
- }
279
- if (typeof error === "string") {
280
- return error;
281
- }
282
- if (typeof error === "object" && error !== null) {
283
- return JSON.stringify(error);
284
- }
285
- return String(error);
286
- }
287
-
288
- /**
289
- * Handle and format error for CLI output
290
- */
291
- export function handleError(
292
- error: UnknownError,
293
- logger: EndpointLogger,
294
- ): {
295
- message: string;
296
- exitCode: number;
297
- shouldExit: boolean;
298
- } {
299
- if (error instanceof CliError) {
300
- return {
301
- message: logger.isDebugEnabled ? formatVerboseError(error) : error.getUserMessage(),
302
- exitCode: getExitCode(error.statusCode),
303
- shouldExit: true,
304
- };
305
- }
306
-
307
- if (error instanceof Error) {
308
- const cliError = new RouteExecutionError("unknown", error);
309
- return {
310
- message: logger.isDebugEnabled ? formatVerboseError(cliError) : cliError.getUserMessage(),
311
- exitCode: 1,
312
- shouldExit: true,
313
- };
314
- }
315
-
316
- // Unknown error type
317
- // eslint-disable-next-line i18next/no-literal-string
318
- const message = `❌ Unknown error: ${errorToString(error)}`;
319
- return {
320
- message: logger.isDebugEnabled
321
- ? // eslint-disable-next-line i18next/no-literal-string
322
- `${message}\n${JSON.stringify(error, null, 2)}`
323
- : message,
324
- exitCode: 1,
325
- shouldExit: true,
326
- };
327
- }
328
-
329
- /**
330
- * Format error with full details for verbose output
331
- */
332
- function formatVerboseError(error: CliError): string {
333
- // eslint-disable-next-line i18next/no-literal-string
334
- let output = `❌ ${error.name}: ${error.message}\n`;
335
- // eslint-disable-next-line i18next/no-literal-string
336
- output += ` Code: ${error.code}\n`;
337
- // eslint-disable-next-line i18next/no-literal-string
338
- output += ` Status: ${error.statusCode}\n`;
339
- // eslint-disable-next-line i18next/no-literal-string
340
- output += ` Time: ${error.timestamp.toISOString()}\n`;
341
-
342
- if (error.context && Object.keys(error.context).length > 0) {
343
- // eslint-disable-next-line i18next/no-literal-string
344
- output += ` Context: ${JSON.stringify(error.context, null, 4)}\n`;
345
- }
346
-
347
- if (error.stack) {
348
- // eslint-disable-next-line i18next/no-literal-string
349
- output += ` Stack Trace:\n${error.stack}`;
350
- }
351
-
352
- return output;
353
- }
354
-
355
- /**
356
- * Convert HTTP status code to process exit code
357
- */
358
- function getExitCode(statusCode: number): number {
359
- if (statusCode >= 400 && statusCode < 500) {
360
- return 2; // Client error
361
- }
362
- if (statusCode >= 500) {
363
- return 3; // Server error
364
- }
365
- return 1; // General error
366
- }
367
-
368
- /**
369
- * Create error from unknown value
370
- */
371
- export function createError(error: UnknownError, context?: ErrorContext): CliError {
372
- if (error instanceof CliError) {
373
- return error;
374
- }
375
-
376
- if (error instanceof Error) {
377
- return new RouteExecutionError("unknown", error, context);
378
- }
379
-
380
- return new RouteExecutionError("unknown", new Error(errorToString(error)), context);
381
- }
382
-
383
- /**
384
- * Wrap async function with error handling
385
- */
386
- export async function withErrorHandling<T>(
387
- fn: () => Promise<T>,
388
- context?: ErrorContext,
389
- ): Promise<T> {
390
- try {
391
- return await fn();
392
- } catch (error) {
393
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Infrastructure code requires throwing for system-level errors and initialization failures
394
- throw createError(error as UnknownError, context);
395
- }
396
- }
397
-
398
- /**
399
- * Check if error is recoverable
400
- */
401
- export function isRecoverable(error: CliError): boolean {
402
- const recoverableCodes = ["VALIDATION_ERROR", "COMMAND_NOT_FOUND", "RESOURCE_NOT_FOUND"];
403
-
404
- return recoverableCodes.includes(error.code);
405
- }
406
- }
407
-
408
- /**
409
- * Global error handler for unhandled errors
410
- */
411
- export function setupGlobalErrorHandlers(logger: EndpointLogger): void {
412
- process.on("uncaughtException", (error: Error): void => {
413
- const handled = ErrorHandler.handleError(error, logger);
414
- logger.error(handled.message);
415
- process.exit(handled.exitCode);
416
- });
417
-
418
- process.on("unhandledRejection", (reason: Error | Record<string, never>): void => {
419
- const handled = ErrorHandler.handleError(reason, logger);
420
- logger.error(handled.message);
421
- process.exit(handled.exitCode);
422
- });
423
- }