@next-vibe/checker 1.0.11 → 1.0.12

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 (394) hide show
  1. package/.dist/bin/vibe-runtime.js +10 -19
  2. package/.dist/bin/vibe-runtime.js.map +3 -3
  3. package/check.config.ts +4 -4
  4. package/package.json +2 -9
  5. package/src/app/api/[locale]/LICENSE +674 -0
  6. package/src/app/api/[locale]/i18n/de/index.ts +13 -0
  7. package/src/app/api/[locale]/i18n/en/index.ts +12 -0
  8. package/src/app/api/[locale]/i18n/pl/index.ts +11 -0
  9. package/src/app/api/[locale]/shared/i18n/de/index.ts +85 -0
  10. package/src/app/api/[locale]/shared/i18n/en/index.ts +83 -0
  11. package/src/app/api/[locale]/shared/i18n/pl/index.ts +85 -0
  12. package/src/app/api/[locale]/shared/stats-filtering.ts +202 -0
  13. package/src/app/api/[locale]/shared/types/common.schema.ts +55 -0
  14. package/src/app/api/[locale]/shared/types/response.schema.ts +372 -0
  15. package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +375 -0
  16. package/src/app/api/[locale]/shared/types/utils.ts +190 -0
  17. package/src/app/api/[locale]/shared/utils/base64.ts +49 -0
  18. package/src/app/api/[locale]/shared/utils/env-util.ts +40 -0
  19. package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +21 -0
  20. package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +19 -0
  21. package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +21 -0
  22. package/src/app/api/[locale]/shared/utils/index.ts +11 -0
  23. package/src/app/api/[locale]/shared/utils/object-path.ts +41 -0
  24. package/src/app/api/[locale]/shared/utils/object.test.ts +82 -0
  25. package/src/app/api/[locale]/shared/utils/object.ts +75 -0
  26. package/src/app/api/[locale]/shared/utils/parse-error.ts +134 -0
  27. package/src/app/api/[locale]/shared/utils/parse-json.ts +70 -0
  28. package/src/app/api/[locale]/shared/utils/time.ts +53 -0
  29. package/src/app/api/[locale]/shared/utils/validation.ts +127 -0
  30. package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +116 -0
  31. package/src/app/api/[locale]/system/builder/definition.ts +1942 -0
  32. package/src/app/api/[locale]/system/builder/enum.ts +77 -0
  33. package/src/app/api/[locale]/system/builder/i18n/de/index.ts +677 -0
  34. package/src/app/api/[locale]/system/builder/i18n/en/index.ts +665 -0
  35. package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +668 -0
  36. package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +182 -0
  37. package/src/app/api/[locale]/system/builder/repository/build-executor.ts +583 -0
  38. package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +261 -0
  39. package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +197 -0
  40. package/src/app/api/[locale]/system/builder/repository/config-loader.ts +159 -0
  41. package/src/app/api/[locale]/system/builder/repository/config-validator.ts +97 -0
  42. package/src/app/api/[locale]/system/builder/repository/constants.ts +125 -0
  43. package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +75 -0
  44. package/src/app/api/[locale]/system/builder/repository/file-copier.ts +98 -0
  45. package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +80 -0
  46. package/src/app/api/[locale]/system/builder/repository/index.ts +2 -0
  47. package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +146 -0
  48. package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +104 -0
  49. package/src/app/api/[locale]/system/builder/repository/profile-service.ts +79 -0
  50. package/src/app/api/[locale]/system/builder/repository/report-generator.ts +125 -0
  51. package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +291 -0
  52. package/src/app/api/[locale]/system/builder/route.ts +21 -0
  53. package/src/app/api/[locale]/system/builder/test-files/file1.ts +2 -0
  54. package/src/app/api/[locale]/system/builder/test-files/file2.tsx +10 -0
  55. package/src/app/api/[locale]/system/builder/test-files/file3.tsx +16 -0
  56. package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +2 -0
  57. package/src/app/api/[locale]/system/builder/test-files/test-config.ts +38 -0
  58. package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +8 -0
  59. package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +24 -0
  60. package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +6 -0
  61. package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +18 -0
  62. package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +7 -0
  63. package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +27 -0
  64. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +19 -0
  65. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +1 -0
  66. package/src/app/api/[locale]/system/builder/test-files/test3.css +1 -0
  67. package/src/app/api/[locale]/system/check/config/repository.ts +819 -0
  68. package/src/app/api/[locale]/system/check/config/shared.ts +396 -0
  69. package/src/app/api/[locale]/system/check/config/types.ts +616 -0
  70. package/src/app/api/[locale]/system/check/config/utils.ts +171 -0
  71. package/src/app/api/[locale]/system/check/i18n/de/index.ts +15 -0
  72. package/src/app/api/[locale]/system/check/i18n/en/index.ts +14 -0
  73. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +15 -0
  74. package/src/app/api/[locale]/system/check/lint/definition.ts +414 -0
  75. package/src/app/api/[locale]/system/check/lint/enum.ts +37 -0
  76. package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +164 -0
  77. package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +162 -0
  78. package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +164 -0
  79. package/src/app/api/[locale]/system/check/lint/repository.ts +753 -0
  80. package/src/app/api/[locale]/system/check/lint/route.ts +21 -0
  81. package/src/app/api/[locale]/system/check/oxlint/README.md +190 -0
  82. package/src/app/api/[locale]/system/check/oxlint/definition.ts +414 -0
  83. package/src/app/api/[locale]/system/check/oxlint/enum.ts +37 -0
  84. package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +171 -0
  85. package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +168 -0
  86. package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +172 -0
  87. package/src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts +372 -0
  88. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +246 -0
  89. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts +583 -0
  90. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts +500 -0
  91. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +74 -0
  92. package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +305 -0
  93. package/src/app/api/[locale]/system/check/oxlint/repository.ts +959 -0
  94. package/src/app/api/[locale]/system/check/oxlint/route.ts +21 -0
  95. package/src/app/api/[locale]/system/check/oxlint/types.ts +193 -0
  96. package/src/app/api/[locale]/system/check/test-project/bun.lock +449 -0
  97. package/src/app/api/[locale]/system/check/test-project/check.config.ts +989 -0
  98. package/src/app/api/[locale]/system/check/test-project/package.json +20 -0
  99. package/src/app/api/[locale]/system/check/test-project/src/constants.ts +6 -0
  100. package/src/app/api/[locale]/system/check/test-project/src/greet.ts +18 -0
  101. package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +107 -0
  102. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +37 -0
  103. package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +137 -0
  104. package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +129 -0
  105. package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +131 -0
  106. package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +95 -0
  107. package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +76 -0
  108. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +95 -0
  109. package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +61 -0
  110. package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +80 -0
  111. package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +27 -0
  112. package/src/app/api/[locale]/system/check/test-project/tsconfig.json +38 -0
  113. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +1 -0
  114. package/src/app/api/[locale]/system/check/typecheck/definition.ts +369 -0
  115. package/src/app/api/[locale]/system/check/typecheck/enum.ts +37 -0
  116. package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +159 -0
  117. package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +150 -0
  118. package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +155 -0
  119. package/src/app/api/[locale]/system/check/typecheck/repository.ts +919 -0
  120. package/src/app/api/[locale]/system/check/typecheck/route.ts +22 -0
  121. package/src/app/api/[locale]/system/check/typecheck/utils.ts +168 -0
  122. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +568 -0
  123. package/src/app/api/[locale]/system/check/vibe-check/enum.ts +69 -0
  124. package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +192 -0
  125. package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +189 -0
  126. package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +192 -0
  127. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +545 -0
  128. package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +1142 -0
  129. package/src/app/api/[locale]/system/check/vibe-check/route.ts +21 -0
  130. package/src/app/api/[locale]/system/generated/endpoint.ts +313 -0
  131. package/src/app/api/[locale]/system/generated/endpoints.ts +156 -0
  132. package/src/app/api/[locale]/system/generated/route-handlers.ts +224 -0
  133. package/src/app/api/[locale]/system/generators/endpoint/definition.ts +193 -0
  134. package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +48 -0
  135. package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +48 -0
  136. package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +50 -0
  137. package/src/app/api/[locale]/system/generators/endpoint/repository.ts +291 -0
  138. package/src/app/api/[locale]/system/generators/endpoint/route.ts +21 -0
  139. package/src/app/api/[locale]/system/generators/endpoints/definition.ts +246 -0
  140. package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +54 -0
  141. package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +52 -0
  142. package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +54 -0
  143. package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +463 -0
  144. package/src/app/api/[locale]/system/generators/endpoints/repository.ts +383 -0
  145. package/src/app/api/[locale]/system/generators/endpoints/route.ts +18 -0
  146. package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +194 -0
  147. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +71 -0
  148. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +69 -0
  149. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +71 -0
  150. package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +294 -0
  151. package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +18 -0
  152. package/src/app/api/[locale]/system/generators/generate-all/definition.ts +355 -0
  153. package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +96 -0
  154. package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +94 -0
  155. package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +96 -0
  156. package/src/app/api/[locale]/system/generators/generate-all/repository.ts +257 -0
  157. package/src/app/api/[locale]/system/generators/generate-all/route.ts +20 -0
  158. package/src/app/api/[locale]/system/generators/i18n/de/index.ts +15 -0
  159. package/src/app/api/[locale]/system/generators/i18n/en/index.ts +14 -0
  160. package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +15 -0
  161. package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +198 -0
  162. package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +48 -0
  163. package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +48 -0
  164. package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +50 -0
  165. package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +277 -0
  166. package/src/app/api/[locale]/system/generators/route-handlers/route.ts +17 -0
  167. package/src/app/api/[locale]/system/generators/shared/utils.ts +233 -0
  168. package/src/app/api/[locale]/system/help/definition.ts +445 -0
  169. package/src/app/api/[locale]/system/help/i18n/de/index.ts +267 -0
  170. package/src/app/api/[locale]/system/help/i18n/en/index.ts +262 -0
  171. package/src/app/api/[locale]/system/help/i18n/pl/index.ts +265 -0
  172. package/src/app/api/[locale]/system/help/interactive/definition.ts +125 -0
  173. package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +22 -0
  174. package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +19 -0
  175. package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +22 -0
  176. package/src/app/api/[locale]/system/help/interactive/repository.ts +1025 -0
  177. package/src/app/api/[locale]/system/help/interactive/route.ts +53 -0
  178. package/src/app/api/[locale]/system/help/list/definition.ts +372 -0
  179. package/src/app/api/[locale]/system/help/list/repository.ts +110 -0
  180. package/src/app/api/[locale]/system/help/list/route.ts +21 -0
  181. package/src/app/api/[locale]/system/help/repository.ts +212 -0
  182. package/src/app/api/[locale]/system/help/route.ts +16 -0
  183. package/src/app/api/[locale]/system/i18n/de/index.ts +68 -0
  184. package/src/app/api/[locale]/system/i18n/en/index.ts +65 -0
  185. package/src/app/api/[locale]/system/i18n/pl/index.ts +66 -0
  186. package/src/app/api/[locale]/system/release-tool/definition.ts +3104 -0
  187. package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +813 -0
  188. package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +797 -0
  189. package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +810 -0
  190. package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +128 -0
  191. package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +212 -0
  192. package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +566 -0
  193. package/src/app/api/[locale]/system/release-tool/repository/config.ts +113 -0
  194. package/src/app/api/[locale]/system/release-tool/repository/constants.ts +407 -0
  195. package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +527 -0
  196. package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +403 -0
  197. package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +100 -0
  198. package/src/app/api/[locale]/system/release-tool/repository/index.ts +1 -0
  199. package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +638 -0
  200. package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +169 -0
  201. package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +253 -0
  202. package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +428 -0
  203. package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +293 -0
  204. package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +1198 -0
  205. package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +136 -0
  206. package/src/app/api/[locale]/system/release-tool/repository/utils.ts +642 -0
  207. package/src/app/api/[locale]/system/release-tool/repository/validation.ts +288 -0
  208. package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +297 -0
  209. package/src/app/api/[locale]/system/release-tool/route.ts +21 -0
  210. package/src/app/api/[locale]/system/unified-interface/README.md +328 -0
  211. package/src/app/api/[locale]/system/unified-interface/cli/README.md +349 -0
  212. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +95 -0
  213. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +146 -0
  214. package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +266 -0
  215. package/src/app/api/[locale]/system/unified-interface/cli/env.ts +26 -0
  216. package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +157 -0
  217. package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +155 -0
  218. package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +158 -0
  219. package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +595 -0
  220. package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +129 -0
  221. package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +155 -0
  222. package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +452 -0
  223. package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +297 -0
  224. package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +859 -0
  225. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +12 -0
  226. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +11 -0
  227. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +12 -0
  228. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +262 -0
  229. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +54 -0
  230. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +52 -0
  231. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +54 -0
  232. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +421 -0
  233. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +25 -0
  234. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +181 -0
  235. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +61 -0
  236. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +59 -0
  237. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +61 -0
  238. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +195 -0
  239. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +22 -0
  240. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +188 -0
  241. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +54 -0
  242. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +52 -0
  243. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +54 -0
  244. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +209 -0
  245. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +24 -0
  246. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +200 -0
  247. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +54 -0
  248. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +52 -0
  249. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +54 -0
  250. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +113 -0
  251. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +22 -0
  252. package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +304 -0
  253. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +270 -0
  254. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +309 -0
  255. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +126 -0
  256. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +67 -0
  257. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +65 -0
  258. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +67 -0
  259. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +74 -0
  260. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +39 -0
  261. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +54 -0
  262. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +298 -0
  263. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +89 -0
  264. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +298 -0
  265. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +96 -0
  266. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +186 -0
  267. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +65 -0
  268. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +570 -0
  269. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +80 -0
  270. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +385 -0
  271. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +99 -0
  272. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +55 -0
  273. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +67 -0
  274. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +729 -0
  275. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +87 -0
  276. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +112 -0
  277. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +59 -0
  278. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +50 -0
  279. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +131 -0
  280. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +291 -0
  281. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +120 -0
  282. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +149 -0
  283. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +61 -0
  284. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +78 -0
  285. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +42 -0
  286. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +418 -0
  287. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +534 -0
  288. package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +42 -0
  289. package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +40 -0
  290. package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +43 -0
  291. package/src/app/api/[locale]/system/unified-interface/mcp/README.md +114 -0
  292. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +146 -0
  293. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +182 -0
  294. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +179 -0
  295. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +181 -0
  296. package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +343 -0
  297. package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +147 -0
  298. package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +38 -0
  299. package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +14 -0
  300. package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +309 -0
  301. package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +154 -0
  302. package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +193 -0
  303. package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +246 -0
  304. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +1510 -0
  305. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +581 -0
  306. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +52 -0
  307. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +152 -0
  308. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +265 -0
  309. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +680 -0
  310. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +220 -0
  311. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +325 -0
  312. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +184 -0
  313. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +201 -0
  314. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +58 -0
  315. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +49 -0
  316. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +47 -0
  317. package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +58 -0
  318. package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +110 -0
  319. package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +339 -0
  320. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +408 -0
  321. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +1349 -0
  322. package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +107 -0
  323. package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +268 -0
  324. package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +114 -0
  325. package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +169 -0
  326. package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +88 -0
  327. package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +177 -0
  328. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +82 -0
  329. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +33 -0
  330. package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +4 -0
  331. package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +289 -0
  332. package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +1167 -0
  333. package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +382 -0
  334. package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +34 -0
  335. package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +80 -0
  336. package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +76 -0
  337. package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +27 -0
  338. package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +63 -0
  339. package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +241 -0
  340. package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +256 -0
  341. package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +1158 -0
  342. package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +80 -0
  343. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +82 -0
  344. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +75 -0
  345. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +89 -0
  346. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +302 -0
  347. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +202 -0
  348. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +129 -0
  349. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +81 -0
  350. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +258 -0
  351. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +123 -0
  352. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +387 -0
  353. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +89 -0
  354. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +78 -0
  355. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +93 -0
  356. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +448 -0
  357. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +38 -0
  358. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +130 -0
  359. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +127 -0
  360. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +68 -0
  361. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +81 -0
  362. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +176 -0
  363. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +241 -0
  364. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +90 -0
  365. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +71 -0
  366. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +80 -0
  367. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +105 -0
  368. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +72 -0
  369. package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +240 -0
  370. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +137 -0
  371. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +437 -0
  372. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +40 -0
  373. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +465 -0
  374. package/src/app/api/[locale]/user/auth/enum.ts +16 -0
  375. package/src/app/api/[locale]/user/auth/i18n/de/index.ts +227 -0
  376. package/src/app/api/[locale]/user/auth/i18n/en/index.ts +205 -0
  377. package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +219 -0
  378. package/src/app/api/[locale]/user/auth/types.ts +110 -0
  379. package/src/app/api/[locale]/user/enum.ts +64 -0
  380. package/src/app/api/[locale]/user/private/i18n/de/index.ts +3 -0
  381. package/src/app/api/[locale]/user/private/i18n/en/index.ts +1 -0
  382. package/src/app/api/[locale]/user/private/i18n/pl/index.ts +3 -0
  383. package/src/app/api/[locale]/user/types.ts +118 -0
  384. package/src/app/api/[locale]/user/user-roles/enum.ts +112 -0
  385. package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +85 -0
  386. package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +83 -0
  387. package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +86 -0
  388. package/src/app/api/[locale]/user/user-roles/types.ts +34 -0
  389. package/src/app/api/i18n/de/index.ts +6 -0
  390. package/src/app/api/i18n/en/index.ts +5 -0
  391. package/src/app/api/i18n/pl/index.ts +5 -0
  392. package/src/app/i18n/de/index.ts +6 -0
  393. package/src/app/i18n/en/index.ts +5 -0
  394. package/src/app/i18n/pl/index.ts +5 -0
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Type utilities for extracting field names and types from endpoint definitions
3
+ * Provides full type inference from definition.POST.fields to form components
4
+ */
5
+
6
+ import type { Countries } from "@/i18n/core/config";
7
+
8
+ import type { PrefillDisplayConfig } from "./field-config-types";
9
+
10
+ /**
11
+ * Type for endpoint field structure from unified interface
12
+ * This matches the structure created by objectField() in endpoint definitions
13
+ */
14
+
15
+ export interface EndpointFieldStructure {
16
+ type?: string;
17
+ children?: Record<string, EndpointFieldStructure>;
18
+ // Union-specific fields
19
+ discriminator?: string;
20
+ variants?: readonly EndpointFieldStructure[];
21
+ ui?: {
22
+ type: string;
23
+ fieldType?: string;
24
+ label?: string;
25
+ placeholder?: string;
26
+ description?: string;
27
+ disabled?: boolean;
28
+ className?: string;
29
+ defaultCountry?: Countries;
30
+ preferredCountries?: Countries[];
31
+ min?: number;
32
+ max?: number;
33
+ step?: number;
34
+ minDate?: Date;
35
+ maxDate?: Date;
36
+ rows?: number;
37
+ maxLength?: number;
38
+ options?: Array<{
39
+ value: string | number;
40
+ label: string;
41
+ labelParams?: Record<string, string | number>;
42
+ disabled?: boolean;
43
+ icon?: string;
44
+ }>;
45
+ maxTags?: number;
46
+ // Readonly and prefill display options
47
+ readonly?: boolean;
48
+ prefillDisplay?: PrefillDisplayConfig;
49
+ };
50
+ }
51
+ /**
52
+ * Get runtime field structure by path
53
+ * Supports object, object-optional, and object-union types
54
+ */
55
+ export function getFieldStructureByPath(
56
+ fields: EndpointFieldStructure,
57
+ path: string,
58
+ ): EndpointFieldStructure | null {
59
+ const parts = path.split(".");
60
+ let current = fields;
61
+
62
+ for (const part of parts) {
63
+ if (!current || typeof current !== "object") {
64
+ return null;
65
+ }
66
+
67
+ // Handle object-union types
68
+ if (current.type === "object-union") {
69
+ const unionField = current as EndpointFieldStructure & {
70
+ variants?: readonly EndpointFieldStructure[];
71
+ };
72
+
73
+ // Look for the field in any variant (all variants should have the discriminator field)
74
+ // For other fields, we return the first match (assuming variants have consistent field definitions)
75
+ if (unionField.variants && Array.isArray(unionField.variants)) {
76
+ for (const variant of unionField.variants) {
77
+ if (variant.type === "object" || variant.type === "object-optional") {
78
+ const variantChildren = variant.children as
79
+ | Record<string, EndpointFieldStructure>
80
+ | undefined;
81
+ if (variantChildren && part in variantChildren) {
82
+ current = variantChildren[part];
83
+ break; // Found in this variant, continue with next part
84
+ }
85
+ }
86
+ }
87
+ // If not found in any variant, return null
88
+ if (!current || current === fields) {
89
+ return null;
90
+ }
91
+ } else {
92
+ return null;
93
+ }
94
+ }
95
+ // Navigate through object children (both object and object-optional)
96
+ else if (
97
+ (current.type === "object" || current.type === "object-optional") &&
98
+ current.children
99
+ ) {
100
+ current = current.children[part];
101
+ } else {
102
+ return null;
103
+ }
104
+ }
105
+
106
+ return current;
107
+ }
@@ -0,0 +1,268 @@
1
+ /**
2
+ * Type definitions for Endpoint Form Field Component
3
+ * Provides type-safe field definitions for use with useEndpoint hook
4
+ *
5
+ * This is the shared version - platform-specific code should import from here
6
+ */
7
+
8
+ import type { Countries } from "@/i18n/core/config";
9
+
10
+ /**
11
+ * Prefill display configuration for form fields
12
+ * When a field has a prefilled value from server/URL params, this controls how it's displayed
13
+ */
14
+ export interface PrefillDisplayConfig<TKey extends string> {
15
+ /** Display variant when field is prefilled */
16
+ variant: "badge" | "highlight" | "card";
17
+ /** Translation key for the label shown with prefilled value */
18
+ labelKey?: NoInfer<TKey>;
19
+ /** Icon to show with prefilled value */
20
+ icon?: string;
21
+ }
22
+
23
+ // Base field configuration
24
+ export interface BaseFieldConfig<TKey extends string> {
25
+ label: NoInfer<TKey> | undefined;
26
+ placeholder?: NoInfer<TKey>;
27
+ description?: NoInfer<TKey>;
28
+ disabled?: boolean;
29
+ className?: string;
30
+ /**
31
+ * Make field readonly - displays value but cannot be edited
32
+ * Use with prefillDisplay to show special styling for server-provided values
33
+ */
34
+ readonly?: boolean;
35
+ /**
36
+ * Configure how prefilled values are displayed when readonly
37
+ * Only applies when field has a prefilled value and readonly is true
38
+ */
39
+ prefillDisplay?: PrefillDisplayConfig<TKey>;
40
+ }
41
+
42
+ // Field type specific configurations
43
+ export interface TextFieldConfig<
44
+ TTranslationKey extends string,
45
+ > extends BaseFieldConfig<TTranslationKey> {
46
+ type: "text" | "email" | "tel" | "url" | "password";
47
+ }
48
+
49
+ export interface NumberFieldConfig<
50
+ TTranslationKey extends string,
51
+ > extends BaseFieldConfig<TTranslationKey> {
52
+ type: "number";
53
+ min?: number;
54
+ max?: number;
55
+ step?: number;
56
+ }
57
+
58
+ export interface TextareaFieldConfig<
59
+ TTranslationKey extends string,
60
+ > extends BaseFieldConfig<TTranslationKey> {
61
+ type: "textarea";
62
+ rows?: number;
63
+ maxLength?: number;
64
+ }
65
+
66
+ export interface SelectFieldConfig<
67
+ TTranslationKey extends string,
68
+ TValue = string,
69
+ > extends BaseFieldConfig<TTranslationKey> {
70
+ type: "select";
71
+ options: Array<{
72
+ value: TValue;
73
+ label: NoInfer<TTranslationKey>;
74
+ labelParams?: Record<string, string | number>;
75
+ disabled?: boolean;
76
+ }>;
77
+ placeholder?: NoInfer<TTranslationKey>;
78
+ }
79
+
80
+ export interface CheckboxFieldConfig<
81
+ TTranslationKey extends string,
82
+ > extends BaseFieldConfig<TTranslationKey> {
83
+ type: "checkbox";
84
+ checkboxLabel?: NoInfer<TTranslationKey>;
85
+ }
86
+
87
+ export interface RadioFieldConfig<
88
+ TTranslationKey extends string,
89
+ > extends BaseFieldConfig<TTranslationKey> {
90
+ type: "radio";
91
+ options: Array<{
92
+ value: string;
93
+ label: NoInfer<TTranslationKey>;
94
+ labelParams?: Record<string, string | number>;
95
+ disabled?: boolean;
96
+ }>;
97
+ orientation?: "horizontal" | "vertical";
98
+ }
99
+
100
+ export interface SwitchFieldConfig<
101
+ TTranslationKey extends string,
102
+ > extends BaseFieldConfig<TTranslationKey> {
103
+ type: "switch";
104
+ switchLabel?: NoInfer<TTranslationKey>;
105
+ }
106
+
107
+ export interface DateFieldConfig<
108
+ TTranslationKey extends string,
109
+ > extends BaseFieldConfig<TTranslationKey> {
110
+ type: "date";
111
+ minDate?: Date;
112
+ maxDate?: Date;
113
+ }
114
+
115
+ export interface AutocompleteFieldConfig<
116
+ TTranslationKey extends string,
117
+ > extends BaseFieldConfig<TTranslationKey> {
118
+ type: "autocomplete";
119
+ options: Array<{
120
+ value: string;
121
+ label: NoInfer<TTranslationKey>;
122
+ category?: string;
123
+ }>;
124
+ allowCustom?: boolean;
125
+ searchPlaceholder?: NoInfer<TTranslationKey>;
126
+ }
127
+
128
+ export interface TagsFieldConfig<
129
+ TTranslationKey extends string,
130
+ > extends BaseFieldConfig<TTranslationKey> {
131
+ type: "tags";
132
+ suggestions?: Array<{
133
+ value: string;
134
+ label: NoInfer<TTranslationKey>;
135
+ category?: string;
136
+ }>;
137
+ maxTags?: number;
138
+ allowCustom?: boolean;
139
+ }
140
+
141
+ export interface PhoneFieldConfig<
142
+ TTranslationKey extends string,
143
+ > extends BaseFieldConfig<TTranslationKey> {
144
+ type: "phone";
145
+ defaultCountry: Countries;
146
+ preferredCountries: Countries[];
147
+ }
148
+
149
+ export interface ColorPickerFieldConfig<
150
+ TTranslationKey extends string,
151
+ > extends BaseFieldConfig<TTranslationKey> {
152
+ type: "color";
153
+ presetColors?: string[];
154
+ allowCustom?: boolean;
155
+ }
156
+
157
+ export interface SliderFieldConfig<
158
+ TTranslationKey extends string,
159
+ > extends BaseFieldConfig<TTranslationKey> {
160
+ type: "slider";
161
+ min: number;
162
+ max: number;
163
+ step?: number;
164
+ marks?: Array<{ value: number; label: string }>;
165
+ formatValue?: (value: number) => string;
166
+ }
167
+
168
+ export interface MultiSelectFieldConfig<
169
+ TTranslationKey extends string,
170
+ > extends BaseFieldConfig<TTranslationKey> {
171
+ type: "multiselect";
172
+ options: Array<{
173
+ value: string;
174
+ label: NoInfer<TTranslationKey>;
175
+ labelParams?: Record<string, string | number>;
176
+ disabled?: boolean;
177
+ icon?: string;
178
+ }>;
179
+ maxSelections?: number;
180
+ searchable?: boolean;
181
+ }
182
+
183
+ export interface LocationFieldConfig<
184
+ TTranslationKey extends string,
185
+ > extends BaseFieldConfig<TTranslationKey> {
186
+ type: "location";
187
+ types?: Array<"country" | "city" | "region">;
188
+ multiple?: boolean;
189
+ }
190
+
191
+ export interface YearPickerFieldConfig<
192
+ TTranslationKey extends string,
193
+ > extends BaseFieldConfig<TTranslationKey> {
194
+ type: "year";
195
+ minYear?: number;
196
+ maxYear?: number;
197
+ }
198
+
199
+ export interface IconFieldConfig<
200
+ TTranslationKey extends string,
201
+ > extends BaseFieldConfig<TTranslationKey> {
202
+ type: "icon";
203
+ }
204
+
205
+ export interface FilterPillsFieldConfig<
206
+ TTranslationKey extends string,
207
+ > extends BaseFieldConfig<TTranslationKey> {
208
+ type: "filter_pills";
209
+ options: Array<{
210
+ value: string;
211
+ label: NoInfer<TTranslationKey>;
212
+ icon?: string;
213
+ disabled?: boolean;
214
+ }>;
215
+ }
216
+
217
+ // Union type for all field configurations
218
+ export type FieldConfig<TTranslationKey extends string> =
219
+ | TextFieldConfig<TTranslationKey>
220
+ | NumberFieldConfig<TTranslationKey>
221
+ | TextareaFieldConfig<TTranslationKey>
222
+ | SelectFieldConfig<TTranslationKey, string>
223
+ | CheckboxFieldConfig<TTranslationKey>
224
+ | RadioFieldConfig<TTranslationKey>
225
+ | SwitchFieldConfig<TTranslationKey>
226
+ | DateFieldConfig<TTranslationKey>
227
+ | AutocompleteFieldConfig<TTranslationKey>
228
+ | TagsFieldConfig<TTranslationKey>
229
+ | PhoneFieldConfig<TTranslationKey>
230
+ | ColorPickerFieldConfig<TTranslationKey>
231
+ | SliderFieldConfig<TTranslationKey>
232
+ | MultiSelectFieldConfig<TTranslationKey>
233
+ | LocationFieldConfig<TTranslationKey>
234
+ | YearPickerFieldConfig<TTranslationKey>
235
+ | IconFieldConfig<TTranslationKey>
236
+ | FilterPillsFieldConfig<TTranslationKey>;
237
+
238
+ // Required field styling options
239
+ export type RequiredFieldStyle =
240
+ | "highlight" // Highlight required fields with colored borders/backgrounds
241
+ | "asterisk" // Show asterisk for required fields
242
+ | "badge" // Show "Required" badge
243
+ | "none"; // No special styling for required fields
244
+
245
+ // Form styling theme for required fields
246
+ export interface RequiredFieldTheme {
247
+ style: RequiredFieldStyle;
248
+ showAllRequired?: boolean; // If true, show required styling even when all fields are required
249
+ requiredColor?: "amber" | "red" | "blue" | "green"; // Color theme for required field highlighting
250
+ completedColor?: "green" | "blue" | "purple"; // Color theme for completed required fields
251
+ }
252
+
253
+ // Field validation state
254
+ export interface FieldValidationState {
255
+ hasError: boolean;
256
+ hasValue: boolean;
257
+ isRequired: boolean;
258
+ errorMessage?: string;
259
+ }
260
+
261
+ // Field styling classes
262
+ export interface FieldStyleClassName {
263
+ containerClassName: string;
264
+ labelClassName: string;
265
+ inputClassName: string;
266
+ errorClassName: string;
267
+ descriptionClassName: string;
268
+ }
@@ -0,0 +1,114 @@
1
+ /**
2
+ * ANSI Color Codes for Terminal Output
3
+ * Provides consistent, beautiful colors for CLI logging
4
+ */
5
+
6
+ /**
7
+ * ANSI color codes
8
+ */
9
+ export const colors = {
10
+ // Reset
11
+ reset: "\u001B[0m",
12
+
13
+ // Text colors
14
+ black: "\u001B[30m",
15
+ red: "\u001B[31m",
16
+ green: "\u001B[32m",
17
+ yellow: "\u001B[33m",
18
+ blue: "\u001B[34m",
19
+ magenta: "\u001B[35m",
20
+ cyan: "\u001B[36m",
21
+ white: "\u001B[37m",
22
+ gray: "\u001B[90m",
23
+
24
+ // Bright colors
25
+ brightRed: "\u001B[91m",
26
+ brightGreen: "\u001B[92m",
27
+ brightYellow: "\u001B[93m",
28
+ brightBlue: "\u001B[94m",
29
+ brightMagenta: "\u001B[95m",
30
+ brightCyan: "\u001B[96m",
31
+ brightWhite: "\u001B[97m",
32
+
33
+ // Text styles
34
+ bold: "\u001B[1m",
35
+ dim: "\u001B[2m",
36
+ italic: "\u001B[3m",
37
+ underline: "\u001B[4m",
38
+ } as const;
39
+
40
+ /**
41
+ * Semantic color helpers for consistent styling
42
+ */
43
+ export const semantic = {
44
+ // Status colors
45
+ success: colors.green,
46
+ error: colors.red,
47
+ warning: colors.yellow,
48
+ info: colors.cyan,
49
+ debug: colors.gray,
50
+
51
+ // Component colors
52
+ server: colors.magenta,
53
+ database: colors.brightCyan,
54
+ task: colors.brightMagenta,
55
+ generator: colors.magenta,
56
+
57
+ // Accent colors
58
+ highlight: colors.white,
59
+ muted: colors.gray,
60
+ accent: colors.cyan,
61
+ } as const;
62
+
63
+ /**
64
+ * Format a message with color
65
+ */
66
+ export function colorize(text: string, color: string): string {
67
+ return `${color}${text}${colors.reset}`;
68
+ }
69
+
70
+ /**
71
+ * Format a message with bold
72
+ */
73
+ export function bold(text: string): string {
74
+ return `${colors.bold}${text}${colors.reset}`;
75
+ }
76
+
77
+ /**
78
+ * Format a message with dim
79
+ */
80
+ export function dim(text: string): string {
81
+ return `${colors.dim}${text}${colors.reset}`;
82
+ }
83
+
84
+ /**
85
+ * Combine multiple styles
86
+ */
87
+ export function styled(text: string, ...styles: string[]): string {
88
+ return `${styles.join("")}${text}${colors.reset}`;
89
+ }
90
+
91
+ /**
92
+ * Check if colors should be disabled (e.g., in CI or when piped)
93
+ */
94
+ export function shouldUseColors(): boolean {
95
+ // Disable colors if NO_COLOR env var is set
96
+ if (process.env.NO_COLOR) {
97
+ return false;
98
+ }
99
+
100
+ // Disable colors if not in a TTY
101
+ if (!process.stdout.isTTY) {
102
+ return false;
103
+ }
104
+
105
+ // Enable colors by default in terminal
106
+ return true;
107
+ }
108
+
109
+ /**
110
+ * Conditionally apply color based on environment
111
+ */
112
+ export function maybeColorize(text: string, color: string): string {
113
+ return shouldUseColors() ? colorize(text, color) : text;
114
+ }
@@ -0,0 +1,169 @@
1
+ import { parseError } from "next-vibe/shared/utils/parse-error";
2
+
3
+ import { enableDebugLogger, mcpSilentMode } from "@/config/debug";
4
+ import type { CountryLanguage } from "@/i18n/core/config";
5
+ import { simpleT } from "@/i18n/core/shared";
6
+ import type { TranslationKey } from "@/i18n/core/static-types";
7
+
8
+ import type { ErrorResponseType } from "../../../../shared/types/response.schema";
9
+
10
+ /**
11
+ * Logger metadata - structured data for logging
12
+ */
13
+ export type LoggerMetadata =
14
+ | string
15
+ | number
16
+ | boolean
17
+ | null
18
+ | undefined
19
+ | Error
20
+ | Date
21
+ | ErrorResponseType
22
+ | { [key: string]: LoggerMetadata }
23
+ | LoggerMetadata[];
24
+
25
+ /**
26
+ * Dynamically import and use file logging
27
+ * Only imports when actually needed (in MCP mode)
28
+ */
29
+ async function writeToFile(
30
+ message: string,
31
+ data?: Record<string, LoggerMetadata>,
32
+ ): Promise<void> {
33
+ try {
34
+ const { fileLog } = await import("./file-logger");
35
+ fileLog(message, data);
36
+ } catch {
37
+ // Ignore errors - logging is best effort
38
+ // Can't log the error because we're in silent mode
39
+ }
40
+ }
41
+
42
+ /**
43
+ * Logger interface for endpoint handlers
44
+ * Provides structured logging with timing information
45
+ */
46
+ export interface EndpointLogger {
47
+ /**
48
+ * Log an info message - always runs
49
+ */
50
+ info(message: string, ...metadata: LoggerMetadata[]): void;
51
+
52
+ /**
53
+ * Log an error message - always runs
54
+ */
55
+ error(
56
+ message: string,
57
+ error?: LoggerMetadata,
58
+ ...metadata: LoggerMetadata[]
59
+ ): void;
60
+
61
+ /**
62
+ * Log a warning message - always runs
63
+ */
64
+ warn(message: string, ...metadata: LoggerMetadata[]): void;
65
+
66
+ /**
67
+ * Log a vibe message (special formatted info) - always runs
68
+ */
69
+ vibe(message: string, ...metadata: LoggerMetadata[]): void;
70
+
71
+ /**
72
+ * Log a debug message - only runs when debug flag is enabled
73
+ */
74
+ debug(message: string, ...metadata: LoggerMetadata[]): void;
75
+
76
+ isDebugEnabled: boolean;
77
+ }
78
+
79
+ /**
80
+ * Creates a logger instance for endpoint handlers
81
+ * Provides pretty formatted logging with running time in seconds
82
+ */
83
+ export function createEndpointLogger(
84
+ debugEnabled = false,
85
+ startTime: number = Date.now(),
86
+ locale: CountryLanguage,
87
+ ): EndpointLogger {
88
+ const getElapsedTime = (): string => {
89
+ const elapsed = (Date.now() - startTime) / 1000;
90
+ return `${elapsed.toFixed(3)}s`;
91
+ };
92
+ const { t } = simpleT(locale);
93
+
94
+ const formatMessage = (message: string): string => {
95
+ return `[${getElapsedTime()}] ${t(message as TranslationKey)}`;
96
+ };
97
+
98
+ return {
99
+ info(message: string, ...metadata: LoggerMetadata[]): void {
100
+ if (mcpSilentMode) {
101
+ // In MCP mode, dynamically import and log to file instead of console
102
+ const metadataObj = metadata.length > 0 ? { metadata } : undefined;
103
+ void writeToFile(`[INFO] ${formatMessage(message)}`, metadataObj);
104
+ } else {
105
+ // oxlint-disable-next-line no-console
106
+ console.log(formatMessage(message), ...metadata);
107
+ }
108
+ },
109
+
110
+ error(
111
+ message: string,
112
+ error?: LoggerMetadata,
113
+ ...metadata: LoggerMetadata[]
114
+ ): void {
115
+ if (mcpSilentMode) {
116
+ // In MCP mode, dynamically import and log to file instead of console
117
+ const typedError = error ? parseError(error) : undefined;
118
+ const metadataObj = {
119
+ error: typedError,
120
+ ...(metadata.length > 0 && { metadata }),
121
+ };
122
+ void writeToFile(`[ERROR] ${formatMessage(message)}`, metadataObj);
123
+ } else {
124
+ const typedError = error ? parseError(error) : undefined;
125
+ // oxlint-disable-next-line no-console
126
+ console.error(formatMessage(message), typedError, ...metadata);
127
+ }
128
+ },
129
+
130
+ vibe(message: string, ...metadata: LoggerMetadata[]): void {
131
+ if (mcpSilentMode) {
132
+ // In MCP mode, dynamically import and log to file instead of console
133
+ const metadataObj = metadata.length > 0 ? { metadata } : undefined;
134
+ void writeToFile(
135
+ `[VIBE] [${getElapsedTime()}] ${message}`,
136
+ metadataObj,
137
+ );
138
+ } else {
139
+ // Special vibe formatting - messages are plain strings
140
+ // oxlint-disable-next-line no-console
141
+ console.log(`[${getElapsedTime()}] ${message}`, ...metadata);
142
+ }
143
+ },
144
+
145
+ debug(message: string, ...metadata: LoggerMetadata[]): void {
146
+ if (debugEnabled || enableDebugLogger) {
147
+ if (mcpSilentMode) {
148
+ // In MCP mode, dynamically import and log to file instead of console
149
+ const metadataObj = metadata.length > 0 ? { metadata } : undefined;
150
+ void writeToFile(`[DEBUG] ${formatMessage(message)}`, metadataObj);
151
+ } else {
152
+ // oxlint-disable-next-line no-console
153
+ console.log(formatMessage(message), ...metadata);
154
+ }
155
+ }
156
+ },
157
+ warn(message: string, ...metadata: LoggerMetadata[]): void {
158
+ if (mcpSilentMode) {
159
+ // In MCP mode, dynamically import and log to file instead of console
160
+ const metadataObj = metadata.length > 0 ? { metadata } : undefined;
161
+ void writeToFile(`[WARN] ${formatMessage(message)}`, metadataObj);
162
+ } else {
163
+ // oxlint-disable-next-line no-console
164
+ console.warn(formatMessage(message), ...metadata);
165
+ }
166
+ },
167
+ isDebugEnabled: debugEnabled || enableDebugLogger,
168
+ };
169
+ }