@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,2925 +0,0 @@
1
- /**
2
- * Release Tool Endpoint Definition
3
- * Single source of truth for all release tool types and configuration
4
- *
5
- * Supports:
6
- * - Local development releases with interactive prompts
7
- * - CI/CD pipeline releases (GitHub Actions, GitLab CI, etc.)
8
- * - Monorepo and multi-package releases
9
- * - NPM, JSR, and GitHub/GitLab releases
10
- * - Version bumping (semver + prereleases)
11
- * - Changelog generation
12
- * - Asset zipping and uploading
13
- */
14
-
15
- import { z } from "zod";
16
-
17
- import { createEndpoint } from "@/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create";
18
- import {
19
- objectField,
20
- objectOptionalField,
21
- requestDataArrayOptionalField,
22
- requestDataField,
23
- responseArrayOptionalField,
24
- responseField,
25
- } from "@/app/api/[locale]/system/unified-interface/shared/field/utils";
26
- import {
27
- EndpointErrorTypes,
28
- FieldDataType,
29
- LayoutType,
30
- Methods,
31
- WidgetType,
32
- } from "@/app/api/[locale]/system/unified-interface/shared/types/enums";
33
- import { UserRole } from "@/app/api/[locale]/user/user-roles/enum";
34
-
35
- // ============================================================================
36
- // Shared Enums/Schemas (minimal - used only for select options)
37
- // ============================================================================
38
-
39
- /** Package manager options */
40
- const PackageManagerSchema = z.enum(["npm", "yarn", "pnpm", "deno", "bun"]);
41
-
42
- /** Version increment types */
43
- const VersionIncrementSchema = z.enum([
44
- "patch",
45
- "minor",
46
- "major",
47
- "prepatch",
48
- "preminor",
49
- "premajor",
50
- "prerelease",
51
- ]);
52
-
53
- /** NPM access levels */
54
- const NpmAccessSchema = z.enum(["public", "restricted"]);
55
-
56
- /** Webhook notification types */
57
- const WebhookTypeSchema = z.enum(["slack", "discord", "teams", "custom"]);
58
-
59
- /** Changelog presets */
60
- const ChangelogPresetSchema = z.enum([
61
- "conventional-commits",
62
- "angular",
63
- "atom",
64
- "eslint",
65
- "ember",
66
- ]);
67
-
68
- /** CI providers */
69
- const CIProviderSchema = z.enum([
70
- "github",
71
- "gitlab",
72
- "jenkins",
73
- "circleci",
74
- "travis",
75
- "azure",
76
- "bitbucket",
77
- "drone",
78
- "buildkite",
79
- "woodpecker",
80
- "teamcity",
81
- "codeship",
82
- "appveyor",
83
- "codebuild",
84
- "cloudbuild",
85
- "semaphore",
86
- "buddy",
87
- "render",
88
- "vercel",
89
- "netlify",
90
- "unknown",
91
- ]);
92
-
93
- /** Package status */
94
- const PackageStatusSchema = z.enum(["success", "skipped", "failed"]);
95
-
96
- // ============================================================================
97
- // Endpoint Definition
98
- // ============================================================================
99
-
100
- const { POST } = createEndpoint({
101
- method: Methods.POST,
102
- path: ["system", "release-tool"],
103
- title: "app.api.system.releaseTool.title",
104
- description: "app.api.system.releaseTool.description",
105
- category: "app.api.system.releaseTool.category",
106
- tags: ["app.api.system.releaseTool.tags.release"],
107
- icon: "rocket",
108
- allowedRoles: [
109
- UserRole.ADMIN,
110
- UserRole.AI_TOOL_OFF,
111
- UserRole.MCP_OFF,
112
- UserRole.WEB_OFF,
113
- UserRole.CLI_AUTH_BYPASS,
114
- ],
115
- aliases: ["release", "pub", "publish"],
116
-
117
- fields: objectField(
118
- {
119
- type: WidgetType.CONTAINER,
120
- title: "app.api.system.releaseTool.form.title",
121
- description: "app.api.system.releaseTool.form.description",
122
- layoutType: LayoutType.GRID,
123
- columns: 12,
124
- },
125
- { request: "data", response: true },
126
- {
127
- // ========================================================================
128
- // REQUEST FIELDS - Runtime options at root level for CLI access
129
- // ========================================================================
130
-
131
- configPath: requestDataField(
132
- {
133
- type: WidgetType.FORM_FIELD,
134
- fieldType: FieldDataType.TEXT,
135
- label: "app.api.system.releaseTool.fields.configPath.title",
136
- description: "app.api.system.releaseTool.fields.configPath.description",
137
- },
138
- z.string().optional().default("release.config.ts"),
139
- ),
140
-
141
- // ========================================================================
142
- // Runtime options (CLI flags) - at root level for direct CLI access
143
- // ========================================================================
144
- ci: requestDataField(
145
- {
146
- type: WidgetType.FORM_FIELD,
147
- fieldType: FieldDataType.BOOLEAN,
148
- label: "app.api.system.releaseTool.fields.ci.title",
149
- description: "app.api.system.releaseTool.fields.ci.description",
150
- },
151
- z.boolean().optional().default(false),
152
- ),
153
-
154
- dryRun: requestDataField(
155
- {
156
- type: WidgetType.FORM_FIELD,
157
- fieldType: FieldDataType.BOOLEAN,
158
- label: "app.api.system.releaseTool.fields.dryRun.title",
159
- description: "app.api.system.releaseTool.fields.dryRun.description",
160
- },
161
- z.boolean().optional().default(false),
162
- ),
163
-
164
- verbose: requestDataField(
165
- {
166
- type: WidgetType.FORM_FIELD,
167
- fieldType: FieldDataType.BOOLEAN,
168
- label: "app.api.system.releaseTool.fields.verbose.title",
169
- description: "app.api.system.releaseTool.fields.verbose.description",
170
- },
171
- z.boolean().optional().default(false),
172
- ),
173
-
174
- forceUpdate: requestDataField(
175
- {
176
- type: WidgetType.FORM_FIELD,
177
- fieldType: FieldDataType.BOOLEAN,
178
- label: "app.api.system.releaseTool.fields.forceUpdate.title",
179
- description: "app.api.system.releaseTool.fields.forceUpdate.description",
180
- },
181
- z.boolean().optional(), // No default - undefined means "ask user"
182
- ),
183
-
184
- // Skip options
185
- skipLint: requestDataField(
186
- {
187
- type: WidgetType.FORM_FIELD,
188
- fieldType: FieldDataType.BOOLEAN,
189
- label: "app.api.system.releaseTool.fields.skipLint.title",
190
- description: "app.api.system.releaseTool.fields.skipLint.description",
191
- },
192
- z.boolean().optional().default(false),
193
- ),
194
-
195
- skipTypecheck: requestDataField(
196
- {
197
- type: WidgetType.FORM_FIELD,
198
- fieldType: FieldDataType.BOOLEAN,
199
- label: "app.api.system.releaseTool.fields.skipTypecheck.title",
200
- description: "app.api.system.releaseTool.fields.skipTypecheck.description",
201
- },
202
- z.boolean().optional().default(false),
203
- ),
204
-
205
- skipBuild: requestDataField(
206
- {
207
- type: WidgetType.FORM_FIELD,
208
- fieldType: FieldDataType.BOOLEAN,
209
- label: "app.api.system.releaseTool.fields.skipBuild.title",
210
- description: "app.api.system.releaseTool.fields.skipBuild.description",
211
- },
212
- z.boolean().optional().default(false),
213
- ),
214
-
215
- skipTests: requestDataField(
216
- {
217
- type: WidgetType.FORM_FIELD,
218
- fieldType: FieldDataType.BOOLEAN,
219
- label: "app.api.system.releaseTool.fields.skipTests.title",
220
- description: "app.api.system.releaseTool.fields.skipTests.description",
221
- },
222
- z.boolean().optional().default(false),
223
- ),
224
-
225
- skipSnyk: requestDataField(
226
- {
227
- type: WidgetType.FORM_FIELD,
228
- fieldType: FieldDataType.BOOLEAN,
229
- label: "app.api.system.releaseTool.fields.skipSnyk.title",
230
- description: "app.api.system.releaseTool.fields.skipSnyk.description",
231
- },
232
- z.boolean().optional().default(false),
233
- ),
234
-
235
- skipChangelog: requestDataField(
236
- {
237
- type: WidgetType.FORM_FIELD,
238
- fieldType: FieldDataType.BOOLEAN,
239
- label: "app.api.system.releaseTool.fields.skipChangelog.title",
240
- description: "app.api.system.releaseTool.fields.skipChangelog.description",
241
- },
242
- z.boolean().optional().default(false),
243
- ),
244
-
245
- skipGitTag: requestDataField(
246
- {
247
- type: WidgetType.FORM_FIELD,
248
- fieldType: FieldDataType.BOOLEAN,
249
- label: "app.api.system.releaseTool.fields.skipGitTag.title",
250
- description: "app.api.system.releaseTool.fields.skipGitTag.description",
251
- },
252
- z.boolean().optional().default(false),
253
- ),
254
-
255
- skipGitPush: requestDataField(
256
- {
257
- type: WidgetType.FORM_FIELD,
258
- fieldType: FieldDataType.BOOLEAN,
259
- label: "app.api.system.releaseTool.fields.skipGitPush.title",
260
- description: "app.api.system.releaseTool.fields.skipGitPush.description",
261
- },
262
- z.boolean().optional().default(false),
263
- ),
264
-
265
- skipInstall: requestDataField(
266
- {
267
- type: WidgetType.FORM_FIELD,
268
- fieldType: FieldDataType.BOOLEAN,
269
- label: "app.api.system.releaseTool.fields.skipInstall.title",
270
- description: "app.api.system.releaseTool.fields.skipInstall.description",
271
- },
272
- z.boolean().optional().default(false),
273
- ),
274
-
275
- skipClean: requestDataField(
276
- {
277
- type: WidgetType.FORM_FIELD,
278
- fieldType: FieldDataType.BOOLEAN,
279
- label: "app.api.system.releaseTool.fields.skipClean.title",
280
- description: "app.api.system.releaseTool.fields.skipClean.description",
281
- },
282
- z.boolean().optional().default(false),
283
- ),
284
-
285
- // Version options
286
- versionIncrement: requestDataField(
287
- {
288
- type: WidgetType.FORM_FIELD,
289
- fieldType: FieldDataType.SELECT,
290
- label: "app.api.system.releaseTool.fields.versionIncrement.title",
291
- description: "app.api.system.releaseTool.fields.versionIncrement.description",
292
- options: [
293
- {
294
- value: "patch",
295
- label: "app.api.system.releaseTool.enums.versionIncrement.patch",
296
- },
297
- {
298
- value: "minor",
299
- label: "app.api.system.releaseTool.enums.versionIncrement.minor",
300
- },
301
- {
302
- value: "major",
303
- label: "app.api.system.releaseTool.enums.versionIncrement.major",
304
- },
305
- {
306
- value: "prepatch",
307
- label: "app.api.system.releaseTool.enums.versionIncrement.prepatch",
308
- },
309
- {
310
- value: "preminor",
311
- label: "app.api.system.releaseTool.enums.versionIncrement.preminor",
312
- },
313
- {
314
- value: "premajor",
315
- label: "app.api.system.releaseTool.enums.versionIncrement.premajor",
316
- },
317
- {
318
- value: "prerelease",
319
- label: "app.api.system.releaseTool.enums.versionIncrement.prerelease",
320
- },
321
- ],
322
- optional: true,
323
- },
324
- VersionIncrementSchema.optional(),
325
- ),
326
-
327
- prereleaseId: requestDataField(
328
- {
329
- type: WidgetType.FORM_FIELD,
330
- fieldType: FieldDataType.TEXT,
331
- label: "app.api.system.releaseTool.fields.prereleaseId.title",
332
- description: "app.api.system.releaseTool.fields.prereleaseId.description",
333
- optional: true,
334
- },
335
- z.string().optional(),
336
- ),
337
-
338
- targetPackage: requestDataField(
339
- {
340
- type: WidgetType.FORM_FIELD,
341
- fieldType: FieldDataType.TEXT,
342
- label: "app.api.system.releaseTool.fields.targetPackage.title",
343
- description: "app.api.system.releaseTool.fields.targetPackage.description",
344
- optional: true,
345
- },
346
- z.string().optional(),
347
- ),
348
-
349
- commitMessage: requestDataField(
350
- {
351
- type: WidgetType.FORM_FIELD,
352
- fieldType: FieldDataType.TEXT,
353
- label: "app.api.system.releaseTool.fields.commitMessage.title",
354
- description: "app.api.system.releaseTool.fields.commitMessage.description",
355
- optional: true,
356
- },
357
- z.string().optional(),
358
- ),
359
-
360
- // ========================================================================
361
- // CONFIG OBJECT - Contains release configuration (not runtime flags)
362
- // ========================================================================
363
- configObject: objectOptionalField(
364
- {
365
- type: WidgetType.CONTAINER,
366
- title: "app.api.system.releaseTool.fields.configObject.title",
367
- description: "app.api.system.releaseTool.fields.configObject.description",
368
- layoutType: LayoutType.GRID,
369
- columns: 12,
370
- optional: true,
371
- },
372
- { request: "data" },
373
- {
374
- packageManager: requestDataField(
375
- {
376
- type: WidgetType.FORM_FIELD,
377
- fieldType: FieldDataType.SELECT,
378
- label: "app.api.system.releaseTool.fields.packageManager.title",
379
- description: "app.api.system.releaseTool.fields.packageManager.description",
380
- options: [
381
- {
382
- value: "bun",
383
- label: "app.api.system.releaseTool.enums.packageManager.bun",
384
- },
385
- {
386
- value: "npm",
387
- label: "app.api.system.releaseTool.enums.packageManager.npm",
388
- },
389
- {
390
- value: "yarn",
391
- label: "app.api.system.releaseTool.enums.packageManager.yarn",
392
- },
393
- {
394
- value: "pnpm",
395
- label: "app.api.system.releaseTool.enums.packageManager.pnpm",
396
- },
397
- {
398
- value: "deno",
399
- label: "app.api.system.releaseTool.enums.packageManager.deno",
400
- },
401
- ],
402
- },
403
- PackageManagerSchema.optional().default("bun"),
404
- ),
405
-
406
- globalVersion: requestDataField(
407
- {
408
- type: WidgetType.FORM_FIELD,
409
- fieldType: FieldDataType.TEXT,
410
- label: "app.api.system.releaseTool.fields.globalVersion.title",
411
- description: "app.api.system.releaseTool.fields.globalVersion.description",
412
- optional: true,
413
- },
414
- z.string().optional(),
415
- ),
416
-
417
- parallel: requestDataField(
418
- {
419
- type: WidgetType.FORM_FIELD,
420
- fieldType: FieldDataType.BOOLEAN,
421
- label: "app.api.system.releaseTool.fields.parallel.title",
422
- description: "app.api.system.releaseTool.fields.parallel.description",
423
- optional: true,
424
- },
425
- z.boolean().optional(),
426
- ),
427
-
428
- maxParallelJobs: requestDataField(
429
- {
430
- type: WidgetType.FORM_FIELD,
431
- fieldType: FieldDataType.NUMBER,
432
- label: "app.api.system.releaseTool.fields.maxParallelJobs.title",
433
- description: "app.api.system.releaseTool.fields.maxParallelJobs.description",
434
- optional: true,
435
- },
436
- z.coerce.number().optional(),
437
- ),
438
-
439
- continueOnError: requestDataField(
440
- {
441
- type: WidgetType.FORM_FIELD,
442
- fieldType: FieldDataType.BOOLEAN,
443
- label: "app.api.system.releaseTool.fields.continueOnError.title",
444
- description: "app.api.system.releaseTool.fields.continueOnError.description",
445
- optional: true,
446
- },
447
- z.boolean().optional(),
448
- ),
449
-
450
- verifyGitStatus: requestDataField(
451
- {
452
- type: WidgetType.FORM_FIELD,
453
- fieldType: FieldDataType.BOOLEAN,
454
- label: "app.api.system.releaseTool.fields.verifyGitStatus.title",
455
- description: "app.api.system.releaseTool.fields.verifyGitStatus.description",
456
- optional: true,
457
- },
458
- z.boolean().optional(),
459
- ),
460
-
461
- requireCleanWorkingDir: requestDataField(
462
- {
463
- type: WidgetType.FORM_FIELD,
464
- fieldType: FieldDataType.BOOLEAN,
465
- label: "app.api.system.releaseTool.fields.requireCleanWorkingDir.title",
466
- description: "app.api.system.releaseTool.fields.requireCleanWorkingDir.description",
467
- optional: true,
468
- },
469
- z.boolean().optional(),
470
- ),
471
-
472
- verifyLockfile: requestDataField(
473
- {
474
- type: WidgetType.FORM_FIELD,
475
- fieldType: FieldDataType.BOOLEAN,
476
- label: "app.api.system.releaseTool.fields.verifyLockfile.title",
477
- description: "app.api.system.releaseTool.fields.verifyLockfile.description",
478
- optional: true,
479
- },
480
- z.boolean().optional(),
481
- ),
482
-
483
- // Branch configuration
484
- branch: objectOptionalField(
485
- {
486
- type: WidgetType.CONTAINER,
487
- title: "app.api.system.releaseTool.fields.branch.title",
488
- description: "app.api.system.releaseTool.fields.branch.description",
489
- layoutType: LayoutType.GRID,
490
- columns: 12,
491
- optional: true,
492
- },
493
- { request: "data" },
494
- {
495
- main: requestDataField(
496
- {
497
- type: WidgetType.FORM_FIELD,
498
- fieldType: FieldDataType.TEXT,
499
- label: "app.api.system.releaseTool.fields.branchMain.title",
500
- },
501
- z.string().optional().default("main"),
502
- ),
503
- develop: requestDataField(
504
- {
505
- type: WidgetType.FORM_FIELD,
506
- fieldType: FieldDataType.TEXT,
507
- label: "app.api.system.releaseTool.fields.branchDevelop.title",
508
- optional: true,
509
- },
510
- z.string().optional(),
511
- ),
512
- allowNonMain: requestDataField(
513
- {
514
- type: WidgetType.FORM_FIELD,
515
- fieldType: FieldDataType.BOOLEAN,
516
- label: "app.api.system.releaseTool.fields.allowNonMain.title",
517
- },
518
- z.boolean().optional().default(false),
519
- ),
520
- protected: requestDataField(
521
- {
522
- type: WidgetType.FORM_FIELD,
523
- fieldType: FieldDataType.TEXT,
524
- label: "app.api.system.releaseTool.fields.protectedBranches.title",
525
- optional: true,
526
- },
527
- z.array(z.string()).optional(),
528
- ),
529
- },
530
- ),
531
-
532
- // Notifications configuration
533
- notifications: objectOptionalField(
534
- {
535
- type: WidgetType.CONTAINER,
536
- title: "app.api.system.releaseTool.fields.notifications.title",
537
- description: "app.api.system.releaseTool.fields.notifications.description",
538
- layoutType: LayoutType.GRID,
539
- columns: 12,
540
- optional: true,
541
- },
542
- { request: "data" },
543
- {
544
- enabled: requestDataField(
545
- {
546
- type: WidgetType.FORM_FIELD,
547
- fieldType: FieldDataType.BOOLEAN,
548
- label: "app.api.system.releaseTool.fields.notificationsEnabled.title",
549
- },
550
- z.boolean().optional().default(false),
551
- ),
552
- webhookUrl: requestDataField(
553
- {
554
- type: WidgetType.FORM_FIELD,
555
- fieldType: FieldDataType.TEXT,
556
- label: "app.api.system.releaseTool.fields.webhookUrl.title",
557
- optional: true,
558
- },
559
- z.string().optional(),
560
- ),
561
- type: requestDataField(
562
- {
563
- type: WidgetType.FORM_FIELD,
564
- fieldType: FieldDataType.SELECT,
565
- label: "app.api.system.releaseTool.fields.webhookType.title",
566
- options: [
567
- {
568
- value: "slack",
569
- label: "app.api.system.releaseTool.enums.webhookType.slack",
570
- },
571
- {
572
- value: "discord",
573
- label: "app.api.system.releaseTool.enums.webhookType.discord",
574
- },
575
- {
576
- value: "teams",
577
- label: "app.api.system.releaseTool.enums.webhookType.teams",
578
- },
579
- {
580
- value: "custom",
581
- label: "app.api.system.releaseTool.enums.webhookType.custom",
582
- },
583
- ],
584
- optional: true,
585
- },
586
- WebhookTypeSchema.optional(),
587
- ),
588
- onSuccess: requestDataField(
589
- {
590
- type: WidgetType.FORM_FIELD,
591
- fieldType: FieldDataType.BOOLEAN,
592
- label: "app.api.system.releaseTool.fields.onSuccess.title",
593
- },
594
- z.boolean().optional().default(true),
595
- ),
596
- onFailure: requestDataField(
597
- {
598
- type: WidgetType.FORM_FIELD,
599
- fieldType: FieldDataType.BOOLEAN,
600
- label: "app.api.system.releaseTool.fields.onFailure.title",
601
- },
602
- z.boolean().optional().default(true),
603
- ),
604
- messageTemplate: requestDataField(
605
- {
606
- type: WidgetType.FORM_FIELD,
607
- fieldType: FieldDataType.TEXT,
608
- label: "app.api.system.releaseTool.fields.messageTemplate.title",
609
- optional: true,
610
- },
611
- z.string().optional(),
612
- ),
613
- includeTimings: requestDataField(
614
- {
615
- type: WidgetType.FORM_FIELD,
616
- fieldType: FieldDataType.BOOLEAN,
617
- label: "app.api.system.releaseTool.fields.includeTimings.title",
618
- optional: true,
619
- },
620
- z.boolean().optional(),
621
- ),
622
- },
623
- ),
624
-
625
- // Retry configuration
626
- retry: objectOptionalField(
627
- {
628
- type: WidgetType.CONTAINER,
629
- title: "app.api.system.releaseTool.fields.retry.title",
630
- description: "app.api.system.releaseTool.fields.retry.description",
631
- layoutType: LayoutType.GRID,
632
- columns: 12,
633
- optional: true,
634
- },
635
- { request: "data" },
636
- {
637
- maxAttempts: requestDataField(
638
- {
639
- type: WidgetType.FORM_FIELD,
640
- fieldType: FieldDataType.NUMBER,
641
- label: "app.api.system.releaseTool.fields.maxAttempts.title",
642
- },
643
- z.coerce.number().optional().default(3),
644
- ),
645
- delayMs: requestDataField(
646
- {
647
- type: WidgetType.FORM_FIELD,
648
- fieldType: FieldDataType.NUMBER,
649
- label: "app.api.system.releaseTool.fields.delayMs.title",
650
- },
651
- z.coerce.number().optional().default(1000),
652
- ),
653
- backoffMultiplier: requestDataField(
654
- {
655
- type: WidgetType.FORM_FIELD,
656
- fieldType: FieldDataType.NUMBER,
657
- label: "app.api.system.releaseTool.fields.backoffMultiplier.title",
658
- },
659
- z.coerce.number().optional().default(2),
660
- ),
661
- maxDelayMs: requestDataField(
662
- {
663
- type: WidgetType.FORM_FIELD,
664
- fieldType: FieldDataType.NUMBER,
665
- label: "app.api.system.releaseTool.fields.maxDelayMs.title",
666
- },
667
- z.coerce.number().optional().default(30000),
668
- ),
669
- },
670
- ),
671
-
672
- // Rollback configuration
673
- rollback: objectOptionalField(
674
- {
675
- type: WidgetType.CONTAINER,
676
- title: "app.api.system.releaseTool.fields.rollback.title",
677
- description: "app.api.system.releaseTool.fields.rollback.description",
678
- layoutType: LayoutType.GRID,
679
- columns: 12,
680
- optional: true,
681
- },
682
- { request: "data" },
683
- {
684
- enabled: requestDataField(
685
- {
686
- type: WidgetType.FORM_FIELD,
687
- fieldType: FieldDataType.BOOLEAN,
688
- label: "app.api.system.releaseTool.fields.rollbackEnabled.title",
689
- },
690
- z.boolean().optional().default(false),
691
- ),
692
- git: requestDataField(
693
- {
694
- type: WidgetType.FORM_FIELD,
695
- fieldType: FieldDataType.BOOLEAN,
696
- label: "app.api.system.releaseTool.fields.rollbackGit.title",
697
- },
698
- z.boolean().optional().default(true),
699
- ),
700
- version: requestDataField(
701
- {
702
- type: WidgetType.FORM_FIELD,
703
- fieldType: FieldDataType.BOOLEAN,
704
- label: "app.api.system.releaseTool.fields.rollbackVersion.title",
705
- },
706
- z.boolean().optional().default(true),
707
- ),
708
- },
709
- ),
710
-
711
- // Packages array
712
- packages: requestDataArrayOptionalField(
713
- {
714
- type: WidgetType.CONTAINER,
715
- title: "app.api.system.releaseTool.fields.packages.title",
716
- description: "app.api.system.releaseTool.fields.packages.description",
717
- layoutType: LayoutType.GRID,
718
- columns: 12,
719
- optional: true,
720
- },
721
- objectField(
722
- {
723
- type: WidgetType.CONTAINER,
724
- title: "app.api.system.releaseTool.fields.package.title",
725
- layoutType: LayoutType.GRID,
726
- columns: 12,
727
- },
728
- { request: "data" },
729
- {
730
- directory: requestDataField(
731
- {
732
- type: WidgetType.FORM_FIELD,
733
- fieldType: FieldDataType.TEXT,
734
- label: "app.api.system.releaseTool.fields.directory.title",
735
- },
736
- z.string(),
737
- ),
738
- name: requestDataField(
739
- {
740
- type: WidgetType.FORM_FIELD,
741
- fieldType: FieldDataType.TEXT,
742
- label: "app.api.system.releaseTool.fields.name.title",
743
- optional: true,
744
- },
745
- z.string().optional(),
746
- ),
747
- updateDeps: requestDataField(
748
- {
749
- type: WidgetType.FORM_FIELD,
750
- fieldType: FieldDataType.TEXT,
751
- label: "app.api.system.releaseTool.fields.updateDeps.title",
752
- description: "app.api.system.releaseTool.fields.updateDeps.description",
753
- },
754
- z
755
- .union([z.boolean(), z.literal("force")])
756
- .optional()
757
- .default(false),
758
- ),
759
- clean: requestDataField(
760
- {
761
- type: WidgetType.FORM_FIELD,
762
- fieldType: FieldDataType.TEXT,
763
- label: "app.api.system.releaseTool.fields.clean.title",
764
- description: "app.api.system.releaseTool.fields.clean.description",
765
- optional: true,
766
- },
767
- z.union([z.boolean(), z.string()]).optional(),
768
- ),
769
- lint: requestDataField(
770
- {
771
- type: WidgetType.FORM_FIELD,
772
- fieldType: FieldDataType.TEXT,
773
- label: "app.api.system.releaseTool.fields.lint.title",
774
- description: "app.api.system.releaseTool.fields.lint.description",
775
- },
776
- z.union([z.boolean(), z.string()]).optional().default(true),
777
- ),
778
- typecheck: requestDataField(
779
- {
780
- type: WidgetType.FORM_FIELD,
781
- fieldType: FieldDataType.TEXT,
782
- label: "app.api.system.releaseTool.fields.typecheck.title",
783
- description: "app.api.system.releaseTool.fields.typecheck.description",
784
- optional: true,
785
- },
786
- z.union([z.boolean(), z.string()]).optional(),
787
- ),
788
- build: requestDataField(
789
- {
790
- type: WidgetType.FORM_FIELD,
791
- fieldType: FieldDataType.TEXT,
792
- label: "app.api.system.releaseTool.fields.build.title",
793
- description: "app.api.system.releaseTool.fields.build.description",
794
- },
795
- z.union([z.boolean(), z.string()]).optional().default(true),
796
- ),
797
- test: requestDataField(
798
- {
799
- type: WidgetType.FORM_FIELD,
800
- fieldType: FieldDataType.TEXT,
801
- label: "app.api.system.releaseTool.fields.test.title",
802
- description: "app.api.system.releaseTool.fields.test.description",
803
- },
804
- z.union([z.boolean(), z.string()]).optional().default(true),
805
- ),
806
- snyk: requestDataField(
807
- {
808
- type: WidgetType.FORM_FIELD,
809
- fieldType: FieldDataType.BOOLEAN,
810
- label: "app.api.system.releaseTool.fields.snyk.title",
811
- optional: true,
812
- },
813
- z.boolean().optional(),
814
- ),
815
- install: requestDataField(
816
- {
817
- type: WidgetType.FORM_FIELD,
818
- fieldType: FieldDataType.TEXT,
819
- label: "app.api.system.releaseTool.fields.install.title",
820
- description: "app.api.system.releaseTool.fields.install.description",
821
- optional: true,
822
- },
823
- z.union([z.boolean(), z.string()]).optional(),
824
- ),
825
-
826
- // Release options (nested)
827
- release: objectOptionalField(
828
- {
829
- type: WidgetType.CONTAINER,
830
- title: "app.api.system.releaseTool.fields.release.title",
831
- layoutType: LayoutType.GRID,
832
- columns: 12,
833
- optional: true,
834
- },
835
- { request: "data" },
836
- {
837
- version: requestDataField(
838
- {
839
- type: WidgetType.FORM_FIELD,
840
- fieldType: FieldDataType.TEXT,
841
- label: "app.api.system.releaseTool.fields.releaseVersion.title",
842
- optional: true,
843
- },
844
- z.string().optional(),
845
- ),
846
- tagPrefix: requestDataField(
847
- {
848
- type: WidgetType.FORM_FIELD,
849
- fieldType: FieldDataType.TEXT,
850
- label: "app.api.system.releaseTool.fields.tagPrefix.title",
851
- },
852
- z.string().optional().default("v"),
853
- ),
854
- tagSuffix: requestDataField(
855
- {
856
- type: WidgetType.FORM_FIELD,
857
- fieldType: FieldDataType.TEXT,
858
- label: "app.api.system.releaseTool.fields.tagSuffix.title",
859
- optional: true,
860
- },
861
- z.string().optional(),
862
- ),
863
- prereleaseId: requestDataField(
864
- {
865
- type: WidgetType.FORM_FIELD,
866
- fieldType: FieldDataType.TEXT,
867
- label: "app.api.system.releaseTool.fields.prereleaseId.title",
868
- optional: true,
869
- },
870
- z.string().optional(),
871
- ),
872
- ciReleaseCommand: objectOptionalField(
873
- {
874
- type: WidgetType.CONTAINER,
875
- title: "app.api.system.releaseTool.fields.ciReleaseCommand.title",
876
- description:
877
- "app.api.system.releaseTool.fields.ciReleaseCommand.description",
878
- layoutType: LayoutType.GRID,
879
- columns: 12,
880
- optional: true,
881
- },
882
- { request: "data" },
883
- {
884
- command: requestDataField(
885
- {
886
- type: WidgetType.FORM_FIELD,
887
- fieldType: FieldDataType.TEXT,
888
- label: "app.api.system.releaseTool.fields.ciCommand.title",
889
- description: "app.api.system.releaseTool.fields.ciCommand.description",
890
- },
891
- z.array(z.string()),
892
- ),
893
- env: requestDataField(
894
- {
895
- type: WidgetType.FORM_FIELD,
896
- fieldType: FieldDataType.TEXT,
897
- label: "app.api.system.releaseTool.fields.ciEnvMapping.title",
898
- description:
899
- "app.api.system.releaseTool.fields.ciEnvMapping.description",
900
- optional: true,
901
- },
902
- z.record(z.string(), z.string()).optional(),
903
- ),
904
- },
905
- ),
906
-
907
- // Git operations
908
- git: objectOptionalField(
909
- {
910
- type: WidgetType.CONTAINER,
911
- title: "app.api.system.releaseTool.fields.gitOps.title",
912
- layoutType: LayoutType.GRID,
913
- columns: 12,
914
- optional: true,
915
- },
916
- { request: "data" },
917
- {
918
- skipTag: requestDataField(
919
- {
920
- type: WidgetType.FORM_FIELD,
921
- fieldType: FieldDataType.BOOLEAN,
922
- label: "app.api.system.releaseTool.fields.skipTag.title",
923
- optional: true,
924
- },
925
- z.boolean().optional(),
926
- ),
927
- skipPush: requestDataField(
928
- {
929
- type: WidgetType.FORM_FIELD,
930
- fieldType: FieldDataType.BOOLEAN,
931
- label: "app.api.system.releaseTool.fields.skipPush.title",
932
- optional: true,
933
- },
934
- z.boolean().optional(),
935
- ),
936
- skipCommit: requestDataField(
937
- {
938
- type: WidgetType.FORM_FIELD,
939
- fieldType: FieldDataType.BOOLEAN,
940
- label: "app.api.system.releaseTool.fields.skipCommit.title",
941
- optional: true,
942
- },
943
- z.boolean().optional(),
944
- ),
945
- commitMessage: requestDataField(
946
- {
947
- type: WidgetType.FORM_FIELD,
948
- fieldType: FieldDataType.TEXT,
949
- label: "app.api.system.releaseTool.fields.commitMessage.title",
950
- optional: true,
951
- },
952
- z.string().optional(),
953
- ),
954
- signCommit: requestDataField(
955
- {
956
- type: WidgetType.FORM_FIELD,
957
- fieldType: FieldDataType.BOOLEAN,
958
- label: "app.api.system.releaseTool.fields.signCommit.title",
959
- optional: true,
960
- },
961
- z.boolean().optional(),
962
- ),
963
- signTag: requestDataField(
964
- {
965
- type: WidgetType.FORM_FIELD,
966
- fieldType: FieldDataType.BOOLEAN,
967
- label: "app.api.system.releaseTool.fields.signTag.title",
968
- optional: true,
969
- },
970
- z.boolean().optional(),
971
- ),
972
- remote: requestDataField(
973
- {
974
- type: WidgetType.FORM_FIELD,
975
- fieldType: FieldDataType.TEXT,
976
- label: "app.api.system.releaseTool.fields.remote.title",
977
- optional: true,
978
- },
979
- z.string().optional(),
980
- ),
981
- },
982
- ),
983
-
984
- // NPM publishing
985
- npm: objectOptionalField(
986
- {
987
- type: WidgetType.CONTAINER,
988
- title: "app.api.system.releaseTool.fields.npm.title",
989
- layoutType: LayoutType.GRID,
990
- columns: 12,
991
- optional: true,
992
- },
993
- { request: "data" },
994
- {
995
- enabled: requestDataField(
996
- {
997
- type: WidgetType.FORM_FIELD,
998
- fieldType: FieldDataType.BOOLEAN,
999
- label: "app.api.system.releaseTool.fields.npmEnabled.title",
1000
- },
1001
- z.boolean().optional().default(true),
1002
- ),
1003
- registry: requestDataField(
1004
- {
1005
- type: WidgetType.FORM_FIELD,
1006
- fieldType: FieldDataType.TEXT,
1007
- label: "app.api.system.releaseTool.fields.npmRegistry.title",
1008
- optional: true,
1009
- },
1010
- z.string().optional(),
1011
- ),
1012
- tag: requestDataField(
1013
- {
1014
- type: WidgetType.FORM_FIELD,
1015
- fieldType: FieldDataType.TEXT,
1016
- label: "app.api.system.releaseTool.fields.npmTag.title",
1017
- optional: true,
1018
- },
1019
- z.string().optional(),
1020
- ),
1021
- access: requestDataField(
1022
- {
1023
- type: WidgetType.FORM_FIELD,
1024
- fieldType: FieldDataType.SELECT,
1025
- label: "app.api.system.releaseTool.fields.npmAccess.title",
1026
- options: [
1027
- {
1028
- value: "public",
1029
- label: "app.api.system.releaseTool.enums.npmAccess.public",
1030
- },
1031
- {
1032
- value: "restricted",
1033
- label: "app.api.system.releaseTool.enums.npmAccess.restricted",
1034
- },
1035
- ],
1036
- optional: true,
1037
- },
1038
- NpmAccessSchema.optional(),
1039
- ),
1040
- otpEnvVar: requestDataField(
1041
- {
1042
- type: WidgetType.FORM_FIELD,
1043
- fieldType: FieldDataType.TEXT,
1044
- label: "app.api.system.releaseTool.fields.otpEnvVar.title",
1045
- optional: true,
1046
- },
1047
- z.string().optional(),
1048
- ),
1049
- provenance: requestDataField(
1050
- {
1051
- type: WidgetType.FORM_FIELD,
1052
- fieldType: FieldDataType.BOOLEAN,
1053
- label: "app.api.system.releaseTool.fields.provenance.title",
1054
- optional: true,
1055
- },
1056
- z.boolean().optional(),
1057
- ),
1058
- ignoreScripts: requestDataField(
1059
- {
1060
- type: WidgetType.FORM_FIELD,
1061
- fieldType: FieldDataType.BOOLEAN,
1062
- label: "app.api.system.releaseTool.fields.ignoreScripts.title",
1063
- optional: true,
1064
- },
1065
- z.boolean().optional(),
1066
- ),
1067
- dryRun: requestDataField(
1068
- {
1069
- type: WidgetType.FORM_FIELD,
1070
- fieldType: FieldDataType.BOOLEAN,
1071
- label: "app.api.system.releaseTool.fields.npmDryRun.title",
1072
- optional: true,
1073
- },
1074
- z.boolean().optional(),
1075
- ),
1076
- },
1077
- ),
1078
-
1079
- // JSR publishing
1080
- jsr: objectOptionalField(
1081
- {
1082
- type: WidgetType.CONTAINER,
1083
- title: "app.api.system.releaseTool.fields.jsr.title",
1084
- layoutType: LayoutType.GRID,
1085
- columns: 12,
1086
- optional: true,
1087
- },
1088
- { request: "data" },
1089
- {
1090
- enabled: requestDataField(
1091
- {
1092
- type: WidgetType.FORM_FIELD,
1093
- fieldType: FieldDataType.BOOLEAN,
1094
- label: "app.api.system.releaseTool.fields.jsrEnabled.title",
1095
- },
1096
- z.boolean().optional().default(false),
1097
- ),
1098
- allowSlowTypes: requestDataField(
1099
- {
1100
- type: WidgetType.FORM_FIELD,
1101
- fieldType: FieldDataType.BOOLEAN,
1102
- label: "app.api.system.releaseTool.fields.allowSlowTypes.title",
1103
- optional: true,
1104
- },
1105
- z.boolean().optional(),
1106
- ),
1107
- allowDirty: requestDataField(
1108
- {
1109
- type: WidgetType.FORM_FIELD,
1110
- fieldType: FieldDataType.BOOLEAN,
1111
- label: "app.api.system.releaseTool.fields.allowDirty.title",
1112
- optional: true,
1113
- },
1114
- z.boolean().optional(),
1115
- ),
1116
- dryRun: requestDataField(
1117
- {
1118
- type: WidgetType.FORM_FIELD,
1119
- fieldType: FieldDataType.BOOLEAN,
1120
- label: "app.api.system.releaseTool.fields.jsrDryRun.title",
1121
- optional: true,
1122
- },
1123
- z.boolean().optional(),
1124
- ),
1125
- },
1126
- ),
1127
-
1128
- // Changelog
1129
- changelog: objectOptionalField(
1130
- {
1131
- type: WidgetType.CONTAINER,
1132
- title: "app.api.system.releaseTool.fields.changelog.title",
1133
- layoutType: LayoutType.GRID,
1134
- columns: 12,
1135
- optional: true,
1136
- },
1137
- { request: "data" },
1138
- {
1139
- enabled: requestDataField(
1140
- {
1141
- type: WidgetType.FORM_FIELD,
1142
- fieldType: FieldDataType.BOOLEAN,
1143
- label: "app.api.system.releaseTool.fields.changelogEnabled.title",
1144
- },
1145
- z.boolean().optional().default(false),
1146
- ),
1147
- file: requestDataField(
1148
- {
1149
- type: WidgetType.FORM_FIELD,
1150
- fieldType: FieldDataType.TEXT,
1151
- label: "app.api.system.releaseTool.fields.changelogFile.title",
1152
- },
1153
- z.string().optional().default("CHANGELOG.md"),
1154
- ),
1155
- header: requestDataField(
1156
- {
1157
- type: WidgetType.FORM_FIELD,
1158
- fieldType: FieldDataType.TEXT,
1159
- label: "app.api.system.releaseTool.fields.changelogHeader.title",
1160
- optional: true,
1161
- },
1162
- z.string().optional(),
1163
- ),
1164
- compareUrlFormat: requestDataField(
1165
- {
1166
- type: WidgetType.FORM_FIELD,
1167
- fieldType: FieldDataType.TEXT,
1168
- label: "app.api.system.releaseTool.fields.compareUrlFormat.title",
1169
- optional: true,
1170
- },
1171
- z.string().optional(),
1172
- ),
1173
- commitUrlFormat: requestDataField(
1174
- {
1175
- type: WidgetType.FORM_FIELD,
1176
- fieldType: FieldDataType.TEXT,
1177
- label: "app.api.system.releaseTool.fields.commitUrlFormat.title",
1178
- optional: true,
1179
- },
1180
- z.string().optional(),
1181
- ),
1182
- includeBody: requestDataField(
1183
- {
1184
- type: WidgetType.FORM_FIELD,
1185
- fieldType: FieldDataType.BOOLEAN,
1186
- label: "app.api.system.releaseTool.fields.includeBody.title",
1187
- optional: true,
1188
- },
1189
- z.boolean().optional(),
1190
- ),
1191
- preset: requestDataField(
1192
- {
1193
- type: WidgetType.FORM_FIELD,
1194
- fieldType: FieldDataType.SELECT,
1195
- label: "app.api.system.releaseTool.fields.changelogPreset.title",
1196
- options: [
1197
- {
1198
- value: "conventional-commits",
1199
- label:
1200
- "app.api.system.releaseTool.enums.changelogPreset.conventional-commits",
1201
- },
1202
- {
1203
- value: "angular",
1204
- label: "app.api.system.releaseTool.enums.changelogPreset.angular",
1205
- },
1206
- {
1207
- value: "atom",
1208
- label: "app.api.system.releaseTool.enums.changelogPreset.atom",
1209
- },
1210
- {
1211
- value: "eslint",
1212
- label: "app.api.system.releaseTool.enums.changelogPreset.eslint",
1213
- },
1214
- {
1215
- value: "ember",
1216
- label: "app.api.system.releaseTool.enums.changelogPreset.ember",
1217
- },
1218
- ],
1219
- optional: true,
1220
- },
1221
- ChangelogPresetSchema.optional(),
1222
- ),
1223
- },
1224
- ),
1225
-
1226
- // Git release (GitHub/GitLab)
1227
- gitRelease: objectOptionalField(
1228
- {
1229
- type: WidgetType.CONTAINER,
1230
- title: "app.api.system.releaseTool.fields.gitRelease.title",
1231
- layoutType: LayoutType.GRID,
1232
- columns: 12,
1233
- optional: true,
1234
- },
1235
- { request: "data" },
1236
- {
1237
- enabled: requestDataField(
1238
- {
1239
- type: WidgetType.FORM_FIELD,
1240
- fieldType: FieldDataType.BOOLEAN,
1241
- label: "app.api.system.releaseTool.fields.gitReleaseEnabled.title",
1242
- },
1243
- z.boolean().optional().default(false),
1244
- ),
1245
- title: requestDataField(
1246
- {
1247
- type: WidgetType.FORM_FIELD,
1248
- fieldType: FieldDataType.TEXT,
1249
- label: "app.api.system.releaseTool.fields.releaseTitle.title",
1250
- optional: true,
1251
- },
1252
- z.string().optional(),
1253
- ),
1254
- generateNotes: requestDataField(
1255
- {
1256
- type: WidgetType.FORM_FIELD,
1257
- fieldType: FieldDataType.BOOLEAN,
1258
- label: "app.api.system.releaseTool.fields.generateNotes.title",
1259
- optional: true,
1260
- },
1261
- z.boolean().optional(),
1262
- ),
1263
- body: requestDataField(
1264
- {
1265
- type: WidgetType.FORM_FIELD,
1266
- fieldType: FieldDataType.TEXT,
1267
- label: "app.api.system.releaseTool.fields.releaseBody.title",
1268
- optional: true,
1269
- },
1270
- z.string().optional(),
1271
- ),
1272
- draft: requestDataField(
1273
- {
1274
- type: WidgetType.FORM_FIELD,
1275
- fieldType: FieldDataType.BOOLEAN,
1276
- label: "app.api.system.releaseTool.fields.draft.title",
1277
- optional: true,
1278
- },
1279
- z.boolean().optional(),
1280
- ),
1281
- prerelease: requestDataField(
1282
- {
1283
- type: WidgetType.FORM_FIELD,
1284
- fieldType: FieldDataType.BOOLEAN,
1285
- label: "app.api.system.releaseTool.fields.prerelease.title",
1286
- optional: true,
1287
- },
1288
- z.boolean().optional(),
1289
- ),
1290
- discussionCategory: requestDataField(
1291
- {
1292
- type: WidgetType.FORM_FIELD,
1293
- fieldType: FieldDataType.TEXT,
1294
- label: "app.api.system.releaseTool.fields.discussionCategory.title",
1295
- optional: true,
1296
- },
1297
- z.string().optional(),
1298
- ),
1299
- target: requestDataField(
1300
- {
1301
- type: WidgetType.FORM_FIELD,
1302
- fieldType: FieldDataType.TEXT,
1303
- label: "app.api.system.releaseTool.fields.target.title",
1304
- optional: true,
1305
- },
1306
- z.string().optional(),
1307
- ),
1308
- assets: requestDataField(
1309
- {
1310
- type: WidgetType.FORM_FIELD,
1311
- fieldType: FieldDataType.TEXT,
1312
- label: "app.api.system.releaseTool.fields.assets.title",
1313
- description: "app.api.system.releaseTool.fields.assets.description",
1314
- optional: true,
1315
- },
1316
- z
1317
- .array(
1318
- z.object({
1319
- path: z.string(),
1320
- name: z.string().optional(),
1321
- label: z.string().optional(),
1322
- contentType: z.string().optional(),
1323
- }),
1324
- )
1325
- .optional(),
1326
- ),
1327
- },
1328
- ),
1329
-
1330
- // Folders to zip for release
1331
- foldersToZip: requestDataField(
1332
- {
1333
- type: WidgetType.FORM_FIELD,
1334
- fieldType: FieldDataType.TEXT,
1335
- label: "app.api.system.releaseTool.fields.foldersToZip.title",
1336
- description: "app.api.system.releaseTool.fields.foldersToZip.description",
1337
- optional: true,
1338
- },
1339
- z
1340
- .array(
1341
- z.object({
1342
- input: z.string(),
1343
- output: z.string(),
1344
- }),
1345
- )
1346
- .optional(),
1347
- ),
1348
-
1349
- // Version bumper for non-package.json files
1350
- versionBumper: requestDataField(
1351
- {
1352
- type: WidgetType.FORM_FIELD,
1353
- fieldType: FieldDataType.TEXT,
1354
- label: "app.api.system.releaseTool.fields.versionBumper.title",
1355
- description: "app.api.system.releaseTool.fields.versionBumper.description",
1356
- optional: true,
1357
- },
1358
- z
1359
- .array(
1360
- z.object({
1361
- filePath: z.string(),
1362
- varName: z.string().optional(),
1363
- pattern: z.string().optional(),
1364
- replacement: z.string().optional(),
1365
- }),
1366
- )
1367
- .optional(),
1368
- ),
1369
- },
1370
- ),
1371
-
1372
- // Package-level hooks
1373
- hooks: objectOptionalField(
1374
- {
1375
- type: WidgetType.CONTAINER,
1376
- title: "app.api.system.releaseTool.fields.hooks.title",
1377
- description: "app.api.system.releaseTool.fields.hooks.description",
1378
- layoutType: LayoutType.GRID,
1379
- columns: 12,
1380
- optional: true,
1381
- },
1382
- { request: "data" },
1383
- {
1384
- preInstall: requestDataField(
1385
- {
1386
- type: WidgetType.FORM_FIELD,
1387
- fieldType: FieldDataType.TEXT,
1388
- label: "app.api.system.releaseTool.fields.preInstall.title",
1389
- optional: true,
1390
- },
1391
- z
1392
- .object({
1393
- command: z.string(),
1394
- cwd: z.string().optional(),
1395
- continueOnError: z.boolean().optional(),
1396
- env: z.record(z.string(), z.string()).optional(),
1397
- timeout: z.coerce.number().optional(),
1398
- shell: z.boolean().optional(),
1399
- })
1400
- .optional(),
1401
- ),
1402
- postInstall: requestDataField(
1403
- {
1404
- type: WidgetType.FORM_FIELD,
1405
- fieldType: FieldDataType.TEXT,
1406
- label: "app.api.system.releaseTool.fields.postInstall.title",
1407
- optional: true,
1408
- },
1409
- z
1410
- .object({
1411
- command: z.string(),
1412
- cwd: z.string().optional(),
1413
- continueOnError: z.boolean().optional(),
1414
- env: z.record(z.string(), z.string()).optional(),
1415
- timeout: z.coerce.number().optional(),
1416
- shell: z.boolean().optional(),
1417
- })
1418
- .optional(),
1419
- ),
1420
- preClean: requestDataField(
1421
- {
1422
- type: WidgetType.FORM_FIELD,
1423
- fieldType: FieldDataType.TEXT,
1424
- label: "app.api.system.releaseTool.fields.preClean.title",
1425
- optional: true,
1426
- },
1427
- z
1428
- .object({
1429
- command: z.string(),
1430
- cwd: z.string().optional(),
1431
- continueOnError: z.boolean().optional(),
1432
- env: z.record(z.string(), z.string()).optional(),
1433
- timeout: z.coerce.number().optional(),
1434
- shell: z.boolean().optional(),
1435
- })
1436
- .optional(),
1437
- ),
1438
- postClean: requestDataField(
1439
- {
1440
- type: WidgetType.FORM_FIELD,
1441
- fieldType: FieldDataType.TEXT,
1442
- label: "app.api.system.releaseTool.fields.postClean.title",
1443
- optional: true,
1444
- },
1445
- z
1446
- .object({
1447
- command: z.string(),
1448
- cwd: z.string().optional(),
1449
- continueOnError: z.boolean().optional(),
1450
- env: z.record(z.string(), z.string()).optional(),
1451
- timeout: z.coerce.number().optional(),
1452
- shell: z.boolean().optional(),
1453
- })
1454
- .optional(),
1455
- ),
1456
- preLint: requestDataField(
1457
- {
1458
- type: WidgetType.FORM_FIELD,
1459
- fieldType: FieldDataType.TEXT,
1460
- label: "app.api.system.releaseTool.fields.preLint.title",
1461
- optional: true,
1462
- },
1463
- z
1464
- .object({
1465
- command: z.string(),
1466
- cwd: z.string().optional(),
1467
- continueOnError: z.boolean().optional(),
1468
- env: z.record(z.string(), z.string()).optional(),
1469
- timeout: z.coerce.number().optional(),
1470
- shell: z.boolean().optional(),
1471
- })
1472
- .optional(),
1473
- ),
1474
- postLint: requestDataField(
1475
- {
1476
- type: WidgetType.FORM_FIELD,
1477
- fieldType: FieldDataType.TEXT,
1478
- label: "app.api.system.releaseTool.fields.postLint.title",
1479
- optional: true,
1480
- },
1481
- z
1482
- .object({
1483
- command: z.string(),
1484
- cwd: z.string().optional(),
1485
- continueOnError: z.boolean().optional(),
1486
- env: z.record(z.string(), z.string()).optional(),
1487
- timeout: z.coerce.number().optional(),
1488
- shell: z.boolean().optional(),
1489
- })
1490
- .optional(),
1491
- ),
1492
- preBuild: requestDataField(
1493
- {
1494
- type: WidgetType.FORM_FIELD,
1495
- fieldType: FieldDataType.TEXT,
1496
- label: "app.api.system.releaseTool.fields.preBuild.title",
1497
- optional: true,
1498
- },
1499
- z
1500
- .object({
1501
- command: z.string(),
1502
- cwd: z.string().optional(),
1503
- continueOnError: z.boolean().optional(),
1504
- env: z.record(z.string(), z.string()).optional(),
1505
- timeout: z.coerce.number().optional(),
1506
- shell: z.boolean().optional(),
1507
- })
1508
- .optional(),
1509
- ),
1510
- postBuild: requestDataField(
1511
- {
1512
- type: WidgetType.FORM_FIELD,
1513
- fieldType: FieldDataType.TEXT,
1514
- label: "app.api.system.releaseTool.fields.postBuild.title",
1515
- optional: true,
1516
- },
1517
- z
1518
- .object({
1519
- command: z.string(),
1520
- cwd: z.string().optional(),
1521
- continueOnError: z.boolean().optional(),
1522
- env: z.record(z.string(), z.string()).optional(),
1523
- timeout: z.coerce.number().optional(),
1524
- shell: z.boolean().optional(),
1525
- })
1526
- .optional(),
1527
- ),
1528
- preTest: requestDataField(
1529
- {
1530
- type: WidgetType.FORM_FIELD,
1531
- fieldType: FieldDataType.TEXT,
1532
- label: "app.api.system.releaseTool.fields.preTest.title",
1533
- optional: true,
1534
- },
1535
- z
1536
- .object({
1537
- command: z.string(),
1538
- cwd: z.string().optional(),
1539
- continueOnError: z.boolean().optional(),
1540
- env: z.record(z.string(), z.string()).optional(),
1541
- timeout: z.coerce.number().optional(),
1542
- shell: z.boolean().optional(),
1543
- })
1544
- .optional(),
1545
- ),
1546
- postTest: requestDataField(
1547
- {
1548
- type: WidgetType.FORM_FIELD,
1549
- fieldType: FieldDataType.TEXT,
1550
- label: "app.api.system.releaseTool.fields.postTest.title",
1551
- optional: true,
1552
- },
1553
- z
1554
- .object({
1555
- command: z.string(),
1556
- cwd: z.string().optional(),
1557
- continueOnError: z.boolean().optional(),
1558
- env: z.record(z.string(), z.string()).optional(),
1559
- timeout: z.coerce.number().optional(),
1560
- shell: z.boolean().optional(),
1561
- })
1562
- .optional(),
1563
- ),
1564
- prePublish: requestDataField(
1565
- {
1566
- type: WidgetType.FORM_FIELD,
1567
- fieldType: FieldDataType.TEXT,
1568
- label: "app.api.system.releaseTool.fields.prePublish.title",
1569
- optional: true,
1570
- },
1571
- z
1572
- .object({
1573
- command: z.string(),
1574
- cwd: z.string().optional(),
1575
- continueOnError: z.boolean().optional(),
1576
- env: z.record(z.string(), z.string()).optional(),
1577
- timeout: z.coerce.number().optional(),
1578
- shell: z.boolean().optional(),
1579
- })
1580
- .optional(),
1581
- ),
1582
- postPublish: requestDataField(
1583
- {
1584
- type: WidgetType.FORM_FIELD,
1585
- fieldType: FieldDataType.TEXT,
1586
- label: "app.api.system.releaseTool.fields.postPublish.title",
1587
- optional: true,
1588
- },
1589
- z
1590
- .object({
1591
- command: z.string(),
1592
- cwd: z.string().optional(),
1593
- continueOnError: z.boolean().optional(),
1594
- env: z.record(z.string(), z.string()).optional(),
1595
- timeout: z.coerce.number().optional(),
1596
- shell: z.boolean().optional(),
1597
- })
1598
- .optional(),
1599
- ),
1600
- preRelease: requestDataField(
1601
- {
1602
- type: WidgetType.FORM_FIELD,
1603
- fieldType: FieldDataType.TEXT,
1604
- label: "app.api.system.releaseTool.fields.preRelease.title",
1605
- optional: true,
1606
- },
1607
- z
1608
- .object({
1609
- command: z.string(),
1610
- cwd: z.string().optional(),
1611
- continueOnError: z.boolean().optional(),
1612
- env: z.record(z.string(), z.string()).optional(),
1613
- timeout: z.coerce.number().optional(),
1614
- shell: z.boolean().optional(),
1615
- })
1616
- .optional(),
1617
- ),
1618
- postRelease: requestDataField(
1619
- {
1620
- type: WidgetType.FORM_FIELD,
1621
- fieldType: FieldDataType.TEXT,
1622
- label: "app.api.system.releaseTool.fields.postRelease.title",
1623
- optional: true,
1624
- },
1625
- z
1626
- .object({
1627
- command: z.string(),
1628
- cwd: z.string().optional(),
1629
- continueOnError: z.boolean().optional(),
1630
- env: z.record(z.string(), z.string()).optional(),
1631
- timeout: z.coerce.number().optional(),
1632
- shell: z.boolean().optional(),
1633
- })
1634
- .optional(),
1635
- ),
1636
- },
1637
- ),
1638
- },
1639
- ),
1640
- ),
1641
-
1642
- // Global hooks
1643
- hooks: objectOptionalField(
1644
- {
1645
- type: WidgetType.CONTAINER,
1646
- title: "app.api.system.releaseTool.fields.globalHooks.title",
1647
- description: "app.api.system.releaseTool.fields.globalHooks.description",
1648
- layoutType: LayoutType.GRID,
1649
- columns: 12,
1650
- optional: true,
1651
- },
1652
- { request: "data" },
1653
- {
1654
- preRelease: requestDataField(
1655
- {
1656
- type: WidgetType.FORM_FIELD,
1657
- fieldType: FieldDataType.TEXT,
1658
- label: "app.api.system.releaseTool.fields.preRelease.title",
1659
- optional: true,
1660
- },
1661
- z
1662
- .object({
1663
- command: z.string(),
1664
- cwd: z.string().optional(),
1665
- continueOnError: z.boolean().optional(),
1666
- env: z.record(z.string(), z.string()).optional(),
1667
- timeout: z.coerce.number().optional(),
1668
- shell: z.boolean().optional(),
1669
- })
1670
- .optional(),
1671
- ),
1672
- postRelease: requestDataField(
1673
- {
1674
- type: WidgetType.FORM_FIELD,
1675
- fieldType: FieldDataType.TEXT,
1676
- label: "app.api.system.releaseTool.fields.postRelease.title",
1677
- optional: true,
1678
- },
1679
- z
1680
- .object({
1681
- command: z.string(),
1682
- cwd: z.string().optional(),
1683
- continueOnError: z.boolean().optional(),
1684
- env: z.record(z.string(), z.string()).optional(),
1685
- timeout: z.coerce.number().optional(),
1686
- shell: z.boolean().optional(),
1687
- })
1688
- .optional(),
1689
- ),
1690
- },
1691
- ),
1692
- },
1693
- ),
1694
-
1695
- // ========================================================================
1696
- // RESPONSE FIELDS - Ordered for optimal display
1697
- // ========================================================================
1698
-
1699
- // Summary stats at the top
1700
- success: responseField(
1701
- {
1702
- type: WidgetType.TEXT,
1703
- content: "app.api.system.releaseTool.response.status",
1704
- },
1705
- z.boolean(),
1706
- ),
1707
-
1708
- duration: responseField(
1709
- {
1710
- type: WidgetType.TEXT,
1711
- content: "app.api.system.releaseTool.response.duration",
1712
- },
1713
- z.coerce.number(),
1714
- ),
1715
-
1716
- // Output log
1717
- output: responseField(
1718
- {
1719
- type: WidgetType.CODE_OUTPUT,
1720
- },
1721
- z.string(),
1722
- ),
1723
-
1724
- // Errors displayed prominently if present
1725
- errors: responseArrayOptionalField(
1726
- {
1727
- type: WidgetType.DATA_LIST,
1728
- title: "app.api.system.releaseTool.response.errors",
1729
- optional: true,
1730
- },
1731
- z.string(),
1732
- ),
1733
-
1734
- // Warnings displayed if present
1735
- warnings: responseArrayOptionalField(
1736
- {
1737
- type: WidgetType.DATA_LIST,
1738
- title: "app.api.system.releaseTool.response.warnings",
1739
- optional: true,
1740
- },
1741
- z.string(),
1742
- ),
1743
-
1744
- // Packages table with status highlighting
1745
- packagesProcessed: responseArrayOptionalField(
1746
- {
1747
- type: WidgetType.DATA_TABLE,
1748
- title: "app.api.system.releaseTool.response.packages",
1749
- columns: [
1750
- { key: "name", label: "app.api.system.releaseTool.table.name" },
1751
- {
1752
- key: "directory",
1753
- label: "app.api.system.releaseTool.table.directory",
1754
- },
1755
- {
1756
- key: "version",
1757
- label: "app.api.system.releaseTool.table.version",
1758
- },
1759
- { key: "tag", label: "app.api.system.releaseTool.table.tag" },
1760
- { key: "status", label: "app.api.system.releaseTool.table.status" },
1761
- {
1762
- key: "message",
1763
- label: "app.api.system.releaseTool.table.message",
1764
- },
1765
- ],
1766
- },
1767
- objectField(
1768
- {
1769
- type: WidgetType.CONTAINER,
1770
- layoutType: LayoutType.GRID,
1771
- columns: 12,
1772
- },
1773
- { response: true },
1774
- {
1775
- name: responseField(
1776
- {
1777
- type: WidgetType.TEXT,
1778
- content: "app.api.system.releaseTool.table.name",
1779
- },
1780
- z.string(),
1781
- ),
1782
- directory: responseField(
1783
- {
1784
- type: WidgetType.TEXT,
1785
- content: "app.api.system.releaseTool.table.directory",
1786
- },
1787
- z.string(),
1788
- ),
1789
- version: responseField(
1790
- {
1791
- type: WidgetType.TEXT,
1792
- content: "app.api.system.releaseTool.table.version",
1793
- },
1794
- z.string().optional(),
1795
- ),
1796
- tag: responseField(
1797
- {
1798
- type: WidgetType.TEXT,
1799
- content: "app.api.system.releaseTool.table.tag",
1800
- },
1801
- z.string().optional(),
1802
- ),
1803
- status: responseField({ type: WidgetType.BADGE }, PackageStatusSchema),
1804
- message: responseField(
1805
- {
1806
- type: WidgetType.TEXT,
1807
- content: "app.api.system.releaseTool.table.message",
1808
- },
1809
- z.string().optional(),
1810
- ),
1811
- },
1812
- ),
1813
- ),
1814
-
1815
- // Git info displayed as metadata card
1816
- gitInfo: responseField(
1817
- {
1818
- type: WidgetType.METADATA_CARD,
1819
- title: "app.api.system.releaseTool.response.gitInfo",
1820
- },
1821
- z
1822
- .object({
1823
- currentBranch: z.string().nullable(),
1824
- lastTag: z.string().nullable(),
1825
- newTag: z.string().nullable(),
1826
- commitsSinceLastTag: z.coerce.number().nullable(),
1827
- hasUncommittedChanges: z.boolean(),
1828
- })
1829
- .optional(),
1830
- ),
1831
-
1832
- // CI environment as metadata card
1833
- ciEnvironment: responseField(
1834
- {
1835
- type: WidgetType.METADATA_CARD,
1836
- title: "app.api.system.releaseTool.response.ciEnvironment",
1837
- },
1838
- z
1839
- .object({
1840
- isCI: z.boolean(),
1841
- provider: CIProviderSchema.nullable(),
1842
- branch: z.string().nullable(),
1843
- commit: z.string().nullable(),
1844
- pr: z.string().nullable(),
1845
- tag: z.string().nullable(),
1846
- })
1847
- .optional(),
1848
- ),
1849
-
1850
- // Published packages
1851
- publishedPackages: responseArrayOptionalField(
1852
- {
1853
- type: WidgetType.DATA_TABLE,
1854
- title: "app.api.system.releaseTool.response.published",
1855
- columns: [
1856
- { key: "name", label: "app.api.system.releaseTool.table.name" },
1857
- {
1858
- key: "version",
1859
- label: "app.api.system.releaseTool.table.version",
1860
- },
1861
- {
1862
- key: "registry",
1863
- label: "app.api.system.releaseTool.table.registry",
1864
- },
1865
- { key: "url", label: "app.api.system.releaseTool.table.url" },
1866
- ],
1867
- },
1868
- objectField(
1869
- {
1870
- type: WidgetType.CONTAINER,
1871
- layoutType: LayoutType.GRID,
1872
- columns: 12,
1873
- },
1874
- { response: true },
1875
- {
1876
- name: responseField(
1877
- {
1878
- type: WidgetType.TEXT,
1879
- content: "app.api.system.releaseTool.table.name",
1880
- },
1881
- z.string(),
1882
- ),
1883
- version: responseField({ type: WidgetType.BADGE, variant: "success" }, z.string()),
1884
- registry: responseField({ type: WidgetType.BADGE, variant: "info" }, z.string()),
1885
- url: responseField(
1886
- {
1887
- type: WidgetType.TEXT,
1888
- content: "app.api.system.releaseTool.table.url",
1889
- },
1890
- z.string().optional(),
1891
- ),
1892
- },
1893
- ),
1894
- ),
1895
-
1896
- // Timings
1897
- timings: responseField(
1898
- {
1899
- type: WidgetType.DATA_LIST,
1900
- title: "app.api.system.releaseTool.response.timings",
1901
- optional: true,
1902
- },
1903
- z
1904
- .object({
1905
- total: z.coerce.number(),
1906
- validation: z.coerce.number().optional(),
1907
- install: z.coerce.number().optional(),
1908
- clean: z.coerce.number().optional(),
1909
- lint: z.coerce.number().optional(),
1910
- typecheck: z.coerce.number().optional(),
1911
- build: z.coerce.number().optional(),
1912
- test: z.coerce.number().optional(),
1913
- publish: z.coerce.number().optional(),
1914
- changelog: z.coerce.number().optional(),
1915
- gitOperations: z.coerce.number().optional(),
1916
- })
1917
- .optional(),
1918
- ),
1919
-
1920
- rollbackPerformed: responseField(
1921
- {
1922
- type: WidgetType.BADGE,
1923
- variant: "warning",
1924
- },
1925
- z.boolean().optional(),
1926
- ),
1927
-
1928
- notificationsSent: responseArrayOptionalField(
1929
- {
1930
- type: WidgetType.DATA_LIST,
1931
- title: "app.api.system.releaseTool.response.notificationsSent",
1932
- optional: true,
1933
- },
1934
- objectField(
1935
- {
1936
- type: WidgetType.CONTAINER,
1937
- layoutType: LayoutType.GRID,
1938
- columns: 12,
1939
- },
1940
- { response: true },
1941
- {
1942
- type: responseField({ type: WidgetType.BADGE, variant: "info" }, z.string()),
1943
- success: responseField({ type: WidgetType.BADGE }, z.boolean()),
1944
- message: responseField(
1945
- {
1946
- type: WidgetType.TEXT,
1947
- content: "app.api.system.releaseTool.table.message",
1948
- },
1949
- z.string().optional(),
1950
- ),
1951
- },
1952
- ),
1953
- ),
1954
-
1955
- // ========================================================================
1956
- // INTERNAL TYPES (for repository services - not shown in UI)
1957
- // ========================================================================
1958
-
1959
- _internal: objectOptionalField(
1960
- { type: WidgetType.CONTAINER, optional: true },
1961
- { response: true },
1962
- {
1963
- // Package.json structure
1964
- packageJson: objectOptionalField(
1965
- { type: WidgetType.CONTAINER, optional: true },
1966
- { response: true },
1967
- {
1968
- name: responseField(
1969
- {
1970
- type: WidgetType.TEXT,
1971
- content: "app.api.system.releaseTool.fields.name.title",
1972
- },
1973
- z.string(),
1974
- ),
1975
- version: responseField(
1976
- {
1977
- type: WidgetType.TEXT,
1978
- content: "app.api.system.releaseTool.table.version",
1979
- },
1980
- z.string(),
1981
- ),
1982
- scripts: responseField(
1983
- {
1984
- type: WidgetType.TEXT,
1985
- content: "app.api.system.releaseTool.fields.name.title",
1986
- optional: true,
1987
- },
1988
- z.record(z.string(), z.string()).optional(),
1989
- ),
1990
- dependencies: responseField(
1991
- {
1992
- type: WidgetType.TEXT,
1993
- content: "app.api.system.releaseTool.fields.name.title",
1994
- optional: true,
1995
- },
1996
- z.record(z.string(), z.string()).optional(),
1997
- ),
1998
- devDependencies: responseField(
1999
- {
2000
- type: WidgetType.TEXT,
2001
- content: "app.api.system.releaseTool.fields.name.title",
2002
- optional: true,
2003
- },
2004
- z.record(z.string(), z.string()).optional(),
2005
- ),
2006
- peerDependencies: responseField(
2007
- {
2008
- type: WidgetType.TEXT,
2009
- content: "app.api.system.releaseTool.fields.name.title",
2010
- optional: true,
2011
- },
2012
- z.record(z.string(), z.string()).optional(),
2013
- ),
2014
- optionalDependencies: responseField(
2015
- {
2016
- type: WidgetType.TEXT,
2017
- content: "app.api.system.releaseTool.fields.name.title",
2018
- optional: true,
2019
- },
2020
- z.record(z.string(), z.string()).optional(),
2021
- ),
2022
- updateIgnoreDependencies: responseArrayOptionalField(
2023
- {
2024
- type: WidgetType.TEXT,
2025
- content: "app.api.system.releaseTool.fields.name.title",
2026
- optional: true,
2027
- },
2028
- z.string(),
2029
- ),
2030
- private: responseField(
2031
- {
2032
- type: WidgetType.TEXT,
2033
- content: "app.api.system.releaseTool.fields.name.title",
2034
- optional: true,
2035
- },
2036
- z.boolean().optional(),
2037
- ),
2038
- publishConfig: objectOptionalField(
2039
- { type: WidgetType.CONTAINER, optional: true },
2040
- { response: true },
2041
- {
2042
- access: responseField(
2043
- {
2044
- type: WidgetType.TEXT,
2045
- content: "app.api.system.releaseTool.fields.npmAccess.title",
2046
- optional: true,
2047
- },
2048
- z.enum(["public", "restricted"]).optional(),
2049
- ),
2050
- registry: responseField(
2051
- {
2052
- type: WidgetType.TEXT,
2053
- content: "app.api.system.releaseTool.table.registry",
2054
- optional: true,
2055
- },
2056
- z.string().optional(),
2057
- ),
2058
- tag: responseField(
2059
- {
2060
- type: WidgetType.TEXT,
2061
- content: "app.api.system.releaseTool.table.tag",
2062
- optional: true,
2063
- },
2064
- z.string().optional(),
2065
- ),
2066
- },
2067
- ),
2068
- repository: objectOptionalField(
2069
- { type: WidgetType.CONTAINER, optional: true },
2070
- { response: true },
2071
- {
2072
- type: responseField(
2073
- {
2074
- type: WidgetType.TEXT,
2075
- content: "app.api.system.releaseTool.fields.name.title",
2076
- },
2077
- z.string(),
2078
- ),
2079
- url: responseField(
2080
- {
2081
- type: WidgetType.TEXT,
2082
- content: "app.api.system.releaseTool.table.url",
2083
- },
2084
- z.string(),
2085
- ),
2086
- },
2087
- ),
2088
- },
2089
- ),
2090
-
2091
- // Version info
2092
- versionInfo: objectOptionalField(
2093
- { type: WidgetType.CONTAINER, optional: true },
2094
- { response: true },
2095
- {
2096
- newVersion: responseField(
2097
- {
2098
- type: WidgetType.TEXT,
2099
- content: "app.api.system.releaseTool.table.version",
2100
- },
2101
- z.string(),
2102
- ),
2103
- lastTag: responseField(
2104
- {
2105
- type: WidgetType.TEXT,
2106
- content: "app.api.system.releaseTool.table.tag",
2107
- },
2108
- z.string(),
2109
- ),
2110
- newTag: responseField(
2111
- {
2112
- type: WidgetType.TEXT,
2113
- content: "app.api.system.releaseTool.table.tag",
2114
- },
2115
- z.string(),
2116
- ),
2117
- },
2118
- ),
2119
-
2120
- // Parsed version
2121
- parsedVersion: objectOptionalField(
2122
- { type: WidgetType.CONTAINER, optional: true },
2123
- { response: true },
2124
- {
2125
- major: responseField(
2126
- {
2127
- type: WidgetType.TEXT,
2128
- content: "app.api.system.releaseTool.enums.versionIncrement.major",
2129
- },
2130
- z.number(),
2131
- ),
2132
- minor: responseField(
2133
- {
2134
- type: WidgetType.TEXT,
2135
- content: "app.api.system.releaseTool.enums.versionIncrement.minor",
2136
- },
2137
- z.number(),
2138
- ),
2139
- patch: responseField(
2140
- {
2141
- type: WidgetType.TEXT,
2142
- content: "app.api.system.releaseTool.enums.versionIncrement.patch",
2143
- },
2144
- z.number(),
2145
- ),
2146
- prerelease: responseField(
2147
- {
2148
- type: WidgetType.TEXT,
2149
- content: "app.api.system.releaseTool.enums.versionIncrement.prerelease",
2150
- optional: true,
2151
- },
2152
- z.string().nullable(),
2153
- ),
2154
- prereleaseNumber: responseField(
2155
- {
2156
- type: WidgetType.TEXT,
2157
- content: "app.api.system.releaseTool.fields.prereleaseId.title",
2158
- optional: true,
2159
- },
2160
- z.number().nullable(),
2161
- ),
2162
- buildMetadata: responseField(
2163
- {
2164
- type: WidgetType.TEXT,
2165
- content: "app.api.system.releaseTool.fields.name.title",
2166
- optional: true,
2167
- },
2168
- z.string().nullable(),
2169
- ),
2170
- },
2171
- ),
2172
-
2173
- // Repo info
2174
- repoInfo: objectOptionalField(
2175
- { type: WidgetType.CONTAINER, optional: true },
2176
- { response: true },
2177
- {
2178
- type: responseField(
2179
- {
2180
- type: WidgetType.TEXT,
2181
- content: "app.api.system.releaseTool.fields.name.title",
2182
- },
2183
- z.enum(["github", "gitlab", "bitbucket", "azure", "other"]),
2184
- ),
2185
- url: responseField(
2186
- {
2187
- type: WidgetType.TEXT,
2188
- content: "app.api.system.releaseTool.table.url",
2189
- },
2190
- z.string(),
2191
- ),
2192
- owner: responseField(
2193
- {
2194
- type: WidgetType.TEXT,
2195
- content: "app.api.system.releaseTool.fields.name.title",
2196
- optional: true,
2197
- },
2198
- z.string().optional(),
2199
- ),
2200
- repo: responseField(
2201
- {
2202
- type: WidgetType.TEXT,
2203
- content: "app.api.system.releaseTool.fields.name.title",
2204
- optional: true,
2205
- },
2206
- z.string().optional(),
2207
- ),
2208
- defaultBranch: responseField(
2209
- {
2210
- type: WidgetType.TEXT,
2211
- content: "app.api.system.releaseTool.fields.branchMain.title",
2212
- optional: true,
2213
- },
2214
- z.string().optional(),
2215
- ),
2216
- },
2217
- ),
2218
-
2219
- // Commit info
2220
- commitInfo: objectOptionalField(
2221
- { type: WidgetType.CONTAINER, optional: true },
2222
- { response: true },
2223
- {
2224
- sha: responseField(
2225
- {
2226
- type: WidgetType.TEXT,
2227
- content: "app.api.system.releaseTool.fields.name.title",
2228
- },
2229
- z.string(),
2230
- ),
2231
- shortSha: responseField(
2232
- {
2233
- type: WidgetType.TEXT,
2234
- content: "app.api.system.releaseTool.fields.name.title",
2235
- },
2236
- z.string(),
2237
- ),
2238
- subject: responseField(
2239
- {
2240
- type: WidgetType.TEXT,
2241
- content: "app.api.system.releaseTool.fields.name.title",
2242
- },
2243
- z.string(),
2244
- ),
2245
- body: responseField(
2246
- {
2247
- type: WidgetType.TEXT,
2248
- content: "app.api.system.releaseTool.fields.releaseBody.title",
2249
- optional: true,
2250
- },
2251
- z.string().optional(),
2252
- ),
2253
- authorName: responseField(
2254
- {
2255
- type: WidgetType.TEXT,
2256
- content: "app.api.system.releaseTool.fields.name.title",
2257
- },
2258
- z.string(),
2259
- ),
2260
- authorEmail: responseField(
2261
- {
2262
- type: WidgetType.TEXT,
2263
- content: "app.api.system.releaseTool.fields.name.title",
2264
- },
2265
- z.string(),
2266
- ),
2267
- timestamp: responseField(
2268
- {
2269
- type: WidgetType.TEXT,
2270
- content: "app.api.system.releaseTool.fields.name.title",
2271
- },
2272
- z.coerce.date(),
2273
- ),
2274
- conventionalType: responseField(
2275
- {
2276
- type: WidgetType.TEXT,
2277
- content: "app.api.system.releaseTool.fields.name.title",
2278
- optional: true,
2279
- },
2280
- z.string().optional(),
2281
- ),
2282
- conventionalScope: responseField(
2283
- {
2284
- type: WidgetType.TEXT,
2285
- content: "app.api.system.releaseTool.fields.name.title",
2286
- optional: true,
2287
- },
2288
- z.string().optional(),
2289
- ),
2290
- isBreaking: responseField(
2291
- {
2292
- type: WidgetType.TEXT,
2293
- content: "app.api.system.releaseTool.fields.name.title",
2294
- optional: true,
2295
- },
2296
- z.boolean().optional(),
2297
- ),
2298
- },
2299
- ),
2300
-
2301
- // Hook context
2302
- hookContext: objectOptionalField(
2303
- { type: WidgetType.CONTAINER, optional: true },
2304
- { response: true },
2305
- {
2306
- packageManager: responseField(
2307
- {
2308
- type: WidgetType.TEXT,
2309
- content: "app.api.system.releaseTool.fields.packageManager.title",
2310
- },
2311
- z.string(),
2312
- ),
2313
- packageName: responseField(
2314
- {
2315
- type: WidgetType.TEXT,
2316
- content: "app.api.system.releaseTool.fields.name.title",
2317
- optional: true,
2318
- },
2319
- z.string().optional(),
2320
- ),
2321
- version: responseField(
2322
- {
2323
- type: WidgetType.TEXT,
2324
- content: "app.api.system.releaseTool.table.version",
2325
- optional: true,
2326
- },
2327
- z.string().optional(),
2328
- ),
2329
- directory: responseField(
2330
- {
2331
- type: WidgetType.TEXT,
2332
- content: "app.api.system.releaseTool.fields.directory.title",
2333
- optional: true,
2334
- },
2335
- z.string().optional(),
2336
- ),
2337
- previousVersion: responseField(
2338
- {
2339
- type: WidgetType.TEXT,
2340
- content: "app.api.system.releaseTool.table.version",
2341
- optional: true,
2342
- },
2343
- z.string().optional(),
2344
- ),
2345
- tag: responseField(
2346
- {
2347
- type: WidgetType.TEXT,
2348
- content: "app.api.system.releaseTool.table.tag",
2349
- optional: true,
2350
- },
2351
- z.string().optional(),
2352
- ),
2353
- isCI: responseField(
2354
- {
2355
- type: WidgetType.TEXT,
2356
- content: "app.api.system.releaseTool.fields.ci.title",
2357
- optional: true,
2358
- },
2359
- z.boolean().optional(),
2360
- ),
2361
- ciProvider: responseField(
2362
- {
2363
- type: WidgetType.TEXT,
2364
- content: "app.api.system.releaseTool.fields.name.title",
2365
- optional: true,
2366
- },
2367
- z.string().optional(),
2368
- ),
2369
- dryRun: responseField(
2370
- {
2371
- type: WidgetType.TEXT,
2372
- content: "app.api.system.releaseTool.fields.dryRun.title",
2373
- optional: true,
2374
- },
2375
- z.boolean().optional(),
2376
- ),
2377
- },
2378
- ),
2379
-
2380
- // Hook result
2381
- hookResult: objectOptionalField(
2382
- { type: WidgetType.CONTAINER, optional: true },
2383
- { response: true },
2384
- {
2385
- success: responseField(
2386
- {
2387
- type: WidgetType.TEXT,
2388
- content: "app.api.system.releaseTool.response.status",
2389
- },
2390
- z.boolean(),
2391
- ),
2392
- command: responseField(
2393
- {
2394
- type: WidgetType.TEXT,
2395
- content: "app.api.system.releaseTool.fields.ciCommand.title",
2396
- },
2397
- z.string(),
2398
- ),
2399
- exitCode: responseField(
2400
- {
2401
- type: WidgetType.TEXT,
2402
- content: "app.api.system.releaseTool.fields.name.title",
2403
- optional: true,
2404
- },
2405
- z.number().optional(),
2406
- ),
2407
- stdout: responseField(
2408
- {
2409
- type: WidgetType.TEXT,
2410
- content: "app.api.system.releaseTool.fields.name.title",
2411
- optional: true,
2412
- },
2413
- z.string().optional(),
2414
- ),
2415
- stderr: responseField(
2416
- {
2417
- type: WidgetType.TEXT,
2418
- content: "app.api.system.releaseTool.fields.name.title",
2419
- optional: true,
2420
- },
2421
- z.string().optional(),
2422
- ),
2423
- duration: responseField(
2424
- {
2425
- type: WidgetType.TEXT,
2426
- content: "app.api.system.releaseTool.response.duration",
2427
- optional: true,
2428
- },
2429
- z.number().optional(),
2430
- ),
2431
- message: responseField(
2432
- {
2433
- type: WidgetType.TEXT,
2434
- content: "app.api.system.releaseTool.table.message",
2435
- optional: true,
2436
- },
2437
- z.string().optional(),
2438
- ),
2439
- },
2440
- ),
2441
-
2442
- // Security scan result
2443
- securityScanResult: objectOptionalField(
2444
- { type: WidgetType.CONTAINER, optional: true },
2445
- { response: true },
2446
- {
2447
- passed: responseField(
2448
- {
2449
- type: WidgetType.TEXT,
2450
- content: "app.api.system.releaseTool.fields.name.title",
2451
- },
2452
- z.boolean(),
2453
- ),
2454
- vulnerabilities: objectField(
2455
- { type: WidgetType.CONTAINER },
2456
- { response: true },
2457
- {
2458
- critical: responseField(
2459
- {
2460
- type: WidgetType.TEXT,
2461
- content: "app.api.system.releaseTool.fields.name.title",
2462
- },
2463
- z.number(),
2464
- ),
2465
- high: responseField(
2466
- {
2467
- type: WidgetType.TEXT,
2468
- content: "app.api.system.releaseTool.fields.name.title",
2469
- },
2470
- z.number(),
2471
- ),
2472
- medium: responseField(
2473
- {
2474
- type: WidgetType.TEXT,
2475
- content: "app.api.system.releaseTool.fields.name.title",
2476
- },
2477
- z.number(),
2478
- ),
2479
- low: responseField(
2480
- {
2481
- type: WidgetType.TEXT,
2482
- content: "app.api.system.releaseTool.fields.name.title",
2483
- },
2484
- z.number(),
2485
- ),
2486
- },
2487
- ),
2488
- },
2489
- ),
2490
-
2491
- // Notification data
2492
- notificationData: objectOptionalField(
2493
- { type: WidgetType.CONTAINER, optional: true },
2494
- { response: true },
2495
- {
2496
- success: responseField(
2497
- {
2498
- type: WidgetType.TEXT,
2499
- content: "app.api.system.releaseTool.response.status",
2500
- },
2501
- z.boolean(),
2502
- ),
2503
- packageName: responseField(
2504
- {
2505
- type: WidgetType.TEXT,
2506
- content: "app.api.system.releaseTool.fields.name.title",
2507
- optional: true,
2508
- },
2509
- z.string().optional(),
2510
- ),
2511
- version: responseField(
2512
- {
2513
- type: WidgetType.TEXT,
2514
- content: "app.api.system.releaseTool.table.version",
2515
- optional: true,
2516
- },
2517
- z.string().optional(),
2518
- ),
2519
- duration: responseField(
2520
- {
2521
- type: WidgetType.TEXT,
2522
- content: "app.api.system.releaseTool.response.duration",
2523
- optional: true,
2524
- },
2525
- z.number().optional(),
2526
- ),
2527
- error: responseField(
2528
- {
2529
- type: WidgetType.TEXT,
2530
- content: "app.api.system.releaseTool.response.errors",
2531
- optional: true,
2532
- },
2533
- z.string().optional(),
2534
- ),
2535
- releaseUrl: responseField(
2536
- {
2537
- type: WidgetType.TEXT,
2538
- content: "app.api.system.releaseTool.table.url",
2539
- optional: true,
2540
- },
2541
- z.string().optional(),
2542
- ),
2543
- commitSha: responseField(
2544
- {
2545
- type: WidgetType.TEXT,
2546
- content: "app.api.system.releaseTool.fields.name.title",
2547
- optional: true,
2548
- },
2549
- z.string().optional(),
2550
- ),
2551
- branch: responseField(
2552
- {
2553
- type: WidgetType.TEXT,
2554
- content: "app.api.system.releaseTool.fields.branch.title",
2555
- optional: true,
2556
- },
2557
- z.string().optional(),
2558
- ),
2559
- registryUrls: responseField(
2560
- {
2561
- type: WidgetType.TEXT,
2562
- content: "app.api.system.releaseTool.table.url",
2563
- optional: true,
2564
- },
2565
- z.array(z.string()).optional(),
2566
- ),
2567
- timings: objectOptionalField(
2568
- { type: WidgetType.CONTAINER, optional: true },
2569
- { response: true },
2570
- {
2571
- total: responseField(
2572
- {
2573
- type: WidgetType.TEXT,
2574
- content: "app.api.system.releaseTool.response.duration",
2575
- optional: true,
2576
- },
2577
- z.number().optional(),
2578
- ),
2579
- version: responseField(
2580
- {
2581
- type: WidgetType.TEXT,
2582
- content: "app.api.system.releaseTool.table.version",
2583
- optional: true,
2584
- },
2585
- z.number().optional(),
2586
- ),
2587
- quality: responseField(
2588
- {
2589
- type: WidgetType.TEXT,
2590
- content: "app.api.system.releaseTool.fields.name.title",
2591
- optional: true,
2592
- },
2593
- z.number().optional(),
2594
- ),
2595
- publish: responseField(
2596
- {
2597
- type: WidgetType.TEXT,
2598
- content: "app.api.system.releaseTool.fields.name.title",
2599
- optional: true,
2600
- },
2601
- z.number().optional(),
2602
- ),
2603
- git: responseField(
2604
- {
2605
- type: WidgetType.TEXT,
2606
- content: "app.api.system.releaseTool.fields.name.title",
2607
- optional: true,
2608
- },
2609
- z.number().optional(),
2610
- ),
2611
- changelog: responseField(
2612
- {
2613
- type: WidgetType.TEXT,
2614
- content: "app.api.system.releaseTool.fields.changelog.title",
2615
- optional: true,
2616
- },
2617
- z.number().optional(),
2618
- ),
2619
- notification: responseField(
2620
- {
2621
- type: WidgetType.TEXT,
2622
- content: "app.api.system.releaseTool.fields.name.title",
2623
- optional: true,
2624
- },
2625
- z.number().optional(),
2626
- ),
2627
- },
2628
- ),
2629
- },
2630
- ),
2631
- },
2632
- ),
2633
- },
2634
- ),
2635
-
2636
- // === ERROR HANDLING ===
2637
- errorTypes: {
2638
- [EndpointErrorTypes.VALIDATION_FAILED]: {
2639
- title: "app.api.system.releaseTool.errors.validation.title",
2640
- description: "app.api.system.releaseTool.errors.validation.description",
2641
- },
2642
- [EndpointErrorTypes.NOT_FOUND]: {
2643
- title: "app.api.system.releaseTool.errors.notFound.title",
2644
- description: "app.api.system.releaseTool.errors.notFound.description",
2645
- },
2646
- [EndpointErrorTypes.SERVER_ERROR]: {
2647
- title: "app.api.system.releaseTool.errors.server.title",
2648
- description: "app.api.system.releaseTool.errors.server.description",
2649
- },
2650
- [EndpointErrorTypes.UNKNOWN_ERROR]: {
2651
- title: "app.api.system.releaseTool.errors.unknown.title",
2652
- description: "app.api.system.releaseTool.errors.unknown.description",
2653
- },
2654
- [EndpointErrorTypes.NETWORK_ERROR]: {
2655
- title: "app.api.system.releaseTool.errors.network.title",
2656
- description: "app.api.system.releaseTool.errors.network.description",
2657
- },
2658
- [EndpointErrorTypes.UNAUTHORIZED]: {
2659
- title: "app.api.system.releaseTool.errors.unauthorized.title",
2660
- description: "app.api.system.releaseTool.errors.unauthorized.description",
2661
- },
2662
- [EndpointErrorTypes.FORBIDDEN]: {
2663
- title: "app.api.system.releaseTool.errors.forbidden.title",
2664
- description: "app.api.system.releaseTool.errors.forbidden.description",
2665
- },
2666
- [EndpointErrorTypes.CONFLICT]: {
2667
- title: "app.api.system.releaseTool.errors.conflict.title",
2668
- description: "app.api.system.releaseTool.errors.conflict.description",
2669
- },
2670
- [EndpointErrorTypes.UNSAVED_CHANGES]: {
2671
- title: "app.api.system.releaseTool.errors.unsavedChanges.title",
2672
- description: "app.api.system.releaseTool.errors.unsavedChanges.description",
2673
- },
2674
- },
2675
-
2676
- // === SUCCESS HANDLING ===
2677
- successTypes: {
2678
- title: "app.api.system.releaseTool.success.title",
2679
- description: "app.api.system.releaseTool.success.description",
2680
- },
2681
-
2682
- // === EXAMPLES ===
2683
- examples: {
2684
- requests: {
2685
- default: {},
2686
- ciRelease: {
2687
- ci: true,
2688
- configObject: {
2689
- packages: [{ directory: "./" }],
2690
- },
2691
- },
2692
- dryRun: {
2693
- dryRun: true,
2694
- verbose: true,
2695
- configObject: {
2696
- packages: [{ directory: "./" }],
2697
- },
2698
- },
2699
- },
2700
- responses: {
2701
- default: {
2702
- success: true,
2703
- output: "Release completed successfully",
2704
- duration: 30000,
2705
- packagesProcessed: [
2706
- {
2707
- name: "my-package",
2708
- directory: "./",
2709
- version: "1.0.1",
2710
- tag: "v1.0.1",
2711
- status: "success" as const,
2712
- },
2713
- ],
2714
- errors: null,
2715
- warnings: null,
2716
- publishedPackages: null,
2717
- notificationsSent: null,
2718
- },
2719
- ciRelease: {
2720
- success: true,
2721
- output: "CI release completed successfully",
2722
- duration: 45000,
2723
- packagesProcessed: [
2724
- {
2725
- name: "my-package",
2726
- directory: "./",
2727
- version: "1.0.1",
2728
- status: "success" as const,
2729
- message: "Published to npm",
2730
- },
2731
- ],
2732
- ciEnvironment: {
2733
- isCI: true,
2734
- provider: "github" as const,
2735
- branch: "main",
2736
- commit: "abc123",
2737
- pr: null,
2738
- tag: "v1.0.1",
2739
- },
2740
- errors: null,
2741
- warnings: null,
2742
- publishedPackages: null,
2743
- notificationsSent: null,
2744
- },
2745
- dryRun: {
2746
- success: true,
2747
- output: "[DRY RUN] Release simulation completed",
2748
- duration: 5000,
2749
- packagesProcessed: [
2750
- {
2751
- name: "my-package",
2752
- directory: "./",
2753
- version: "1.0.1",
2754
- tag: "v1.0.1",
2755
- status: "success" as const,
2756
- message: "Would have been released",
2757
- },
2758
- ],
2759
- errors: null,
2760
- warnings: null,
2761
- publishedPackages: null,
2762
- notificationsSent: null,
2763
- },
2764
- },
2765
- },
2766
- });
2767
-
2768
- // Export the definition
2769
- const releaseToolDefinition = { POST };
2770
- export default releaseToolDefinition;
2771
-
2772
- // ============================================================================
2773
- // Type Exports - Derived from Definition
2774
- // ============================================================================
2775
-
2776
- /** Request type */
2777
- export type RequestType = typeof POST.types.RequestOutput;
2778
-
2779
- /** Response type */
2780
- export type ReleaseResponseType = typeof POST.types.ResponseOutput;
2781
-
2782
- /** Package manager types - derived from schema */
2783
- export type PackageManager = z.infer<typeof PackageManagerSchema>;
2784
-
2785
- /** Version increment types - derived from schema */
2786
- export type VersionIncrement = z.infer<typeof VersionIncrementSchema>;
2787
-
2788
- /** CI provider types - derived from schema */
2789
- export type CIProvider = z.infer<typeof CIProviderSchema>;
2790
-
2791
- /** Package status types - derived from schema */
2792
- export type PackageStatus = z.infer<typeof PackageStatusSchema>;
2793
-
2794
- /** Webhook type - derived from schema */
2795
- export type WebhookType = z.infer<typeof WebhookTypeSchema>;
2796
-
2797
- /** Changelog preset - derived from schema */
2798
- export type ChangelogPreset = z.infer<typeof ChangelogPresetSchema>;
2799
-
2800
- /** NPM access level - derived from schema */
2801
- export type NpmAccess = z.infer<typeof NpmAccessSchema>;
2802
-
2803
- /** CI environment - derived from response schema */
2804
- export type CIEnvironment = NonNullable<ReleaseResponseType["ciEnvironment"]>;
2805
-
2806
- // Infer config types from request type
2807
- export type ReleaseConfig = NonNullable<RequestType["configObject"]>;
2808
-
2809
- /** File-based config (without runtime-only options like ci, dryRun, skipXxx, etc.) */
2810
- export type ReleaseFileConfig = Partial<
2811
- Pick<
2812
- ReleaseConfig,
2813
- | "packageManager"
2814
- | "globalVersion"
2815
- | "branch"
2816
- | "continueOnError"
2817
- | "packages"
2818
- | "notifications"
2819
- | "hooks"
2820
- >
2821
- > &
2822
- Required<Pick<ReleaseConfig, "packages">>;
2823
-
2824
- /** Package configuration */
2825
- export type ReleasePackage = NonNullable<ReleaseConfig["packages"]>[number];
2826
-
2827
- /** Release options for a package */
2828
- export type ReleaseOptions = NonNullable<ReleasePackage["release"]>;
2829
-
2830
- /** Git operations configuration */
2831
- export type GitOpsConfig = NonNullable<ReleaseOptions["git"]>;
2832
-
2833
- /** NPM publish configuration */
2834
- export type NpmPublishConfig = NonNullable<ReleaseOptions["npm"]>;
2835
-
2836
- /** JSR publish configuration */
2837
- export type JsrPublishConfig = NonNullable<ReleaseOptions["jsr"]>;
2838
-
2839
- /** Changelog configuration */
2840
- export type ChangelogConfig = NonNullable<ReleaseOptions["changelog"]>;
2841
-
2842
- /** Git release configuration */
2843
- export type GitReleaseConfig = NonNullable<ReleaseOptions["gitRelease"]>;
2844
-
2845
- /** Branch configuration */
2846
- export type BranchConfig = NonNullable<ReleaseConfig["branch"]>;
2847
-
2848
- /** Notification configuration */
2849
- export type NotificationConfig = NonNullable<ReleaseConfig["notifications"]>;
2850
-
2851
- /** Retry configuration */
2852
- export type RetryConfig = NonNullable<ReleaseConfig["retry"]>;
2853
-
2854
- /** Rollback configuration */
2855
- export type RollbackConfig = NonNullable<ReleaseConfig["rollback"]>;
2856
-
2857
- /** Hook configuration - derived from hooks schema */
2858
- export type ReleaseHook = NonNullable<NonNullable<ReleaseConfig["hooks"]>["preRelease"]>;
2859
-
2860
- /** Folders to zip configuration - derived from package release schema */
2861
- export type FoldersToZip = NonNullable<ReleaseOptions["foldersToZip"]>;
2862
-
2863
- /** Version bumper configuration - derived from package release schema */
2864
- export type VersionBumper = NonNullable<ReleaseOptions["versionBumper"]>;
2865
-
2866
- /** Git release assets configuration */
2867
- export type GitReleaseAsset = NonNullable<
2868
- NonNullable<ReleaseOptions["gitRelease"]>["assets"]
2869
- >[number];
2870
-
2871
- // ============================================================================
2872
- // Response-Derived Types
2873
- // ============================================================================
2874
-
2875
- /** Package result - derived from response packagesProcessed */
2876
- export type PackageResult = NonNullable<ReleaseResponseType["packagesProcessed"]>[number];
2877
-
2878
- /** Published package - derived from response publishedPackages */
2879
- export type PublishedPackage = NonNullable<ReleaseResponseType["publishedPackages"]>[number];
2880
-
2881
- /** Timings breakdown - derived from response timings */
2882
- export type Timings = NonNullable<ReleaseResponseType["timings"]>;
2883
-
2884
- /** Notification result - derived from response notificationsSent */
2885
- export type NotificationResult = NonNullable<ReleaseResponseType["notificationsSent"]>[number];
2886
-
2887
- /** Git info - derived from response gitInfo */
2888
- export type GitInfo = NonNullable<ReleaseResponseType["gitInfo"]>;
2889
-
2890
- // ============================================================================
2891
- // Internal Types - Derived from _internal response fields
2892
- // ============================================================================
2893
-
2894
- /** Internal types helper */
2895
- type InternalTypes = NonNullable<ReleaseResponseType["_internal"]>;
2896
-
2897
- /** Package.json structure - derived from _internal.packageJson */
2898
- export type PackageJson = NonNullable<InternalTypes["packageJson"]>;
2899
-
2900
- /** Version info - derived from _internal.versionInfo */
2901
- export type VersionInfo = NonNullable<InternalTypes["versionInfo"]>;
2902
-
2903
- /** Parsed semver version components - derived from _internal.parsedVersion */
2904
- export type ParsedVersion = NonNullable<InternalTypes["parsedVersion"]>;
2905
-
2906
- /** Repository hosting information - derived from _internal.repoInfo */
2907
- export type RepoInfo = NonNullable<InternalTypes["repoInfo"]>;
2908
-
2909
- /** Git commit information - derived from _internal.commitInfo */
2910
- export type CommitInfo = NonNullable<InternalTypes["commitInfo"]>;
2911
-
2912
- /** Hook execution context - derived from _internal.hookContext */
2913
- export type HookContext = NonNullable<InternalTypes["hookContext"]>;
2914
-
2915
- /** Hook execution result - derived from _internal.hookResult */
2916
- export type HookResult = NonNullable<InternalTypes["hookResult"]>;
2917
-
2918
- /** Security scan results - derived from _internal.securityScanResult */
2919
- export type SecurityScanResult = NonNullable<InternalTypes["securityScanResult"]>;
2920
-
2921
- /** Notification data for webhooks - derived from _internal.notificationData */
2922
- export type NotificationData = NonNullable<InternalTypes["notificationData"]>;
2923
-
2924
- /** Notification timings - derived from _internal.notificationData.timings */
2925
- export type NotificationTimings = NonNullable<NotificationData["timings"]>;