@next-vibe/checker 1.0.11 → 1.0.13

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 (400) hide show
  1. package/.dist/bin/vibe-runtime.js +26 -22
  2. package/.dist/bin/vibe-runtime.js.map +5 -5
  3. package/.dist/oxlint-plugins/i18n.js +4 -0
  4. package/.dist/oxlint-plugins/i18n.js.map +1 -0
  5. package/.dist/oxlint-plugins/jsx-capitalization.js +4 -0
  6. package/.dist/oxlint-plugins/jsx-capitalization.js.map +1 -0
  7. package/.dist/oxlint-plugins/restricted-syntax.js +4 -0
  8. package/.dist/oxlint-plugins/restricted-syntax.js.map +1 -0
  9. package/check.config.ts +4 -12
  10. package/package.json +2 -9
  11. package/src/app/api/[locale]/LICENSE +674 -0
  12. package/src/app/api/[locale]/i18n/de/index.ts +13 -0
  13. package/src/app/api/[locale]/i18n/en/index.ts +12 -0
  14. package/src/app/api/[locale]/i18n/pl/index.ts +11 -0
  15. package/src/app/api/[locale]/shared/i18n/de/index.ts +85 -0
  16. package/src/app/api/[locale]/shared/i18n/en/index.ts +83 -0
  17. package/src/app/api/[locale]/shared/i18n/pl/index.ts +85 -0
  18. package/src/app/api/[locale]/shared/stats-filtering.ts +202 -0
  19. package/src/app/api/[locale]/shared/types/common.schema.ts +55 -0
  20. package/src/app/api/[locale]/shared/types/response.schema.ts +372 -0
  21. package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +375 -0
  22. package/src/app/api/[locale]/shared/types/utils.ts +190 -0
  23. package/src/app/api/[locale]/shared/utils/base64.ts +49 -0
  24. package/src/app/api/[locale]/shared/utils/env-util.ts +40 -0
  25. package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +21 -0
  26. package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +19 -0
  27. package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +21 -0
  28. package/src/app/api/[locale]/shared/utils/index.ts +11 -0
  29. package/src/app/api/[locale]/shared/utils/object-path.ts +41 -0
  30. package/src/app/api/[locale]/shared/utils/object.test.ts +82 -0
  31. package/src/app/api/[locale]/shared/utils/object.ts +75 -0
  32. package/src/app/api/[locale]/shared/utils/parse-error.ts +134 -0
  33. package/src/app/api/[locale]/shared/utils/parse-json.ts +70 -0
  34. package/src/app/api/[locale]/shared/utils/time.ts +53 -0
  35. package/src/app/api/[locale]/shared/utils/validation.ts +127 -0
  36. package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +116 -0
  37. package/src/app/api/[locale]/system/builder/definition.ts +1942 -0
  38. package/src/app/api/[locale]/system/builder/enum.ts +78 -0
  39. package/src/app/api/[locale]/system/builder/i18n/de/index.ts +677 -0
  40. package/src/app/api/[locale]/system/builder/i18n/en/index.ts +665 -0
  41. package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +668 -0
  42. package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +182 -0
  43. package/src/app/api/[locale]/system/builder/repository/build-executor.ts +583 -0
  44. package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +261 -0
  45. package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +197 -0
  46. package/src/app/api/[locale]/system/builder/repository/config-loader.ts +159 -0
  47. package/src/app/api/[locale]/system/builder/repository/config-validator.ts +97 -0
  48. package/src/app/api/[locale]/system/builder/repository/constants.ts +125 -0
  49. package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +75 -0
  50. package/src/app/api/[locale]/system/builder/repository/file-copier.ts +98 -0
  51. package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +80 -0
  52. package/src/app/api/[locale]/system/builder/repository/index.ts +2 -0
  53. package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +146 -0
  54. package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +104 -0
  55. package/src/app/api/[locale]/system/builder/repository/profile-service.ts +79 -0
  56. package/src/app/api/[locale]/system/builder/repository/report-generator.ts +125 -0
  57. package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +291 -0
  58. package/src/app/api/[locale]/system/builder/route.ts +21 -0
  59. package/src/app/api/[locale]/system/builder/test-files/file1.ts +2 -0
  60. package/src/app/api/[locale]/system/builder/test-files/file2.tsx +10 -0
  61. package/src/app/api/[locale]/system/builder/test-files/file3.tsx +16 -0
  62. package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +2 -0
  63. package/src/app/api/[locale]/system/builder/test-files/test-config.ts +38 -0
  64. package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +8 -0
  65. package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +24 -0
  66. package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +6 -0
  67. package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +18 -0
  68. package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +7 -0
  69. package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +27 -0
  70. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +19 -0
  71. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +1 -0
  72. package/src/app/api/[locale]/system/builder/test-files/test3.css +1 -0
  73. package/src/app/api/[locale]/system/check/config/repository.ts +886 -0
  74. package/src/app/api/[locale]/system/check/config/shared.ts +396 -0
  75. package/src/app/api/[locale]/system/check/config/types.ts +616 -0
  76. package/src/app/api/[locale]/system/check/config/utils.ts +171 -0
  77. package/src/app/api/[locale]/system/check/i18n/de/index.ts +15 -0
  78. package/src/app/api/[locale]/system/check/i18n/en/index.ts +14 -0
  79. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +15 -0
  80. package/src/app/api/[locale]/system/check/lint/definition.ts +414 -0
  81. package/src/app/api/[locale]/system/check/lint/enum.ts +37 -0
  82. package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +164 -0
  83. package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +162 -0
  84. package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +164 -0
  85. package/src/app/api/[locale]/system/check/lint/repository.ts +753 -0
  86. package/src/app/api/[locale]/system/check/lint/route.ts +21 -0
  87. package/src/app/api/[locale]/system/check/oxlint/README.md +190 -0
  88. package/src/app/api/[locale]/system/check/oxlint/definition.ts +414 -0
  89. package/src/app/api/[locale]/system/check/oxlint/enum.ts +37 -0
  90. package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +171 -0
  91. package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +168 -0
  92. package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +172 -0
  93. package/src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts +372 -0
  94. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +246 -0
  95. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts +583 -0
  96. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts +500 -0
  97. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +74 -0
  98. package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +305 -0
  99. package/src/app/api/[locale]/system/check/oxlint/repository.ts +959 -0
  100. package/src/app/api/[locale]/system/check/oxlint/route.ts +21 -0
  101. package/src/app/api/[locale]/system/check/oxlint/types.ts +193 -0
  102. package/src/app/api/[locale]/system/check/test-project/bun.lock +532 -0
  103. package/src/app/api/[locale]/system/check/test-project/check.config.ts +981 -0
  104. package/src/app/api/[locale]/system/check/test-project/package.json +12 -0
  105. package/src/app/api/[locale]/system/check/test-project/src/constants.ts +6 -0
  106. package/src/app/api/[locale]/system/check/test-project/src/greet.ts +18 -0
  107. package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +107 -0
  108. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +37 -0
  109. package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +137 -0
  110. package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +129 -0
  111. package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +131 -0
  112. package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +95 -0
  113. package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +76 -0
  114. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +95 -0
  115. package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +61 -0
  116. package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +80 -0
  117. package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +27 -0
  118. package/src/app/api/[locale]/system/check/test-project/tsconfig.json +34 -0
  119. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +1 -0
  120. package/src/app/api/[locale]/system/check/typecheck/definition.ts +369 -0
  121. package/src/app/api/[locale]/system/check/typecheck/enum.ts +37 -0
  122. package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +159 -0
  123. package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +150 -0
  124. package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +155 -0
  125. package/src/app/api/[locale]/system/check/typecheck/repository.ts +919 -0
  126. package/src/app/api/[locale]/system/check/typecheck/route.ts +22 -0
  127. package/src/app/api/[locale]/system/check/typecheck/utils.ts +168 -0
  128. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +568 -0
  129. package/src/app/api/[locale]/system/check/vibe-check/enum.ts +69 -0
  130. package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +192 -0
  131. package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +189 -0
  132. package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +192 -0
  133. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +545 -0
  134. package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +1142 -0
  135. package/src/app/api/[locale]/system/check/vibe-check/route.ts +21 -0
  136. package/src/app/api/[locale]/system/generated/endpoint.ts +313 -0
  137. package/src/app/api/[locale]/system/generated/endpoints.ts +156 -0
  138. package/src/app/api/[locale]/system/generated/route-handlers.ts +224 -0
  139. package/src/app/api/[locale]/system/generators/endpoint/definition.ts +193 -0
  140. package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +48 -0
  141. package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +48 -0
  142. package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +50 -0
  143. package/src/app/api/[locale]/system/generators/endpoint/repository.ts +291 -0
  144. package/src/app/api/[locale]/system/generators/endpoint/route.ts +21 -0
  145. package/src/app/api/[locale]/system/generators/endpoints/definition.ts +246 -0
  146. package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +54 -0
  147. package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +52 -0
  148. package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +54 -0
  149. package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +463 -0
  150. package/src/app/api/[locale]/system/generators/endpoints/repository.ts +383 -0
  151. package/src/app/api/[locale]/system/generators/endpoints/route.ts +18 -0
  152. package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +194 -0
  153. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +71 -0
  154. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +69 -0
  155. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +71 -0
  156. package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +294 -0
  157. package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +18 -0
  158. package/src/app/api/[locale]/system/generators/generate-all/definition.ts +355 -0
  159. package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +96 -0
  160. package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +94 -0
  161. package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +96 -0
  162. package/src/app/api/[locale]/system/generators/generate-all/repository.ts +257 -0
  163. package/src/app/api/[locale]/system/generators/generate-all/route.ts +20 -0
  164. package/src/app/api/[locale]/system/generators/i18n/de/index.ts +15 -0
  165. package/src/app/api/[locale]/system/generators/i18n/en/index.ts +14 -0
  166. package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +15 -0
  167. package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +198 -0
  168. package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +48 -0
  169. package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +48 -0
  170. package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +50 -0
  171. package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +277 -0
  172. package/src/app/api/[locale]/system/generators/route-handlers/route.ts +17 -0
  173. package/src/app/api/[locale]/system/generators/shared/utils.ts +233 -0
  174. package/src/app/api/[locale]/system/help/definition.ts +445 -0
  175. package/src/app/api/[locale]/system/help/i18n/de/index.ts +267 -0
  176. package/src/app/api/[locale]/system/help/i18n/en/index.ts +262 -0
  177. package/src/app/api/[locale]/system/help/i18n/pl/index.ts +265 -0
  178. package/src/app/api/[locale]/system/help/interactive/definition.ts +125 -0
  179. package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +22 -0
  180. package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +19 -0
  181. package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +22 -0
  182. package/src/app/api/[locale]/system/help/interactive/repository.ts +1025 -0
  183. package/src/app/api/[locale]/system/help/interactive/route.ts +53 -0
  184. package/src/app/api/[locale]/system/help/list/definition.ts +372 -0
  185. package/src/app/api/[locale]/system/help/list/repository.ts +110 -0
  186. package/src/app/api/[locale]/system/help/list/route.ts +21 -0
  187. package/src/app/api/[locale]/system/help/repository.ts +212 -0
  188. package/src/app/api/[locale]/system/help/route.ts +16 -0
  189. package/src/app/api/[locale]/system/i18n/de/index.ts +68 -0
  190. package/src/app/api/[locale]/system/i18n/en/index.ts +65 -0
  191. package/src/app/api/[locale]/system/i18n/pl/index.ts +66 -0
  192. package/src/app/api/[locale]/system/release-tool/definition.ts +3104 -0
  193. package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +813 -0
  194. package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +797 -0
  195. package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +810 -0
  196. package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +128 -0
  197. package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +212 -0
  198. package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +566 -0
  199. package/src/app/api/[locale]/system/release-tool/repository/config.ts +113 -0
  200. package/src/app/api/[locale]/system/release-tool/repository/constants.ts +407 -0
  201. package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +527 -0
  202. package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +403 -0
  203. package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +100 -0
  204. package/src/app/api/[locale]/system/release-tool/repository/index.ts +1 -0
  205. package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +638 -0
  206. package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +169 -0
  207. package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +253 -0
  208. package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +428 -0
  209. package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +293 -0
  210. package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +1198 -0
  211. package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +136 -0
  212. package/src/app/api/[locale]/system/release-tool/repository/utils.ts +642 -0
  213. package/src/app/api/[locale]/system/release-tool/repository/validation.ts +288 -0
  214. package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +297 -0
  215. package/src/app/api/[locale]/system/release-tool/route.ts +21 -0
  216. package/src/app/api/[locale]/system/unified-interface/README.md +328 -0
  217. package/src/app/api/[locale]/system/unified-interface/cli/README.md +349 -0
  218. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +95 -0
  219. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +146 -0
  220. package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +266 -0
  221. package/src/app/api/[locale]/system/unified-interface/cli/env.ts +26 -0
  222. package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +157 -0
  223. package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +155 -0
  224. package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +158 -0
  225. package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +595 -0
  226. package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +129 -0
  227. package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +155 -0
  228. package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +452 -0
  229. package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +297 -0
  230. package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +859 -0
  231. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +12 -0
  232. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +11 -0
  233. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +12 -0
  234. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +262 -0
  235. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +54 -0
  236. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +52 -0
  237. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +54 -0
  238. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +421 -0
  239. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +25 -0
  240. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +181 -0
  241. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +61 -0
  242. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +59 -0
  243. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +61 -0
  244. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +195 -0
  245. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +22 -0
  246. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +188 -0
  247. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +54 -0
  248. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +52 -0
  249. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +54 -0
  250. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +209 -0
  251. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +24 -0
  252. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +200 -0
  253. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +54 -0
  254. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +52 -0
  255. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +54 -0
  256. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +113 -0
  257. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +22 -0
  258. package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +304 -0
  259. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +270 -0
  260. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +309 -0
  261. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +126 -0
  262. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +67 -0
  263. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +65 -0
  264. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +67 -0
  265. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +74 -0
  266. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +39 -0
  267. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +54 -0
  268. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +298 -0
  269. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +89 -0
  270. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +298 -0
  271. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +96 -0
  272. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +186 -0
  273. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +65 -0
  274. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +570 -0
  275. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +80 -0
  276. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +385 -0
  277. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +99 -0
  278. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +55 -0
  279. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +67 -0
  280. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +729 -0
  281. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +87 -0
  282. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +112 -0
  283. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +59 -0
  284. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +50 -0
  285. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +131 -0
  286. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +291 -0
  287. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +120 -0
  288. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +149 -0
  289. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +61 -0
  290. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +78 -0
  291. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +42 -0
  292. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +418 -0
  293. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +534 -0
  294. package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +42 -0
  295. package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +40 -0
  296. package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +43 -0
  297. package/src/app/api/[locale]/system/unified-interface/mcp/README.md +114 -0
  298. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +146 -0
  299. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +182 -0
  300. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +179 -0
  301. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +181 -0
  302. package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +343 -0
  303. package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +147 -0
  304. package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +38 -0
  305. package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +14 -0
  306. package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +309 -0
  307. package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +154 -0
  308. package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +193 -0
  309. package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +246 -0
  310. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +1510 -0
  311. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +581 -0
  312. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +52 -0
  313. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +152 -0
  314. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +265 -0
  315. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +680 -0
  316. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +220 -0
  317. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +325 -0
  318. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +184 -0
  319. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +201 -0
  320. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +58 -0
  321. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +49 -0
  322. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +47 -0
  323. package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +58 -0
  324. package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +110 -0
  325. package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +339 -0
  326. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +408 -0
  327. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +1349 -0
  328. package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +107 -0
  329. package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +268 -0
  330. package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +114 -0
  331. package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +169 -0
  332. package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +88 -0
  333. package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +177 -0
  334. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +82 -0
  335. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +33 -0
  336. package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +4 -0
  337. package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +289 -0
  338. package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +1167 -0
  339. package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +382 -0
  340. package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +34 -0
  341. package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +80 -0
  342. package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +76 -0
  343. package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +27 -0
  344. package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +63 -0
  345. package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +241 -0
  346. package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +256 -0
  347. package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +1158 -0
  348. package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +80 -0
  349. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +82 -0
  350. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +75 -0
  351. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +89 -0
  352. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +302 -0
  353. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +202 -0
  354. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +129 -0
  355. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +81 -0
  356. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +258 -0
  357. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +123 -0
  358. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +387 -0
  359. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +89 -0
  360. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +78 -0
  361. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +93 -0
  362. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +448 -0
  363. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +38 -0
  364. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +130 -0
  365. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +127 -0
  366. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +68 -0
  367. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +81 -0
  368. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +176 -0
  369. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +241 -0
  370. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +90 -0
  371. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +71 -0
  372. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +80 -0
  373. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +105 -0
  374. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +72 -0
  375. package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +240 -0
  376. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +137 -0
  377. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +437 -0
  378. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +40 -0
  379. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +465 -0
  380. package/src/app/api/[locale]/user/auth/enum.ts +16 -0
  381. package/src/app/api/[locale]/user/auth/i18n/de/index.ts +227 -0
  382. package/src/app/api/[locale]/user/auth/i18n/en/index.ts +205 -0
  383. package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +219 -0
  384. package/src/app/api/[locale]/user/auth/types.ts +110 -0
  385. package/src/app/api/[locale]/user/enum.ts +64 -0
  386. package/src/app/api/[locale]/user/private/i18n/de/index.ts +3 -0
  387. package/src/app/api/[locale]/user/private/i18n/en/index.ts +1 -0
  388. package/src/app/api/[locale]/user/private/i18n/pl/index.ts +3 -0
  389. package/src/app/api/[locale]/user/types.ts +118 -0
  390. package/src/app/api/[locale]/user/user-roles/enum.ts +112 -0
  391. package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +85 -0
  392. package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +83 -0
  393. package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +86 -0
  394. package/src/app/api/[locale]/user/user-roles/types.ts +34 -0
  395. package/src/app/api/i18n/de/index.ts +6 -0
  396. package/src/app/api/i18n/en/index.ts +5 -0
  397. package/src/app/api/i18n/pl/index.ts +5 -0
  398. package/src/app/i18n/de/index.ts +6 -0
  399. package/src/app/i18n/en/index.ts +5 -0
  400. package/src/app/i18n/pl/index.ts +5 -0
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Widget Helper Utilities
3
+ * Shared business logic utilities for React widgets
4
+ * Pure functions with no side effects - can be used in any environment
5
+ */
6
+
7
+ import type { WidgetData } from "../types";
8
+
9
+ /**
10
+ * Layout Configuration Types
11
+ */
12
+ export interface LayoutConfig {
13
+ type: "grid" | "flex" | "stack";
14
+ gap: string;
15
+ columns?: number;
16
+ }
17
+
18
+ /**
19
+ * Grid Column Configuration
20
+ */
21
+ export interface GridConfig {
22
+ columns: 1 | 2 | 3 | 4;
23
+ }
24
+
25
+ /**
26
+ * Severity types for code quality
27
+ */
28
+ export type SeverityType = "error" | "warning" | "info";
29
+
30
+ /**
31
+ * Badge variant types (React component specific)
32
+ */
33
+ export type BadgeVariant = "destructive" | "default" | "secondary";
34
+
35
+ /**
36
+ * Trend direction types
37
+ */
38
+ export type TrendDirection = "up" | "down" | "neutral";
39
+
40
+ /**
41
+ * Extract layout configuration from widget value
42
+ * Used by: ContainerWidget
43
+ */
44
+ export function extractLayoutConfig(value: WidgetData): LayoutConfig {
45
+ const isObject =
46
+ typeof value === "object" && value !== null && !Array.isArray(value);
47
+
48
+ if (!isObject) {
49
+ return { type: "stack", gap: "4" };
50
+ }
51
+
52
+ const layoutRaw =
53
+ "layout" in value &&
54
+ typeof value.layout === "object" &&
55
+ value.layout !== null
56
+ ? value.layout
57
+ : null;
58
+
59
+ const layoutType =
60
+ layoutRaw && "type" in layoutRaw && typeof layoutRaw.type === "string"
61
+ ? layoutRaw.type
62
+ : "stack";
63
+
64
+ const layoutGap =
65
+ layoutRaw && "gap" in layoutRaw && typeof layoutRaw.gap === "string"
66
+ ? layoutRaw.gap
67
+ : "4";
68
+
69
+ const layoutColumns =
70
+ layoutRaw && "columns" in layoutRaw && typeof layoutRaw.columns === "number"
71
+ ? layoutRaw.columns
72
+ : undefined;
73
+
74
+ return {
75
+ type:
76
+ layoutType === "grid" || layoutType === "flex" || layoutType === "stack"
77
+ ? layoutType
78
+ : "stack",
79
+ gap: layoutGap,
80
+ columns: layoutColumns,
81
+ };
82
+ }
83
+
84
+ /**
85
+ * Get layout class name from layout config
86
+ * Used by: ContainerWidget
87
+ */
88
+ export function getLayoutClassName(config: LayoutConfig): string {
89
+ const { type, gap, columns } = config;
90
+
91
+ // JIT-safe gap classes mapping
92
+ const gapClassMap: Record<string, string> = {
93
+ "0": "gap-0",
94
+ "1": "gap-1",
95
+ "2": "gap-2",
96
+ "3": "gap-3",
97
+ "4": "gap-4",
98
+ "5": "gap-5",
99
+ "6": "gap-6",
100
+ "7": "gap-7",
101
+ "8": "gap-8",
102
+ "9": "gap-9",
103
+ "10": "gap-10",
104
+ "11": "gap-11",
105
+ "12": "gap-12",
106
+ };
107
+
108
+ // JIT-safe grid-cols classes mapping
109
+ const gridColsMap: Record<number, string> = {
110
+ 1: "grid-cols-1",
111
+ 2: "grid-cols-2",
112
+ 3: "grid-cols-3",
113
+ 4: "grid-cols-4",
114
+ 5: "grid-cols-5",
115
+ 6: "grid-cols-6",
116
+ 7: "grid-cols-7",
117
+ 8: "grid-cols-8",
118
+ 9: "grid-cols-9",
119
+ 10: "grid-cols-10",
120
+ 11: "grid-cols-11",
121
+ 12: "grid-cols-12",
122
+ };
123
+
124
+ const gapClass = gapClassMap[gap] ?? "gap-4";
125
+
126
+ switch (type) {
127
+ case "grid": {
128
+ const gridColsClass = columns
129
+ ? (gridColsMap[columns] ?? "grid-cols-1")
130
+ : "grid-cols-1";
131
+ return `grid ${gapClass} ${gridColsClass}`;
132
+ }
133
+ case "flex":
134
+ return `flex items-center ${gapClass}`;
135
+ case "stack":
136
+ default:
137
+ return `flex flex-col ${gapClass}`;
138
+ }
139
+ }
140
+
141
+ /**
142
+ * Get grid class name based on column count
143
+ * Used by: DataCardsWidget, LinkListWidget
144
+ */
145
+ export function getGridClassName(columns: 1 | 2 | 3 | 4): string {
146
+ const gridClassMap: Record<number, string> = {
147
+ 1: "grid-cols-1",
148
+ 2: "grid-cols-1 md:grid-cols-2",
149
+ 3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
150
+ 4: "grid-cols-1 md:grid-cols-2 lg:grid-cols-4",
151
+ };
152
+
153
+ return gridClassMap[columns] ?? "grid-cols-1";
154
+ }
155
+
156
+ /**
157
+ * Check if URL is external (starts with http:// or https://)
158
+ * Used by: LinkWidget, LinkCardWidget
159
+ */
160
+ export function isExternalUrl(url: string): boolean {
161
+ return url.startsWith("http://") || url.startsWith("https://");
162
+ }
163
+
164
+ /**
165
+ * Extract additional LinkCard properties not in shared logic
166
+ * Used by: LinkCardWidget
167
+ */
168
+ export interface LinkCardExtras {
169
+ snippet?: string;
170
+ age?: string;
171
+ source?: string;
172
+ thumbnail?: string;
173
+ openInNewTab: boolean;
174
+ }
175
+
176
+ export function extractLinkCardExtras(value: WidgetData): LinkCardExtras {
177
+ const isObject =
178
+ typeof value === "object" && value !== null && !Array.isArray(value);
179
+
180
+ if (!isObject) {
181
+ return { openInNewTab: true };
182
+ }
183
+
184
+ return {
185
+ snippet:
186
+ "snippet" in value && typeof value.snippet === "string"
187
+ ? value.snippet
188
+ : undefined,
189
+ age:
190
+ "age" in value && typeof value.age === "string" ? value.age : undefined,
191
+ source:
192
+ "source" in value && typeof value.source === "string"
193
+ ? value.source
194
+ : undefined,
195
+ thumbnail:
196
+ "thumbnail" in value && typeof value.thumbnail === "string"
197
+ ? value.thumbnail
198
+ : undefined,
199
+ openInNewTab:
200
+ "openInNewTab" in value && typeof value.openInNewTab === "boolean"
201
+ ? value.openInNewTab
202
+ : true,
203
+ };
204
+ }
205
+
206
+ /**
207
+ * Extract unit from metric value
208
+ * Used by: MetricCardWidget
209
+ */
210
+ export function extractMetricUnit(value: WidgetData): string | undefined {
211
+ const isObject =
212
+ typeof value === "object" && value !== null && !Array.isArray(value);
213
+
214
+ if (!isObject) {
215
+ return undefined;
216
+ }
217
+
218
+ return "unit" in value && typeof value.unit === "string"
219
+ ? value.unit
220
+ : undefined;
221
+ }
222
+
223
+ /**
224
+ * Get trend color class name
225
+ * Used by: MetricCardWidget
226
+ */
227
+ export function getTrendColorClassName(direction?: TrendDirection): string {
228
+ switch (direction) {
229
+ case "up":
230
+ return "text-green-600 dark:text-green-400";
231
+ case "down":
232
+ return "text-red-600 dark:text-red-400";
233
+ case "neutral":
234
+ default:
235
+ return "text-muted-foreground";
236
+ }
237
+ }
238
+
239
+ /**
240
+ * Get severity badge variant
241
+ * Used by: CodeQualityListWidget
242
+ */
243
+ export function getSeverityVariant(severity: SeverityType): BadgeVariant {
244
+ switch (severity) {
245
+ case "error":
246
+ return "destructive";
247
+ case "warning":
248
+ return "default";
249
+ case "info":
250
+ return "secondary";
251
+ }
252
+ }
253
+
254
+ /**
255
+ * Extract column configuration from data table value
256
+ * Used by: DataTableWidget
257
+ */
258
+ export interface ColumnConfig {
259
+ align: "text-left" | "text-center" | "text-right";
260
+ sortable: boolean;
261
+ width?: string | number;
262
+ format?: (value: WidgetData) => WidgetData;
263
+ }
264
+
265
+ export function extractColumnConfig(
266
+ value: WidgetData,
267
+ columnKey: string,
268
+ ): ColumnConfig {
269
+ const defaultConfig: ColumnConfig = {
270
+ align: "text-left",
271
+ sortable: false,
272
+ };
273
+
274
+ if (
275
+ typeof value !== "object" ||
276
+ value === null ||
277
+ Array.isArray(value) ||
278
+ !("columns" in value) ||
279
+ !Array.isArray(value.columns)
280
+ ) {
281
+ return defaultConfig;
282
+ }
283
+
284
+ const rawColumn = value.columns.find(
285
+ (c: WidgetData) =>
286
+ typeof c === "object" && c !== null && "key" in c && c.key === columnKey,
287
+ );
288
+
289
+ if (!rawColumn || typeof rawColumn !== "object" || rawColumn === null) {
290
+ return defaultConfig;
291
+ }
292
+
293
+ const align =
294
+ "align" in rawColumn && typeof rawColumn.align === "string"
295
+ ? (rawColumn.align as "text-left" | "text-center" | "text-right")
296
+ : "text-left";
297
+
298
+ const sortable =
299
+ "sortable" in rawColumn && typeof rawColumn.sortable === "boolean"
300
+ ? rawColumn.sortable
301
+ : false;
302
+
303
+ const width =
304
+ "width" in rawColumn &&
305
+ (typeof rawColumn.width === "string" || typeof rawColumn.width === "number")
306
+ ? rawColumn.width
307
+ : undefined;
308
+
309
+ const format =
310
+ "format" in rawColumn && typeof rawColumn.format === "function"
311
+ ? (rawColumn.format as (value: WidgetData) => WidgetData)
312
+ : undefined;
313
+
314
+ return {
315
+ align,
316
+ sortable,
317
+ width,
318
+ format,
319
+ };
320
+ }
321
+
322
+ /**
323
+ * Sort table rows by column
324
+ * Used by: DataTableWidget
325
+ */
326
+ export function sortTableRows<T extends Record<string, WidgetData>>(
327
+ rows: T[],
328
+ sortBy: string | null,
329
+ sortOrder: "asc" | "desc",
330
+ ): T[] {
331
+ if (!sortBy) {
332
+ return rows;
333
+ }
334
+
335
+ return rows.toSorted((a, b) => {
336
+ const aVal = a[sortBy];
337
+ const bVal = b[sortBy];
338
+
339
+ if (aVal === bVal) {
340
+ return 0;
341
+ }
342
+ if (aVal === null || aVal === undefined) {
343
+ return 1;
344
+ }
345
+ if (bVal === null || bVal === undefined) {
346
+ return -1;
347
+ }
348
+
349
+ const comparison = aVal < bVal ? -1 : 1;
350
+ return sortOrder === "asc" ? comparison : -comparison;
351
+ });
352
+ }
353
+
354
+ /**
355
+ * Extract table sort configuration from value
356
+ * Used by: DataTableWidget
357
+ */
358
+ export interface TableSortConfig {
359
+ sortBy: string | null;
360
+ sortOrder: "asc" | "desc";
361
+ totalRows?: number;
362
+ }
363
+
364
+ export function extractTableSortConfig(value: WidgetData): TableSortConfig {
365
+ const isObject =
366
+ typeof value === "object" && value !== null && !Array.isArray(value);
367
+
368
+ if (!isObject) {
369
+ return { sortBy: null, sortOrder: "asc" };
370
+ }
371
+
372
+ const totalRows =
373
+ "totalRows" in value && typeof value.totalRows === "number"
374
+ ? value.totalRows
375
+ : undefined;
376
+
377
+ const sortBy =
378
+ "sortBy" in value && typeof value.sortBy === "string" ? value.sortBy : null;
379
+
380
+ const sortOrder =
381
+ "sortOrder" in value &&
382
+ (value.sortOrder === "asc" || value.sortOrder === "desc")
383
+ ? value.sortOrder
384
+ : "asc";
385
+
386
+ return {
387
+ totalRows,
388
+ sortBy,
389
+ sortOrder,
390
+ };
391
+ }
392
+
393
+ /**
394
+ * Determine if textarea should be used for text field
395
+ * Used by: TextWidget
396
+ */
397
+ export function isTextareaField(field: {
398
+ ui: { type?: string; fieldType?: string; multiline?: boolean };
399
+ }): boolean {
400
+ return (
401
+ field.ui.type === "FORM_FIELD" &&
402
+ "fieldType" in field.ui &&
403
+ field.ui.fieldType === "TEXT" &&
404
+ "multiline" in field.ui &&
405
+ field.ui.multiline === true
406
+ );
407
+ }
408
+
409
+ /**
410
+ * Get placeholder from field UI config
411
+ * Used by: TextWidget
412
+ */
413
+ export function getFieldPlaceholder(field: {
414
+ ui: { placeholder?: string };
415
+ }): string | undefined {
416
+ return "placeholder" in field.ui && typeof field.ui.placeholder === "string"
417
+ ? field.ui.placeholder
418
+ : undefined;
419
+ }
420
+
421
+ /**
422
+ * Extract field name from field structure
423
+ * Used by: TextWidget
424
+ */
425
+ export function getFieldName(field: { name?: string }): string {
426
+ if ("name" in field && typeof field.name === "string") {
427
+ return field.name;
428
+ }
429
+ return "value";
430
+ }
431
+
432
+ /**
433
+ * Get format class name for text display
434
+ * Used by: TextWidget
435
+ */
436
+ export function getTextFormatClassName(
437
+ format: "code" | "pre" | "normal" | undefined,
438
+ ): string {
439
+ switch (format) {
440
+ case "code":
441
+ return "font-mono text-sm bg-muted px-1 py-0.5 rounded";
442
+ case "pre":
443
+ return "font-mono text-sm whitespace-pre";
444
+ case "normal":
445
+ default:
446
+ return "text-foreground";
447
+ }
448
+ }
449
+
450
+ /**
451
+ * Extract description from container value
452
+ * Used by: ContainerWidget
453
+ */
454
+ export function extractContainerDescription(value: WidgetData): string {
455
+ const isObject =
456
+ typeof value === "object" && value !== null && !Array.isArray(value);
457
+
458
+ if (!isObject) {
459
+ return "";
460
+ }
461
+
462
+ return "description" in value && typeof value.description === "string"
463
+ ? value.description
464
+ : "";
465
+ }
@@ -0,0 +1,16 @@
1
+ import { createEnumOptions } from "@/app/api/[locale]/system/unified-interface/shared/field/enum";
2
+
3
+ /**
4
+ * WebSocket error code enum
5
+ */
6
+ export const {
7
+ enum: WebSocketErrorCode,
8
+ options: WebSocketErrorCodeOptions,
9
+ Value: WebSocketErrorCodeValue,
10
+ } = createEnumOptions({
11
+ UNAUTHORIZED: "app.api.user.auth.enums.webSocketErrorCode.unauthorized",
12
+ FORBIDDEN: "app.api.user.auth.enums.webSocketErrorCode.forbidden",
13
+ INVALID_TOKEN: "app.api.user.auth.enums.webSocketErrorCode.invalidToken",
14
+ TOKEN_EXPIRED: "app.api.user.auth.enums.webSocketErrorCode.tokenExpired",
15
+ SERVER_ERROR: "app.api.user.auth.enums.webSocketErrorCode.serverError",
16
+ });
@@ -0,0 +1,227 @@
1
+ import type { translations as enTranslations } from "../en";
2
+
3
+ export const translations: typeof enTranslations = {
4
+ authClient: {
5
+ errors: {
6
+ status_save_failed:
7
+ "Authentifizierungsstatus konnte nicht gespeichert werden",
8
+ status_remove_failed:
9
+ "Authentifizierungsstatus konnte nicht entfernt werden",
10
+ status_check_failed:
11
+ "Authentifizierungsstatus konnte nicht überprüft werden",
12
+ token_save_failed:
13
+ "Authentifizierungstoken konnte nicht gespeichert werden",
14
+ token_get_failed: "Authentifizierungstoken konnte nicht abgerufen werden",
15
+ token_remove_failed:
16
+ "Authentifizierungstoken konnte nicht entfernt werden",
17
+ },
18
+ },
19
+ errors: {
20
+ token_generation_failed:
21
+ "Authentifizierungs-Token konnte nicht generiert werden",
22
+ invalid_session: "Die Sitzung ist ungültig oder abgelaufen",
23
+ missing_request_context: "Request-Kontext fehlt",
24
+ missing_locale: "Locale fehlt in der Anfrage",
25
+ unsupported_platform: "Plattform wird nicht unterstützt",
26
+ session_retrieval_failed: "Sitzung konnte nicht abgerufen werden",
27
+ missing_token: "Authentifizierungs-Token fehlt",
28
+ invalid_token_signature: "Token-Signatur ist ungültig",
29
+ jwt_payload_missing_id: "JWT-Payload fehlt Benutzer-ID",
30
+ cookie_set_failed: "Authentifizierungs-Cookie konnte nicht gesetzt werden",
31
+ cookie_clear_failed:
32
+ "Authentifizierungs-Cookie konnte nicht gelöscht werden",
33
+ publicPayloadNotSupported:
34
+ "Öffentlicher JWT-Payload wird für CLI-Authentifizierung nicht unterstützt",
35
+ jwt_signing_failed: "JWT-Token konnte nicht signiert werden",
36
+ authentication_failed: "Authentifizierung fehlgeschlagen",
37
+ user_not_authenticated: "Benutzer ist nicht authentifiziert",
38
+ publicUserNotAllowed:
39
+ "Öffentlicher Benutzer ist für diesen Endpunkt nicht erlaubt",
40
+ validation_failed: "Validierung fehlgeschlagen",
41
+ failed_to_create_lead: "Lead konnte nicht erstellt werden",
42
+ native: {
43
+ unsupported:
44
+ "Diese Authentifizierungsmethode wird in React Native nicht unterstützt",
45
+ storage_failed:
46
+ "Authentifizierungsdaten konnten nicht gespeichert werden",
47
+ clear_failed: "Authentifizierungsdaten konnten nicht gelöscht werden",
48
+ },
49
+ not_implemented_native:
50
+ "Diese Funktion ist noch nicht für React Native implementiert",
51
+ unknownError:
52
+ "Ein unbekannter Fehler ist während der Authentifizierung aufgetreten",
53
+ },
54
+ post: {
55
+ title: "Titel",
56
+ description: "Endpunkt-Beschreibung",
57
+ form: {
58
+ title: "Konfiguration",
59
+ description: "Parameter konfigurieren",
60
+ },
61
+ response: {
62
+ title: "Antwort",
63
+ description: "Antwortdaten",
64
+ },
65
+ errors: {
66
+ unauthorized: {
67
+ title: "Nicht autorisiert",
68
+ description: "Authentifizierung erforderlich",
69
+ },
70
+ validation: {
71
+ title: "Validierungsfehler",
72
+ description: "Ungültige Anfrageparameter",
73
+ },
74
+ missing_locale: {
75
+ title: "Fehlende Locale",
76
+ description: "Locale-Parameter ist erforderlich",
77
+ },
78
+ server: {
79
+ title: "Serverfehler",
80
+ description: "Interner Serverfehler",
81
+ },
82
+ unknown: {
83
+ title: "Unbekannter Fehler",
84
+ description: "Ein unbekannter Fehler ist aufgetreten",
85
+ },
86
+ network: {
87
+ title: "Netzwerkfehler",
88
+ description: "Netzwerkfehler aufgetreten",
89
+ },
90
+ forbidden: {
91
+ title: "Verboten",
92
+ description: "Zugriff verboten",
93
+ },
94
+ notFound: {
95
+ title: "Nicht gefunden",
96
+ description: "Ressource nicht gefunden",
97
+ },
98
+ conflict: {
99
+ title: "Konflikt",
100
+ description: "Datenkonflikt aufgetreten",
101
+ },
102
+ token_generation_failed: {
103
+ title: "Token-Generierung fehlgeschlagen",
104
+ description: "Authentifizierungstoken konnte nicht generiert werden",
105
+ },
106
+ invalid_session: {
107
+ title: "Ungültige Sitzung",
108
+ description: "Die Sitzung ist ungültig oder abgelaufen",
109
+ },
110
+ missing_request_context: {
111
+ title: "Fehlender Request-Kontext",
112
+ description: "Request-Kontext fehlt",
113
+ },
114
+ unsupported_platform: {
115
+ title: "Nicht unterstützte Plattform",
116
+ description: "Plattform wird nicht unterstützt",
117
+ },
118
+ session_retrieval_failed: {
119
+ title: "Sitzungsabruf fehlgeschlagen",
120
+ description: "Sitzung konnte nicht abgerufen werden",
121
+ },
122
+ missing_token: {
123
+ title: "Fehlender Token",
124
+ description: "Authentifizierungstoken fehlt",
125
+ },
126
+ invalid_token_signature: {
127
+ title: "Ungültige Token-Signatur",
128
+ description: "Token-Signatur ist ungültig",
129
+ },
130
+ jwt_payload_missing_id: {
131
+ title: "JWT-Payload fehlt ID",
132
+ description: "JWT-Payload fehlt Benutzer-ID",
133
+ },
134
+ cookie_set_failed: {
135
+ title: "Cookie-Setzung fehlgeschlagen",
136
+ description: "Authentifizierungs-Cookie konnte nicht gesetzt werden",
137
+ },
138
+ cookie_clear_failed: {
139
+ title: "Cookie-Löschung fehlgeschlagen",
140
+ description: "Authentifizierungs-Cookie konnte nicht gelöscht werden",
141
+ },
142
+ },
143
+ success: {
144
+ title: "Erfolg",
145
+ description: "Vorgang erfolgreich abgeschlossen",
146
+ },
147
+ },
148
+ check: {
149
+ get: {
150
+ title: "Authentifizierung prüfen",
151
+ description: "Aktuellen Authentifizierungsstatus prüfen",
152
+ response: {
153
+ title: "Authentifizierungsstatus",
154
+ description: "Aktueller Authentifizierungszustand",
155
+ authenticated: "Authentifiziert",
156
+ tokenValid: "Token gültig",
157
+ },
158
+ },
159
+ },
160
+ enums: {
161
+ webSocketErrorCode: {
162
+ unauthorized: "Nicht autorisiert",
163
+ forbidden: "Verboten",
164
+ invalidToken: "Ungültiger Token",
165
+ tokenExpired: "Token abgelaufen",
166
+ serverError: "Serverfehler",
167
+ },
168
+ },
169
+ debug: {
170
+ getAuthMinimalUserNext: {
171
+ start: "getAuthMinimalUserNext: Authentifizierung wird zuerst geprüft",
172
+ result: "getAuthMinimalUserNext: getCurrentUserNext Ergebnis",
173
+ authenticated:
174
+ "getAuthMinimalUserNext: Benutzer ist authentifiziert, leadId wird abgerufen",
175
+ returningAuth:
176
+ "getAuthMinimalUserNext: Authentifizierter Benutzer wird zurückgegeben",
177
+ notAuthenticated:
178
+ "getAuthMinimalUserNext: Benutzer nicht authentifiziert, öffentlicher Benutzer wird zurückgegeben",
179
+ },
180
+ signingJwt: "JWT wird signiert",
181
+ jwtSignedSuccessfully: "JWT erfolgreich signiert",
182
+ errorSigningJwt: "Fehler beim Signieren von JWT",
183
+ verifyingJwt: "JWT wird verifiziert",
184
+ invalidTokenPayload: "Ungültige Token-Nutzdaten",
185
+ jwtVerifiedSuccessfully: "JWT erfolgreich verifiziert",
186
+ errorVerifyingJwt: "Fehler beim Verifizieren von JWT",
187
+ userIdNotExistsInDb: "Benutzer-ID existiert nicht in der Datenbank",
188
+ sessionNotFound: "Sitzung nicht gefunden",
189
+ sessionExpired: "Sitzung abgelaufen",
190
+ errorValidatingUserSession: "Fehler beim Validieren der Benutzersitzung",
191
+ errorGettingUserRoles: "Fehler beim Abrufen der Benutzerrollen",
192
+ errorCheckingUserAuth: "Fehler beim Prüfen der Benutzerauthentifizierung",
193
+ gettingCurrentUserFromTrpc: "Aktueller Benutzer wird von tRPC abgerufen",
194
+ errorGettingAuthUserForTrpc:
195
+ "Fehler beim Abrufen des Auth-Benutzers für tRPC",
196
+ errorGettingUserRolesForTrpc:
197
+ "Fehler beim Abrufen der Benutzerrollen für tRPC",
198
+ authenticatingCliUserWithPayload:
199
+ "CLI-Benutzer wird mit Nutzdaten authentifiziert",
200
+ errorAuthenticatingCliUserWithPayload:
201
+ "Fehler beim Authentifizieren des CLI-Benutzers mit Nutzdaten",
202
+ creatingCliToken: "CLI-Token wird erstellt",
203
+ errorCreatingCliToken: "Fehler beim Erstellen des CLI-Tokens",
204
+ validatingCliToken: "CLI-Token wird validiert",
205
+ errorValidatingCliToken: "Fehler beim Validieren des CLI-Tokens",
206
+ gettingCurrentUserFromNextjs:
207
+ "Aktueller Benutzer wird von Next.js abgerufen",
208
+ errorGettingAuthUserForNextjs:
209
+ "Fehler beim Abrufen des Auth-Benutzers für Next.js",
210
+ settingNextjsAuthCookies: "Next.js Auth-Cookies werden gesetzt",
211
+ clearingNextjsAuthCookies: "Next.js Auth-Cookies werden gelöscht",
212
+ gettingCurrentUserFromToken: "Aktueller Benutzer wird von Token abgerufen",
213
+ errorGettingCurrentUserFromCli:
214
+ "Fehler beim Abrufen des aktuellen Benutzers von CLI",
215
+ errorGettingAuthUserForCli:
216
+ "Fehler beim Abrufen des Auth-Benutzers für CLI",
217
+ errorGettingUserRolesForCli:
218
+ "Fehler beim Abrufen der Benutzerrollen für CLI",
219
+ tokenFromAuthHeader: "Token aus Auth-Header",
220
+ tokenFromCookie: "Token aus Cookie",
221
+ noTokenFound: "Kein Token gefunden",
222
+ errorExtractingToken: "Fehler beim Extrahieren des Tokens",
223
+ errorParsingCookies: "Fehler beim Parsen der Cookies",
224
+ errorGettingCurrentUserFromTrpc:
225
+ "Fehler beim Abrufen des aktuellen Benutzers von tRPC",
226
+ },
227
+ };