@next-vibe/checker 1.0.52 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/LICENSE +669 -5
  2. package/README.md +179 -200
  3. package/check.config.ts +85 -16
  4. package/generated/alias-map.ts +30 -0
  5. package/generated/endpoint.ts +75 -0
  6. package/{src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts → oxlint-plugins/i18n.ts} +45 -9
  7. package/{src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts → oxlint-plugins/jsx-capitalization.ts} +84 -17
  8. package/{src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts → oxlint-plugins/restricted-syntax.ts} +40 -14
  9. package/package.json +28 -132
  10. package/.dist/LICENSE +0 -674
  11. package/.dist/README.md +0 -257
  12. package/.dist/bin/vibe-runtime.js +0 -58166
  13. package/.dist/bin/vibe-runtime.js.map +0 -451
  14. package/.dist/oxlint-plugins/i18n.js +0 -381
  15. package/.dist/oxlint-plugins/jsx-capitalization.js +0 -436
  16. package/.dist/oxlint-plugins/restricted-syntax.js +0 -409
  17. package/src/app/api/[locale]/LICENSE +0 -674
  18. package/src/app/api/[locale]/i18n/de/index.ts +0 -15
  19. package/src/app/api/[locale]/i18n/en/index.ts +0 -14
  20. package/src/app/api/[locale]/i18n/pl/index.ts +0 -13
  21. package/src/app/api/[locale]/shared/i18n/de/index.ts +0 -85
  22. package/src/app/api/[locale]/shared/i18n/en/index.ts +0 -83
  23. package/src/app/api/[locale]/shared/i18n/pl/index.ts +0 -85
  24. package/src/app/api/[locale]/shared/stats-filtering.ts +0 -174
  25. package/src/app/api/[locale]/shared/types/common.schema.ts +0 -55
  26. package/src/app/api/[locale]/shared/types/response.schema.ts +0 -411
  27. package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +0 -315
  28. package/src/app/api/[locale]/shared/types/utils.ts +0 -187
  29. package/src/app/api/[locale]/shared/utils/base64.ts +0 -46
  30. package/src/app/api/[locale]/shared/utils/env-util.ts +0 -36
  31. package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +0 -21
  32. package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +0 -19
  33. package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +0 -21
  34. package/src/app/api/[locale]/shared/utils/index.ts +0 -11
  35. package/src/app/api/[locale]/shared/utils/object-path.ts +0 -41
  36. package/src/app/api/[locale]/shared/utils/object.test.ts +0 -82
  37. package/src/app/api/[locale]/shared/utils/object.ts +0 -73
  38. package/src/app/api/[locale]/shared/utils/parse-error.ts +0 -134
  39. package/src/app/api/[locale]/shared/utils/parse-json.ts +0 -62
  40. package/src/app/api/[locale]/shared/utils/time.ts +0 -46
  41. package/src/app/api/[locale]/shared/utils/validation.ts +0 -117
  42. package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +0 -115
  43. package/src/app/api/[locale]/system/builder/definition.ts +0 -1750
  44. package/src/app/api/[locale]/system/builder/enum.ts +0 -78
  45. package/src/app/api/[locale]/system/builder/i18n/de/index.ts +0 -645
  46. package/src/app/api/[locale]/system/builder/i18n/en/index.ts +0 -653
  47. package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +0 -643
  48. package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +0 -178
  49. package/src/app/api/[locale]/system/builder/repository/build-executor.ts +0 -538
  50. package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +0 -250
  51. package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +0 -170
  52. package/src/app/api/[locale]/system/builder/repository/config-loader.ts +0 -146
  53. package/src/app/api/[locale]/system/builder/repository/config-validator.ts +0 -97
  54. package/src/app/api/[locale]/system/builder/repository/constants.ts +0 -125
  55. package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +0 -67
  56. package/src/app/api/[locale]/system/builder/repository/file-copier.ts +0 -90
  57. package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +0 -75
  58. package/src/app/api/[locale]/system/builder/repository/index.ts +0 -2
  59. package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +0 -143
  60. package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +0 -104
  61. package/src/app/api/[locale]/system/builder/repository/profile-service.ts +0 -79
  62. package/src/app/api/[locale]/system/builder/repository/report-generator.ts +0 -109
  63. package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +0 -277
  64. package/src/app/api/[locale]/system/builder/route.ts +0 -21
  65. package/src/app/api/[locale]/system/builder/test-files/file1.ts +0 -2
  66. package/src/app/api/[locale]/system/builder/test-files/file2.tsx +0 -10
  67. package/src/app/api/[locale]/system/builder/test-files/file3.tsx +0 -16
  68. package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +0 -2
  69. package/src/app/api/[locale]/system/builder/test-files/test-config.ts +0 -38
  70. package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +0 -8
  71. package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +0 -24
  72. package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +0 -6
  73. package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +0 -18
  74. package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +0 -7
  75. package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +0 -27
  76. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +0 -19
  77. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +0 -1
  78. package/src/app/api/[locale]/system/builder/test-files/test3.css +0 -1
  79. package/src/app/api/[locale]/system/check/config/create/definition.ts +0 -266
  80. package/src/app/api/[locale]/system/check/config/create/i18n/de/index.ts +0 -151
  81. package/src/app/api/[locale]/system/check/config/create/i18n/en/index.ts +0 -146
  82. package/src/app/api/[locale]/system/check/config/create/i18n/pl/index.ts +0 -148
  83. package/src/app/api/[locale]/system/check/config/create/repository.ts +0 -269
  84. package/src/app/api/[locale]/system/check/config/create/route.ts +0 -21
  85. package/src/app/api/[locale]/system/check/config/repository.ts +0 -846
  86. package/src/app/api/[locale]/system/check/config/shared.ts +0 -364
  87. package/src/app/api/[locale]/system/check/config/types.ts +0 -610
  88. package/src/app/api/[locale]/system/check/config/utils.ts +0 -155
  89. package/src/app/api/[locale]/system/check/i18n/de/index.ts +0 -19
  90. package/src/app/api/[locale]/system/check/i18n/en/index.ts +0 -18
  91. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +0 -19
  92. package/src/app/api/[locale]/system/check/lint/definition.ts +0 -383
  93. package/src/app/api/[locale]/system/check/lint/enum.ts +0 -34
  94. package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +0 -160
  95. package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +0 -158
  96. package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +0 -160
  97. package/src/app/api/[locale]/system/check/lint/repository.ts +0 -844
  98. package/src/app/api/[locale]/system/check/lint/route.ts +0 -21
  99. package/src/app/api/[locale]/system/check/oxlint/README.md +0 -190
  100. package/src/app/api/[locale]/system/check/oxlint/definition.ts +0 -375
  101. package/src/app/api/[locale]/system/check/oxlint/enum.ts +0 -34
  102. package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +0 -166
  103. package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +0 -164
  104. package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +0 -166
  105. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +0 -269
  106. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +0 -74
  107. package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +0 -283
  108. package/src/app/api/[locale]/system/check/oxlint/repository.ts +0 -553
  109. package/src/app/api/[locale]/system/check/oxlint/route.ts +0 -21
  110. package/src/app/api/[locale]/system/check/oxlint/types.ts +0 -191
  111. package/src/app/api/[locale]/system/check/test-project/.vscode/settings.json +0 -48
  112. package/src/app/api/[locale]/system/check/test-project/bun.lock +0 -640
  113. package/src/app/api/[locale]/system/check/test-project/check.config.ts +0 -955
  114. package/src/app/api/[locale]/system/check/test-project/package.json +0 -17
  115. package/src/app/api/[locale]/system/check/test-project/src/constants.ts +0 -6
  116. package/src/app/api/[locale]/system/check/test-project/src/greet.ts +0 -18
  117. package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +0 -107
  118. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +0 -37
  119. package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +0 -135
  120. package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +0 -113
  121. package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +0 -127
  122. package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +0 -92
  123. package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +0 -73
  124. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +0 -95
  125. package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +0 -61
  126. package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +0 -78
  127. package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +0 -27
  128. package/src/app/api/[locale]/system/check/test-project/tsconfig.json +0 -22
  129. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +0 -1
  130. package/src/app/api/[locale]/system/check/typecheck/definition.ts +0 -328
  131. package/src/app/api/[locale]/system/check/typecheck/enum.ts +0 -34
  132. package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +0 -148
  133. package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +0 -145
  134. package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +0 -148
  135. package/src/app/api/[locale]/system/check/typecheck/repository.ts +0 -863
  136. package/src/app/api/[locale]/system/check/typecheck/route.ts +0 -21
  137. package/src/app/api/[locale]/system/check/typecheck/utils.ts +0 -160
  138. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +0 -448
  139. package/src/app/api/[locale]/system/check/vibe-check/enum.ts +0 -63
  140. package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +0 -164
  141. package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +0 -161
  142. package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +0 -163
  143. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +0 -516
  144. package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +0 -1010
  145. package/src/app/api/[locale]/system/check/vibe-check/route.ts +0 -21
  146. package/src/app/api/[locale]/system/generated/endpoint.ts +0 -274
  147. package/src/app/api/[locale]/system/generated/endpoints.ts +0 -138
  148. package/src/app/api/[locale]/system/generated/route-handlers.ts +0 -213
  149. package/src/app/api/[locale]/system/generators/endpoint/definition.ts +0 -167
  150. package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +0 -48
  151. package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +0 -48
  152. package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +0 -50
  153. package/src/app/api/[locale]/system/generators/endpoint/repository.ts +0 -286
  154. package/src/app/api/[locale]/system/generators/endpoint/route.ts +0 -18
  155. package/src/app/api/[locale]/system/generators/endpoints/definition.ts +0 -246
  156. package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +0 -54
  157. package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +0 -52
  158. package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +0 -54
  159. package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +0 -425
  160. package/src/app/api/[locale]/system/generators/endpoints/repository.ts +0 -368
  161. package/src/app/api/[locale]/system/generators/endpoints/route.ts +0 -17
  162. package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +0 -166
  163. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +0 -71
  164. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +0 -69
  165. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +0 -71
  166. package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +0 -279
  167. package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +0 -18
  168. package/src/app/api/[locale]/system/generators/generate-all/definition.ts +0 -327
  169. package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +0 -96
  170. package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +0 -94
  171. package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +0 -96
  172. package/src/app/api/[locale]/system/generators/generate-all/repository.ts +0 -240
  173. package/src/app/api/[locale]/system/generators/generate-all/route.ts +0 -19
  174. package/src/app/api/[locale]/system/generators/i18n/de/index.ts +0 -15
  175. package/src/app/api/[locale]/system/generators/i18n/en/index.ts +0 -14
  176. package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +0 -15
  177. package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +0 -178
  178. package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +0 -48
  179. package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +0 -48
  180. package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +0 -50
  181. package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +0 -267
  182. package/src/app/api/[locale]/system/generators/route-handlers/route.ts +0 -14
  183. package/src/app/api/[locale]/system/generators/shared/utils.ts +0 -215
  184. package/src/app/api/[locale]/system/help/definition.ts +0 -433
  185. package/src/app/api/[locale]/system/help/i18n/de/index.ts +0 -263
  186. package/src/app/api/[locale]/system/help/i18n/en/index.ts +0 -259
  187. package/src/app/api/[locale]/system/help/i18n/pl/index.ts +0 -262
  188. package/src/app/api/[locale]/system/help/interactive/definition.ts +0 -122
  189. package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +0 -21
  190. package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +0 -19
  191. package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +0 -21
  192. package/src/app/api/[locale]/system/help/interactive/repository.ts +0 -1131
  193. package/src/app/api/[locale]/system/help/interactive/route.ts +0 -43
  194. package/src/app/api/[locale]/system/help/list/definition.ts +0 -362
  195. package/src/app/api/[locale]/system/help/list/repository.ts +0 -99
  196. package/src/app/api/[locale]/system/help/list/route.ts +0 -21
  197. package/src/app/api/[locale]/system/help/repository.ts +0 -238
  198. package/src/app/api/[locale]/system/help/route.ts +0 -16
  199. package/src/app/api/[locale]/system/i18n/de/index.ts +0 -67
  200. package/src/app/api/[locale]/system/i18n/en/index.ts +0 -66
  201. package/src/app/api/[locale]/system/i18n/pl/index.ts +0 -67
  202. package/src/app/api/[locale]/system/release-tool/definition.ts +0 -2925
  203. package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +0 -782
  204. package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +0 -779
  205. package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +0 -781
  206. package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +0 -122
  207. package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +0 -205
  208. package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +0 -540
  209. package/src/app/api/[locale]/system/release-tool/repository/config.ts +0 -106
  210. package/src/app/api/[locale]/system/release-tool/repository/constants.ts +0 -406
  211. package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +0 -496
  212. package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +0 -378
  213. package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +0 -96
  214. package/src/app/api/[locale]/system/release-tool/repository/index.ts +0 -1
  215. package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +0 -575
  216. package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +0 -150
  217. package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +0 -241
  218. package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +0 -413
  219. package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +0 -283
  220. package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +0 -1084
  221. package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +0 -132
  222. package/src/app/api/[locale]/system/release-tool/repository/utils.ts +0 -603
  223. package/src/app/api/[locale]/system/release-tool/repository/validation.ts +0 -265
  224. package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +0 -275
  225. package/src/app/api/[locale]/system/release-tool/route.ts +0 -21
  226. package/src/app/api/[locale]/system/unified-interface/README.md +0 -328
  227. package/src/app/api/[locale]/system/unified-interface/cli/README.md +0 -349
  228. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +0 -82
  229. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +0 -120
  230. package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +0 -244
  231. package/src/app/api/[locale]/system/unified-interface/cli/env.ts +0 -24
  232. package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +0 -159
  233. package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +0 -158
  234. package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +0 -159
  235. package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +0 -573
  236. package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +0 -128
  237. package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +0 -155
  238. package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +0 -423
  239. package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +0 -252
  240. package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +0 -901
  241. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +0 -12
  242. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +0 -11
  243. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +0 -12
  244. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +0 -235
  245. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +0 -54
  246. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +0 -52
  247. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +0 -54
  248. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +0 -444
  249. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +0 -25
  250. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +0 -159
  251. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +0 -61
  252. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +0 -59
  253. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +0 -61
  254. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +0 -181
  255. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +0 -22
  256. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +0 -164
  257. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +0 -54
  258. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +0 -52
  259. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +0 -54
  260. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +0 -195
  261. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +0 -24
  262. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +0 -180
  263. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +0 -54
  264. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +0 -52
  265. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +0 -54
  266. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +0 -105
  267. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +0 -22
  268. package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +0 -264
  269. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +0 -246
  270. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +0 -305
  271. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +0 -116
  272. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +0 -67
  273. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +0 -65
  274. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +0 -67
  275. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +0 -70
  276. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +0 -37
  277. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +0 -52
  278. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +0 -285
  279. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +0 -71
  280. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +0 -281
  281. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +0 -83
  282. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +0 -175
  283. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +0 -61
  284. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +0 -518
  285. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +0 -75
  286. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +0 -357
  287. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +0 -93
  288. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +0 -49
  289. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +0 -63
  290. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +0 -667
  291. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +0 -78
  292. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +0 -99
  293. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +0 -54
  294. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +0 -46
  295. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +0 -123
  296. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +0 -269
  297. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +0 -114
  298. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +0 -138
  299. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +0 -59
  300. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +0 -76
  301. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +0 -37
  302. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +0 -403
  303. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +0 -504
  304. package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +0 -39
  305. package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +0 -37
  306. package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +0 -39
  307. package/src/app/api/[locale]/system/unified-interface/mcp/README.md +0 -114
  308. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +0 -136
  309. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +0 -180
  310. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +0 -178
  311. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +0 -180
  312. package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +0 -305
  313. package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +0 -124
  314. package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +0 -44
  315. package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +0 -14
  316. package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +0 -291
  317. package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +0 -155
  318. package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +0 -191
  319. package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +0 -247
  320. package/src/app/api/[locale]/system/unified-interface/react/icons.tsx +0 -346
  321. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +0 -1413
  322. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +0 -525
  323. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +0 -52
  324. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +0 -144
  325. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +0 -262
  326. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +0 -656
  327. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +0 -220
  328. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +0 -313
  329. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +0 -182
  330. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +0 -173
  331. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +0 -58
  332. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +0 -45
  333. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +0 -43
  334. package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +0 -58
  335. package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +0 -107
  336. package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +0 -336
  337. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +0 -385
  338. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +0 -1827
  339. package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +0 -108
  340. package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +0 -288
  341. package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +0 -114
  342. package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +0 -155
  343. package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +0 -85
  344. package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +0 -167
  345. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +0 -82
  346. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +0 -34
  347. package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +0 -1
  348. package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +0 -284
  349. package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +0 -1101
  350. package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +0 -383
  351. package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +0 -34
  352. package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +0 -76
  353. package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +0 -72
  354. package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +0 -27
  355. package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +0 -80
  356. package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +0 -225
  357. package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +0 -251
  358. package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +0 -1060
  359. package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +0 -70
  360. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +0 -75
  361. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +0 -69
  362. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +0 -86
  363. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +0 -283
  364. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +0 -190
  365. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +0 -114
  366. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +0 -71
  367. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +0 -228
  368. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +0 -119
  369. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +0 -367
  370. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +0 -81
  371. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +0 -71
  372. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +0 -79
  373. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +0 -426
  374. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +0 -38
  375. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +0 -112
  376. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +0 -110
  377. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +0 -66
  378. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +0 -79
  379. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +0 -159
  380. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +0 -225
  381. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +0 -85
  382. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +0 -63
  383. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +0 -73
  384. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +0 -96
  385. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +0 -57
  386. package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +0 -236
  387. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +0 -120
  388. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +0 -414
  389. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +0 -37
  390. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +0 -427
  391. package/src/app/api/[locale]/user/auth/i18n/de/index.ts +0 -204
  392. package/src/app/api/[locale]/user/auth/i18n/en/index.ts +0 -199
  393. package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +0 -203
  394. package/src/app/api/[locale]/user/auth/types.ts +0 -45
  395. package/src/app/api/[locale]/user/enum.ts +0 -64
  396. package/src/app/api/[locale]/user/i18n/de/index.ts +0 -75
  397. package/src/app/api/[locale]/user/i18n/en/index.ts +0 -74
  398. package/src/app/api/[locale]/user/i18n/pl/index.ts +0 -75
  399. package/src/app/api/[locale]/user/types.ts +0 -111
  400. package/src/app/api/[locale]/user/user-roles/enum.ts +0 -103
  401. package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +0 -85
  402. package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +0 -83
  403. package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +0 -85
  404. package/src/app/api/[locale]/user/user-roles/types.ts +0 -32
  405. package/src/app/api/i18n/de/index.ts +0 -6
  406. package/src/app/api/i18n/en/index.ts +0 -5
  407. package/src/app/api/i18n/pl/index.ts +0 -5
  408. package/src/app/i18n/de/index.ts +0 -18
  409. package/src/app/i18n/en/index.ts +0 -18
  410. package/src/app/i18n/pl/index.ts +0 -17
  411. package/src/config/constants.ts +0 -8
  412. package/src/config/debug.ts +0 -30
  413. package/src/config/env-client.ts +0 -57
  414. package/src/config/env.ts +0 -56
  415. package/src/config/i18n/de/index.ts +0 -3
  416. package/src/config/i18n/en/index.ts +0 -51
  417. package/src/config/i18n/pl/index.ts +0 -3
  418. package/src/i18n/core/config.ts +0 -225
  419. package/src/i18n/core/language-utils.ts +0 -226
  420. package/src/i18n/core/localization-utils.ts +0 -394
  421. package/src/i18n/core/scoped-translation.ts +0 -104
  422. package/src/i18n/core/shared-component.tsx +0 -28
  423. package/src/i18n/core/shared-translation-utils.ts +0 -97
  424. package/src/i18n/core/shared.ts +0 -44
  425. package/src/i18n/core/static-types.ts +0 -64
  426. package/src/i18n/core/translation-utils.ts +0 -186
  427. package/src/i18n/de/index.ts +0 -8
  428. package/src/i18n/en/index.ts +0 -7
  429. package/src/i18n/index.ts +0 -100
  430. package/src/i18n/pl/index.ts +0 -7
@@ -1,41 +0,0 @@
1
- /**
2
- * Utility functions for safely setting nested object paths
3
- */
4
-
5
- // Interface for objects that can contain nested structures
6
- interface NestedObject<TValue> {
7
- [key: string]: NestedObject<TValue> | TValue;
8
- }
9
-
10
- /**
11
- * Safely sets a value at a nested object path, creating intermediate objects as needed
12
- * @param obj - The target object
13
- * @param path - Array of path segments
14
- * @param value - The value to set
15
- */
16
- export function setNestedPath<TValue, TObject>(
17
- obj: TObject,
18
- path: readonly string[],
19
- value: TValue,
20
- ): void {
21
- let current = obj as NestedObject<TValue>;
22
-
23
- // Create intermediate path segments
24
- for (let i = 0; i < path.length - 1; i++) {
25
- const segment = path[i];
26
- if (!segment) {
27
- continue;
28
- }
29
-
30
- if (!current[segment] || typeof current[segment] !== "object") {
31
- current[segment] = {};
32
- }
33
- current = current[segment] as NestedObject<TValue>;
34
- }
35
-
36
- // Set the final value
37
- const lastSegment = path.at(-1);
38
- if (lastSegment) {
39
- current[lastSegment] = value;
40
- }
41
- }
@@ -1,82 +0,0 @@
1
- /**
2
- * Tests for object utilities to verify type preservation
3
- */
4
-
5
- import { describe, expect, test } from "bun:test";
6
-
7
- import { objectEntries, objectEntriesNumericEnum } from "./object";
8
-
9
- // Test enum definitions to match the ones used in cron stats
10
- enum TestPriority {
11
- LOW = "low",
12
- NORMAL = "normal",
13
- HIGH = "high",
14
- CRITICAL = "critical",
15
- }
16
-
17
- enum TestWeekday {
18
- SUNDAY = 0,
19
- MONDAY = 1,
20
- TUESDAY = 2,
21
- WEDNESDAY = 3,
22
- THURSDAY = 4,
23
- FRIDAY = 5,
24
- SATURDAY = 6,
25
- }
26
-
27
- // Test data structures
28
- const priorityRecord: Partial<Record<TestPriority, number>> = {
29
- [TestPriority.LOW]: 5,
30
- [TestPriority.HIGH]: 10,
31
- // NORMAL and CRITICAL are missing to test partial records
32
- };
33
-
34
- const weekdayRecord: Partial<Record<TestWeekday, number>> = {
35
- [TestWeekday.MONDAY]: 100,
36
- [TestWeekday.FRIDAY]: 80,
37
- // Other days are missing
38
- };
39
-
40
- // Test type preservation
41
- describe("Object utilities type preservation", () => {
42
- test("objectEntries preserves enum types for priority", () => {
43
- const entries = objectEntries(priorityRecord);
44
-
45
- // This should compile without type errors and preserve enum types
46
- entries.forEach(([priority, count]) => {
47
- // priority should be of type TestPriority
48
- // count should be of type number
49
- expect(Object.values(TestPriority)).toContain(priority);
50
- expect(typeof count).toBe("number");
51
- });
52
-
53
- expect(entries.length).toBe(2); // Only LOW and HIGH are defined
54
- });
55
-
56
- test("objectEntriesNumericEnum preserves enum types for weekday", () => {
57
- const entries = objectEntriesNumericEnum(weekdayRecord);
58
-
59
- // This should compile without type errors and preserve enum types
60
- entries.forEach(([weekday, count]) => {
61
- // weekday should be of type TestWeekday (number enum)
62
- // count should be of type number
63
- expect(typeof weekday).toBe("number");
64
- expect(Object.values(TestWeekday)).toContain(weekday);
65
- expect(typeof count).toBe("number");
66
- });
67
-
68
- expect(entries.length).toBe(2); // Only MONDAY and FRIDAY are defined
69
- });
70
-
71
- test("filtered entries only include defined values", () => {
72
- const partialRecord: Partial<Record<TestPriority, number>> = {
73
- [TestPriority.LOW]: 5,
74
- [TestPriority.NORMAL]: undefined, // This should be filtered out
75
- [TestPriority.HIGH]: 10,
76
- };
77
-
78
- const entries = objectEntries(partialRecord);
79
- expect(entries.length).toBe(2); // undefined values should be filtered
80
- expect(entries.every(([, value]) => value !== undefined)).toBe(true);
81
- });
82
- });
@@ -1,73 +0,0 @@
1
- /**
2
- * Object utilities with type preservation
3
- */
4
-
5
- /**
6
- * Type-safe Object.entries that preserves enum and key types
7
- *
8
- * @param obj - The object to get entries from
9
- * @returns Array of [key, value] tuples with preserved types
10
- *
11
- * @example
12
- * ```typescript
13
- * enum Color { RED = "red", BLUE = "blue" }
14
- * const colorCounts: Record<Color, number> = { [Color.RED]: 5, [Color.BLUE]: 3 };
15
- * const entries = objectEntries(colorCounts); // [Color, number][]
16
- * ```
17
- */
18
- export function objectEntries<K extends string | number | symbol, V>(
19
- obj: Record<K, V>,
20
- ): Array<[K, V]>;
21
-
22
- /**
23
- * Type-safe Object.entries for partial records (handles undefined values)
24
- *
25
- * @param obj - The partial object to get entries from
26
- * @returns Array of [key, value] tuples with preserved types, filtered for defined values
27
- */
28
- export function objectEntries<K extends string | number | symbol, V>(
29
- obj: Partial<Record<K, V>>,
30
- ): Array<[K, V]>;
31
-
32
- export function objectEntries<K extends string | number | symbol, V>(
33
- obj: Record<K, V> | Partial<Record<K, V>>,
34
- ): Array<[K, V]> {
35
- return Object.entries(obj).filter(([, value]) => value !== undefined) as Array<[K, V]>;
36
- }
37
-
38
- /**
39
- * Type-safe Object.keys that preserves key types
40
- *
41
- * @param obj - The object to get keys from
42
- * @returns Array of keys with preserved types
43
- */
44
- export function objectKeys<K extends string | number | symbol, V>(
45
- obj: Record<K, V> | Partial<Record<K, V>>,
46
- ): K[] {
47
- return Object.keys(obj) as K[];
48
- }
49
-
50
- /**
51
- * Type-safe Object.values that preserves value types
52
- *
53
- * @param obj - The object to get values from
54
- * @returns Array of values with preserved types
55
- */
56
- export function objectValues<V>(obj: Record<string | number | symbol, V>): V[] {
57
- return Object.values(obj);
58
- }
59
-
60
- /**
61
- * Special handling for enum-based records where keys might be numeric
62
- * This is useful for JSWeekday and other numeric enums
63
- *
64
- * @param obj - The object with potentially numeric enum keys
65
- * @returns Array of [enum, value] tuples with proper enum type conversion
66
- */
67
- export function objectEntriesNumericEnum<E extends number, V>(
68
- obj: Partial<Record<E, V>>,
69
- ): Array<[E, V]> {
70
- return Object.entries(obj)
71
- .filter(([, value]) => value !== undefined)
72
- .map(([key, value]) => [parseInt(key, 10) as E, value as V]);
73
- }
@@ -1,134 +0,0 @@
1
- import type { ErrorResponseType } from "next-vibe/shared/types/response.schema";
2
-
3
- import type { TParams, TranslationKey } from "@/i18n/core/static-types";
4
-
5
- /**
6
- * Custom error class that preserves error type and translation parameters
7
- */
8
- class ApiError extends Error {
9
- errorType?: string;
10
- messageParams?: TParams;
11
- translationKey?: TranslationKey;
12
-
13
- constructor(options: {
14
- errorType: string;
15
- messageParams?: TParams;
16
- translationKey: TranslationKey;
17
- }) {
18
- super(options.translationKey);
19
- this.name = "ApiError" as const;
20
- this.errorType = options.errorType;
21
- this.messageParams = options.messageParams;
22
- this.translationKey = options.translationKey;
23
- }
24
- }
25
-
26
- /**
27
- * Check if an object is an ErrorResponseType
28
- */
29
- export function isErrorResponseType(
30
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Error parsing utility requires 'unknown' to handle any error input type
31
- obj: unknown,
32
- ): obj is ErrorResponseType {
33
- return (
34
- typeof obj === "object" &&
35
- obj !== null &&
36
- "success" in obj &&
37
- obj.success === false &&
38
- "message" in obj &&
39
- "errorType" in obj
40
- );
41
- }
42
-
43
- /**
44
- * Possible error input types for error checking and parsing
45
- */
46
-
47
- /**
48
- * Parse a parseable error into a proper Error object
49
- * Preserves error type and translation parameters if available
50
- *
51
- * @param error - The error to parse
52
- * @returns A proper Error object
53
- */
54
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Error parsing utility requires 'unknown' to handle any error input type
55
- export function parseError(error: unknown): Error {
56
- // Handle standard Error instances
57
- if (error instanceof Error) {
58
- return error;
59
- }
60
-
61
- // Handle ErrorResponseType objects
62
- if (isErrorResponseType(error)) {
63
- return new ApiError({
64
- errorType: error.errorType.errorKey,
65
- messageParams: error.messageParams,
66
- translationKey: error.message,
67
- });
68
- }
69
-
70
- // Handle other objects
71
- if (typeof error === "object" && error !== null) {
72
- // Extract meaningful error info from objects without console.error pollution
73
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Error parsing requires type assertion for object property access
74
- const errorObj = error as Record<string, unknown>;
75
- const errorMessage = errorObj.error || errorObj.message || "An unknown error occurred";
76
- return new Error(String(errorMessage));
77
- }
78
-
79
- // Handle string errors
80
- if (typeof error === "string") {
81
- return new Error(error);
82
- }
83
-
84
- // Handle objects with message property
85
- if (typeof error === "object" && error !== null && "message" in error) {
86
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Error parsing requires type assertion for object property access
87
- const errorObj = error as Record<string, unknown>;
88
- const message = errorObj.message;
89
- if (typeof message === "string") {
90
- return new Error(message);
91
- }
92
- }
93
-
94
- // Handle objects with error property
95
- if (typeof error === "object" && error !== null && "error" in error) {
96
- // eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax -- Error parsing requires type assertion for object property access
97
- const errorObj = error as Record<string, unknown>;
98
- const errorMessage = errorObj.error;
99
- if (typeof errorMessage === "string") {
100
- return new Error(errorMessage);
101
- }
102
- }
103
-
104
- // Handle null/undefined
105
- if (error === null || error === undefined) {
106
- return new Error("errors.noDetails");
107
- }
108
-
109
- // Default case
110
- return new Error("An unknown error occurred");
111
- }
112
-
113
- /**
114
- * Format strings with values using a template pattern
115
- *
116
- * @param strings - The strings to format
117
- * @param values - The values to insert into the strings
118
- * @returns The formatted strings
119
- */
120
- export function format<T extends Record<string, string | number | boolean | null | undefined>>(
121
- strings: string[],
122
- values: T,
123
- ): string[] {
124
- return strings.map((part) =>
125
- // eslint-disable-next-line @typescript-eslint/no-unused-vars -- Required by replace() API
126
- part.replaceAll(/{(\w+)}/g, (match, key: string) => {
127
- const value = values[key];
128
- if (value === null || value === undefined) {
129
- return "";
130
- }
131
- return String(value);
132
- }),
133
- );
134
- }
@@ -1,62 +0,0 @@
1
- import { parse } from "jsonc-parser";
2
- import type { ResponseType } from "next-vibe/shared/types/response.schema";
3
- import { ErrorResponseTypes, fail } from "next-vibe/shared/types/response.schema";
4
-
5
- /**
6
- * JSON Parser with Comment Support
7
- * Handles JSON files with comments (like tsconfig.json)
8
- * Uses jsonc-parser which properly handles comments and trailing commas
9
- */
10
-
11
- export interface JsonWithComments {
12
- [key: string]:
13
- | string
14
- | number
15
- | boolean
16
- | null
17
- | undefined
18
- | JsonWithComments
19
- | JsonWithComments[];
20
- }
21
-
22
- /**
23
- * Parse JSON with support for comments and trailing commas
24
- *
25
- * @param jsonString - JSON string potentially containing comments
26
- * @returns Parsed JSON object or error response
27
- */
28
- export function parseJsonWithComments(jsonString: string): ResponseType<JsonWithComments> {
29
- try {
30
- const result = parse(jsonString);
31
- if (typeof result !== "object" || result === null) {
32
- return fail({
33
- message: "app.api.shared.utils.parseJsonWithComments.errors.invalid_json",
34
- errorType: ErrorResponseTypes.INVALID_FORMAT_ERROR,
35
- });
36
- }
37
- // Type guard: result is an object and matches JsonWithComments structure
38
- return {
39
- success: true,
40
- data: result,
41
- };
42
- } catch (error) {
43
- return fail({
44
- message: "app.api.shared.utils.parseJsonWithComments.errors.invalid_json",
45
- errorType: ErrorResponseTypes.INVALID_FORMAT_ERROR,
46
- messageParams: {
47
- error: error instanceof Error ? error.message : String(error),
48
- },
49
- });
50
- }
51
- }
52
-
53
- /**
54
- * Safely parse JSON with comments, returning null on error
55
- *
56
- * @param jsonString - JSON string potentially containing comments
57
- * @returns Parsed JSON object or null if parsing fails
58
- */
59
- export function tryParseJsonWithComments(jsonString: string): JsonWithComments | null {
60
- const result = parseJsonWithComments(jsonString);
61
- return result.success ? result.data : null;
62
- }
@@ -1,46 +0,0 @@
1
- import { ErrorResponseTypes, fail, type ResponseType, success } from "../types/response.schema";
2
-
3
- /**
4
- * Converts a time string in HH:MM format to seconds since midnight
5
- * @param timeStr - Time string in HH:MM format
6
- * @returns Success response with seconds or error response
7
- */
8
- export function timeToSeconds(timeStr: `${number}:${number}`): ResponseType<number> {
9
- const [hours, minutes] = timeStr.split(":").map(Number);
10
- if (hours === undefined || minutes === undefined) {
11
- return fail({
12
- message: "app.api.shared.utils.time.errors.invalid_time_format.title",
13
- errorType: ErrorResponseTypes.VALIDATION_ERROR,
14
- messageParams: {
15
- inputValue: timeStr,
16
- },
17
- });
18
- }
19
- return success(hours * 3600 + minutes * 60);
20
- }
21
-
22
- export type SimpleTimeFormat = `${number}:${number}`;
23
-
24
- /**
25
- * Converts seconds since midnight to a time string in HH:MM format
26
- * @param seconds - Seconds since midnight
27
- * @returns Success response with time string or error response
28
- */
29
- export function secondsToTime(seconds: number): ResponseType<string> {
30
- if (seconds < 0 || seconds >= 86_400) {
31
- return fail({
32
- message: "app.api.shared.utils.time.errors.invalid_time_range.title",
33
- errorType: ErrorResponseTypes.VALIDATION_ERROR,
34
- messageParams: {
35
- inputValue: seconds,
36
- },
37
- });
38
- }
39
-
40
- const hours = Math.floor(seconds / 3600);
41
- const minutes = Math.floor((seconds % 3600) / 60);
42
-
43
- const timeString = `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
44
-
45
- return success(timeString);
46
- }
@@ -1,117 +0,0 @@
1
- import type { ZodError, ZodIssue } from "zod";
2
- import { z } from "zod";
3
-
4
- import type { EndpointLogger } from "@/app/api/[locale]/system/unified-interface/shared/logger/endpoint";
5
-
6
- import type { ResponseType } from "../types/response.schema";
7
- import { ErrorResponseTypes, fail } from "../types/response.schema";
8
- import { parseError } from "./parse-error";
9
-
10
- /**
11
- * Validate data against a schema
12
- * Accepts any data (from HTTP, user input, etc.) and validates it
13
- * @param data - The data to validate (can be any type from HTTP)
14
- * @param schema - The schema to validate against
15
- * @returns A response with the validated data or error
16
- */
17
- export function validateData<TSchema extends z.ZodType>(
18
- data: Parameters<TSchema["parse"]>[0],
19
- schema: TSchema,
20
- logger: EndpointLogger,
21
- ): ResponseType<z.infer<TSchema>> {
22
- if (isEmptyObjectSchema(schema)) {
23
- return { success: true, data: {} as z.infer<TSchema> };
24
- }
25
- if (isEmptySchema(schema)) {
26
- return { success: true, data: undefined as z.infer<TSchema> };
27
- }
28
- if (isNeverSchema(schema)) {
29
- return { success: true, data: undefined as z.infer<TSchema> };
30
- }
31
-
32
- try {
33
- const result = schema.safeParse(data);
34
-
35
- if (!result.success) {
36
- const formattedErrors = formatZodErrors(result.error);
37
- const errorCount = result.error.issues?.length || 0;
38
- logger.error("Validation error details", undefined, {
39
- errorCount,
40
- errors: result.error.issues?.slice(0, 3).map((e: ZodIssue) => ({
41
- path: e.path.join("."),
42
- message: e.message,
43
- code: e.code,
44
- })),
45
- allErrors: JSON.stringify(result.error.issues),
46
- formattedErrors,
47
- errorType: typeof result.error,
48
- errorConstructor: result.error?.constructor?.name,
49
- hasIssues: "issues" in result.error,
50
- fullError: JSON.stringify(result.error, null, 2),
51
- });
52
- return fail({
53
- message: "app.api.shared.errorTypes.validation_error",
54
- errorType: ErrorResponseTypes.VALIDATION_ERROR,
55
- messageParams: {
56
- error: formattedErrors.join(", "),
57
- errorCount: errorCount,
58
- },
59
- });
60
- }
61
-
62
- // For API responses, don't wrap the response in a success object, return the data directly
63
- return { data: result.data, success: true };
64
- } catch (error) {
65
- const parsedError = parseError(error);
66
- logger.error("Unexpected validation error", parsedError);
67
- return fail({
68
- message: "app.api.shared.errorTypes.validation_error",
69
- errorType: ErrorResponseTypes.VALIDATION_ERROR,
70
- messageParams: { error: parsedError.message },
71
- });
72
- }
73
- }
74
-
75
- /**
76
- * Format Zod errors into a readable format
77
- * @param zodError - The ZodError object to format
78
- * @returns A formatted error string array
79
- */
80
- function formatZodErrors(zodError: ZodError): string[] {
81
- if (!zodError?.issues || !Array.isArray(zodError.issues) || zodError.issues.length === 0) {
82
- return ["error.general.unknown_validation_error"];
83
- }
84
- return zodError.issues.map((err: ZodIssue) => `${err.path.join(".")}: ${err.message}`);
85
- }
86
-
87
- /**
88
- * Check if request schema is an empty object
89
- */
90
- export function isEmptyObjectSchema(schema: z.ZodSchema): boolean {
91
- return schema instanceof z.ZodObject && Object.keys(schema.shape).length === 0;
92
- }
93
-
94
- /**
95
- * Check if schema expects no input (undefined or never)
96
- */
97
- export function isEmptySchema(schema: z.ZodSchema): boolean {
98
- return (
99
- schema instanceof z.ZodUndefined || schema instanceof z.ZodNever || schema instanceof z.ZodVoid
100
- );
101
- }
102
-
103
- /**
104
- * Check if schema expects never type specifically
105
- */
106
- export function isNeverSchema(schema: z.ZodSchema): boolean {
107
- try {
108
- const testResult = schema.safeParse({});
109
- return (
110
- !testResult.success &&
111
- testResult.error?.issues?.[0]?.code === "invalid_type" &&
112
- testResult.error?.issues?.[0]?.expected === "never"
113
- );
114
- } catch {
115
- return false;
116
- }
117
- }
@@ -1,115 +0,0 @@
1
- /**
2
- * Zod Required Fields Utility
3
- *
4
- * Safely extracts required field names from Zod schemas
5
- */
6
-
7
- import { z } from "zod";
8
-
9
- /**
10
- * Safely extracts required field names from a Zod schema
11
- * @param schema - The Zod schema to analyze
12
- * @returns Array of required field names
13
- */
14
- export function safeGetRequiredFields(schema: z.ZodTypeAny): string[] {
15
- try {
16
- // Handle ZodObject schemas
17
- if (schema instanceof z.ZodObject) {
18
- const shape = schema.shape as Record<string, z.ZodTypeAny>;
19
- const requiredFields: string[] = [];
20
-
21
- for (const [key, fieldSchema] of Object.entries(shape)) {
22
- if (isFieldRequired(fieldSchema)) {
23
- requiredFields.push(key);
24
- }
25
- }
26
-
27
- return requiredFields;
28
- }
29
-
30
- // Handle other schema types that might have nested objects
31
-
32
- if (
33
- "typeName" in schema._def &&
34
- schema._def.typeName === "ZodEffects" &&
35
- "schema" in schema._def
36
- ) {
37
- return safeGetRequiredFields(schema._def.schema as z.ZodTypeAny);
38
- }
39
-
40
- if (schema instanceof z.ZodDefault) {
41
- return safeGetRequiredFields(schema._def.innerType as z.ZodTypeAny);
42
- }
43
-
44
- if (schema instanceof z.ZodOptional) {
45
- return []; // Optional schemas have no required fields
46
- }
47
-
48
- if (schema instanceof z.ZodNullable) {
49
- return []; // Nullable schemas have no required fields
50
- }
51
-
52
- // For other schema types, return empty array
53
- return [];
54
- } catch {
55
- // If anything goes wrong, return empty array to be safe
56
- return [];
57
- }
58
- }
59
-
60
- /**
61
- * Checks if a field schema is required (not optional, nullable, or has default)
62
- * @param fieldSchema - The field schema to check
63
- * @returns True if the field is required
64
- */
65
- function isFieldRequired(fieldSchema: z.ZodTypeAny): boolean {
66
- try {
67
- // Check if field is optional
68
- if (fieldSchema instanceof z.ZodOptional) {
69
- return false;
70
- }
71
-
72
- // Check if field is nullable
73
- if (fieldSchema instanceof z.ZodNullable) {
74
- return false;
75
- }
76
-
77
- // Check if field has a default value
78
- if (fieldSchema instanceof z.ZodDefault) {
79
- return false;
80
- }
81
-
82
- // Check if field is wrapped in effects (like transforms)
83
-
84
- if (
85
- "typeName" in fieldSchema._def &&
86
- fieldSchema._def.typeName === "ZodEffects" &&
87
- "schema" in fieldSchema._def
88
- ) {
89
- return isFieldRequired(fieldSchema._def.schema as z.ZodTypeAny);
90
- }
91
-
92
- // For union types, check if undefined/null is allowed
93
- if (fieldSchema instanceof z.ZodUnion) {
94
- const options = fieldSchema._def.options as z.ZodTypeAny[];
95
- const hasUndefined = options.some(
96
- (option: z.ZodTypeAny) => option instanceof z.ZodUndefined || option instanceof z.ZodNull,
97
- );
98
- return !hasUndefined;
99
- }
100
-
101
- // For intersection types, all parts must be satisfied
102
- if (fieldSchema instanceof z.ZodIntersection) {
103
- return (
104
- isFieldRequired(fieldSchema._def.left as z.ZodTypeAny) &&
105
- isFieldRequired(fieldSchema._def.right as z.ZodTypeAny)
106
- );
107
- }
108
-
109
- // By default, assume the field is required
110
- return true;
111
- } catch {
112
- // If anything goes wrong, assume field is not required to be safe
113
- return false;
114
- }
115
- }