@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,88 @@
1
+ /**
2
+ * File Logger for MCP Mode
3
+ * Since MCP uses stdio for JSON-RPC communication, we can't use console.log
4
+ * This logger writes to a file instead for debugging purposes
5
+ */
6
+
7
+ import type { LoggerMetadata } from "./endpoint";
8
+
9
+ /**
10
+ * File logger configuration
11
+ */
12
+ const DEBUG_DIR = ".vibe-debug";
13
+ const DEBUG_FILE = "mcp-auth.log";
14
+
15
+ /**
16
+ * Get debug file path
17
+ * Creates debug directory if it doesn't exist
18
+ */
19
+ function getDebugFilePath(): string {
20
+ const { existsSync, mkdirSync, join } = require("node:fs");
21
+ // Use VIBE_PROJECT_ROOT if available, otherwise use cwd
22
+ const projectRoot = process.env.VIBE_PROJECT_ROOT || process.cwd();
23
+ const debugDir = join(projectRoot, DEBUG_DIR);
24
+
25
+ // Create debug directory if it doesn't exist
26
+ if (!existsSync(debugDir)) {
27
+ try {
28
+ mkdirSync(debugDir, { recursive: true });
29
+ } catch {
30
+ // Ignore errors - logging is best effort
31
+ }
32
+ }
33
+
34
+ return join(debugDir, DEBUG_FILE);
35
+ }
36
+
37
+ /**
38
+ * Write debug message to file
39
+ * This is used when MCP silent mode is enabled and console logging is disabled
40
+ */
41
+ export function fileLog(
42
+ message: string,
43
+ data?: Record<string, LoggerMetadata>,
44
+ ): void {
45
+ // Only log if DEBUG_FILE_LOGGING is enabled
46
+ if (process.env.DEBUG_FILE_LOGGING !== "true") {
47
+ return;
48
+ }
49
+ const { appendFileSync } = require("node:fs");
50
+
51
+ try {
52
+ const timestamp = new Date().toISOString();
53
+ const logEntry = data
54
+ ? `[${timestamp}] ${message}\n${JSON.stringify(data, null, 2)}\n\n`
55
+ : `[${timestamp}] ${message}\n\n`;
56
+
57
+ const debugPath = getDebugFilePath();
58
+ appendFileSync(debugPath, logEntry, "utf-8");
59
+ } catch {
60
+ // Ignore errors - logging is best effort
61
+ // We can't log the error because we're in silent mode
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Clear debug log file
67
+ * Useful at the start of a new session
68
+ */
69
+ export function clearDebugLog(): void {
70
+ if (process.env.DEBUG_FILE_LOGGING !== "true") {
71
+ return;
72
+ }
73
+
74
+ try {
75
+ const debugPath = getDebugFilePath();
76
+ const fs = require("node:fs");
77
+ fs.writeFileSync(debugPath, "", "utf-8");
78
+ } catch {
79
+ // Ignore errors - logging is best effort
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Get debug log file path for user display
85
+ */
86
+ export function getDebugLogPath(): string {
87
+ return getDebugFilePath();
88
+ }
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Log Message Formatters
3
+ * Provides consistent, beautiful formatting for different types of log messages
4
+ */
5
+
6
+ import { bold, dim, maybeColorize, semantic } from "./colors";
7
+
8
+ /**
9
+ * Format a startup message
10
+ */
11
+ export function formatStartup(message: string, icon = "🚀"): string {
12
+ return `${icon} ${bold(message)}`;
13
+ }
14
+
15
+ /**
16
+ * Format a success message
17
+ */
18
+ export function formatSuccess(message: string, icon = "✅"): string {
19
+ return `${icon} ${message}`;
20
+ }
21
+
22
+ /**
23
+ * Format an error message
24
+ */
25
+ export function formatError(message: string, icon = "❌"): string {
26
+ return `${icon} ${maybeColorize(message, semantic.error)}`;
27
+ }
28
+
29
+ /**
30
+ * Format a warning message
31
+ */
32
+ export function formatWarning(message: string, icon = "⚠️"): string {
33
+ return `${icon} ${maybeColorize(message, semantic.warning)}`;
34
+ }
35
+
36
+ /**
37
+ * Format an info message
38
+ */
39
+ export function formatInfo(message: string, icon = "ℹ️"): string {
40
+ return `${icon} ${maybeColorize(message, semantic.info)}`;
41
+ }
42
+
43
+ /**
44
+ * Format a database message (cyan color for all DB operations)
45
+ */
46
+ export function formatDatabase(message: string, icon = "🗄️"): string {
47
+ return `${icon} ${maybeColorize(message, semantic.database)}`;
48
+ }
49
+
50
+ /**
51
+ * Format a task message (magenta color for all task operations)
52
+ */
53
+ export function formatTask(message: string, icon = "⚡"): string {
54
+ return `${icon} ${maybeColorize(message, semantic.task)}`;
55
+ }
56
+
57
+ /**
58
+ * Format a generator message
59
+ */
60
+ export function formatGenerator(message: string, icon = "⚙️"): string {
61
+ return `${icon} ${maybeColorize(message, semantic.generator)}`;
62
+ }
63
+
64
+ /**
65
+ * Format a progress message
66
+ */
67
+ export function formatProgress(message: string, icon = "⏳"): string {
68
+ return `${icon} ${maybeColorize(dim(message), semantic.muted)}`;
69
+ }
70
+
71
+ /**
72
+ * Format a skip message
73
+ */
74
+ export function formatSkip(message: string, icon = "⏭️"): string {
75
+ return `${icon} ${maybeColorize(dim(message), semantic.muted)}`;
76
+ }
77
+
78
+ /**
79
+ * Format a config/settings message
80
+ */
81
+ export function formatConfig(
82
+ key: string,
83
+ value: string | number | boolean,
84
+ ): string {
85
+ const formattedKey = key ? `${key}` : "";
86
+ const formattedValue = maybeColorize(bold(String(value)), semantic.success);
87
+ return key ? `${formattedKey}: ${formattedValue}` : formattedValue;
88
+ }
89
+
90
+ /**
91
+ * Format a duration (grey color)
92
+ */
93
+ export function formatDuration(ms: number): string {
94
+ if (ms < 1000) {
95
+ return maybeColorize(`${ms}ms`, semantic.muted);
96
+ }
97
+ const seconds = (ms / 1000).toFixed(2);
98
+ return maybeColorize(`${seconds}s`, semantic.muted);
99
+ }
100
+
101
+ /**
102
+ * Format a count
103
+ */
104
+ export function formatCount(
105
+ count: number,
106
+ singular: string,
107
+ plural?: string,
108
+ ): string {
109
+ const label = count === 1 ? singular : plural || `${singular}s`;
110
+ return `${maybeColorize(bold(String(count)), semantic.highlight)} ${maybeColorize(label, semantic.muted)}`;
111
+ }
112
+
113
+ /**
114
+ * Format a URL
115
+ */
116
+ export function formatUrl(url: string): string {
117
+ return maybeColorize(url, semantic.accent);
118
+ }
119
+
120
+ /**
121
+ * Format a file path
122
+ */
123
+ export function formatPath(path: string): string {
124
+ return maybeColorize(path, semantic.muted);
125
+ }
126
+
127
+ /**
128
+ * Format a separator line
129
+ */
130
+ export function formatSeparator(char = "─", length = 50): string {
131
+ return maybeColorize(char.repeat(length), semantic.muted);
132
+ }
133
+
134
+ /**
135
+ * Format a section header
136
+ */
137
+ export function formatSection(title: string): string {
138
+ return `\n${maybeColorize(bold(title), semantic.highlight)}\n${formatSeparator()}`;
139
+ }
140
+
141
+ /**
142
+ * Format a key-value pair
143
+ */
144
+ export function formatKeyValue(
145
+ key: string,
146
+ value: string | number | boolean,
147
+ ): string {
148
+ return `${maybeColorize(key, semantic.muted)}: ${maybeColorize(bold(String(value)), semantic.highlight)}`;
149
+ }
150
+
151
+ /**
152
+ * Format a list item
153
+ */
154
+ export function formatListItem(item: string, icon = "•"): string {
155
+ return ` ${maybeColorize(icon, semantic.muted)} ${item}`;
156
+ }
157
+
158
+ /**
159
+ * Format a command suggestion
160
+ */
161
+ export function formatCommand(command: string): string {
162
+ return maybeColorize(command, semantic.accent);
163
+ }
164
+
165
+ /**
166
+ * Format a hint/help text (grey color, no dim)
167
+ */
168
+ export function formatHint(text: string): string {
169
+ return maybeColorize(text, semantic.muted);
170
+ }
171
+
172
+ /**
173
+ * Format an action with a command (e.g., "Started PostgreSQL using: 'command'")
174
+ */
175
+ export function formatActionCommand(action: string, command: string): string {
176
+ return `${action} ${maybeColorize(`'${command}'`, semantic.muted)}`;
177
+ }
@@ -0,0 +1,82 @@
1
+ import "server-only";
2
+
3
+ import type { ResponseType } from "next-vibe/shared/types/response.schema";
4
+
5
+ import type { JwtPayloadType } from "@/app/api/[locale]/user/auth/types";
6
+ import type { CountryLanguage } from "@/i18n/core/config";
7
+
8
+ import type { EndpointLogger } from "../../logger/endpoint";
9
+ import type { Platform } from "../../types/platform";
10
+
11
+ /**
12
+ * Authentication context passed to platform handlers
13
+ */
14
+ export interface AuthContext {
15
+ platform: Platform;
16
+ token?: string;
17
+ jwtPayload?: JwtPayloadType;
18
+ locale: CountryLanguage;
19
+ }
20
+
21
+ /**
22
+ * Session data structure for CLI/MCP platforms
23
+ */
24
+ export interface SessionData {
25
+ token: string;
26
+ userId: string;
27
+ leadId: string;
28
+ expiresAt: string;
29
+ createdAt: string;
30
+ }
31
+
32
+ /**
33
+ * Base Authentication Handler
34
+ * Platform-specific storage handlers ONLY
35
+ *
36
+ * ARCHITECTURE:
37
+ * - Platform handlers: ONLY handle storage (cookies, session files, AsyncStorage)
38
+ * - AuthRepository: Contains ALL authentication business logic
39
+ *
40
+ * Platform implementations:
41
+ * - Web: Uses Next.js cookies for session storage
42
+ * - CLI/MCP: Uses .vibe.session file for JWT storage
43
+ * - Native: Uses AsyncStorage for session storage
44
+ *
45
+ * All business logic (user/lead management, token verification, authentication flows)
46
+ * is in @/app/api/[locale]/user/auth/repository.ts
47
+ */
48
+ export abstract class BaseAuthHandler {
49
+ /**
50
+ * Get authentication token from platform-specific storage
51
+ * Web: Reads from cookies and Authorization header
52
+ * CLI/MCP: Reads from .vibe.session file and Authorization header
53
+ * Native: Reads from AsyncStorage
54
+ */
55
+ abstract getStoredAuthToken(
56
+ context: AuthContext,
57
+ logger: EndpointLogger,
58
+ ): Promise<string | undefined>;
59
+
60
+ /**
61
+ * Store authentication token in platform-specific storage
62
+ * Web: Sets HTTP-only cookies
63
+ * CLI/MCP: Writes to .vibe.session file
64
+ * Native: Writes to AsyncStorage
65
+ * @param rememberMe - If true, session cookie lasts 30 days; if false, session-only (browser session)
66
+ */
67
+ abstract storeAuthToken(
68
+ token: string,
69
+ userId: string,
70
+ leadId: string,
71
+ logger: EndpointLogger,
72
+ rememberMe?: boolean,
73
+ ): Promise<ResponseType<void>>;
74
+
75
+ /**
76
+ * Clear authentication token from platform-specific storage
77
+ * Web: Clears cookies
78
+ * CLI/MCP: Deletes .vibe.session file
79
+ * Native: Clears AsyncStorage
80
+ */
81
+ abstract clearAuthToken(logger: EndpointLogger): Promise<ResponseType<void>>;
82
+ }
@@ -0,0 +1,33 @@
1
+ import "server-only";
2
+
3
+ import { cliAuthHandler } from "../../../cli/auth/cli-handler";
4
+ import { Platform } from "../../types/platform";
5
+ import type { BaseAuthHandler } from "./base-auth-handler";
6
+
7
+ /**
8
+ * Platform Authentication Handler Factory
9
+ * Returns the appropriate auth handler based on platform
10
+ *
11
+ * Platform mapping:
12
+ * - TRPC, NEXT_PAGE, NEXT_API -> WebAuthHandler (cookies)
13
+ * - CLI, CLI_PACKAGE, AI, MCP -> CliAuthHandler (.vibe.session file)
14
+ */
15
+ export function getPlatformAuthHandler(platform: Platform): BaseAuthHandler {
16
+ switch (platform) {
17
+ case Platform.CLI:
18
+ case Platform.CLI_PACKAGE:
19
+ case Platform.MCP:
20
+ return cliAuthHandler;
21
+ case Platform.TRPC:
22
+ case Platform.NEXT_PAGE:
23
+ case Platform.NEXT_API:
24
+ case Platform.AI:
25
+ throw new Error("WebAuthHandler not implemented");
26
+
27
+ default: {
28
+ const _exhaustiveCheck: never = platform;
29
+ // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax, i18next/no-literal-string -- Auth factory exhaustiveness check requires throwing for unsupported platforms
30
+ throw new Error(`Unsupported platform: ${String(_exhaustiveCheck)}`);
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,4 @@
1
+ // on expo we skip bundling server-only files
2
+ if (process.env.NODE_ENV !== "test") {
3
+ void import("server-only");
4
+ }
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Action System for Definition-Driven UI
3
+ *
4
+ * This system allows defining actions directly on fields and widgets,
5
+ * providing a declarative way to handle user interactions across all interface contexts.
6
+ */
7
+
8
+ import type { Route } from "next";
9
+
10
+ import type { TranslationKey } from "@/i18n/core/static-types";
11
+
12
+ import type { ActionType, ComponentVariant, InterfaceContext } from "./enums";
13
+
14
+ /**
15
+ * Action execution timing
16
+ */
17
+ export enum ActionTiming {
18
+ IMMEDIATE = "immediate",
19
+ DEBOUNCED = "debounced",
20
+ THROTTLED = "throttled",
21
+ DELAYED = "delayed",
22
+ }
23
+
24
+ /**
25
+ * Action execution priority
26
+ */
27
+ export enum ActionPriority {
28
+ LOW = 0,
29
+ NORMAL = 1,
30
+ HIGH = 2,
31
+ CRITICAL = 3,
32
+ }
33
+
34
+ /**
35
+ * Action condition for conditional execution
36
+ */
37
+ export interface ActionCondition {
38
+ field: string;
39
+ operator:
40
+ | "equals"
41
+ | "not_equals"
42
+ | "contains"
43
+ | "not_contains"
44
+ | "exists"
45
+ | "not_exists"
46
+ | "greater_than"
47
+ | "less_than";
48
+ value?: string | number | boolean;
49
+ }
50
+
51
+ /**
52
+ * Base action configuration
53
+ */
54
+ export interface BaseActionConfig {
55
+ type: ActionType;
56
+ timing?: ActionTiming;
57
+ priority?: ActionPriority;
58
+ delay?: number;
59
+ dependencies?: string[];
60
+ conditions?: ActionCondition[];
61
+ contexts?: InterfaceContext[]; // Which contexts this action applies to
62
+ }
63
+
64
+ /**
65
+ * Toast/Notification action configuration
66
+ */
67
+ export interface ToastActionConfig extends BaseActionConfig {
68
+ type: ActionType.TOAST | ActionType.NOTIFICATION | ActionType.ALERT;
69
+ message: TranslationKey;
70
+ variant?: ComponentVariant;
71
+ duration?: number;
72
+ title?: TranslationKey;
73
+ description?: TranslationKey;
74
+ action?: {
75
+ label: TranslationKey;
76
+ onClick: () => void;
77
+ };
78
+ }
79
+
80
+ /**
81
+ * Navigation action configuration
82
+ */
83
+ export interface NavigationActionConfig extends BaseActionConfig {
84
+ type:
85
+ | ActionType.ROUTER_PUSH
86
+ | ActionType.ROUTER_REPLACE
87
+ | ActionType.ROUTER_BACK
88
+ | ActionType.REDIRECT;
89
+ path?: string;
90
+ route?: Route;
91
+ params?: Record<string, string>;
92
+ query?: Record<string, string>;
93
+ replace?: boolean;
94
+ external?: boolean;
95
+ }
96
+
97
+ /**
98
+ * Data/Cache action configuration
99
+ */
100
+ export interface RefetchActionConfig extends BaseActionConfig {
101
+ type:
102
+ | ActionType.REFETCH
103
+ | ActionType.INVALIDATE_CACHE
104
+ | ActionType.UPDATE_CACHE
105
+ | ActionType.CLEAR_CACHE;
106
+ queryKeys?: string[][];
107
+ exact?: boolean;
108
+ predicate?: (query: Record<string, string | number | boolean>) => boolean;
109
+ data?: Record<string, string | number | boolean>;
110
+ }
111
+
112
+ /**
113
+ * Form action configuration
114
+ */
115
+ export interface FormActionConfig extends BaseActionConfig {
116
+ type:
117
+ | ActionType.RESET_FORM
118
+ | ActionType.CLEAR_FORM
119
+ | ActionType.SET_FORM_VALUES
120
+ | ActionType.FOCUS_FIELD;
121
+ formId?: string;
122
+ values?:
123
+ | Record<string, string | number | boolean>
124
+ | ((context: ActionContext) => Record<string, string | number | boolean>);
125
+ fieldName?: string;
126
+ resetToDefaults?: boolean;
127
+ }
128
+
129
+ /**
130
+ * State action configuration
131
+ */
132
+ export interface StateActionConfig extends BaseActionConfig {
133
+ type:
134
+ | ActionType.SET_STATE
135
+ | ActionType.TOGGLE_STATE
136
+ | ActionType.UPDATE_STATE;
137
+ key: string;
138
+ value?: string | number | boolean;
139
+ updater?: (current: string | number | boolean) => string | number | boolean;
140
+ }
141
+
142
+ /**
143
+ * Custom action configuration
144
+ */
145
+ export interface CustomActionConfig extends BaseActionConfig {
146
+ type: ActionType.CUSTOM;
147
+ handler: string | ((context: ActionContext) => Promise<ActionResult>);
148
+ payload?: Record<string, string | number | boolean>;
149
+ }
150
+
151
+ /**
152
+ * Union type for all action configurations
153
+ */
154
+ export type ActionConfig =
155
+ | ToastActionConfig
156
+ | NavigationActionConfig
157
+ | RefetchActionConfig
158
+ | FormActionConfig
159
+ | StateActionConfig
160
+ | CustomActionConfig;
161
+
162
+ /**
163
+ * Lifecycle actions for endpoints and widgets
164
+ */
165
+ export interface LifecycleActions {
166
+ onSuccess?: ActionConfig[];
167
+ onError?: ActionConfig[];
168
+ onLoading?: ActionConfig[];
169
+ onComplete?: ActionConfig[];
170
+ onMount?: ActionConfig[];
171
+ onUnmount?: ActionConfig[];
172
+ }
173
+
174
+ /**
175
+ * Interactive actions for buttons and clickable elements
176
+ */
177
+ export interface InteractiveActions {
178
+ onClick?: ActionConfig[];
179
+ onDoubleClick?: ActionConfig[];
180
+ onHover?: ActionConfig[];
181
+ onFocus?: ActionConfig[];
182
+ onBlur?: ActionConfig[];
183
+ }
184
+
185
+ /**
186
+ * Form field actions
187
+ */
188
+ export interface FieldActions {
189
+ onChange?: ActionConfig[];
190
+ onValidation?: ActionConfig[];
191
+ onError?: ActionConfig[];
192
+ onClear?: ActionConfig[];
193
+ }
194
+
195
+ /**
196
+ * Action execution context
197
+ */
198
+ export interface ActionContext {
199
+ context: InterfaceContext;
200
+ data?: Record<string, string | number | boolean>;
201
+ error?: Error;
202
+ endpoint?: Record<string, string | number | boolean>;
203
+ timestamp: string;
204
+ user: {
205
+ id: string;
206
+ roles: string[];
207
+ };
208
+ metadata?: Record<string, string | number | boolean>;
209
+ formValues?: Record<string, string | number | boolean>;
210
+ fieldValue?: string | number | boolean;
211
+ }
212
+
213
+ /**
214
+ * Action execution result
215
+ */
216
+ export interface ActionResult {
217
+ success: boolean;
218
+ data?: Record<string, string | number | boolean>;
219
+ error?: string;
220
+ metadata?: Record<string, string | number | boolean>;
221
+ }
222
+
223
+ /**
224
+ * Action executor interface
225
+ */
226
+ export interface ActionExecutor {
227
+ context: InterfaceContext;
228
+ canExecute(action: ActionConfig, context: ActionContext): boolean;
229
+ execute(action: ActionConfig, context: ActionContext): Promise<ActionResult>;
230
+ }
231
+
232
+ /**
233
+ * Action chain configuration for complex workflows
234
+ */
235
+ export interface ActionChain {
236
+ actions: ActionConfig[];
237
+ parallel?: boolean;
238
+ stopOnError?: boolean;
239
+ timeout?: number;
240
+ }
241
+
242
+ /**
243
+ * Action preset for common patterns
244
+ */
245
+ export interface ActionPreset {
246
+ name: string;
247
+ description: TranslationKey;
248
+ actions: ActionConfig[];
249
+ contexts?: InterfaceContext[];
250
+ }
251
+
252
+ /**
253
+ * Button action configuration for UI elements
254
+ */
255
+ export interface ButtonAction {
256
+ label: TranslationKey;
257
+ icon?: string;
258
+ variant?: ComponentVariant;
259
+ size?: "sm" | "md" | "lg";
260
+ actions: ActionConfig[];
261
+ conditions?: ActionCondition[];
262
+ disabled?: boolean;
263
+ loading?: boolean;
264
+ }
265
+
266
+ /**
267
+ * Context menu action configuration
268
+ */
269
+ export interface ContextMenuAction {
270
+ label: TranslationKey;
271
+ icon?: string;
272
+ actions: ActionConfig[];
273
+ separator?: boolean;
274
+ disabled?: boolean;
275
+ dangerous?: boolean;
276
+ }
277
+
278
+ /**
279
+ * Bulk action configuration for data tables
280
+ */
281
+ export interface BulkAction {
282
+ label: TranslationKey;
283
+ icon?: string;
284
+ variant?: ComponentVariant;
285
+ actions: ActionConfig[];
286
+ confirmationMessage?: TranslationKey;
287
+ requiresSelection?: boolean;
288
+ maxSelection?: number;
289
+ }