@piwitests/server 0.23.0 → 0.24.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 (346) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{Clg2Qx0r.js → -COcylA_.js} +1 -1
  3. package/.output/public/_nuxt/03FA4-rI.js +1 -0
  4. package/.output/public/_nuxt/{B7tiBVLW.js → 5a7jHE9s.js} +1 -1
  5. package/.output/public/_nuxt/{roaTZkYi.js → 6Z_ZwH8I.js} +1 -1
  6. package/.output/public/_nuxt/{xZQGtnVA.js → 7ZHq6PCI.js} +1 -1
  7. package/.output/public/_nuxt/{5SkLJHl8.js → 98sAB6Gu.js} +1 -1
  8. package/.output/public/_nuxt/{DnxrNGE_.js → B--J7VNt.js} +1 -1
  9. package/.output/public/_nuxt/{DJzFYrBt.js → B1LUinhp.js} +1 -1
  10. package/.output/public/_nuxt/{axj2iIDK.js → B33YjaHr.js} +1 -1
  11. package/.output/public/_nuxt/B69RP95P.js +1 -0
  12. package/.output/public/_nuxt/{DNKZmhbX.js → B8H4XydJ.js} +1 -1
  13. package/.output/public/_nuxt/{DmqCquDx.js → B8Xm4_S_.js} +1 -1
  14. package/.output/public/_nuxt/{Ya8ZzWuY.js → BBhrClA9.js} +1 -1
  15. package/.output/public/_nuxt/{BZFiz2UB.js → BCGljaM0.js} +1 -1
  16. package/.output/public/_nuxt/{oSLbl-p0.js → BFxvHlO9.js} +1 -1
  17. package/.output/public/_nuxt/{PDSNX4Te.js → BKrWWV14.js} +1 -1
  18. package/.output/public/_nuxt/BN1zZw5b.js +9 -0
  19. package/.output/public/_nuxt/{Dbf8eT28.js → BPXqL9vK.js} +1 -1
  20. package/.output/public/_nuxt/{DgEa6_av.js → BUnwEAjq.js} +1 -1
  21. package/.output/public/_nuxt/{CUOS6S13.js → BVLqydCr.js} +1 -1
  22. package/.output/public/_nuxt/{CvVbKrcH.js → BWMSVSNM.js} +1 -1
  23. package/.output/public/_nuxt/{Wk7ZKG4B.js → B_r0xHVS.js} +1 -1
  24. package/.output/public/_nuxt/{DAhv9aNg.js → BakMHV79.js} +1 -1
  25. package/.output/public/_nuxt/{BDUfBn3i.js → Bd8B-yeR.js} +1 -1
  26. package/.output/public/_nuxt/{sqqg4oXL.js → BevElZaK.js} +1 -1
  27. package/.output/public/_nuxt/{B0tmRAhY.js → BfA6lfg4.js} +1 -1
  28. package/.output/public/_nuxt/{D3SJGdl4.js → Bg93Rnts.js} +1 -1
  29. package/.output/public/_nuxt/{Ck_fTH5z.js → BgABj4Ty.js} +1 -1
  30. package/.output/public/_nuxt/{B2L0-Lzp.js → BkM2KXUo.js} +1 -1
  31. package/.output/public/_nuxt/{CBJFORiZ.js → BkxRbXIj.js} +1 -1
  32. package/.output/public/_nuxt/{Bsc11YIJ.js → Bme1UkOl.js} +1 -1
  33. package/.output/public/_nuxt/{BfcMJBTf.js → BmzxRbcg.js} +1 -1
  34. package/.output/public/_nuxt/{D7fxV-UA.js → Bn0jaRxI.js} +1 -1
  35. package/.output/public/_nuxt/{C77tM5Hz.js → BoNKdx5o.js} +1 -1
  36. package/.output/public/_nuxt/{Bb2mDqKr.js → Bp3FRuEm.js} +1 -1
  37. package/.output/public/_nuxt/{BjOFxi54.js → BrUBOQ0y.js} +1 -1
  38. package/.output/public/_nuxt/{DXkFgrsT.js → BtSGUY-7.js} +1 -1
  39. package/.output/public/_nuxt/{QZYo3ErV.js → BtbpLWDs.js} +1 -1
  40. package/.output/public/_nuxt/{Bag08cIY.js → BvAfKk6C.js} +1 -1
  41. package/.output/public/_nuxt/{BOvtXn3m.js → BwEN1fJ1.js} +1 -1
  42. package/.output/public/_nuxt/{DYjxDsYC.js → C-XjxjG5.js} +1 -1
  43. package/.output/public/_nuxt/{RkNtgoTD.js → C3W_wyr9.js} +1 -1
  44. package/.output/public/_nuxt/{CNu3kken.js → C5TrTuWv.js} +3 -3
  45. package/.output/public/_nuxt/{B4mZElvM.js → C7D5Wl7T.js} +1 -1
  46. package/.output/public/_nuxt/{ZLfZolDM.js → C7fq_rHE.js} +1 -1
  47. package/.output/public/_nuxt/{B_JSV0yG.js → C8Paf_V1.js} +1 -1
  48. package/.output/public/_nuxt/{C2_7XZo0.js → CD8ZzAFC.js} +1 -1
  49. package/.output/public/_nuxt/{CTTmX4gy.js → CDTeSrLO.js} +1 -1
  50. package/.output/public/_nuxt/{CLWMETf9.js → CGHV0Y2d.js} +1 -1
  51. package/.output/public/_nuxt/{AQ86C4c2.js → CIpF9l75.js} +1 -1
  52. package/.output/public/_nuxt/{jR2xm3_t.js → CJ1rmnk4.js} +1 -1
  53. package/.output/public/_nuxt/{7_9fts7T.js → CMuzkARi.js} +1 -1
  54. package/.output/public/_nuxt/{a8Z6VC7V.js → COuZu9FO.js} +1 -1
  55. package/.output/public/_nuxt/{D7t0Dn3h.js → CX5Q0dZ8.js} +1 -1
  56. package/.output/public/_nuxt/{9_aJhhcm.js → CX_G-FHC.js} +14 -14
  57. package/.output/public/_nuxt/{C9I1Dp3S.js → Ce5_Tq63.js} +1 -1
  58. package/.output/public/_nuxt/{BtZNYmZO.js → Cf4MFOuf.js} +1 -1
  59. package/.output/public/_nuxt/{mi22nGUC.js → CgkXEZMo.js} +1 -1
  60. package/.output/public/_nuxt/{Ce89VyHE.js → CjBktNrC.js} +1 -1
  61. package/.output/public/_nuxt/{Bj_v57Zu.js → CjtjQV60.js} +1 -1
  62. package/.output/public/_nuxt/{BuGAn4f7.js → CpcrljrH.js} +1 -1
  63. package/.output/public/_nuxt/{6vX5JdHr.js → Cq33x7yV.js} +1 -1
  64. package/.output/public/_nuxt/{jxc14CqP.js → CsV7pmcT.js} +1 -1
  65. package/.output/public/_nuxt/{DTrPCv7R.js → Cu2Q4iPh.js} +1 -1
  66. package/.output/public/_nuxt/{DylyATWU.js → CyLcEDg2.js} +1 -1
  67. package/.output/public/_nuxt/{Ce_j5NtN.js → D0Kop4bS.js} +1 -1
  68. package/.output/public/_nuxt/{DCE2_MKD.js → D1Y43xM1.js} +1 -1
  69. package/.output/public/_nuxt/{499RbBSX.js → D1vqYZsL.js} +1 -1
  70. package/.output/public/_nuxt/{BjMo2tKC.js → D2rZosKf.js} +1 -1
  71. package/.output/public/_nuxt/D7jpwkRG.js +5 -0
  72. package/.output/public/_nuxt/{BFYkWpPx.js → D8NAb7VE.js} +1 -1
  73. package/.output/public/_nuxt/{CIQeRUSy.js → D8vguZKg.js} +1 -1
  74. package/.output/public/_nuxt/{Bq4_kqIp.js → DEvYVl9M.js} +1 -1
  75. package/.output/public/_nuxt/{DBWM_xs-.js → DF6Mes5z.js} +1 -1
  76. package/.output/public/_nuxt/{CGDPUNcO.js → DGq4A2Pd.js} +1 -1
  77. package/.output/public/_nuxt/{CF_eDZHu.js → DH5H1DJh.js} +1 -1
  78. package/.output/public/_nuxt/{kWnH8yJq.js → DL8knjzi.js} +1 -1
  79. package/.output/public/_nuxt/{CC8wk-N0.js → DM3bDZC6.js} +1 -1
  80. package/.output/public/_nuxt/{Ce47NgZw.js → DMAiMrNr.js} +1 -1
  81. package/.output/public/_nuxt/{HbnAkiyK.js → DMWfVJCj.js} +1 -1
  82. package/.output/public/_nuxt/{B3AG2m76.js → DMsm-RGQ.js} +1 -1
  83. package/.output/public/_nuxt/{DeewM3Wg.js → DMtrFQqi.js} +1 -1
  84. package/.output/public/_nuxt/{D1Ucra3E.js → DPZBpFOX.js} +1 -1
  85. package/.output/public/_nuxt/{DiWxW-w3.js → DVEGfqtt.js} +1 -1
  86. package/.output/public/_nuxt/{DZ-KbUZi.js → D_y2VS8k.js} +1 -1
  87. package/.output/public/_nuxt/DaNC-xl1.js +1 -0
  88. package/.output/public/_nuxt/{DZECGgZm.js → DbmGeOus.js} +1 -1
  89. package/.output/public/_nuxt/{HIGGZ_c-.js → DcLbz6DV.js} +1 -1
  90. package/.output/public/_nuxt/{B_MVJP17.js → DcR0Mmdl.js} +1 -1
  91. package/.output/public/_nuxt/{DNqm5cWU.js → DhYznn-U.js} +1 -1
  92. package/.output/public/_nuxt/DhuRRlmK.js +1 -0
  93. package/.output/public/_nuxt/{pZbe82l5.js → Drw8yQg6.js} +1 -1
  94. package/.output/public/_nuxt/{CPQRQqXU.js → DuO5wfAC.js} +1 -1
  95. package/.output/public/_nuxt/{FJTsZ5Aa.js → DuOH5jcQ.js} +1 -1
  96. package/.output/public/_nuxt/{BM5BPKlc.js → DvEsAuE9.js} +1 -1
  97. package/.output/public/_nuxt/{dUPMBJ4f.js → Dz6g_QJT.js} +1 -1
  98. package/.output/public/_nuxt/{BAbrtVp3.js → DzZpIs4W.js} +1 -1
  99. package/.output/public/_nuxt/DzzNS-K1.js +1 -0
  100. package/.output/public/_nuxt/{BwwfasRt.js → Fsw2W4TA.js} +1 -1
  101. package/.output/public/_nuxt/{CdEzDaDI.js → LwoTUb-r.js} +1 -1
  102. package/.output/public/_nuxt/{DuBtaw3j.js → OfPjZaky.js} +1 -1
  103. package/.output/public/_nuxt/{LTMoFvEY.js → P5uOaRUZ.js} +1 -1
  104. package/.output/public/_nuxt/{B3G-TIoP.js → Qo6oszaF.js} +1 -1
  105. package/.output/public/_nuxt/{DprkT7rM.js → T5UuMUxA.js} +1 -1
  106. package/.output/public/_nuxt/UY8pjaZA.js +1 -0
  107. package/.output/public/_nuxt/{CmTzxoQt.js → V9p3z39z.js} +1 -1
  108. package/.output/public/_nuxt/{5QBnDbs_.js → VACXezo0.js} +1 -1
  109. package/.output/public/_nuxt/{6sA-GK37.js → YmCeJkZ2.js} +1 -1
  110. package/.output/public/_nuxt/builds/latest.json +1 -1
  111. package/.output/public/_nuxt/builds/meta/70224ee0-4d1f-45d2-b380-2ecb18064bf1.json +1 -0
  112. package/.output/public/_nuxt/entry.DzPSf_u5.css +1 -0
  113. package/.output/public/_nuxt/fXUwH_3d.js +1 -0
  114. package/.output/public/_nuxt/{CAoQUDI4.js → opwuUqHG.js} +1 -1
  115. package/.output/public/_nuxt/{2yLW7WU0.js → opyDpgSw.js} +1 -1
  116. package/.output/public/_nuxt/{B070fjS-.js → sVV8xB9f.js} +1 -1
  117. package/.output/public/_nuxt/{C6t4kxaa.js → xa5UHCot.js} +1 -1
  118. package/.output/server/chunks/_/collect.mjs +1 -1
  119. package/.output/server/chunks/_/markers.mjs +1 -1
  120. package/.output/server/chunks/_/quarantine.mjs +1 -1
  121. package/.output/server/chunks/_/users.mjs +1 -1
  122. package/.output/server/chunks/build/Checkbox-BisdHf8n.mjs +1 -1
  123. package/.output/server/chunks/build/CodeBlock-B8BNtZAe.mjs +1 -1
  124. package/.output/server/chunks/build/DashboardSidebarToggle-C3HdHvlE.mjs +1 -1
  125. package/.output/server/chunks/build/DiagnosisPanel-BVb2LgHu.mjs +1 -1
  126. package/.output/server/chunks/build/DiagnosisResult-xVgZlfKK.mjs +1 -1
  127. package/.output/server/chunks/build/EntityLinks-Dzn73fbq.mjs +1 -1
  128. package/.output/server/chunks/build/HelpHint-plioHKA0.mjs +27 -0
  129. package/.output/server/chunks/build/NavigationMenu-RfBOyS32.mjs +1 -1
  130. package/.output/server/chunks/build/OpenInIdeLink-Jp6SzEtD.mjs +1 -1
  131. package/.output/server/chunks/build/RunReports-nuLb-Nm3.mjs +1 -1
  132. package/.output/server/chunks/build/Select-CEyw7HGK.mjs +1 -1
  133. package/.output/server/chunks/build/SelectMenu-C02Hs2_F.mjs +1 -1
  134. package/.output/server/chunks/build/Table-qZdnm9t2.mjs +1 -1
  135. package/.output/server/chunks/build/Tooltip-BI3WQErw.mjs +1 -1
  136. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs → _id_-26komi8G.mjs} +15 -8
  137. package/.output/server/chunks/build/{_id_-D7UtAIPR.mjs.map → _id_-26komi8G.mjs.map} +1 -1
  138. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs → _id_-w7YCSiiy.mjs} +2 -2
  139. package/.output/server/chunks/build/{_id_-CrGTZymJ.mjs.map → _id_-w7YCSiiy.mjs.map} +1 -1
  140. package/.output/server/chunks/build/_id_-wiULjAVc.mjs +1 -1
  141. package/.output/server/chunks/build/ai-DYhpzbqp.mjs +1 -1
  142. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  143. package/.output/server/chunks/build/{db.client-Bdqk_eYQ.mjs → db.client-DijpEH6i.mjs} +3 -1
  144. package/.output/server/chunks/build/db.client-DijpEH6i.mjs.map +1 -0
  145. package/.output/server/chunks/build/{default-DO1izI2V.mjs → default-CQa_bmAf.mjs} +2 -2
  146. package/.output/server/chunks/build/{default-DO1izI2V.mjs.map → default-CQa_bmAf.mjs.map} +1 -1
  147. package/.output/server/chunks/build/fetch-tkz5_OA-.mjs +1 -1
  148. package/.output/server/chunks/build/import-B27Sv7h5.mjs +1 -1
  149. package/.output/server/chunks/build/{index-vRwzDXLs.mjs → index-Dq6nk6OB.mjs} +367 -87
  150. package/.output/server/chunks/build/index-Dq6nk6OB.mjs.map +1 -0
  151. package/.output/server/chunks/build/isValueEqualOrExist-D4lZ8uRY.mjs +1 -1
  152. package/.output/server/chunks/build/login-hxCF06JT.mjs +1 -1
  153. package/.output/server/chunks/build/mcp-BVW1llyW.mjs +1 -1
  154. package/.output/server/chunks/build/server.mjs +6 -6
  155. package/.output/server/chunks/build/settings-metadata-DnAK4Rzg.mjs +1 -1
  156. package/.output/server/chunks/build/storage-zN92cA9q.mjs +1 -1
  157. package/.output/server/chunks/build/test-functions-DVRJgiWo.mjs +1 -1
  158. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs → useCopyRich-BM9GTjJi.mjs} +64 -18
  159. package/.output/server/chunks/build/{useCopyRich-CZxJ7IY_.mjs.map → useCopyRich-BM9GTjJi.mjs.map} +1 -1
  160. package/.output/server/chunks/nitro/nitro.mjs +1037 -733
  161. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  162. package/.output/server/chunks/routes/__piwi/session.get.mjs +1 -1
  163. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs +88 -0
  164. package/.output/server/chunks/routes/api/ai/step-resolution.post.mjs.map +1 -0
  165. package/.output/server/chunks/routes/api/analytics/_widget_.get.mjs +1 -1
  166. package/.output/server/chunks/routes/api/auth/change-password.post.mjs +1 -1
  167. package/.output/server/chunks/routes/api/auth/forgot-password.post.mjs +1 -1
  168. package/.output/server/chunks/routes/api/auth/login.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/auth/logout.post.mjs +1 -1
  170. package/.output/server/chunks/routes/api/auth/me.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/auth/oauth/_provider/callback.get.mjs +1 -1
  172. package/.output/server/chunks/routes/api/auth/oauth/_provider/login.get.mjs +1 -1
  173. package/.output/server/chunks/routes/api/auth/oauth/_provider/unlink.post.mjs +1 -1
  174. package/.output/server/chunks/routes/api/auth/reset-password.post.mjs +1 -1
  175. package/.output/server/chunks/routes/api/auth/send-verify-email.post.mjs +1 -1
  176. package/.output/server/chunks/routes/api/auth/setup.get.mjs +1 -1
  177. package/.output/server/chunks/routes/api/auth/setup.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/auth/verify-email.get.mjs +1 -1
  179. package/.output/server/chunks/routes/api/channels/_id/test.post.mjs +1 -1
  180. package/.output/server/chunks/routes/api/channels/_id_.delete.mjs +1 -1
  181. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/approve.post.mjs +1 -1
  182. package/.output/server/chunks/routes/api/cluster-merge-suggestions/_id/reject.post.mjs +1 -1
  183. package/.output/server/chunks/routes/api/desktop/import-local.post.mjs +1 -1
  184. package/.output/server/chunks/routes/api/failure-clusters/_id/base-commit.patch.mjs +1 -1
  185. package/.output/server/chunks/routes/api/failure-clusters/_id/branches.get.mjs +1 -1
  186. package/.output/server/chunks/routes/api/failure-clusters/_id/commit-diff.get.mjs +1 -1
  187. package/.output/server/chunks/routes/api/failure-clusters/_id/commits.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/failure-clusters/_id/context.get.mjs +1 -1
  189. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose/stream.post.mjs +1 -1
  190. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnose.post.mjs +1 -1
  191. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnoses.get.mjs +1 -1
  192. package/.output/server/chunks/routes/api/failure-clusters/_id/diagnosis.get.mjs +1 -1
  193. package/.output/server/chunks/routes/api/failure-clusters/_id/export.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/failure-clusters/_id/extract-cases.post.mjs +1 -1
  195. package/.output/server/chunks/routes/api/failure-clusters/_id/fix-plan.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/failure-clusters/_id/status.patch.mjs +1 -1
  197. package/.output/server/chunks/routes/api/failure-clusters/_id_.get.mjs +1 -1
  198. package/.output/server/chunks/routes/api/failure-diagnoses/_id/feedback.patch.mjs +1 -1
  199. package/.output/server/chunks/routes/api/files/_...path_.get.mjs +1 -1
  200. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  201. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  202. package/.output/server/chunks/routes/api/index.get2.mjs +1 -1
  203. package/.output/server/chunks/routes/api/index.get3.mjs +1 -1
  204. package/.output/server/chunks/routes/api/index.get4.mjs +1 -1
  205. package/.output/server/chunks/routes/api/index.get5.mjs +1 -1
  206. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  207. package/.output/server/chunks/routes/api/index.post2.mjs +1 -1
  208. package/.output/server/chunks/routes/api/index.post3.mjs +1 -1
  209. package/.output/server/chunks/routes/api/index.post4.mjs +1 -1
  210. package/.output/server/chunks/routes/api/index.post5.mjs +1 -1
  211. package/.output/server/chunks/routes/api/index.post6.mjs +1 -1
  212. package/.output/server/chunks/routes/api/links/_id/refresh.post.mjs +1 -1
  213. package/.output/server/chunks/routes/api/links/_id_.delete.mjs +1 -1
  214. package/.output/server/chunks/routes/api/links/_id_.patch.mjs +1 -1
  215. package/.output/server/chunks/routes/api/markers/_id_.delete.mjs +1 -1
  216. package/.output/server/chunks/routes/api/markers/_id_.put.mjs +1 -1
  217. package/.output/server/chunks/routes/api/notifications/stream.get.mjs +1 -1
  218. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs +63 -0
  219. package/.output/server/chunks/routes/api/projects/_id/ai-steps.get.mjs.map +1 -0
  220. package/.output/server/chunks/routes/api/projects/_id/cluster-merge-suggestions.get.mjs +1 -1
  221. package/.output/server/chunks/routes/api/projects/_id/failure-clusters.get.mjs +1 -1
  222. package/.output/server/chunks/routes/api/projects/_id/flaky-classify.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/projects/_id/flaky-tests.get.mjs +1 -1
  224. package/.output/server/chunks/routes/api/projects/_id/latest-run.get.mjs +1 -1
  225. package/.output/server/chunks/routes/api/projects/_id/markers.get.mjs +1 -1
  226. package/.output/server/chunks/routes/api/projects/_id/markers.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/projects/_id/members.get.mjs +1 -1
  228. package/.output/server/chunks/routes/api/projects/_id/members.put.mjs +1 -1
  229. package/.output/server/chunks/routes/api/projects/_id/performance.get.mjs +1 -1
  230. package/.output/server/chunks/routes/api/projects/_id/quarantine/_testCaseId_.delete.mjs +1 -1
  231. package/.output/server/chunks/routes/api/projects/_id/quarantine.get.mjs +1 -1
  232. package/.output/server/chunks/routes/api/projects/_id/quarantine.post.mjs +1 -1
  233. package/.output/server/chunks/routes/api/projects/_id/slow-tests.get.mjs +1 -1
  234. package/.output/server/chunks/routes/api/projects/_id/spec-health.get.mjs +1 -1
  235. package/.output/server/chunks/routes/api/projects/_id/test-cases.get.mjs +1 -1
  236. package/.output/server/chunks/routes/api/projects/_id/test-functions/extract.post.mjs +1 -1
  237. package/.output/server/chunks/routes/api/projects/_id/test-functions/validate-proposal.post.mjs +1 -1
  238. package/.output/server/chunks/routes/api/projects/_id/test-functions.get.mjs +1 -1
  239. package/.output/server/chunks/routes/api/projects/_id/test-functions.post.mjs +1 -1
  240. package/.output/server/chunks/routes/api/projects/_id/timeout-opportunities.get.mjs +1 -1
  241. package/.output/server/chunks/routes/api/projects/_id_.delete.mjs +1 -1
  242. package/.output/server/chunks/routes/api/projects/_id_.get.mjs +1 -1
  243. package/.output/server/chunks/routes/api/projects/_id_.put.mjs +1 -1
  244. package/.output/server/chunks/routes/api/projects/menu.get.mjs +1 -1
  245. package/.output/server/chunks/routes/api/projects/overview.get.mjs +1 -1
  246. package/.output/server/chunks/routes/api/projects.get.mjs +1 -1
  247. package/.output/server/chunks/routes/api/search.get.mjs +1 -1
  248. package/.output/server/chunks/routes/api/settings/ai/limits.get.mjs +1 -1
  249. package/.output/server/chunks/routes/api/settings/ai/limits.put.mjs +1 -1
  250. package/.output/server/chunks/routes/api/settings/ai/test.post.mjs +1 -1
  251. package/.output/server/chunks/routes/api/settings/ai/usage.get.mjs +1 -1
  252. package/.output/server/chunks/routes/api/settings/ai.get.mjs +1 -1
  253. package/.output/server/chunks/routes/api/settings/ai.put.mjs +1 -1
  254. package/.output/server/chunks/routes/api/settings/pr-feedback.get.mjs +1 -1
  255. package/.output/server/chunks/routes/api/settings/pr-feedback.put.mjs +1 -1
  256. package/.output/server/chunks/routes/api/settings/smtp/test.post.mjs +1 -1
  257. package/.output/server/chunks/routes/api/settings/smtp.get.mjs +1 -1
  258. package/.output/server/chunks/routes/api/settings/timeout-hygiene.get.mjs +1 -1
  259. package/.output/server/chunks/routes/api/settings/timeout-hygiene.put.mjs +1 -1
  260. package/.output/server/chunks/routes/api/settings/wasted-waits.get.mjs +1 -1
  261. package/.output/server/chunks/routes/api/settings/wasted-waits.put.mjs +1 -1
  262. package/.output/server/chunks/routes/api/setup-status.get.mjs +1 -1
  263. package/.output/server/chunks/routes/api/stream.get.mjs +1 -1
  264. package/.output/server/chunks/routes/api/subscriptions/_id_.delete.mjs +1 -1
  265. package/.output/server/chunks/routes/api/subscriptions/_id_.patch.mjs +1 -1
  266. package/.output/server/chunks/routes/api/tags/_id_.delete.mjs +1 -1
  267. package/.output/server/chunks/routes/api/tags/_id_.put.mjs +1 -1
  268. package/.output/server/chunks/routes/api/test-cases/_id/history.get.mjs +1 -1
  269. package/.output/server/chunks/routes/api/test-cases/_id/stability-trend.get.mjs +1 -1
  270. package/.output/server/chunks/routes/api/test-cases/_id_.get.mjs +1 -1
  271. package/.output/server/chunks/routes/api/test-functions/_id_.delete.mjs +1 -1
  272. package/.output/server/chunks/routes/api/test-functions/_id_.put.mjs +1 -1
  273. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnose.post.mjs +1 -1
  274. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis-context.get.mjs +1 -1
  275. package/.output/server/chunks/routes/api/test-run-cases/_id/diagnosis.get.mjs +1 -1
  276. package/.output/server/chunks/routes/api/test-run-cases/_id/export.get.mjs +1 -1
  277. package/.output/server/chunks/routes/api/test-run-cases/_id/traces.get.mjs +1 -1
  278. package/.output/server/chunks/routes/api/test-run-cases/_id_.get.mjs +1 -1
  279. package/.output/server/chunks/routes/api/test-runs/_id/begin.post.mjs +1 -1
  280. package/.output/server/chunks/routes/api/test-runs/_id/case-files.post.mjs +1 -1
  281. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/dom-snapshot.get.mjs +1 -1
  282. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/environment-diff.get.mjs +1 -1
  283. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-healing.get.mjs +1 -1
  284. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/locator-pick.post.mjs +1 -1
  285. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network-body.get.mjs +1 -1
  286. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-network.get.mjs +1 -1
  287. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/trace-stacks.get.mjs +1 -1
  288. package/.output/server/chunks/routes/api/test-runs/_id/cases/_caseId/visual-diff.get.mjs +1 -1
  289. package/.output/server/chunks/routes/api/test-runs/_id/events.post.mjs +1 -1
  290. package/.output/server/chunks/routes/api/test-runs/_id/failure-groups.get.mjs +1 -1
  291. package/.output/server/chunks/routes/api/test-runs/_id/finish.post.mjs +1 -1
  292. package/.output/server/chunks/routes/api/test-runs/_id/gate.post.mjs +1 -1
  293. package/.output/server/chunks/routes/api/test-runs/_id/heartbeat.post.mjs +1 -1
  294. package/.output/server/chunks/routes/api/test-runs/_id/insights.get.mjs +1 -1
  295. package/.output/server/chunks/routes/api/test-runs/_id/network-requests.get.mjs +1 -1
  296. package/.output/server/chunks/routes/api/test-runs/_id/regression-context.get.mjs +1 -1
  297. package/.output/server/chunks/routes/api/test-runs/_id/stream.get.mjs +1 -1
  298. package/.output/server/chunks/routes/api/test-runs/_id/summary.get.mjs +1 -1
  299. package/.output/server/chunks/routes/api/test-runs/_id_.delete.mjs +1 -1
  300. package/.output/server/chunks/routes/api/test-runs/_id_.get.mjs +1 -1
  301. package/.output/server/chunks/routes/api/test-runs/_id_.patch.mjs +1 -1
  302. package/.output/server/chunks/routes/api/test-runs/import/check.post.mjs +1 -1
  303. package/.output/server/chunks/routes/api/test-runs/import.post.mjs +1 -1
  304. package/.output/server/chunks/routes/api/test-runs/recent.get.mjs +1 -1
  305. package/.output/server/chunks/routes/api/test-runs/setup.post.mjs +1 -1
  306. package/.output/server/chunks/routes/api/test-runs/start.post.mjs +1 -1
  307. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs +3 -1
  308. package/.output/server/chunks/routes/api/test-runs/submit.post.mjs.map +1 -1
  309. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs +2 -1
  310. package/.output/server/chunks/routes/api/test-runs/upload.post.mjs.map +1 -1
  311. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs +2 -1
  312. package/.output/server/chunks/routes/api/tests/cleanup.delete.mjs.map +1 -1
  313. package/.output/server/chunks/routes/api/traces/check.post.mjs +1 -1
  314. package/.output/server/chunks/routes/api/users/_id/api-keys/_keyId_.delete.mjs +1 -1
  315. package/.output/server/chunks/routes/api/users/_id/index.get.mjs +1 -1
  316. package/.output/server/chunks/routes/api/users/_id/index.post.mjs +1 -1
  317. package/.output/server/chunks/routes/api/users/_id/invite.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/users/_id/projects.get.mjs +1 -1
  319. package/.output/server/chunks/routes/api/users/_id/projects.put.mjs +1 -1
  320. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  321. package/.output/server/chunks/routes/api/users/_id_.patch.mjs +1 -1
  322. package/.output/server/chunks/routes/api/version.get.mjs +1 -1
  323. package/.output/server/chunks/routes/mcp.post.mjs +1 -1
  324. package/.output/server/chunks/routes/renderer.mjs +1 -1
  325. package/.output/server/database/migrations/0045_productive_stingray.sql +1 -0
  326. package/.output/server/database/migrations/meta/0045_snapshot.json +3779 -0
  327. package/.output/server/database/migrations/meta/_journal.json +7 -0
  328. package/.output/server/database/migrations-pg/0046_gorgeous_hercules.sql +1 -0
  329. package/.output/server/database/migrations-pg/meta/0046_snapshot.json +4486 -0
  330. package/.output/server/database/migrations-pg/meta/_journal.json +7 -0
  331. package/.output/server/index.mjs +1 -1
  332. package/.output/server/package.json +1 -1
  333. package/package.json +1 -1
  334. package/.output/public/_nuxt/BNyTWIad.js +0 -9
  335. package/.output/public/_nuxt/BVyjw9Bi.js +0 -1
  336. package/.output/public/_nuxt/BZOykMLD.js +0 -1
  337. package/.output/public/_nuxt/CEai-PWF.js +0 -1
  338. package/.output/public/_nuxt/CYhm2FBS.js +0 -5
  339. package/.output/public/_nuxt/CfhOanaF.js +0 -1
  340. package/.output/public/_nuxt/Cz7SCzdW.js +0 -1
  341. package/.output/public/_nuxt/DFfqRQxk.js +0 -1
  342. package/.output/public/_nuxt/builds/meta/6d1766a0-0aba-46b8-9d97-7dd174130359.json +0 -1
  343. package/.output/public/_nuxt/eT2oObCh.js +0 -1
  344. package/.output/public/_nuxt/entry.D_eWXrnD.css +0 -1
  345. package/.output/server/chunks/build/db.client-Bdqk_eYQ.mjs.map +0 -1
  346. package/.output/server/chunks/build/index-vRwzDXLs.mjs.map +0 -1
@@ -1 +1 @@
1
- import{_ as ut,a as dt}from"./DTrPCv7R.js";import{_ as mt,a as pt}from"./CfhOanaF.js";import{_ as _t}from"./pZbe82l5.js";import{_ as ft,a as gt}from"./2yLW7WU0.js";import{d as yt,e as xt,b as bt,c as l,j as o,g as s,F as R,D as vt,o as a,i as c,E as ht,m as d,y as N,f as m,_ as kt,v as _,t as y,k as i,G as jt,h as P,r as x,M as Rt}from"./CNu3kken.js";import{_ as $t}from"./Ce89VyHE.js";import{_ as Tt}from"./CdEzDaDI.js";import{_ as Ct}from"./6vX5JdHr.js";import{_ as Nt}from"./5QBnDbs_.js";import{_ as Pt}from"./kWnH8yJq.js";import{_ as Dt}from"./D3SJGdl4.js";import{_ as Ut}from"./DZECGgZm.js";import{_ as Ft}from"./DgEa6_av.js";import{_ as St}from"./oSLbl-p0.js";import{_ as Bt}from"./B070fjS-.js";import{_ as Lt}from"./Wk7ZKG4B.js";import{_ as Kt}from"./roaTZkYi.js";import{p as Vt,i as b}from"./DeewM3Wg.js";import{u as w}from"./DprkT7rM.js";import{o as wt,s as D}from"./DGnQ69wW.js";import"./BZFiz2UB.js";import"./BjaRappk.js";import"./FJTsZ5Aa.js";import"./D-c8ZSws.js";import"./CmTzxoQt.js";import"./CF_eDZHu.js";import"./DZ-KbUZi.js";import"./B0tmRAhY.js";import"./BM5BPKlc.js";import"./BVyjw9Bi.js";import"./B3AG2m76.js";const zt={class:"flex flex-wrap items-center gap-3 mb-4"},Et={key:0,class:"flex flex-wrap items-center gap-2"},Ht={class:"text-sm text-muted shrink-0 inline-flex items-center gap-1"},It=["onClick"],Mt={class:"flex flex-col gap-1"},Ot={class:"flex items-center gap-2"},At={key:0,class:"flex flex-wrap gap-1"},qt={key:0,class:"text-xs text-gray-600 italic"},Gt={key:1},Qt={key:0,class:"text-xs text-gray-600"},Zt={key:1,class:"text-xs text-gray-600 italic"},Jt={key:0,class:"flex items-center gap-1 flex-wrap"},Wt={key:0,class:"text-xs font-medium bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded"},Xt={key:1,class:"text-xs text-gray-500"},Yt={key:1,class:"text-xs text-gray-600 italic"},te={key:1,class:"text-xs text-gray-600 italic"},ee={key:1,class:"text-xs text-gray-600 italic"},ae={class:"flex justify-end gap-2"},se={key:1,class:"space-y-2","aria-busy":"true"},oe={key:2,class:"text-center py-12 text-gray-500"},ne={class:"text-xs text-gray-400 max-w-sm"},le={class:"flex w-full justify-end gap-2"},ze=yt({__name:"index",setup(re){xt({title:"Projects — Piwi Dashboard"});const{data:v,refresh:U,status:z}=w("/api/projects",{key:"projects",lazy:!0,default:()=>[]},"$6DHNZL9pIE"),{data:E,refresh:H}=w("/api/tags",{lazy:!0},"$FLI1EBmEg_"),F=bt(),$=P(()=>E.value?.tags||[]),I=P(()=>z.value==="pending"&&!v.value?.length),h=x(""),u=x([]),S=P(()=>{let n=v.value||[];if(h.value.trim()){const e=h.value.trim().toLowerCase();n=n.filter(p=>(p.label||p.name).toLowerCase().includes(e)||p.name.toLowerCase().includes(e))}return u.value.length>0&&(n=n.filter(e=>u.value.some(p=>(e.tags||[]).some(C=>C.id===p)))),n});function M(n){const e=u.value.indexOf(n);e===-1?u.value.push(n):u.value.splice(e,1)}function O(n){return u.value.includes(n)}const f=x(!1),A=wt({name:D().min(1,"Project name is required").max(100),label:D().optional(),description:D().optional()}),r=Rt({name:"",label:"",description:""}),k=x([]),T=x(!1);async function q(){if(r.name?.trim())try{T.value=!0,await $fetch("/api/projects",{method:"POST",body:{name:r.name.trim(),label:r.label?.trim()||null,description:r.description?.trim()||null,tagIds:k.value.map(n=>n.id)}}),F.add({title:"Project created",description:`Project "${r.name}" has been created`,color:"success"}),f.value=!1,r.name="",r.label="",r.description="",k.value=[],await U()}catch(n){const e=n&&typeof n=="object"&&"data"in n?n.data?.message:void 0;F.add({title:"Failed to create project",description:e||"An error occurred",color:"error"})}finally{T.value=!1}}const G=[{header:"Project",columns:[{accessorKey:"name",header:b("Name")},{accessorKey:"totalRuns",header:b("Runs")}]},{accessorKey:"latestRunData",header:"Latest run",columns:[{accessorKey:"latestRun",header:b("Date")},{accessorKey:"branch",header:"Branch"},{accessorKey:"duration",header:b("Duration")},{accessorKey:"status",header:b("Status")},{accessorKey:"testRatio",header:"Test status"},{accessorKey:"report",header:"Reports"}]},{accessorKey:"actions",header:"Project actions"}];return(n,e)=>{const p=ut,C=dt,B=mt,Q=_t,Z=gt,J=ht,L=$t,g=kt,K=jt,W=Tt,X=Ct,Y=Nt,tt=Pt,et=Dt,at=Ut,V=Ft,st=pt,ot=St,nt=ft,lt=Bt,rt=Lt,it=Kt,ct=vt;return a(),l(R,null,[o(nt,{id:"projects"},{header:s(()=>[o(Z,null,{leading:s(()=>[o(p),o(C,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects"}]})]),right:s(()=>[o(Q,{actions:[{label:"New project",icon:"i-lucide-plus",onClick:()=>f.value=!0},{label:"Refresh",icon:"i-lucide-refresh-cw",variant:"outline",onClick:()=>i(U)()}]},{leading:s(()=>[o(B,{topic:"projects.table",size:"sm"})]),_:1},8,["actions"])]),_:1})]),body:s(()=>[c("div",zt,[o(J,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=t=>h.value=t),icon:"i-lucide-search",placeholder:"Search projects by name...",class:"min-w-48 flex-1",ui:{base:"w-full"}},null,8,["modelValue"]),$.value.length>0?(a(),l("div",Et,[c("span",Ht,[e[10]||(e[10]=d(" Filter by tag (any match): ",-1)),o(B,{topic:"projects.tag-filter"})]),(a(!0),l(R,null,N($.value,t=>(a(),l("button",{key:t.id,type:"button",class:"cursor-pointer focus:outline-none",onClick:j=>M(t.id)},[o(L,{text:t.text,color:t.color,variant:O(t.id)?"solid":"outline"},null,8,["text","color","variant"])],8,It))),128)),u.value.length>0?(a(),m(g,{key:0,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear filters",onClick:e[1]||(e[1]=t=>u.value=[])})):_("",!0)])):_("",!0)]),S.value.length>0?(a(),m(at,{key:0,"min-width":"60rem",bleed:!1},{default:s(()=>[o(et,{data:S.value,columns:G,ui:{base:"table-fixed border-separate border-spacing-0",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"name-cell":s(({row:t})=>[c("div",Mt,[c("div",Ot,[o(K,{to:`/projects/${t.original.id}`,class:"text-primary hover:underline font-medium"},{default:s(()=>[d(y(t.original.label||t.original.name),1)]),_:2},1032,["to"])]),t.original.tags?.length?(a(),l("div",At,[(a(!0),l(R,null,N(t.original.tags,j=>(a(),m(L,{key:j.id,text:j.text,color:j.color},null,8,["text","color"]))),128))])):_("",!0)])]),"totalRuns-cell":s(({row:t})=>[t.original.totalRuns===0?(a(),l("span",qt,"No data")):(a(),l("span",Gt,y(t.original.totalRuns)+" runs",1))]),"latestRun-cell":s(({row:t})=>[t.original.latestRun?(a(),l("span",Qt,y(("prettyDateFormat"in n?n.prettyDateFormat:i(Vt))(t.original.latestRun.startTime)),1)):(a(),l("span",Zt,"No data"))]),"branch-cell":s(({row:t})=>[t.original.latestRun?.metadata?.scm?(a(),l("div",Jt,[t.original.latestRun.metadata.scm.branch?(a(),l("span",Wt,y(t.original.latestRun.metadata.scm.branch),1)):_("",!0),t.original.latestRun.metadata.scm.commit?(a(),l("code",Xt,y(t.original.latestRun.metadata.scm.commit.substring(0,7)),1)):_("",!0)])):_("",!0)]),"duration-cell":s(({row:t})=>[t.original.latestRun?.duration!=null?(a(),m(W,{key:0,ms:t.original.latestRun.duration,class:"text-sm text-gray-600"},null,8,["ms"])):(a(),l("span",Yt,"No data"))]),"status-cell":s(({row:t})=>[t.original.latestRun?(a(),m(X,{key:0,status:t.original.latestRun.status},null,8,["status"])):(a(),l("span",te,"No data"))]),"testRatio-cell":s(({row:t})=>[t.original.latestRun?(a(),m(Y,{key:0,passed:t.original.latestRun.passedTests,failed:t.original.latestRun.failedTests,skipped:t.original.latestRun.skippedTests,flaky:t.original.latestRun.flakyTests,"did-not-run":t.original.latestRun.didNotRunTests??0,total:t.original.latestRun.totalTests},null,8,["passed","failed","skipped","flaky","did-not-run","total"])):(a(),l("span",ee,"No data"))]),"report-cell":s(({row:t})=>[t.original.latestRun?(a(),m(tt,{key:0,reports:t.original.latestRun.reports},null,8,["reports"])):_("",!0)]),"actions-header":s(()=>[...e[11]||(e[11]=[c("div",{class:"text-right"},"Project actions",-1)])]),"actions-cell":s(({row:t})=>[c("div",ae,[o(g,{to:`/projects/${t.original.id}`,size:"sm",variant:"outline"},{default:s(()=>[...e[12]||(e[12]=[d("View details",-1)])]),_:1},8,["to"]),o(g,{to:`/projects/${t.original.id}/edit`,size:"sm",variant:"ghost",icon:"i-lucide-pencil"},null,8,["to"])])]),_:1},8,["data"])]),_:1})):I.value?(a(),l("div",se,[e[13]||(e[13]=c("span",{class:"sr-only",role:"status"},"Loading projects…",-1)),o(V,{class:"h-10 w-full rounded-lg"}),(a(),l(R,null,N(6,t=>o(V,{key:t,class:"h-14 w-full rounded-lg"})),64))])):i(v)&&i(v).length>0?(a(),l("div",oe,[...e[14]||(e[14]=[c("p",{class:"text-lg mb-2"},"No projects match your search",-1),c("p",{class:"text-sm"},"Try adjusting your search or filters",-1)])])):(a(),m(ot,{key:3,icon:"i-lucide-rocket",text:"No projects yet"},{default:s(()=>[c("p",ne,[e[17]||(e[17]=d(" Projects are created automatically once the reporter submits its first run — see the ",-1)),o(K,{to:"/",class:"text-primary hover:underline"},{default:s(()=>[...e[15]||(e[15]=[d("home page",-1)])]),_:1}),e[18]||(e[18]=d(" for a copy-paste setup snippet, or the ",-1)),o(st,{to:"reporter","no-icon":"",class:"text-primary hover:underline"},{default:s(()=>[...e[16]||(e[16]=[d("reporter docs",-1)])]),_:1}),e[19]||(e[19]=d(". ",-1))]),o(g,{icon:"i-lucide-plus",label:"New project",variant:"ghost",size:"sm",class:"mt-2",onClick:e[2]||(e[2]=t=>f.value=!0)})]),_:1}))]),_:1}),o(ct,null,{default:s(()=>[o(it,{open:f.value,title:"Create new project","onUpdate:open":e[9]||(e[9]=t=>f.value=t)},{body:s(()=>[o(rt,{schema:i(A),state:i(r)},{default:s(()=>[o(lt,{mode:"create",name:i(r).name,"onUpdate:name":e[3]||(e[3]=t=>i(r).name=t),label:i(r).label,"onUpdate:label":e[4]||(e[4]=t=>i(r).label=t),description:i(r).description,"onUpdate:description":e[5]||(e[5]=t=>i(r).description=t),tags:k.value,"onUpdate:tags":e[6]||(e[6]=t=>k.value=t),"all-tags":$.value,onTagCreated:e[7]||(e[7]=t=>i(H)())},null,8,["name","label","description","tags","all-tags"])]),_:1},8,["schema","state"])]),footer:s(()=>[c("div",le,[o(g,{color:"neutral",variant:"ghost",label:"Cancel",onClick:e[8]||(e[8]=t=>f.value=!1)}),o(g,{label:"Create project",icon:"i-lucide-plus",loading:T.value,onClick:q},null,8,["loading"])])]),_:1},8,["open"])]),_:1})],64)}}});export{ze as default};
1
+ import{_ as ut,a as dt}from"./Cu2Q4iPh.js";import{_ as mt,a as pt}from"./B69RP95P.js";import{_ as _t}from"./Drw8yQg6.js";import{_ as ft,a as gt}from"./opyDpgSw.js";import{d as yt,e as xt,b as bt,c as l,j as o,g as s,F as R,D as vt,o as a,i as c,E as ht,m as d,y as N,f as m,_ as kt,v as _,t as y,k as i,G as jt,h as P,r as x,M as Rt}from"./C5TrTuWv.js";import{_ as $t}from"./CjBktNrC.js";import{_ as Tt}from"./LwoTUb-r.js";import{_ as Ct}from"./Cq33x7yV.js";import{_ as Nt}from"./VACXezo0.js";import{_ as Pt}from"./DL8knjzi.js";import{_ as Dt}from"./Bg93Rnts.js";import{_ as Ut}from"./DbmGeOus.js";import{_ as Ft}from"./BUnwEAjq.js";import{_ as St}from"./BFxvHlO9.js";import{_ as Bt}from"./sVV8xB9f.js";import{_ as Lt}from"./B_r0xHVS.js";import{_ as Kt}from"./6Z_ZwH8I.js";import{p as Vt,i as b}from"./DMtrFQqi.js";import{u as w}from"./T5UuMUxA.js";import{o as wt,s as D}from"./DGnQ69wW.js";import"./BCGljaM0.js";import"./BjaRappk.js";import"./DuOH5jcQ.js";import"./D-c8ZSws.js";import"./V9p3z39z.js";import"./DH5H1DJh.js";import"./D_y2VS8k.js";import"./BfA6lfg4.js";import"./DvEsAuE9.js";import"./DaNC-xl1.js";import"./DMsm-RGQ.js";const zt={class:"flex flex-wrap items-center gap-3 mb-4"},Et={key:0,class:"flex flex-wrap items-center gap-2"},Ht={class:"text-sm text-muted shrink-0 inline-flex items-center gap-1"},It=["onClick"],Mt={class:"flex flex-col gap-1"},Ot={class:"flex items-center gap-2"},At={key:0,class:"flex flex-wrap gap-1"},qt={key:0,class:"text-xs text-gray-600 italic"},Gt={key:1},Qt={key:0,class:"text-xs text-gray-600"},Zt={key:1,class:"text-xs text-gray-600 italic"},Jt={key:0,class:"flex items-center gap-1 flex-wrap"},Wt={key:0,class:"text-xs font-medium bg-gray-100 dark:bg-gray-800 px-1.5 py-0.5 rounded"},Xt={key:1,class:"text-xs text-gray-500"},Yt={key:1,class:"text-xs text-gray-600 italic"},te={key:1,class:"text-xs text-gray-600 italic"},ee={key:1,class:"text-xs text-gray-600 italic"},ae={class:"flex justify-end gap-2"},se={key:1,class:"space-y-2","aria-busy":"true"},oe={key:2,class:"text-center py-12 text-gray-500"},ne={class:"text-xs text-gray-400 max-w-sm"},le={class:"flex w-full justify-end gap-2"},ze=yt({__name:"index",setup(re){xt({title:"Projects — Piwi Dashboard"});const{data:v,refresh:U,status:z}=w("/api/projects",{key:"projects",lazy:!0,default:()=>[]},"$6DHNZL9pIE"),{data:E,refresh:H}=w("/api/tags",{lazy:!0},"$FLI1EBmEg_"),F=bt(),$=P(()=>E.value?.tags||[]),I=P(()=>z.value==="pending"&&!v.value?.length),h=x(""),u=x([]),S=P(()=>{let n=v.value||[];if(h.value.trim()){const e=h.value.trim().toLowerCase();n=n.filter(p=>(p.label||p.name).toLowerCase().includes(e)||p.name.toLowerCase().includes(e))}return u.value.length>0&&(n=n.filter(e=>u.value.some(p=>(e.tags||[]).some(C=>C.id===p)))),n});function M(n){const e=u.value.indexOf(n);e===-1?u.value.push(n):u.value.splice(e,1)}function O(n){return u.value.includes(n)}const f=x(!1),A=wt({name:D().min(1,"Project name is required").max(100),label:D().optional(),description:D().optional()}),r=Rt({name:"",label:"",description:""}),k=x([]),T=x(!1);async function q(){if(r.name?.trim())try{T.value=!0,await $fetch("/api/projects",{method:"POST",body:{name:r.name.trim(),label:r.label?.trim()||null,description:r.description?.trim()||null,tagIds:k.value.map(n=>n.id)}}),F.add({title:"Project created",description:`Project "${r.name}" has been created`,color:"success"}),f.value=!1,r.name="",r.label="",r.description="",k.value=[],await U()}catch(n){const e=n&&typeof n=="object"&&"data"in n?n.data?.message:void 0;F.add({title:"Failed to create project",description:e||"An error occurred",color:"error"})}finally{T.value=!1}}const G=[{header:"Project",columns:[{accessorKey:"name",header:b("Name")},{accessorKey:"totalRuns",header:b("Runs")}]},{accessorKey:"latestRunData",header:"Latest run",columns:[{accessorKey:"latestRun",header:b("Date")},{accessorKey:"branch",header:"Branch"},{accessorKey:"duration",header:b("Duration")},{accessorKey:"status",header:b("Status")},{accessorKey:"testRatio",header:"Test status"},{accessorKey:"report",header:"Reports"}]},{accessorKey:"actions",header:"Project actions"}];return(n,e)=>{const p=ut,C=dt,B=mt,Q=_t,Z=gt,J=ht,L=$t,g=kt,K=jt,W=Tt,X=Ct,Y=Nt,tt=Pt,et=Dt,at=Ut,V=Ft,st=pt,ot=St,nt=ft,lt=Bt,rt=Lt,it=Kt,ct=vt;return a(),l(R,null,[o(nt,{id:"projects"},{header:s(()=>[o(Z,null,{leading:s(()=>[o(p),o(C,{items:[{label:"Home",icon:"i-lucide-house",to:"/"},{label:"Projects"}]})]),right:s(()=>[o(Q,{actions:[{label:"New project",icon:"i-lucide-plus",onClick:()=>f.value=!0},{label:"Refresh",icon:"i-lucide-refresh-cw",variant:"outline",onClick:()=>i(U)()}]},{leading:s(()=>[o(B,{topic:"projects.table",size:"sm"})]),_:1},8,["actions"])]),_:1})]),body:s(()=>[c("div",zt,[o(J,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=t=>h.value=t),icon:"i-lucide-search",placeholder:"Search projects by name...",class:"min-w-48 flex-1",ui:{base:"w-full"}},null,8,["modelValue"]),$.value.length>0?(a(),l("div",Et,[c("span",Ht,[e[10]||(e[10]=d(" Filter by tag (any match): ",-1)),o(B,{topic:"projects.tag-filter"})]),(a(!0),l(R,null,N($.value,t=>(a(),l("button",{key:t.id,type:"button",class:"cursor-pointer focus:outline-none",onClick:j=>M(t.id)},[o(L,{text:t.text,color:t.color,variant:O(t.id)?"solid":"outline"},null,8,["text","color","variant"])],8,It))),128)),u.value.length>0?(a(),m(g,{key:0,size:"xs",variant:"ghost",color:"neutral",icon:"i-lucide-x",label:"Clear filters",onClick:e[1]||(e[1]=t=>u.value=[])})):_("",!0)])):_("",!0)]),S.value.length>0?(a(),m(at,{key:0,"min-width":"60rem",bleed:!1},{default:s(()=>[o(et,{data:S.value,columns:G,ui:{base:"table-fixed border-separate border-spacing-0",thead:"[&>tr]:bg-elevated/50 [&>tr]:after:content-none",tbody:"[&>tr]:last:[&>td]:border-b-0",th:"first:rounded-l-lg last:rounded-r-lg border-y border-default first:border-l last:border-r",td:"border-b border-default"}},{"name-cell":s(({row:t})=>[c("div",Mt,[c("div",Ot,[o(K,{to:`/projects/${t.original.id}`,class:"text-primary hover:underline font-medium"},{default:s(()=>[d(y(t.original.label||t.original.name),1)]),_:2},1032,["to"])]),t.original.tags?.length?(a(),l("div",At,[(a(!0),l(R,null,N(t.original.tags,j=>(a(),m(L,{key:j.id,text:j.text,color:j.color},null,8,["text","color"]))),128))])):_("",!0)])]),"totalRuns-cell":s(({row:t})=>[t.original.totalRuns===0?(a(),l("span",qt,"No data")):(a(),l("span",Gt,y(t.original.totalRuns)+" runs",1))]),"latestRun-cell":s(({row:t})=>[t.original.latestRun?(a(),l("span",Qt,y(("prettyDateFormat"in n?n.prettyDateFormat:i(Vt))(t.original.latestRun.startTime)),1)):(a(),l("span",Zt,"No data"))]),"branch-cell":s(({row:t})=>[t.original.latestRun?.metadata?.scm?(a(),l("div",Jt,[t.original.latestRun.metadata.scm.branch?(a(),l("span",Wt,y(t.original.latestRun.metadata.scm.branch),1)):_("",!0),t.original.latestRun.metadata.scm.commit?(a(),l("code",Xt,y(t.original.latestRun.metadata.scm.commit.substring(0,7)),1)):_("",!0)])):_("",!0)]),"duration-cell":s(({row:t})=>[t.original.latestRun?.duration!=null?(a(),m(W,{key:0,ms:t.original.latestRun.duration,class:"text-sm text-gray-600"},null,8,["ms"])):(a(),l("span",Yt,"No data"))]),"status-cell":s(({row:t})=>[t.original.latestRun?(a(),m(X,{key:0,status:t.original.latestRun.status},null,8,["status"])):(a(),l("span",te,"No data"))]),"testRatio-cell":s(({row:t})=>[t.original.latestRun?(a(),m(Y,{key:0,passed:t.original.latestRun.passedTests,failed:t.original.latestRun.failedTests,skipped:t.original.latestRun.skippedTests,flaky:t.original.latestRun.flakyTests,"did-not-run":t.original.latestRun.didNotRunTests??0,total:t.original.latestRun.totalTests},null,8,["passed","failed","skipped","flaky","did-not-run","total"])):(a(),l("span",ee,"No data"))]),"report-cell":s(({row:t})=>[t.original.latestRun?(a(),m(tt,{key:0,reports:t.original.latestRun.reports},null,8,["reports"])):_("",!0)]),"actions-header":s(()=>[...e[11]||(e[11]=[c("div",{class:"text-right"},"Project actions",-1)])]),"actions-cell":s(({row:t})=>[c("div",ae,[o(g,{to:`/projects/${t.original.id}`,size:"sm",variant:"outline"},{default:s(()=>[...e[12]||(e[12]=[d("View details",-1)])]),_:1},8,["to"]),o(g,{to:`/projects/${t.original.id}/edit`,size:"sm",variant:"ghost",icon:"i-lucide-pencil"},null,8,["to"])])]),_:1},8,["data"])]),_:1})):I.value?(a(),l("div",se,[e[13]||(e[13]=c("span",{class:"sr-only",role:"status"},"Loading projects…",-1)),o(V,{class:"h-10 w-full rounded-lg"}),(a(),l(R,null,N(6,t=>o(V,{key:t,class:"h-14 w-full rounded-lg"})),64))])):i(v)&&i(v).length>0?(a(),l("div",oe,[...e[14]||(e[14]=[c("p",{class:"text-lg mb-2"},"No projects match your search",-1),c("p",{class:"text-sm"},"Try adjusting your search or filters",-1)])])):(a(),m(ot,{key:3,icon:"i-lucide-rocket",text:"No projects yet"},{default:s(()=>[c("p",ne,[e[17]||(e[17]=d(" Projects are created automatically once the reporter submits its first run — see the ",-1)),o(K,{to:"/",class:"text-primary hover:underline"},{default:s(()=>[...e[15]||(e[15]=[d("home page",-1)])]),_:1}),e[18]||(e[18]=d(" for a copy-paste setup snippet, or the ",-1)),o(st,{to:"reporter","no-icon":"",class:"text-primary hover:underline"},{default:s(()=>[...e[16]||(e[16]=[d("reporter docs",-1)])]),_:1}),e[19]||(e[19]=d(". ",-1))]),o(g,{icon:"i-lucide-plus",label:"New project",variant:"ghost",size:"sm",class:"mt-2",onClick:e[2]||(e[2]=t=>f.value=!0)})]),_:1}))]),_:1}),o(ct,null,{default:s(()=>[o(it,{open:f.value,title:"Create new project","onUpdate:open":e[9]||(e[9]=t=>f.value=t)},{body:s(()=>[o(rt,{schema:i(A),state:i(r)},{default:s(()=>[o(lt,{mode:"create",name:i(r).name,"onUpdate:name":e[3]||(e[3]=t=>i(r).name=t),label:i(r).label,"onUpdate:label":e[4]||(e[4]=t=>i(r).label=t),description:i(r).description,"onUpdate:description":e[5]||(e[5]=t=>i(r).description=t),tags:k.value,"onUpdate:tags":e[6]||(e[6]=t=>k.value=t),"all-tags":$.value,onTagCreated:e[7]||(e[7]=t=>i(H)())},null,8,["name","label","description","tags","all-tags"])]),_:1},8,["schema","state"])]),footer:s(()=>[c("div",le,[o(g,{color:"neutral",variant:"ghost",label:"Cancel",onClick:e[8]||(e[8]=t=>f.value=!1)}),o(g,{label:"Create project",icon:"i-lucide-plus",loading:T.value,onClick:q},null,8,["loading"])])]),_:1},8,["open"])]),_:1})],64)}}});export{ze as default};