@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,220 +0,0 @@
1
- /**
2
- * Route Execution Executor
3
- * Single source for ALL route execution logic
4
- * Consolidates route loading, handler extraction, and execution
5
- * Uses shared permission filtering logic from permissions/registry
6
- */
7
-
8
- import "server-only";
9
-
10
- import { parseError } from "next-vibe/shared/utils/parse-error";
11
- import type { z } from "zod";
12
-
13
- import type { ResponseType } from "@/app/api/[locale]/shared/types/response.schema";
14
- import {
15
- ErrorResponseTypes,
16
- fail,
17
- isFileResponse,
18
- isStreamingResponse,
19
- success,
20
- } from "@/app/api/[locale]/shared/types/response.schema";
21
- import { getRouteHandler } from "@/app/api/[locale]/system/generated/route-handlers";
22
- import type { JwtPayloadType } from "@/app/api/[locale]/user/auth/types";
23
- import type { CountryLanguage } from "@/i18n/core/config";
24
-
25
- import type { CliCompatiblePlatform } from "../../../cli/runtime/route-executor";
26
- import type { EndpointLogger } from "../../logger/endpoint";
27
-
28
- /**
29
- * Base execution context
30
- */
31
- export interface BaseExecutionContext<TData> {
32
- toolName: string;
33
- data: TData;
34
- user: JwtPayloadType;
35
- platform: CliCompatiblePlatform;
36
- locale: CountryLanguage;
37
- logger: EndpointLogger;
38
- timestamp: number;
39
- }
40
-
41
- /**
42
- * Base execution options
43
- */
44
- export interface BaseExecutionOptions {
45
- verbose?: boolean;
46
- dryRun?: boolean;
47
- interactive?: boolean;
48
- output?: "json" | "table" | "pretty";
49
- }
50
-
51
- /**
52
- * Interface for Route Execution Executor
53
- * Single unified interface for ALL platforms
54
- */
55
- export interface IRouteExecutionExecutor {
56
- /**
57
- * Execute generic handler - THE method ALL platforms use
58
- * Standard handler signature: { data, urlPathParams, user, locale, logger, platform }
59
- * Handles: permission checking, route loading, handler execution
60
- */
61
- executeGenericHandler<TData, TUrlPathParams, TResult>(params: {
62
- toolName: string;
63
- data: TData;
64
- urlPathParams?: TUrlPathParams;
65
- user: JwtPayloadType;
66
- locale: CountryLanguage;
67
- logger: EndpointLogger;
68
- platform: CliCompatiblePlatform;
69
- }): Promise<ResponseType<TResult>>;
70
-
71
- /**
72
- * CLI-specific: Get missing required fields from schema (for interactive forms)
73
- */
74
- getMissingRequiredFields<TData>(
75
- data: TData,
76
- schema: z.ZodTypeAny | null | undefined,
77
- logger: EndpointLogger,
78
- ): string[];
79
-
80
- /**
81
- * Merge data from multiple sources (for arg parsing)
82
- */
83
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Data merging: Input data from CLI arguments, environment vars, etc. can have any object structure, so unknown is correct for the generic merge utility.
84
- mergeData<TData extends Record<string, unknown>>(
85
- ...sources: Array<TData | null | undefined>
86
- ): Partial<TData>;
87
- }
88
-
89
- export class RouteExecutionExecutor implements IRouteExecutionExecutor {
90
- /**
91
- * Get missing required fields from schema
92
- * Platform-agnostic field validation
93
- */
94
- getMissingRequiredFields<TData>(
95
- data: TData,
96
- schema: z.ZodTypeAny | null | undefined,
97
- logger: EndpointLogger,
98
- ): string[] {
99
- if (!schema) {
100
- return [];
101
- }
102
-
103
- try {
104
- const result = schema.safeParse(data);
105
-
106
- if (!result.success) {
107
- // Extract only "required" errors (invalid_type with received: "undefined")
108
- return result.error.issues
109
- .filter(
110
- (issue) =>
111
- issue.code === "invalid_type" &&
112
- "received" in issue &&
113
- issue.received === "undefined",
114
- )
115
- .map((issue) => [...issue.path].join("."));
116
- }
117
-
118
- return [];
119
- } catch (error) {
120
- logger.warn("[Route Execution Executor] Failed to check required fields", {
121
- error: parseError(error).message,
122
- });
123
- return [];
124
- }
125
- }
126
-
127
- /**
128
- * Merge data from multiple sources
129
- * Platform-agnostic data merging (CLI args, provided data, defaults, etc.)
130
- */
131
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Data merging: Input data from CLI arguments, environment vars, etc. can have any object structure, so unknown is correct for the generic merge utility.
132
- mergeData<TData extends Record<string, unknown>>(
133
- ...sources: Array<TData | null | undefined>
134
- ): Partial<TData> {
135
- return sources.reduce<Partial<TData>>((acc, source) => {
136
- if (source && typeof source === "object") {
137
- return { ...acc, ...source };
138
- }
139
- return acc;
140
- }, {});
141
- }
142
-
143
- /**
144
- * Execute generic handler - THE method ALL platforms use
145
- * toolName is the full path with method or alias - no parsing needed
146
- *
147
- * Standard handler signature: { data, urlPathParams, user, locale, logger, platform }
148
- */
149
- async executeGenericHandler<TData, TUrlPathParams, TResult>(params: {
150
- toolName: string;
151
- data: TData;
152
- urlPathParams?: TUrlPathParams;
153
- user: JwtPayloadType;
154
- locale: CountryLanguage;
155
- logger: EndpointLogger;
156
- platform: CliCompatiblePlatform;
157
- }): Promise<ResponseType<TResult>> {
158
- try {
159
- const handlerResult = await getRouteHandler(params.toolName);
160
-
161
- if (!handlerResult) {
162
- return fail({
163
- message: "app.api.system.unifiedInterface.cli.vibe.errors.routeNotFound",
164
- errorType: ErrorResponseTypes.INTERNAL_ERROR,
165
- });
166
- }
167
-
168
- // Execute handler
169
- const result = await handlerResult({
170
- data: params.data,
171
- urlPathParams: params.urlPathParams ?? {},
172
- user: params.user,
173
- locale: params.locale,
174
- logger: params.logger,
175
- platform: params.platform,
176
- });
177
-
178
- // Streaming responses are not supported in CLI/AI/MCP platforms
179
- if (isStreamingResponse(result)) {
180
- return fail({
181
- message: "app.api.system.unifiedInterface.cli.vibe.errors.executionFailed",
182
- errorType: ErrorResponseTypes.INTERNAL_ERROR,
183
- });
184
- }
185
-
186
- // File responses are not supported in CLI/AI/MCP platforms
187
- if (isFileResponse(result)) {
188
- return fail({
189
- message: "app.api.system.unifiedInterface.cli.vibe.errors.executionFailed",
190
- errorType: ErrorResponseTypes.INTERNAL_ERROR,
191
- });
192
- }
193
-
194
- if (result.success) {
195
- return success(result.data, {
196
- ...(result.isErrorResponse && { isErrorResponse: true }),
197
- ...(result.performance && { performance: result.performance }),
198
- });
199
- }
200
-
201
- // Return the original error from the handler
202
- return result;
203
- } catch (error) {
204
- const parsedError = parseError(error);
205
- params.logger.error("[Route Execution Executor] Handler execution failed", parsedError, {
206
- toolName: params.toolName,
207
- error: parsedError.message,
208
- });
209
- return fail({
210
- message: "app.api.system.unifiedInterface.cli.vibe.errors.unknownError",
211
- errorType: ErrorResponseTypes.INTERNAL_ERROR,
212
- });
213
- }
214
- }
215
- }
216
-
217
- /**
218
- * Singleton instance
219
- */
220
- export const routeExecutionExecutor = new RouteExecutionExecutor();
@@ -1,313 +0,0 @@
1
- /**
2
- * Generic Handler Utilities
3
- * Functions for creating generic handlers from endpoint configurations using unified core logic
4
- * Handles validation, handler execution, email handling for ALL platforms
5
- */
6
-
7
- import "server-only";
8
-
9
- import type { z } from "zod";
10
-
11
- import {
12
- ErrorResponseTypes,
13
- type FileResponse,
14
- isFileResponse,
15
- isStreamingResponse,
16
- type ResponseType,
17
- type StreamingResponse,
18
- } from "@/app/api/[locale]/shared/types/response.schema";
19
- import type {
20
- JwtPayloadType,
21
- JwtPrivatePayloadType,
22
- JWTPublicPayloadType,
23
- } from "@/app/api/[locale]/user/auth/types";
24
- import type { UserRoleValue } from "@/app/api/[locale]/user/user-roles/enum";
25
- import type { UserRole } from "@/app/api/[locale]/user/user-roles/enum";
26
- import type { CountryLanguage } from "@/i18n/core/config";
27
- import { simpleT } from "@/i18n/core/shared";
28
- import type { TFunction } from "@/i18n/core/static-types";
29
-
30
- import type { EndpointLogger } from "../../logger/endpoint";
31
- import type { CreateApiEndpointAny } from "../../types/endpoint";
32
- import type { Platform } from "../../types/platform";
33
- import { permissionsRegistry } from "../permissions/registry";
34
- import { validateHandlerRequestData, validateResponseData } from "./request-validator";
35
-
36
- /**
37
- * Type helper to infer JWT payload type based on user roles
38
- * - Only PUBLIC role in roles → JWTPublicPayloadType
39
- * - No PUBLIC role in roles → JwtPayloadType
40
- * - Mixed roles (includes PUBLIC + others) → JwtPayloadType (union)
41
- */
42
- export type InferJwtPayloadType<TUserRoleValue extends UserRoleValue> =
43
- TUserRoleValue extends typeof UserRole.PUBLIC ? JWTPublicPayloadType : JwtPayloadType;
44
-
45
- /**
46
- * Type helper for arrays of user roles
47
- *
48
- * Logic:
49
- * - Exclude<TRoles[number], "PUBLIC"> removes "PUBLIC" from the union
50
- * - If the result is never, then ONLY PUBLIC was in the array → JWTPublicPayloadType
51
- * - If TRoles[number] includes "PUBLIC" (check with Extract) → JwtPayloadType (mixed)
52
- * - Otherwise → JwtPrivatePayloadType (no PUBLIC, guaranteed authenticated)
53
- */
54
- export type InferJwtPayloadTypeFromRoles<TRoles extends readonly UserRoleValue[]> =
55
- Exclude<TRoles[number], typeof UserRole.PUBLIC> extends never
56
- ? JWTPublicPayloadType
57
- : Extract<TRoles[number], typeof UserRole.PUBLIC> extends never
58
- ? JwtPrivatePayloadType
59
- : JwtPayloadType;
60
-
61
- /**
62
- * API handler props - handlers receive OUTPUT types (validated data)
63
- */
64
- export interface ApiHandlerProps<
65
- TRequestOutput,
66
- TUrlVariablesOutput,
67
- TUserRoleValue extends readonly UserRoleValue[],
68
- TPlatform extends Platform = Platform,
69
- > {
70
- /** Request data (validated by Zod schema) */
71
- data: TRequestOutput;
72
-
73
- /** URL variables (validated by Zod schema) */
74
- urlPathParams: TUrlVariablesOutput;
75
-
76
- /** Authenticated user - type inferred from endpoint roles */
77
- user: InferJwtPayloadTypeFromRoles<TUserRoleValue>;
78
-
79
- /** Server translation function */
80
- t: TFunction;
81
-
82
- /** Locale */
83
- locale: CountryLanguage;
84
-
85
- /** Platform where the request originated */
86
- platform: TPlatform;
87
-
88
- /** Logger instance */
89
- logger: EndpointLogger;
90
- }
91
-
92
- /**
93
- * API handler function type - receives validated data and returns validated response
94
- * Note: In our schema system, TRequestInput is the validated data (what handlers should receive)
95
- * but the current interface uses TRequestOutput for backward compatibility
96
- *
97
- * Can return either:
98
- * - ResponseType<TResponseOutput> for standard JSON responses
99
- * - StreamingResponse for streaming endpoints (e.g., AI chat)
100
- * - FileResponse for binary file responses (e.g., file downloads)
101
- */
102
- export type ApiHandlerFunction<
103
- TRequestOutput,
104
- TResponseOutput,
105
- TUrlVariablesOutput,
106
- TUserRoleValue extends readonly UserRoleValue[],
107
- TPlatform extends Platform,
108
- > = (
109
- props: ApiHandlerProps<TRequestOutput, TUrlVariablesOutput, TUserRoleValue, TPlatform>,
110
- ) =>
111
- | Promise<ResponseType<TResponseOutput> | StreamingResponse | FileResponse>
112
- | ResponseType<TResponseOutput>
113
- | StreamingResponse
114
- | FileResponse;
115
-
116
- /**
117
- * Handler configuration for a single method with proper typing
118
- * Handlers receive validated data (OUTPUT types) from Zod
119
- * and return validated response data (OUTPUT types)
120
- */
121
- export interface MethodHandlerConfig<
122
- TRequestOutput,
123
- TResponseOutput,
124
- TUrlVariablesOutput,
125
- TUserRoleValue extends readonly UserRoleValue[],
126
- TPlatform extends Platform = Platform,
127
- > {
128
- handler: ApiHandlerFunction<
129
- TRequestOutput,
130
- TResponseOutput,
131
- TUrlVariablesOutput,
132
- TUserRoleValue,
133
- TPlatform
134
- >;
135
- }
136
-
137
- export interface ApiHandlerOptions<
138
- TRequestOutput,
139
- TResponseOutput,
140
- TUrlVariablesOutput,
141
- TUserRoleValue extends readonly UserRoleValue[],
142
- TEndpoint extends CreateApiEndpointAny,
143
- TPlatform extends Platform = Platform,
144
- > {
145
- endpoint: TEndpoint;
146
- handler: ApiHandlerFunction<
147
- TRequestOutput,
148
- TResponseOutput,
149
- TUrlVariablesOutput,
150
- TUserRoleValue,
151
- TPlatform
152
- >;
153
- }
154
-
155
- export type GenericHandlerReturnType<
156
- TRequestOutput,
157
- TResponseOutput,
158
- TUrlVariablesOutput,
159
- TUserRoleValue extends readonly UserRoleValue[],
160
- > = (props: {
161
- data: TRequestOutput;
162
- urlPathParams: TUrlVariablesOutput;
163
- user?: InferJwtPayloadTypeFromRoles<TUserRoleValue>; // Optional: if provided, skip auth; if not, do auth
164
- locale: CountryLanguage;
165
- logger: EndpointLogger;
166
- platform: Platform;
167
- }) => Promise<ResponseType<TResponseOutput> | StreamingResponse | FileResponse>;
168
-
169
- /**
170
- * Base type for generic handlers when exact types are not known
171
- * Used for dynamic handler loading where specific types cannot be inferred
172
- *
173
- * This type represents the structural shape of a handler function without
174
- * constraining the specific types, allowing handlers with different specific
175
- * types to be stored together while maintaining type safety at the call site.
176
- */
177
- export type GenericHandlerBase = GenericHandlerReturnType<
178
- // oxlint-disable-next-line no-explicit-any
179
- any,
180
- // oxlint-disable-next-line no-explicit-any
181
- any,
182
- // oxlint-disable-next-line no-explicit-any
183
- any,
184
- // oxlint-disable-next-line no-explicit-any
185
- readonly any[]
186
- >;
187
-
188
- export function createGenericHandler<T extends CreateApiEndpointAny>(
189
- options: ApiHandlerOptions<
190
- T["types"]["RequestOutput"],
191
- T["types"]["ResponseOutput"],
192
- T["types"]["UrlVariablesOutput"],
193
- T["allowedRoles"],
194
- T
195
- >,
196
- ): GenericHandlerReturnType<
197
- T["types"]["RequestOutput"],
198
- T["types"]["ResponseOutput"],
199
- T["types"]["UrlVariablesOutput"],
200
- T["allowedRoles"]
201
- > {
202
- const { endpoint, handler } = options;
203
-
204
- return async ({
205
- data,
206
- urlPathParams,
207
- user: providedUser,
208
- locale,
209
- logger,
210
- platform,
211
- }): Promise<ResponseType<T["types"]["ResponseOutput"]> | StreamingResponse | FileResponse> => {
212
- const { t } = simpleT(locale);
213
-
214
- // 1. Authenticate user - call authRepository directly if user not provided
215
- let user: InferJwtPayloadTypeFromRoles<T["allowedRoles"]>;
216
- if (providedUser) {
217
- user = providedUser as InferJwtPayloadTypeFromRoles<T["allowedRoles"]>;
218
- } else {
219
- const authUser = null;
220
-
221
- if (!authUser) {
222
- return {
223
- success: false,
224
- message: ErrorResponseTypes.UNAUTHORIZED.errorKey,
225
- errorType: ErrorResponseTypes.UNAUTHORIZED,
226
- messageParams: { error: "User authentication failed" },
227
- };
228
- }
229
-
230
- user = authUser as InferJwtPayloadTypeFromRoles<T["allowedRoles"]>;
231
- }
232
-
233
- // 2. Validate endpoint access (platform + permissions)
234
- const accessValidation = permissionsRegistry.validateEndpointAccess(endpoint, user, platform);
235
-
236
- if (!accessValidation.success) {
237
- logger.warn(`[Generic Handler] Endpoint access denied`, {
238
- routePath: `${endpoint.path.join("/")}/${endpoint.method}`,
239
- userId: user.isPublic ? "public" : user.id,
240
- reason: accessValidation.message,
241
- });
242
- return accessValidation;
243
- }
244
-
245
- // 3. Validate request data using request validator
246
- const validationResult = validateHandlerRequestData(
247
- endpoint,
248
- {
249
- method: endpoint.method,
250
- requestData: data as z.input<typeof endpoint.requestSchema>,
251
- urlParameters: urlPathParams as z.input<typeof endpoint.requestUrlPathParamsSchema>,
252
- locale,
253
- },
254
- logger,
255
- );
256
-
257
- if (!validationResult.success) {
258
- return validationResult;
259
- }
260
-
261
- // Credit checking disabled in minimal checker package
262
-
263
- const result = await handler({
264
- data: validationResult.data.requestData as T["types"]["RequestOutput"],
265
- urlPathParams: validationResult.data.urlPathParams as T["types"]["UrlVariablesOutput"],
266
- user,
267
- t,
268
- locale: validationResult.data.locale,
269
- logger,
270
- platform,
271
- });
272
-
273
- // 5. Handle file responses - return immediately without email/SMS processing
274
- if (isFileResponse(result)) {
275
- logger.info("File response detected - returning immediately");
276
- return result;
277
- }
278
-
279
- // 6. Handle streaming responses - return immediately without email/SMS processing
280
- if (isStreamingResponse(result)) {
281
- logger.info("Streaming response detected - returning immediately");
282
- return result;
283
- }
284
-
285
- // 7. Return errors without validation (errors are already validated)
286
- if (!result.success) {
287
- return result;
288
- }
289
-
290
- // 7. Validate response data using request validator
291
- const responseValidation = validateResponseData<T["types"]["ResponseOutput"]>(
292
- result.data,
293
- endpoint.responseSchema,
294
- logger,
295
- );
296
-
297
- if (!responseValidation.success) {
298
- return responseValidation;
299
- }
300
-
301
- // Email handling disabled in minimal checker package
302
-
303
- // SMS handling disabled in minimal checker package
304
-
305
- // Preserve isErrorResponse flag and performance metadata from handler result
306
- return {
307
- success: true,
308
- data: responseValidation.data as T["types"]["ResponseOutput"],
309
- ...(result.isErrorResponse && { isErrorResponse: true as const }),
310
- ...(result.performance && { performance: result.performance }),
311
- };
312
- };
313
- }