plum-e2e 1.2.0 → 1.2.2

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 (302) hide show
  1. package/backend/_scaffold/utils/browser.ts +1 -0
  2. package/backend/package-lock.json +2 -2
  3. package/backend/package.json +1 -1
  4. package/bin/plum.js +2 -7
  5. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +190 -0
  6. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Badge.DLLowvEA.css +17 -0
  7. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/Button.cBruH0aD.css +17 -0
  8. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_layout.D7eM-6MV.css +17 -0
  9. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BVnUajEa.css +17 -0
  10. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.CGnCsn5q.css +17 -0
  11. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DBhBrHFz.css +17 -0
  12. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOqo0UR4.css +17 -0
  13. package/frontend/.svelte-kit/adapter-node/chunks/Badge.js +30 -0
  14. package/frontend/.svelte-kit/adapter-node/chunks/Button.js +32 -0
  15. package/frontend/.svelte-kit/adapter-node/chunks/attributes.js +34 -0
  16. package/frontend/.svelte-kit/adapter-node/chunks/client.js +59 -0
  17. package/frontend/.svelte-kit/adapter-node/chunks/equality.js +31 -0
  18. package/frontend/.svelte-kit/adapter-node/chunks/escaping.js +36 -0
  19. package/frontend/.svelte-kit/adapter-node/chunks/exports.js +247 -0
  20. package/frontend/.svelte-kit/adapter-node/chunks/index.js +1135 -0
  21. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +695 -0
  22. package/frontend/.svelte-kit/adapter-node/chunks/reports.js +57 -0
  23. package/frontend/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js +44 -0
  24. package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +181 -0
  25. package/frontend/.svelte-kit/adapter-node/entries/pages/_page.svelte.js +164 -0
  26. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_page.svelte.js +141 -0
  27. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_slug_/_page.svelte.js +42 -0
  28. package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +179 -0
  29. package/frontend/.svelte-kit/adapter-node/index.js +3144 -0
  30. package/frontend/.svelte-kit/adapter-node/internal.js +30 -0
  31. package/frontend/.svelte-kit/adapter-node/manifest-full.js +77 -0
  32. package/frontend/.svelte-kit/adapter-node/manifest.js +81 -0
  33. package/frontend/.svelte-kit/adapter-node/nodes/0.js +25 -0
  34. package/frontend/.svelte-kit/adapter-node/nodes/1.js +25 -0
  35. package/frontend/.svelte-kit/adapter-node/nodes/2.js +25 -0
  36. package/frontend/.svelte-kit/adapter-node/nodes/3.js +25 -0
  37. package/frontend/.svelte-kit/adapter-node/nodes/4.js +25 -0
  38. package/frontend/.svelte-kit/adapter-node/nodes/5.js +25 -0
  39. package/frontend/.svelte-kit/ambient.d.ts +240 -0
  40. package/frontend/.svelte-kit/generated/client/app.js +51 -0
  41. package/frontend/.svelte-kit/generated/client/matchers.js +18 -0
  42. package/frontend/.svelte-kit/generated/client/nodes/0.js +18 -0
  43. package/frontend/.svelte-kit/generated/client/nodes/1.js +18 -0
  44. package/frontend/.svelte-kit/generated/client/nodes/2.js +18 -0
  45. package/frontend/.svelte-kit/generated/client/nodes/3.js +18 -0
  46. package/frontend/.svelte-kit/generated/client/nodes/4.js +18 -0
  47. package/frontend/.svelte-kit/generated/client/nodes/5.js +18 -0
  48. package/frontend/.svelte-kit/generated/client-optimized/app.js +51 -0
  49. package/frontend/.svelte-kit/generated/client-optimized/matchers.js +18 -0
  50. package/frontend/.svelte-kit/generated/client-optimized/nodes/0.js +18 -0
  51. package/frontend/.svelte-kit/generated/client-optimized/nodes/1.js +18 -0
  52. package/frontend/.svelte-kit/generated/client-optimized/nodes/2.js +18 -0
  53. package/frontend/.svelte-kit/generated/client-optimized/nodes/3.js +18 -0
  54. package/frontend/.svelte-kit/generated/client-optimized/nodes/4.js +18 -0
  55. package/frontend/.svelte-kit/generated/client-optimized/nodes/5.js +18 -0
  56. package/frontend/.svelte-kit/generated/root.js +20 -0
  57. package/frontend/.svelte-kit/generated/root.svelte +83 -0
  58. package/frontend/.svelte-kit/generated/server/internal.js +65 -0
  59. package/frontend/.svelte-kit/non-ambient.d.ts +42 -0
  60. package/frontend/.svelte-kit/output/client/.vite/manifest.json +289 -0
  61. package/frontend/.svelte-kit/output/client/_app/immutable/assets/0.CnXRuPt4.css +17 -0
  62. package/frontend/.svelte-kit/output/client/_app/immutable/assets/2.CGnCsn5q.css +17 -0
  63. package/frontend/.svelte-kit/output/client/_app/immutable/assets/3.BVnUajEa.css +17 -0
  64. package/frontend/.svelte-kit/output/client/_app/immutable/assets/4.DBhBrHFz.css +17 -0
  65. package/frontend/.svelte-kit/output/client/_app/immutable/assets/5.D93VAB-w.css +17 -0
  66. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Badge.DLLowvEA.css +17 -0
  67. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.cBruH0aD.css +17 -0
  68. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_layout.D7eM-6MV.css +17 -0
  69. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BVnUajEa.css +17 -0
  70. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.CGnCsn5q.css +17 -0
  71. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DBhBrHFz.css +17 -0
  72. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DOqo0UR4.css +17 -0
  73. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B0bn91RF.js +18 -0
  74. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/B1kE5jmt.js +23 -0
  75. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BKz6FZdB.js +18 -0
  76. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Be4iUAB0.js +18 -0
  77. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BpaMqo9O.js +18 -0
  78. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Bt3-Z7H1.js +18 -0
  79. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CHV2KnPr.js +18 -0
  80. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CJ8q7g9Y.js +18 -0
  81. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cit9MuSg.js +20 -0
  82. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CwBTqcbj.js +18 -0
  83. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DBk3zeq4.js +18 -0
  84. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DFJLQFic.js +18 -0
  85. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DTUE7kkY.js +18 -0
  86. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/IYPwzKs_.js +20 -0
  87. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/oc0we5Us.js +18 -0
  88. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/rVEKg0Ak.js +18 -0
  89. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.C2MbX06K.js +19 -0
  90. package/frontend/.svelte-kit/output/client/_app/immutable/entry/start.GiBry-lw.js +18 -0
  91. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.BsCYK-Tn.js +21 -0
  92. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/1.N4gjrCnX.js +18 -0
  93. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/2.D9yQNzK8.js +18 -0
  94. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.CBC5WvNb.js +18 -0
  95. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/4.BU6UZHSE.js +19 -0
  96. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.Dzzfrntl.js +18 -0
  97. package/frontend/.svelte-kit/output/client/_app/version.json +1 -0
  98. package/frontend/.svelte-kit/output/client/favicon.png +0 -0
  99. package/frontend/.svelte-kit/output/server/.vite/manifest.json +190 -0
  100. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Badge.DLLowvEA.css +17 -0
  101. package/frontend/.svelte-kit/output/server/_app/immutable/assets/Button.cBruH0aD.css +17 -0
  102. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_layout.D7eM-6MV.css +17 -0
  103. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BVnUajEa.css +17 -0
  104. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.CGnCsn5q.css +17 -0
  105. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DBhBrHFz.css +17 -0
  106. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DOqo0UR4.css +17 -0
  107. package/frontend/.svelte-kit/output/server/chunks/Badge.js +30 -0
  108. package/frontend/.svelte-kit/output/server/chunks/Button.js +32 -0
  109. package/frontend/.svelte-kit/output/server/chunks/attributes.js +34 -0
  110. package/frontend/.svelte-kit/output/server/chunks/client.js +59 -0
  111. package/frontend/.svelte-kit/output/server/chunks/equality.js +31 -0
  112. package/frontend/.svelte-kit/output/server/chunks/escaping.js +36 -0
  113. package/frontend/.svelte-kit/output/server/chunks/exports.js +247 -0
  114. package/frontend/.svelte-kit/output/server/chunks/index.js +1135 -0
  115. package/frontend/.svelte-kit/output/server/chunks/internal.js +695 -0
  116. package/frontend/.svelte-kit/output/server/chunks/reports.js +57 -0
  117. package/frontend/.svelte-kit/output/server/entries/fallbacks/error.svelte.js +44 -0
  118. package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +181 -0
  119. package/frontend/.svelte-kit/output/server/entries/pages/_page.svelte.js +164 -0
  120. package/frontend/.svelte-kit/output/server/entries/pages/reports/_page.svelte.js +141 -0
  121. package/frontend/.svelte-kit/output/server/entries/pages/reports/_slug_/_page.svelte.js +42 -0
  122. package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +179 -0
  123. package/frontend/.svelte-kit/output/server/index.js +3144 -0
  124. package/frontend/.svelte-kit/output/server/internal.js +30 -0
  125. package/frontend/.svelte-kit/output/server/manifest-full.js +77 -0
  126. package/frontend/.svelte-kit/output/server/manifest.js +77 -0
  127. package/frontend/.svelte-kit/output/server/nodes/0.js +25 -0
  128. package/frontend/.svelte-kit/output/server/nodes/1.js +25 -0
  129. package/frontend/.svelte-kit/output/server/nodes/2.js +25 -0
  130. package/frontend/.svelte-kit/output/server/nodes/3.js +25 -0
  131. package/frontend/.svelte-kit/output/server/nodes/4.js +25 -0
  132. package/frontend/.svelte-kit/output/server/nodes/5.js +25 -0
  133. package/frontend/.svelte-kit/tsconfig.json +49 -0
  134. package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css +17 -0
  135. package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css.br +0 -0
  136. package/frontend/build/client/_app/immutable/assets/0.CnXRuPt4.css.gz +0 -0
  137. package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css +17 -0
  138. package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css.br +0 -0
  139. package/frontend/build/client/_app/immutable/assets/2.CGnCsn5q.css.gz +0 -0
  140. package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css +17 -0
  141. package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css.br +0 -0
  142. package/frontend/build/client/_app/immutable/assets/3.BVnUajEa.css.gz +0 -0
  143. package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css +17 -0
  144. package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css.br +0 -0
  145. package/frontend/build/client/_app/immutable/assets/4.DBhBrHFz.css.gz +0 -0
  146. package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css +17 -0
  147. package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css.br +0 -0
  148. package/frontend/build/client/_app/immutable/assets/5.D93VAB-w.css.gz +0 -0
  149. package/frontend/build/client/_app/immutable/assets/Badge.DLLowvEA.css +17 -0
  150. package/frontend/build/client/_app/immutable/assets/Badge.DLLowvEA.css.br +0 -0
  151. package/frontend/build/client/_app/immutable/assets/Badge.DLLowvEA.css.gz +0 -0
  152. package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css +17 -0
  153. package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css.br +0 -0
  154. package/frontend/build/client/_app/immutable/assets/Button.cBruH0aD.css.gz +0 -0
  155. package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css +17 -0
  156. package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css.br +0 -0
  157. package/frontend/build/client/_app/immutable/assets/_layout.D7eM-6MV.css.gz +0 -0
  158. package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css +17 -0
  159. package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css.br +0 -0
  160. package/frontend/build/client/_app/immutable/assets/_page.BVnUajEa.css.gz +0 -0
  161. package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css +17 -0
  162. package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css.br +0 -0
  163. package/frontend/build/client/_app/immutable/assets/_page.CGnCsn5q.css.gz +0 -0
  164. package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css +17 -0
  165. package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css.br +0 -0
  166. package/frontend/build/client/_app/immutable/assets/_page.DBhBrHFz.css.gz +0 -0
  167. package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css +17 -0
  168. package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css.br +0 -0
  169. package/frontend/build/client/_app/immutable/assets/_page.DOqo0UR4.css.gz +0 -0
  170. package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js +18 -0
  171. package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js.br +0 -0
  172. package/frontend/build/client/_app/immutable/chunks/B0bn91RF.js.gz +0 -0
  173. package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js +23 -0
  174. package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js.br +0 -0
  175. package/frontend/build/client/_app/immutable/chunks/B1kE5jmt.js.gz +0 -0
  176. package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js +18 -0
  177. package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js.br +0 -0
  178. package/frontend/build/client/_app/immutable/chunks/BKz6FZdB.js.gz +0 -0
  179. package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js +18 -0
  180. package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js.br +0 -0
  181. package/frontend/build/client/_app/immutable/chunks/Be4iUAB0.js.gz +0 -0
  182. package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js +18 -0
  183. package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js.br +0 -0
  184. package/frontend/build/client/_app/immutable/chunks/BpaMqo9O.js.gz +0 -0
  185. package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js +18 -0
  186. package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js.br +0 -0
  187. package/frontend/build/client/_app/immutable/chunks/Bt3-Z7H1.js.gz +0 -0
  188. package/frontend/build/client/_app/immutable/chunks/CHV2KnPr.js +18 -0
  189. package/frontend/build/client/_app/immutable/chunks/CHV2KnPr.js.br +18 -0
  190. package/frontend/build/client/_app/immutable/chunks/CHV2KnPr.js.gz +0 -0
  191. package/frontend/build/client/_app/immutable/chunks/CJ8q7g9Y.js +18 -0
  192. package/{resources/comments-format.text → frontend/build/client/_app/immutable/chunks/CJ8q7g9Y.js.br} +0 -0
  193. package/frontend/build/client/_app/immutable/chunks/CJ8q7g9Y.js.gz +0 -0
  194. package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js +20 -0
  195. package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js.br +0 -0
  196. package/frontend/build/client/_app/immutable/chunks/Cit9MuSg.js.gz +0 -0
  197. package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js +18 -0
  198. package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js.br +0 -0
  199. package/frontend/build/client/_app/immutable/chunks/CwBTqcbj.js.gz +0 -0
  200. package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js +18 -0
  201. package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js.br +0 -0
  202. package/frontend/build/client/_app/immutable/chunks/DBk3zeq4.js.gz +0 -0
  203. package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js +18 -0
  204. package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js.br +0 -0
  205. package/frontend/build/client/_app/immutable/chunks/DFJLQFic.js.gz +0 -0
  206. package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js +18 -0
  207. package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js.br +0 -0
  208. package/frontend/build/client/_app/immutable/chunks/DTUE7kkY.js.gz +0 -0
  209. package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js +20 -0
  210. package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js.br +0 -0
  211. package/frontend/build/client/_app/immutable/chunks/IYPwzKs_.js.gz +0 -0
  212. package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js +18 -0
  213. package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js.br +0 -0
  214. package/frontend/build/client/_app/immutable/chunks/oc0we5Us.js.gz +0 -0
  215. package/frontend/build/client/_app/immutable/chunks/rVEKg0Ak.js +18 -0
  216. package/frontend/build/client/_app/immutable/chunks/rVEKg0Ak.js.br +0 -0
  217. package/frontend/build/client/_app/immutable/chunks/rVEKg0Ak.js.gz +0 -0
  218. package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js +19 -0
  219. package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js.br +0 -0
  220. package/frontend/build/client/_app/immutable/entry/app.C2MbX06K.js.gz +0 -0
  221. package/frontend/build/client/_app/immutable/entry/start.GiBry-lw.js +18 -0
  222. package/frontend/build/client/_app/immutable/entry/start.GiBry-lw.js.br +18 -0
  223. package/frontend/build/client/_app/immutable/entry/start.GiBry-lw.js.gz +0 -0
  224. package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js +21 -0
  225. package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js.br +0 -0
  226. package/frontend/build/client/_app/immutable/nodes/0.BsCYK-Tn.js.gz +0 -0
  227. package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js +18 -0
  228. package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js.br +0 -0
  229. package/frontend/build/client/_app/immutable/nodes/1.N4gjrCnX.js.gz +0 -0
  230. package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js +18 -0
  231. package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js.br +0 -0
  232. package/frontend/build/client/_app/immutable/nodes/2.D9yQNzK8.js.gz +0 -0
  233. package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js +18 -0
  234. package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js.br +0 -0
  235. package/frontend/build/client/_app/immutable/nodes/3.CBC5WvNb.js.gz +0 -0
  236. package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js +19 -0
  237. package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js.br +0 -0
  238. package/frontend/build/client/_app/immutable/nodes/4.BU6UZHSE.js.gz +0 -0
  239. package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js +18 -0
  240. package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js.br +0 -0
  241. package/frontend/build/client/_app/immutable/nodes/5.Dzzfrntl.js.gz +0 -0
  242. package/frontend/build/client/_app/version.json +1 -0
  243. package/frontend/build/client/_app/version.json.br +0 -0
  244. package/frontend/build/client/_app/version.json.gz +0 -0
  245. package/frontend/build/client/favicon.png +0 -0
  246. package/frontend/build/env.js +111 -0
  247. package/frontend/build/handler.js +1511 -0
  248. package/frontend/build/index.js +362 -0
  249. package/frontend/build/server/chunks/0-BFfqmlsS.js +26 -0
  250. package/frontend/build/server/chunks/0-BFfqmlsS.js.map +17 -0
  251. package/frontend/build/server/chunks/1-hso3H4Ax.js +26 -0
  252. package/frontend/build/server/chunks/1-hso3H4Ax.js.map +17 -0
  253. package/frontend/build/server/chunks/2-BSZWXCWp.js +26 -0
  254. package/frontend/build/server/chunks/2-BSZWXCWp.js.map +17 -0
  255. package/frontend/build/server/chunks/3-BYumY9dv.js +26 -0
  256. package/frontend/build/server/chunks/3-BYumY9dv.js.map +17 -0
  257. package/frontend/build/server/chunks/4-2UUrCVtM.js +26 -0
  258. package/frontend/build/server/chunks/4-2UUrCVtM.js.map +17 -0
  259. package/frontend/build/server/chunks/5-C2_y_fwT.js +26 -0
  260. package/frontend/build/server/chunks/5-C2_y_fwT.js.map +17 -0
  261. package/frontend/build/server/chunks/Badge-CC4U7C0c.js +30 -0
  262. package/frontend/build/server/chunks/Badge-CC4U7C0c.js.map +17 -0
  263. package/frontend/build/server/chunks/Button-BLkPicwS.js +33 -0
  264. package/frontend/build/server/chunks/Button-BLkPicwS.js.map +17 -0
  265. package/frontend/build/server/chunks/_layout.svelte-Bfxcj9C6.js +183 -0
  266. package/frontend/build/server/chunks/_layout.svelte-Bfxcj9C6.js.map +17 -0
  267. package/frontend/build/server/chunks/_page.svelte-DEK6UvaI.js +45 -0
  268. package/frontend/build/server/chunks/_page.svelte-DEK6UvaI.js.map +17 -0
  269. package/frontend/build/server/chunks/_page.svelte-DScVdHOq.js +142 -0
  270. package/frontend/build/server/chunks/_page.svelte-DScVdHOq.js.map +17 -0
  271. package/frontend/build/server/chunks/_page.svelte-Ns7w2sZt.js +180 -0
  272. package/frontend/build/server/chunks/_page.svelte-Ns7w2sZt.js.map +17 -0
  273. package/frontend/build/server/chunks/_page.svelte-s6ZIOitT.js +165 -0
  274. package/frontend/build/server/chunks/_page.svelte-s6ZIOitT.js.map +17 -0
  275. package/frontend/build/server/chunks/attributes-BeaNKpgU.js +34 -0
  276. package/frontend/build/server/chunks/attributes-BeaNKpgU.js.map +17 -0
  277. package/frontend/build/server/chunks/client-C9IaEwNo.js +52 -0
  278. package/frontend/build/server/chunks/client-C9IaEwNo.js.map +17 -0
  279. package/frontend/build/server/chunks/error.svelte-HKBv5sQT.js +45 -0
  280. package/frontend/build/server/chunks/error.svelte-HKBv5sQT.js.map +17 -0
  281. package/frontend/build/server/chunks/escaping-CqgfEcN3.js +36 -0
  282. package/frontend/build/server/chunks/escaping-CqgfEcN3.js.map +17 -0
  283. package/frontend/build/server/chunks/exports-OxlCJ8yE.js +192 -0
  284. package/frontend/build/server/chunks/exports-OxlCJ8yE.js.map +17 -0
  285. package/frontend/build/server/chunks/index-CjHlq1kt.js +1076 -0
  286. package/frontend/build/server/chunks/index-CjHlq1kt.js.map +17 -0
  287. package/frontend/build/server/chunks/reports-D3ZeYSmi.js +56 -0
  288. package/frontend/build/server/chunks/reports-D3ZeYSmi.js.map +17 -0
  289. package/frontend/build/server/index.js +5015 -0
  290. package/frontend/build/server/index.js.map +17 -0
  291. package/frontend/build/server/manifest.js +84 -0
  292. package/frontend/build/server/manifest.js.map +17 -0
  293. package/frontend/build/shims.js +49 -0
  294. package/frontend/package-lock.json +2 -2
  295. package/frontend/package.json +1 -1
  296. package/package.json +1 -1
  297. package/.claude/settings.local.json +0 -29
  298. package/.husky/pre-commit +0 -2
  299. package/.prettierignore +0 -21
  300. package/.prettierrc +0 -15
  301. package/.vscode/settings.json +0 -10
  302. package/license-config.json +0 -37
@@ -0,0 +1,20 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ var Yt=t=>{throw TypeError(t)};var Ce=(t,e,n)=>e.has(t)||Yt("Cannot "+n);var A=(t,e,n)=>(Ce(t,e,"read from private field"),n?n.call(t):e.get(t)),P=(t,e,n)=>e.has(t)?Yt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{w as Ct,o as Jt,aJ as C,A as O,m as N,aA as Oe}from"./B0bn91RF.js";const Ne="1781425198782";new URL("sveltekit-internal://");function je(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function $e(t){return t.split("%25").map(decodeURI).join("%25")}function De(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function Rt({href:t}){return t.split("#")[0]}function Fe(t,e,n,r=!1){const a=new URL(t);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return f=>(n(f),i[o](f));e();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return e(),t[i]},enumerable:!0,configurable:!0});return a}function Ve(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}function Be(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n.buffer}const Ge=window.fetch;window.fetch=(t,e)=>((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&W.delete(Ot(t)),Ge(t,e));const W=new Map;function Me(t,e){const n=Ot(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&W.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=Be(a)),Promise.resolve(new Response(a,s))}return window.fetch(t,e)}function qe(t,e,n){if(W.size>0){const r=Ot(t,n),a=W.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n==null?void 0:n.cache))return new Response(a.body,a.init);W.delete(r)}}return window.fetch(e,n)}function Ot(t,e){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request?t.url:t)}]`;if(e!=null&&e.headers||e!=null&&e.body){const a=[];e.headers&&a.push([...new Headers(e.headers)].join(",")),e.body&&(typeof e.body=="string"||ArrayBuffer.isView(e.body))&&a.push(e.body),r+=`[data-hash="${Ve(...a)}"]`}return r}const He=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Ke(t){const e=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${Ye(t).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return e.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return It(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return It(String.fromCharCode(...c.slice(2).split("-").map(d=>parseInt(d,16))));const u=He.exec(c),[,p,y,l,m]=u;return e.push({name:l,matcher:m,optional:!!p,rest:!!y,chained:y?f===1&&i[0]==="":!1}),y?"(.*?)":p?"([^/]*)?":"([^/]+?)"}return It(c)}).join("")}).join("")}/?$`),params:e}}function We(t){return!/^\([^)]+\)$/.test(t)}function Ye(t){return t.slice(1).split("/").filter(We)}function Je(t,e,n){const r={},a=t.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;o<e.length;o+=1){const c=e[o];let f=a[o-i];if(c.chained&&c.rest&&i&&(f=a.slice(o-i,o+1).filter(u=>u).join("/"),i=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const u=e[o+1],p=a[o+1];u&&!u.rest&&u.optional&&p&&c.chained&&(i=0),!u&&!p&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function It(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function ze({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([o,[c,f,u]])=>{const{pattern:p,params:y}=Ke(o),l={id:o,exec:m=>{const d=p.exec(m);if(d)return Je(d,y,r)},errors:[1,...u||[]].map(m=>t[m]),layouts:[0,...f||[]].map(i),leaf:s(c)};return l.errors.length=l.layouts.length=Math.max(l.errors.length,l.layouts.length),l});function s(o){const c=o<0;return c&&(o=~o),[c,t[o]]}function i(o){return o===void 0?o:[a.has(o),t[o]]}}function fe(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function zt(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var oe;const x=((oe=globalThis.__sveltekit_kg35is)==null?void 0:oe.base)??"";var se;const Xe=((se=globalThis.__sveltekit_kg35is)==null?void 0:se.assets)??x,ue="sveltekit:snapshot",he="sveltekit:scroll",de="sveltekit:states",Ze="sveltekit:pageurl",G="sveltekit:history",z="sveltekit:navigation",ut={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ft=location.origin;function pe(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function Nt(){return{x:pageXOffset,y:pageYOffset}}function B(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const Xt={...ut,"":ut.hover};function ge(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function me(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=ge(t)}}function Tt(t,e,n){let r;try{if(r=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,s=!r||!!a||vt(r,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),i=(r==null?void 0:r.origin)===ft&&t.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function ht(t){let e=null,n=null,r=null,a=null,s=null,i=null,o=t;for(;o&&o!==document.documentElement;)r===null&&(r=B(o,"preload-code")),a===null&&(a=B(o,"preload-data")),e===null&&(e=B(o,"keepfocus")),n===null&&(n=B(o,"noscroll")),s===null&&(s=B(o,"reload")),i===null&&(i=B(o,"replacestate")),o=ge(o);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Xt[r??"off"],preload_data:Xt[a??"off"],keepfocus:c(e),noscroll:c(n),reload:c(s),replace_state:c(i)}}function Zt(t){const e=Ct(t);let n=!0;function r(){n=!0,e.update(i=>i)}function a(i){n=!1,e.set(i)}function s(i){let o;return e.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const ye={v:()=>{}};function Qe(){const{set:t,subscribe:e}=Ct(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Xe}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Ne;return i&&(t(!0),ye.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:e,check:r}}function vt(t,e,n){return t.origin!==ft||!t.pathname.startsWith(e)?!0:n?!(t.pathname===e+"/"||t.pathname===e+"/index.html"||t.protocol==="file:"&&t.pathname.replace(/\/[^/]+\.html?$/,"")===e):!1}function Qt(t){const e=en(t),n=new ArrayBuffer(e.length),r=new DataView(n);for(let a=0;a<n.byteLength;a++)r.setUint8(a,e.charCodeAt(a));return n}const tn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function en(t){t.length%4===0&&(t=t.replace(/==?$/,""));let e="",n=0,r=0;for(let a=0;a<t.length;a++)n<<=6,n|=tn.indexOf(t[a]),r+=6,r===24&&(e+=String.fromCharCode((n&16711680)>>16),e+=String.fromCharCode((n&65280)>>8),e+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,e+=String.fromCharCode(n)):r===18&&(n>>=2,e+=String.fromCharCode((n&65280)>>8),e+=String.fromCharCode(n&255)),e}const nn=-1,rn=-2,an=-3,on=-4,sn=-5,cn=-6;function ln(t,e){if(typeof t=="number")return a(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const n=t,r=Array(n.length);function a(s,i=!1){if(s===nn)return;if(s===an)return NaN;if(s===on)return 1/0;if(s===sn)return-1/0;if(s===cn)return-0;if(i)throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],f=e==null?void 0:e[c];if(f)return r[s]=f(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const u=new Set;r[s]=u;for(let l=1;l<o.length;l+=1)u.add(a(o[l]));break;case"Map":const p=new Map;r[s]=p;for(let l=1;l<o.length;l+=2)p.set(a(o[l]),a(o[l+1]));break;case"RegExp":r[s]=new RegExp(o[1],o[2]);break;case"Object":r[s]=Object(o[1]);break;case"BigInt":r[s]=BigInt(o[1]);break;case"null":const y=Object.create(null);r[s]=y;for(let l=1;l<o.length;l+=2)y[o[l]]=a(o[l+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const l=globalThis[c],m=o[1],d=Qt(m),h=new l(d);r[s]=h;break}case"ArrayBuffer":{const l=o[1],m=Qt(l);r[s]=m;break}default:throw new Error(`Unknown type ${c}`)}}else{const c=new Array(o.length);r[s]=c;for(let f=0;f<o.length;f+=1){const u=o[f];u!==rn&&(c[f]=a(u))}}else{const c={};r[s]=c;for(const f in o){const u=o[f];c[f]=a(u)}}return r[s]}return a(0)}const we=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...we];const fn=new Set([...we]);[...fn];function un(t){return t.filter(e=>e!=null)}class bt{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class jt{constructor(e,n){this.status=e,this.location=n}}class $t extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}const hn="x-sveltekit-invalidated",dn="x-sveltekit-trailing-slash";function dt(t){return t instanceof bt||t instanceof $t?t.status:500}function pn(t){return t instanceof $t?t.text:"Internal Error"}let U,X,Ut;const gn=Jt.toString().includes("$$")||/function \w+\(\) \{\}/.test(Jt.toString());var tt,et,nt,rt,at,ot,st,it,ie,ct,ce,lt,le;gn?(U={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},X={current:null},Ut={current:!1}):(U=new(ie=class{constructor(){P(this,tt,C({}));P(this,et,C(null));P(this,nt,C(null));P(this,rt,C({}));P(this,at,C({id:null}));P(this,ot,C({}));P(this,st,C(-1));P(this,it,C(new URL("https://example.com")))}get data(){return O(A(this,tt))}set data(e){N(A(this,tt),e)}get form(){return O(A(this,et))}set form(e){N(A(this,et),e)}get error(){return O(A(this,nt))}set error(e){N(A(this,nt),e)}get params(){return O(A(this,rt))}set params(e){N(A(this,rt),e)}get route(){return O(A(this,at))}set route(e){N(A(this,at),e)}get state(){return O(A(this,ot))}set state(e){N(A(this,ot),e)}get status(){return O(A(this,st))}set status(e){N(A(this,st),e)}get url(){return O(A(this,it))}set url(e){N(A(this,it),e)}},tt=new WeakMap,et=new WeakMap,nt=new WeakMap,rt=new WeakMap,at=new WeakMap,ot=new WeakMap,st=new WeakMap,it=new WeakMap,ie),X=new(ce=class{constructor(){P(this,ct,C(null))}get current(){return O(A(this,ct))}set current(e){N(A(this,ct),e)}},ct=new WeakMap,ce),Ut=new(le=class{constructor(){P(this,lt,C(!1))}get current(){return O(A(this,lt))}set current(e){N(A(this,lt),e)}},lt=new WeakMap,le),ye.v=()=>Ut.current=!0);function mn(t){Object.assign(U,t)}const yn="/__data.json",wn=".html__data.json";function _n(t){return t.endsWith(".html")?t.replace(/\.html$/,wn):t.replace(/\/$/,"")+yn}const vn=new Set(["icon","shortcut icon","apple-touch-icon"]),V=fe(he)??{},Z=fe(ue)??{},$={url:Zt({}),page:Zt({}),navigating:Ct(null),updated:Qe()};function Dt(t){V[t]=Nt()}function bn(t,e){let n=t+1;for(;V[n];)delete V[n],n+=1;for(n=e+1;Z[n];)delete Z[n],n+=1}function q(t){return location.href=t.href,new Promise(()=>{})}async function _e(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(x||"/");t&&await t.update()}}function te(){}let Ft,xt,pt,j,Pt,k;const gt=[],mt=[];let L=null;const ve=new Set,An=new Set,Y=new Set;let v={branch:[],error:null,url:null},Vt=!1,yt=!1,ee=!0,Q=!1,H=!1,be=!1,Bt=!1,Ae,R,T,F;const J=new Set;async function Vn(t,e,n){var a,s,i,o;document.URL!==location.href&&(location.href=location.href),k=t,await((s=(a=t.hooks).init)==null?void 0:s.call(a)),Ft=ze(t),j=document.documentElement,Pt=e,xt=t.nodes[0],pt=t.nodes[1],xt(),pt(),R=(i=history.state)==null?void 0:i[G],T=(o=history.state)==null?void 0:o[z],R||(R=T=Date.now(),history.replaceState({...history.state,[G]:R,[z]:T},""));const r=V[R];r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y)),n?await Cn(Pt,n):await Tn(k.hash?Pe(new URL(location.href)):location.href,{replaceState:!0}),Pn()}function kn(){gt.length=0,Bt=!1}function ke(t){mt.some(e=>e==null?void 0:e.snapshot)&&(Z[t]=mt.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Se(t){var e;(e=Z[t])==null||e.forEach((n,r)=>{var a,s;(s=(a=mt[r])==null?void 0:a.snapshot)==null||s.restore(n)})}function ne(){Dt(R),zt(he,V),ke(T),zt(ue,Z)}async function Gt(t,e,n,r){return K({type:"goto",url:pe(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(Bt=!0),e.invalidate&&e.invalidate.forEach(xn)}})}async function Sn(t){if(t.id!==(L==null?void 0:L.id)){const e={};J.add(e),L={id:t.id,token:e,promise:Re({...t,preload:e}).then(n=>(J.delete(e),n.type==="loaded"&&n.state.error&&(L=null),n))}}return L.promise}async function Lt(t){var n;const e=(n=await kt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].map(r=>r==null?void 0:r[1]()))}function Ee(t,e,n){var s;v=t.state;const r=document.querySelector("style[data-sveltekit]");r&&r.remove(),Object.assign(U,t.props.page),Ae=new k.root({target:e,props:{...t.props,stores:$,components:mt},hydrate:n,sync:!1}),Se(T);const a={from:null,to:{params:v.params,route:{id:((s=v.route)==null?void 0:s.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};Y.forEach(i=>i(a)),yt=!0}function wt({url:t,params:e,branch:n,status:r,error:a,route:s,form:i}){let o="never";if(x&&(t.pathname===x||t.pathname===x+"/"))o="always";else for(const l of n)(l==null?void 0:l.slash)!==void 0&&(o=l.slash);t.pathname=je(t.pathname,o),t.search=t.search;const c={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:s},props:{constructors:un(n).map(l=>l.node.component),page:Ht(U)}};i!==void 0&&(c.props.form=i);let f={},u=!U,p=0;for(let l=0;l<Math.max(n.length,v.branch.length);l+=1){const m=n[l],d=v.branch[l];(m==null?void 0:m.data)!==(d==null?void 0:d.data)&&(u=!0),m&&(f={...f,...m.data},u&&(c.props[`data_${p}`]=f),p+=1)}return(!v.url||t.href!==v.url.href||v.error!==a||i!==void 0&&i!==U.form||u)&&(c.props.page={error:a,params:e,route:{id:(s==null?void 0:s.id)??null},state:{},status:r,url:new URL(t),form:i??null,data:u?f:U.data}),c}async function Mt({loader:t,parent:e,url:n,params:r,route:a,server_data_node:s}){var u,p,y;let i=null,o=!0;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},f=await t();if((u=f.universal)!=null&&u.load){let l=function(...d){for(const h of d){const{href:w}=new URL(h,n);c.dependencies.add(w)}};const m={route:new Proxy(a,{get:(d,h)=>(o&&(c.route=!0),d[h])}),params:new Proxy(r,{get:(d,h)=>(o&&c.params.add(h),d[h])}),data:(s==null?void 0:s.data)??null,url:Fe(n,()=>{o&&(c.url=!0)},d=>{o&&c.search_params.add(d)},k.hash),async fetch(d,h){let w;d instanceof Request?(w=d.url,h={body:d.method==="GET"||d.method==="HEAD"?void 0:await d.blob(),cache:d.cache,credentials:d.credentials,headers:[...d.headers].length?d.headers:void 0,integrity:d.integrity,keepalive:d.keepalive,method:d.method,mode:d.mode,redirect:d.redirect,referrer:d.referrer,referrerPolicy:d.referrerPolicy,signal:d.signal,...h}):w=d;const S=new URL(w,n);return o&&l(S.href),S.origin===n.origin&&(w=S.href.slice(n.origin.length)),yt?qe(w,S.href,h):Me(w,h)},setHeaders:()=>{},depends:l,parent(){return o&&(c.parent=!0),e()},untrack(d){o=!1;try{return d()}finally{o=!0}}};i=await f.universal.load.call(null,m)??null}return{node:f,loader:t,server:s,universal:(p=f.universal)!=null&&p.load?{type:"data",data:i,uses:c}:null,data:i??(s==null?void 0:s.data)??null,slash:((y=f.universal)==null?void 0:y.trailingSlash)??(s==null?void 0:s.slash)}}function re(t,e,n,r,a,s){if(Bt)return!0;if(!a)return!1;if(a.parent&&t||a.route&&e||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==v.params[i])return!0;for(const i of a.dependencies)if(gt.some(o=>o(new URL(i))))return!0;return!1}function qt(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function En(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),s=e.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function ae({error:t,url:e,route:n,params:r}){return{type:"loaded",state:{error:t,url:e,route:n,params:r,branch:[]},props:{page:Ht(U),constructors:[]}}}async function Re({id:t,invalidating:e,url:n,params:r,route:a,preload:s}){if((L==null?void 0:L.id)===t)return J.delete(L.token),L.promise;const{errors:i,layouts:o,leaf:c}=a,f=[...o,c];i.forEach(g=>g==null?void 0:g().catch(()=>{})),f.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));let u=null;const p=v.url?t!==_t(v.url):!1,y=v.route?a.id!==v.route.id:!1,l=En(v.url,n);let m=!1;const d=f.map((g,_)=>{var D;const b=v.branch[_],E=!!(g!=null&&g[0])&&((b==null?void 0:b.loader)!==g[1]||re(m,y,p,l,(D=b.server)==null?void 0:D.uses,r));return E&&(m=!0),E});if(d.some(Boolean)){try{u=await Le(n,d)}catch(g){const _=await M(g,{url:n,params:r,route:{id:t}});return J.has(s)?ae({error:_,url:n,params:r,route:a}):At({status:dt(g),error:_,url:n,route:a})}if(u.type==="redirect")return u}const h=u==null?void 0:u.nodes;let w=!1;const S=f.map(async(g,_)=>{var St;if(!g)return;const b=v.branch[_],E=h==null?void 0:h[_];if((!E||E.type==="skip")&&g[1]===(b==null?void 0:b.loader)&&!re(w,y,p,l,(St=b.universal)==null?void 0:St.uses,r))return b;if(w=!0,(E==null?void 0:E.type)==="error")throw E;return Mt({loader:g[1],url:n,params:r,route:a,parent:async()=>{var Wt;const Kt={};for(let Et=0;Et<_;Et+=1)Object.assign(Kt,(Wt=await S[Et])==null?void 0:Wt.data);return Kt},server_data_node:qt(E===void 0&&g[0]?{type:"skip"}:E??null,g[0]?b==null?void 0:b.server:void 0)})});for(const g of S)g.catch(()=>{});const I=[];for(let g=0;g<f.length;g+=1)if(f[g])try{I.push(await S[g])}catch(_){if(_ instanceof jt)return{type:"redirect",location:_.location};if(J.has(s))return ae({error:await M(_,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let b=dt(_),E;if(h!=null&&h.includes(_))b=_.status??b,E=_.error;else if(_ instanceof bt)E=_.body;else{if(await $.updated.check())return await _e(),await q(n);E=await M(_,{params:r,url:n,route:{id:a.id}})}const D=await Rn(g,I,i);return D?wt({url:n,params:r,branch:I.slice(0,D.idx).concat(D.node),status:b,error:E,route:a}):await Ue(n,{id:a.id},E,b)}else I.push(void 0);return wt({url:n,params:r,branch:I,status:200,error:null,route:a,form:e?void 0:null})}async function Rn(t,e,n){for(;t--;)if(n[t]){let r=t;for(;!e[r];)r-=1;try{return{idx:r+1,node:{node:await n[t](),loader:n[t],data:{},server:null,universal:null}}}catch{continue}}}async function At({status:t,error:e,url:n,route:r}){const a={};let s=null;if(k.server_loads[0]===0)try{const o=await Le(n,[!0]);if(o.type!=="data"||o.nodes[0]&&o.nodes[0].type!=="data")throw 0;s=o.nodes[0]??null}catch{(n.origin!==ft||n.pathname!==location.pathname||Vt)&&await q(n)}try{const o=await Mt({loader:xt,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:qt(s)}),c={node:await pt(),loader:pt,universal:null,server:null,data:null};return wt({url:n,params:a,branch:[o,c],status:t,error:e,route:null})}catch(o){if(o instanceof jt)return Gt(new URL(o.location,location.href),{},0);throw o}}function In(t){let e;try{if(e=k.hooks.reroute({url:new URL(t)})??t,typeof e=="string"){const n=new URL(t);k.hash?n.hash=e:n.pathname=e,e=n}}catch{return}return e}async function kt(t,e){if(t&&!vt(t,x,k.hash)){const n=In(t);if(!n)return;const r=Un(n);for(const a of Ft){const s=a.exec(r);if(s)return{id:_t(t),invalidating:e,route:a,params:De(s),url:t}}}}function Un(t){return $e(k.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(x.length))||"/"}function _t(t){return(k.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Ie({url:t,type:e,intent:n,delta:r}){let a=!1;const s=xe(v,n,t,e);r!==void 0&&(s.navigation.delta=r);const i={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation cancelled"))}};return Q||ve.forEach(o=>o(i)),a?null:s}async function K({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:f=te,block:u=te}){const p=F;F=c;const y=await kt(e,!1),l=Ie({url:e,type:t,delta:n==null?void 0:n.delta,intent:y});if(!l){u(),F===c&&(F=p);return}const m=R,d=T;f(),Q=!0,yt&&$.navigating.set(X.current=l.navigation);let h=y&&await Re(y);if(!h){if(vt(e,x,k.hash))return await q(e);h=await Ue(e,{id:null},await M(new $t(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404)}if(e=(y==null?void 0:y.url)||e,F!==c)return l.reject(new Error("navigation aborted")),!1;if(h.type==="redirect")if(o>=20)h=await At({status:500,error:await M(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}});else return await Gt(new URL(h.location,e).href,{},o+1,c),!1;else h.props.page.status>=400&&await $.updated.check()&&(await _e(),await q(e));if(kn(),Dt(m),ke(d),h.props.page.url.pathname!==e.pathname&&(e.pathname=h.props.page.url.pathname),i=n?n.state:i,!n){const g=s?0:1,_={[G]:R+=g,[z]:T+=g,[de]:i};(s?history.replaceState:history.pushState).call(history,_,"",e),s||bn(R,T)}if(L=null,h.props.page.state=i,yt){v=h.state,h.props.page&&(h.props.page.url=e);const g=(await Promise.all(Array.from(An,_=>_(l.navigation)))).filter(_=>typeof _=="function");if(g.length>0){let _=function(){g.forEach(b=>{Y.delete(b)})};g.push(_),g.forEach(b=>{Y.add(b)})}Ae.$set(h.props),mn(h.props.page),be=!0}else Ee(h,Pt,!1);const{activeElement:w}=document;await Oe();const S=n?n.scroll:a?Nt():null;if(ee){const g=e.hash&&document.getElementById(decodeURIComponent(k.hash?e.hash.split("#")[2]??"":e.hash.slice(1)));S?scrollTo(S.x,S.y):g?g.scrollIntoView():scrollTo(0,0)}const I=document.activeElement!==w&&document.activeElement!==document.body;!r&&!I&&On(),ee=!0,h.props.page&&Object.assign(U,h.props.page),Q=!1,t==="popstate"&&Se(T),l.fulfil(void 0),Y.forEach(g=>g(l.navigation)),$.navigating.set(X.current=null)}async function Ue(t,e,n,r){return t.origin===ft&&t.pathname===location.pathname&&!Vt?await At({status:r,error:n,url:t,route:e}):await q(t)}function Ln(){let t,e;j.addEventListener("mousemove",i=>{const o=i.target;clearTimeout(t),t=setTimeout(()=>{a(o,2)},20)});function n(i){i.defaultPrevented||a(i.composedPath()[0],1)}j.addEventListener("mousedown",n),j.addEventListener("touchstart",n,{passive:!0});const r=new IntersectionObserver(i=>{for(const o of i)o.isIntersecting&&(Lt(new URL(o.target.href)),r.unobserve(o.target))},{threshold:0});async function a(i,o){const c=me(i,j);if(!c||c===e)return;e=c;const{url:f,external:u,download:p}=Tt(c,x,k.hash);if(u||p)return;const y=ht(c),l=f&&_t(v.url)===_t(f);if(!y.reload&&!l)if(o<=y.preload_data){const m=await kt(f,!1);m&&Sn(m)}else o<=y.preload_code&&Lt(f)}function s(){r.disconnect();for(const i of j.querySelectorAll("a")){const{url:o,external:c,download:f}=Tt(i,x,k.hash);if(c||f)continue;const u=ht(i);u.reload||(u.preload_code===ut.viewport&&r.observe(i),u.preload_code===ut.eager&&Lt(o))}}Y.add(s),s()}function M(t,e){if(t instanceof bt)return t.body;const n=dt(t),r=pn(t);return k.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function Tn(t,e={}){return t=new URL(pe(t)),t.origin!==ft?Promise.reject(new Error("goto: invalid URL")):Gt(t,e,0)}function xn(t){if(typeof t=="function")gt.push(t);else{const{href:e}=new URL(t,location.href);gt.push(n=>n.href===e)}}function Pn(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(ne(),!Q){const a=xe(v,void 0,null,"leave"),s={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};ve.forEach(i=>i(s))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ne()}),(e=navigator.connection)!=null&&e.saveData||Ln(),j.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=me(n.composedPath()[0],j);if(!r)return;const{url:a,external:s,target:i,download:o}=Tt(r,x,k.hash);if(!a)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=ht(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||o)return;const[u,p]=(k.hash?a.hash.replace(/^#/,""):a.href).split("#"),y=u===Rt(location);if(s||c.reload&&(!y||!p)){Ie({url:a,type:"link"})?Q=!0:n.preventDefault();return}if(p!==void 0&&y){const[,l]=v.url.href.split("#");if(l===p){if(n.preventDefault(),p===""||p==="top"&&r.ownerDocument.getElementById("top")===null)window.scrollTo({top:0});else{const m=r.ownerDocument.getElementById(decodeURIComponent(p));m&&(m.scrollIntoView(),m.focus())}return}if(H=!0,Dt(R),t(a),!c.replace_state)return;H=!1}n.preventDefault(),await new Promise(l=>{requestAnimationFrame(()=>{setTimeout(l,0)}),setTimeout(l,100)}),await K({type:"link",url:a,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??a.href===location.href})}),j.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const o=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(vt(o,x,!1))return;const c=n.target,f=ht(c);if(f.reload)return;n.preventDefault(),n.stopPropagation();const u=new FormData(c),p=a==null?void 0:a.getAttribute("name");p&&u.append(p,(a==null?void 0:a.getAttribute("value"))??""),o.search=new URLSearchParams(u).toString(),K({type:"form",url:o,keepfocus:f.keepfocus,noscroll:f.noscroll,replace_state:f.replace_state??o.href===location.href})}),addEventListener("popstate",async n=>{var r;if((r=n.state)!=null&&r[G]){const a=n.state[G];if(F={},a===R)return;const s=V[a],i=n.state[de]??{},o=new URL(n.state[Ze]??location.href),c=n.state[z],f=v.url?Rt(location)===Rt(v.url):!1;if(c===T&&(be||f)){i!==U.state&&(U.state=i),t(o),V[R]=Nt(),s&&scrollTo(s.x,s.y),R=a;return}const p=a-R;await K({type:"popstate",url:o,popped:{state:i,scroll:s,delta:p},accept:()=>{R=a,T=c},block:()=>{history.go(-p)},nav_token:F})}else if(!H){const a=new URL(location.href);t(a)}}),addEventListener("hashchange",()=>{H?(H=!1,history.replaceState({...history.state,[G]:++R,[z]:T},"",location.href)):k.hash&&v.url.hash===location.hash&&K({type:"goto",url:Pe(v.url)})});for(const n of document.querySelectorAll("link"))vn.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&$.navigating.set(X.current=null)});function t(n){v.url=U.url=n,$.page.set(Ht(U)),$.page.notify()}}async function Cn(t,{status:e=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){Vt=!0;const f=new URL(location.href);let u;({params:a={},route:s={id:null}}=await kt(f,!1)||{}),u=Ft.find(({id:l})=>l===s.id);let p,y=!0;try{const l=r.map(async(d,h)=>{const w=o[h];return w!=null&&w.uses&&(w.uses=Te(w.uses)),Mt({loader:k.nodes[d],url:f,params:a,route:s,parent:async()=>{const S={};for(let I=0;I<h;I+=1)Object.assign(S,(await l[I]).data);return S},server_data_node:qt(w)})}),m=await Promise.all(l);if(u){const d=u.layouts;for(let h=0;h<d.length;h++)d[h]||m.splice(h,0,void 0)}p=wt({url:f,params:a,branch:m,status:e,error:n,form:c,route:u??null})}catch(l){if(l instanceof jt){await q(new URL(l.location,location.href));return}p=await At({status:dt(l),error:await M(l,{url:f,params:a,route:s}),url:f,route:s}),t.textContent="",y=!1}p.props.page&&(p.props.page.state={}),Ee(p,t,y)}async function Le(t,e){var s;const n=new URL(t);n.pathname=_n(t.pathname),t.pathname.endsWith("/")&&n.searchParams.append(dn,"1"),n.searchParams.append(hn,e.map(i=>i?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let i;throw(s=a.headers.get("content-type"))!=null&&s.includes("application/json")?i=await a.json():a.status===404?i="Not Found":a.status===500&&(i="Internal Error"),new bt(a.status,i)}return new Promise(async i=>{var y;const o=new Map,c=a.body.getReader(),f=new TextDecoder;function u(l){return ln(l,{...k.decoders,Promise:m=>new Promise((d,h)=>{o.set(m,{fulfil:d,reject:h})})})}let p="";for(;;){const{done:l,value:m}=await c.read();if(l&&!p)break;for(p+=!m&&p?`
19
+ `:f.decode(m,{stream:!0});;){const d=p.indexOf(`
20
+ `);if(d===-1)break;const h=JSON.parse(p.slice(0,d));if(p=p.slice(d+1),h.type==="redirect")return i(h);if(h.type==="data")(y=h.nodes)==null||y.forEach(w=>{(w==null?void 0:w.type)==="data"&&(w.uses=Te(w.uses),w.data=u(w.data))}),i(h);else if(h.type==="chunk"){const{id:w,data:S,error:I}=h,g=o.get(w);o.delete(w),I?g.reject(u(I)):g.fulfil(u(S))}}}})}function Te(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}function On(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const e=document.body,n=e.getAttribute("tabindex");e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),n!==null?e.setAttribute("tabindex",n):e.removeAttribute("tabindex");const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let s=0;s<r.rangeCount;s+=1)a.push(r.getRangeAt(s));setTimeout(()=>{if(r.rangeCount===a.length){for(let s=0;s<r.rangeCount;s+=1){const i=a[s],o=r.getRangeAt(s);if(i.commonAncestorContainer!==o.commonAncestorContainer||i.startContainer!==o.startContainer||i.endContainer!==o.endContainer||i.startOffset!==o.startOffset||i.endOffset!==o.endOffset)return}r.removeAllRanges()}})}}}function xe(t,e,n,r){var c,f;let a,s;const i=new Promise((u,p)=>{a=u,s=p});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((f=e==null?void 0:e.route)==null?void 0:f.id)??null},url:n},willUnload:!e,type:r,complete:i},fulfil:a,reject:s}}function Ht(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Pe(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}export{Vn as a,U as p,$ as s};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{b as p,h as n,a as y,E as A,H as I,c as N,s as R,d as _,f as o,j as u,p as h,U as g,k}from"./B0bn91RF.js";function x(d,b,v=!1){n&&y();var e=d,a=null,s=null,f=g,E=v?A:0,r=!1;const T=(l,t=!0)=>{r=!0,i(t,l)},i=(l,t)=>{if(f===(f=l))return;let c=!1;if(n){const m=e.data===I;!!f===m&&(e=N(),R(e),_(!1),c=!0)}f?(a?o(a):t&&(a=u(()=>t(e))),s&&h(s,()=>{s=null})):(s?o(s):t&&(s=u(()=>t(e))),a&&h(a,()=>{a=null})),c&&_(!0)};p(()=>{r=!1,b(T),r||i(null,null)},E),n&&(e=k)}export{x as i};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{e as f,a as b,t as c}from"./DFJLQFic.js";import"./DTUE7kkY.js";import{R as u,D as v,B as d,C as p}from"./B0bn91RF.js";import{s as y}from"./rVEKg0Ak.js";import{s as _,a as h}from"./Bt3-Z7H1.js";import{p as l}from"./Be4iUAB0.js";function B(i,t){var s;var e=(s=i.$$events)==null?void 0:s[t.type],r=u(e)?e.slice():e==null?[]:[e];for(var o of r)o.call(this,t)}var k=c("<button><!></button>");function D(i,t){let e=l(t,"variant",8,"primary"),r=l(t,"size",8,"md"),o=l(t,"type",8,"button"),s=l(t,"disabled",8,!1);var a=k(),n=d(a);y(n,t,"default",{}),p(a),v(()=>{_(a,"type",o()),a.disabled=s(),h(a,`btn ${e()??""} ${r()??""} svelte-1mw9qtj`)}),f("click",a,function(m){B.call(this,t,m)}),b(i,a)}export{D as B};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{aF as N,aG as L,aH as C,Z as E,a3 as U,q as Y,a4 as j,R as G,ag as R,ah as w,aN as x,aO as Q,aP as Z,h,k as d,a as H,s as P,aQ as A,aR as z,at as J,aS as O,d as b,ai as K,aT as X,aU as ee,ao as re,ak as te,aV as ae,j as ne,l as se,I as ie,y as oe}from"./B0bn91RF.js";let D=!1;function ue(){D||(D=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var r;if(!e.defaultPrevented)for(const t of e.target.elements)(r=t.__on_r)==null||r.call(t)})},{capture:!0}))}function W(e){var r=C,t=E;N(null),L(null);try{return e()}finally{N(r),L(t)}}function pe(e,r,t,s=t){e.addEventListener(r,()=>W(t));const n=e.__on_r;n?e.__on_r=()=>{n(),s(!0)}:e.__on_r=()=>s(!0),ue()}const fe=new Set,k=new Set;function de(e,r,t,s={}){function n(a){if(s.capture||y.call(r,a),!a.cancelBubble)return W(()=>t==null?void 0:t.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Y(()=>{r.addEventListener(e,n,s)}):r.addEventListener(e,n,s),n}function ge(e,r,t,s,n){var a={capture:s,passive:n},i=de(e,r,t,a);(r===document.body||r===window||r===document)&&U(()=>{r.removeEventListener(e,i,a)})}function y(e){var M;var r=this,t=r.ownerDocument,s=e.type,n=((M=e.composedPath)==null?void 0:M.call(e))||[],a=n[0]||e.target,i=0,l=e.__root;if(l){var f=n.indexOf(l);if(f!==-1&&(r===document||r===window)){e.__root=r;return}var g=n.indexOf(r);if(g===-1)return;f<=g&&(i=f)}if(a=n[i]||e.target,a!==r){j(e,"currentTarget",{configurable:!0,get(){return a||t}});var S=C,c=E;N(null),L(null);try{for(var o,u=[];a!==null;){var v=a.assignedSlot||a.parentNode||a.host||null;try{var p=a["__"+s];if(p!==void 0&&(!a.disabled||e.target===a))if(G(p)){var[B,...F]=p;B.apply(a,[e,...F])}else p.call(a,e)}catch(T){o?u.push(T):o=T}if(e.cancelBubble||v===r||v===null)break;a=v}if(o){for(let T of u)queueMicrotask(()=>{throw T});throw o}}finally{e.__root=r,delete e.currentTarget,N(S),L(c)}}}function $(e){var r=document.createElement("template");return r.innerHTML=e,r.content}function _(e,r){var t=E;t.nodes_start===null&&(t.nodes_start=e,t.nodes_end=r)}function me(e,r){var t=(r&Q)!==0,s=(r&Z)!==0,n,a=!e.startsWith("<!>");return()=>{if(h)return _(d,null),d;n===void 0&&(n=$(a?e:"<!>"+e),t||(n=w(n)));var i=s||x?document.importNode(n,!0):n.cloneNode(!0);if(t){var l=w(i),f=i.lastChild;_(l,f)}else _(i,i);return i}}function ye(e,r,t="svg"){var s=!e.startsWith("<!>"),n=`<${t}>${s?e:"<!>"+e}</${t}>`,a;return()=>{if(h)return _(d,null),d;if(!a){var i=$(n),l=w(i);a=w(l)}var f=a.cloneNode(!0);return _(f,f),f}}function we(e=""){if(!h){var r=R(e+"");return _(r,r),r}var t=d;return t.nodeType!==3&&(t.before(t=R()),P(t)),_(t,t),t}function Ee(){if(h)return _(d,null),d;var e=document.createDocumentFragment(),r=document.createComment(""),t=R();return e.append(r,t),_(r,t),e}function Te(e,r){if(h){E.nodes_end=d,H();return}e!==null&&e.before(r)}const le=["touchstart","touchmove"];function ce(e){return le.includes(e)}let V=!0;function be(e,r){var t=r==null?"":typeof r=="object"?r+"":r;t!==(e.__t??(e.__t=e.nodeValue))&&(e.__t=t,e.nodeValue=t+"")}function _e(e,r){return q(e,r)}function Ne(e,r){A(),r.intro=r.intro??!1;const t=r.target,s=h,n=d;try{for(var a=w(t);a&&(a.nodeType!==8||a.data!==z);)a=J(a);if(!a)throw O;b(!0),P(a),H();const i=q(e,{...r,anchor:a});if(d===null||d.nodeType!==8||d.data!==K)throw X(),O;return b(!1),i}catch(i){if(i===O)return r.recover===!1&&ee(),A(),re(t),b(!1),_e(e,r);throw i}finally{b(s),P(n)}}const m=new Map;function q(e,{target:r,anchor:t,props:s={},events:n,context:a,intro:i=!0}){A();var l=new Set,f=c=>{for(var o=0;o<c.length;o++){var u=c[o];if(!l.has(u)){l.add(u);var v=ce(u);r.addEventListener(u,y,{passive:v});var p=m.get(u);p===void 0?(document.addEventListener(u,y,{passive:v}),m.set(u,1)):m.set(u,p+1)}}};f(te(fe)),k.add(f);var g=void 0,S=ae(()=>{var c=t??r.appendChild(R());return ne(()=>{if(a){se({});var o=ie;o.c=a}n&&(s.$$events=n),h&&_(c,null),V=i,g=e(c,s)||{},V=!0,h&&(E.nodes_end=d),a&&oe()}),()=>{var v;for(var o of l){r.removeEventListener(o,y);var u=m.get(o);--u===0?(document.removeEventListener(o,y),m.delete(o)):m.set(o,u)}k.delete(f),c!==t&&((v=c.parentNode)==null||v.removeChild(c))}});return I.set(g,S),g}let I=new WeakMap;function Le(e,r){const t=I.get(e);return t?(I.delete(e),t(r)):Promise.resolve()}const ve="5";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(ve);export{Te as a,we as b,Ee as c,ue as d,ge as e,V as f,Ne as h,pe as l,_e as m,ye as n,be as s,me as t,Le as u,W as w};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{I as d,J as g,K as c,L as i,u as m,M as b,A as p,N as v,O as h,P as k}from"./B0bn91RF.js";function x(n=!1){const s=d,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(n){let a=0,t={};const _=h(()=>{let l=!1;const r=s.s;for(const o in r)r[o]!==t[o]&&(t[o]=r[o],l=!0);return l&&a++,a});f=()=>p(_)}e.b.length&&g(()=>{u(s,f),i(e.b)}),c(()=>{const a=m(()=>e.m.map(b));return()=>{for(const t of a)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}k();export{x as i};
@@ -0,0 +1,20 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{w as t,g as r}from"./B0bn91RF.js";const l=t(null),i=t({output:`Ready — select a test from the list.
19
+ `,running:!1,testCompleted:!1,latestReport:null,status:"idle",lastRunId:""}),p=t({workers:1,testID:""}),c=t(!0);function g(s){const n=r(l);if(!n)return;const{workers:a,testID:u}=r(p),e=(s!==void 0?s:u).trim().replace(/\sOR\s/gi,o=>o.toLowerCase());i.set({output:`Running: ${e||"(all tests)"}
20
+ `,running:!0,testCompleted:!1,latestReport:null,status:"running",lastRunId:e}),c.set(!0),n.emit("run-test",e,a)}export{i as a,c as p,p as r,l as s,g as t};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{a as s,t as p}from"./DFJLQFic.js";import"./DTUE7kkY.js";import{B as m,C as i,D as n}from"./B0bn91RF.js";import{s as f}from"./rVEKg0Ak.js";import{a as l}from"./Bt3-Z7H1.js";import{p as d}from"./Be4iUAB0.js";var v=p("<span><!></span>");function h(r,t){let e=d(t,"variant",8,"neutral");var a=v(),o=m(a);f(o,t,"default",{}),i(a),n(()=>l(a,`badge ${e()??""} svelte-imjoo5`)),s(r,a)}export{h as B};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{h as s,a as l}from"./B0bn91RF.js";function h(n,a,r,t,d){var i;s&&l();var e=(i=a.$$slots)==null?void 0:i[r],f=!1;e===!0&&(e=a.children,f=!0),e===void 0||e(n,f?()=>t:t)}export{h as s};
@@ -0,0 +1,19 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.BsCYK-Tn.js","../chunks/DFJLQFic.js","../chunks/B0bn91RF.js","../chunks/DTUE7kkY.js","../chunks/rVEKg0Ak.js","../chunks/CwBTqcbj.js","../chunks/Bt3-Z7H1.js","../chunks/B1kE5jmt.js","../chunks/Be4iUAB0.js","../chunks/CJ8q7g9Y.js","../chunks/Cit9MuSg.js","../chunks/BKz6FZdB.js","../chunks/IYPwzKs_.js","../chunks/BpaMqo9O.js","../chunks/CHV2KnPr.js","../chunks/DBk3zeq4.js","../assets/Button.cBruH0aD.css","../assets/0.CnXRuPt4.css","../nodes/1.N4gjrCnX.js","../nodes/2.D9yQNzK8.js","../assets/2.CGnCsn5q.css","../nodes/3.CBC5WvNb.js","../chunks/oc0we5Us.js","../assets/Badge.DLLowvEA.css","../assets/3.BVnUajEa.css","../nodes/4.BU6UZHSE.js","../assets/4.DBhBrHFz.css","../nodes/5.Dzzfrntl.js","../assets/5.D93VAB-w.css"])))=>i.map(i=>d[i]);
19
+ var U=r=>{throw TypeError(r)};var G=(r,e,s)=>e.has(r)||U("Cannot "+s);var l=(r,e,s)=>(G(r,e,"read from private field"),s?s.call(r):e.get(r)),C=(r,e,s)=>e.has(r)?U("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,s),S=(r,e,s,n)=>(G(r,e,"write to private field"),n?n.call(r,s):e.set(r,s),s);import{m as L,aa as Q,A as v,aI as X,a4 as Z,a1 as M,h as K,a as $,b as ee,E as te,j as re,p as se,k as ae,l as ne,J as oe,K as ie,o as ce,aA as le,x as O,v as ue,y as de,aJ as p,B as fe,C as me,D as he,O as D}from"../chunks/B0bn91RF.js";import{h as _e,m as ve,u as ge,a as R,c as I,t as W,b as ye,s as Ee}from"../chunks/DFJLQFic.js";import{i as j}from"../chunks/CwBTqcbj.js";import{p as V,b as be}from"../chunks/Be4iUAB0.js";import{b as B}from"../chunks/CHV2KnPr.js";const Pe="modulepreload",Re=function(r,e){return new URL(r,e).href},N={},k=function(e,s,n){let o=Promise.resolve();if(s&&s.length>0){const a=document.getElementsByTagName("link"),t=document.querySelector("meta[property=csp-nonce]"),f=(t==null?void 0:t.nonce)||(t==null?void 0:t.getAttribute("nonce"));o=Promise.allSettled(s.map(u=>{if(u=Re(u,n),u in N)return;N[u]=!0;const y=u.endsWith(".css"),T=y?'[rel="stylesheet"]':"";if(!!n)for(let E=a.length-1;E>=0;E--){const i=a[E];if(i.href===u&&(!y||i.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${T}`))return;const h=document.createElement("link");if(h.rel=y?"stylesheet":Pe,y||(h.as="script"),h.crossOrigin="",h.href=u,f&&h.setAttribute("nonce",f),document.head.appendChild(h),y)return new Promise((E,i)=>{h.addEventListener("load",E),h.addEventListener("error",()=>i(new Error(`Unable to preload CSS for ${u}`)))})}))}function c(a){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=a,window.dispatchEvent(t),!t.defaultPrevented)throw a}return o.then(a=>{for(const t of a||[])t.status==="rejected"&&c(t.reason);return e().catch(c)})},Be={};function ke(r){return class extends we{constructor(e){super({component:r,...e})}}}var g,d;class we{constructor(e){C(this,g);C(this,d);var c;var s=new Map,n=(a,t)=>{var f=M(t);return s.set(a,f),f};const o=new Proxy({...e.props||{},$$events:{}},{get(a,t){return v(s.get(t)??n(t,Reflect.get(a,t)))},has(a,t){return t===Q?!0:(v(s.get(t)??n(t,Reflect.get(a,t))),Reflect.has(a,t))},set(a,t,f){return L(s.get(t)??n(t,f),f),Reflect.set(a,t,f)}});S(this,d,(e.hydrate?_e:ve)(e.component,{target:e.target,anchor:e.anchor,props:o,context:e.context,intro:e.intro??!1,recover:e.recover})),(!((c=e==null?void 0:e.props)!=null&&c.$$host)||e.sync===!1)&&X(),S(this,g,o.$$events);for(const a of Object.keys(l(this,d)))a==="$set"||a==="$destroy"||a==="$on"||Z(this,a,{get(){return l(this,d)[a]},set(t){l(this,d)[a]=t},enumerable:!0});l(this,d).$set=a=>{Object.assign(o,a)},l(this,d).$destroy=()=>{ge(l(this,d))}}$set(e){l(this,d).$set(e)}$on(e,s){l(this,g)[e]=l(this,g)[e]||[];const n=(...o)=>s.call(this,...o);return l(this,g)[e].push(n),()=>{l(this,g)[e]=l(this,g)[e].filter(o=>o!==n)}}$destroy(){l(this,d).$destroy()}}g=new WeakMap,d=new WeakMap;function q(r,e,s){K&&$();var n=r,o,c;ee(()=>{o!==(o=e())&&(c&&(se(c),c=null),o&&(c=re(()=>s(n,o))))},te),K&&(n=ae)}var xe=W('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),Ae=W("<!> <!>",1);function Oe(r,e){ne(e,!0);let s=V(e,"components",23,()=>[]),n=V(e,"data_0",3,null),o=V(e,"data_1",3,null);oe(()=>e.stores.page.set(e.page)),ie(()=>{e.stores,e.page,e.constructors,s(),e.form,n(),o(),e.stores.page.notify()});let c=p(!1),a=p(!1),t=p(null);ce(()=>{const i=e.stores.page.subscribe(()=>{v(c)&&(L(a,!0),le().then(()=>{L(t,be(document.title||"untitled page"))}))});return L(c,!0),i});const f=D(()=>e.constructors[1]);var u=Ae(),y=O(u);{var T=i=>{var _=I();const w=D(()=>e.constructors[0]);var x=O(_);q(x,()=>v(w),(b,P)=>{B(P(b,{get data(){return n()},get form(){return e.form},children:(m,Ce)=>{var J=I(),Y=O(J);q(Y,()=>v(f),(z,H)=>{B(H(z,{get data(){return o()},get form(){return e.form}}),A=>s()[1]=A,()=>{var A;return(A=s())==null?void 0:A[1]})}),R(m,J)},$$slots:{default:!0}}),m=>s()[0]=m,()=>{var m;return(m=s())==null?void 0:m[0]})}),R(i,_)},F=i=>{var _=I();const w=D(()=>e.constructors[0]);var x=O(_);q(x,()=>v(w),(b,P)=>{B(P(b,{get data(){return n()},get form(){return e.form}}),m=>s()[0]=m,()=>{var m;return(m=s())==null?void 0:m[0]})}),R(i,_)};j(y,i=>{e.constructors[1]?i(T):i(F,!1)})}var h=ue(y,2);{var E=i=>{var _=xe(),w=fe(_);{var x=b=>{var P=ye();he(()=>Ee(P,v(t))),R(b,P)};j(w,b=>{v(a)&&b(x)})}me(_),R(i,_)};j(h,i=>{v(c)&&i(E)})}R(r,u),de()}const qe=ke(Oe),Fe=[()=>k(()=>import("../nodes/0.BsCYK-Tn.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]),import.meta.url),()=>k(()=>import("../nodes/1.N4gjrCnX.js"),__vite__mapDeps([18,1,2,3,10]),import.meta.url),()=>k(()=>import("../nodes/2.D9yQNzK8.js"),__vite__mapDeps([19,1,2,3,5,6,7,11,12,20]),import.meta.url),()=>k(()=>import("../nodes/3.CBC5WvNb.js"),__vite__mapDeps([21,1,2,3,5,6,13,22,4,8,23,24]),import.meta.url),()=>k(()=>import("../nodes/4.BU6UZHSE.js"),__vite__mapDeps([25,1,2,3,5,6,7,8,9,10,13,22,4,23,26]),import.meta.url),()=>k(()=>import("../nodes/5.Dzzfrntl.js"),__vite__mapDeps([27,1,2,3,5,6,7,11,8,15,4,16,22,23,28]),import.meta.url)],Je=[],Ue={"/":[2],"/reports":[3],"/reports/[slug]":[4],"/scheduled-tests":[5]},Le={handleError:({error:r})=>{console.error(r)},reroute:()=>{},transport:{}},Te=Object.fromEntries(Object.entries(Le.transport).map(([r,e])=>[r,e.decode])),Ge=!1,Ke=(r,e)=>Te[r](e);export{Ke as decode,Te as decoders,Ue as dictionary,Ge as hash,Le as hooks,Be as matchers,Fe as nodes,qe as root,Je as server_loads};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{a as t}from"../chunks/Cit9MuSg.js";export{t as start};
@@ -0,0 +1,18 @@
1
+ /*
2
+ This file is part of Plum.
3
+
4
+ Plum is free software: you can redistribute it and/or modify
5
+ it under the terms of the GNU General Public License as published by
6
+ the Free Software Foundation, either version 3 of the License, or
7
+ (at your option) any later version.
8
+
9
+ Plum is distributed in the hope that it will be useful,
10
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ GNU General Public License for more details.
13
+
14
+ You should have received a copy of the GNU General Public License
15
+ along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+ ��import{a as t}from"../chunks/Cit9MuSg.js";export{t as start};
18
+ 
@@ -0,0 +1,21 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{e as H,a as v,t as x,s as K,n as et,b as Me,c as kt}from"../chunks/DFJLQFic.js";import{i as Le}from"../chunks/DTUE7kkY.js";import{w as Et,l as Pe,D as S,y as qe,B as p,v as _,C as u,A as c,m as U,z as V,aW as Rt,aM as xt,o as Tt,n as J,t as At,F as He,u as Ke,G as Ot,x as We}from"../chunks/B0bn91RF.js";import{s as tt}from"../chunks/rVEKg0Ak.js";import{i as ne}from"../chunks/CwBTqcbj.js";import{e as de,i as ye,s as F,t as A,r as Ct}from"../chunks/Bt3-Z7H1.js";import{t as xe,s as st,b as St}from"../chunks/B1kE5jmt.js";import{s as nt,a as re,p as Bt,c as Nt}from"../chunks/Be4iUAB0.js";import{p as Lt}from"../chunks/CJ8q7g9Y.js";import{b as Pt}from"../chunks/BKz6FZdB.js";import{s as qt,a as be,p as ze,r as we,t as Ye}from"../chunks/IYPwzKs_.js";import{b as $t,r as Dt}from"../chunks/BpaMqo9O.js";import{b as It}from"../chunks/CHV2KnPr.js";import{B as Je}from"../chunks/DBk3zeq4.js";const rt="plum-theme",Ut=localStorage.getItem(rt)??"light",Te=Et(Ut);Te.subscribe(n=>{localStorage.setItem(rt,n),document.documentElement.setAttribute("data-theme",n)});var Ft=x('<a class="link svelte-6bgush"> </a>'),Vt=et('<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>'),Mt=et('<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>'),Ht=x('<a class="mobile-link svelte-6bgush"> </a>'),Kt=x('<div class="mobile-menu svelte-6bgush"></div>'),Wt=x('<nav class="nav svelte-6bgush"><div class="inner svelte-6bgush"><a href="/" class="brand svelte-6bgush"><span class="brand-serif svelte-6bgush">Pl</span><span class="brand-sans svelte-6bgush">um</span></a> <div class="links svelte-6bgush"></div> <div class="actions svelte-6bgush"><button class="theme-btn svelte-6bgush" aria-label="Toggle theme"><!></button> <button class="hamburger svelte-6bgush"><span class="svelte-6bgush"></span> <span class="svelte-6bgush"></span> <span class="svelte-6bgush"></span></button></div></div> <!></nav>');function zt(n,e){Pe(e,!1);const[t,s]=nt(),r=()=>re(Lt,"$page",t),i=()=>re(Te,"$theme",t);let o=V(!1);const a=[{href:"/",label:"Run Tests"},{href:"/reports",label:"Reports"},{href:"/scheduled-tests",label:"Scheduled"}];function h(){Te.update(b=>b==="light"?"dark":"light")}function g(){U(o,!1)}Le();var m=Wt(),w=p(m),C=p(w),Q=_(C,2);de(Q,5,()=>a,ye,(b,k)=>{var D=Ft(),f=p(D,!0);u(D),S(()=>{F(D,"href",c(k).href),A(D,"active",r().url.pathname===c(k).href),K(f,c(k).label)}),v(b,D)}),u(Q);var ie=_(Q,2),q=p(ie),j=p(q);{var G=b=>{var k=Vt();v(b,k)},Z=b=>{var k=Mt();v(b,k)};ne(j,b=>{i()==="light"?b(G):b(Z,!1)})}u(q);var $=_(q,2),oe=p($),ae=_(oe,2),_e=_(ae,2);u($),u(ie),u(w);var W=_(w,2);{var z=b=>{var k=Kt();de(k,5,()=>a,ye,(D,f)=>{var d=Ht(),E=p(d,!0);u(d),S(()=>{F(d,"href",c(f).href),A(d,"active",r().url.pathname===c(f).href),K(E,c(f).label)}),H("click",d,g),v(D,d)}),u(k),xe(3,k,()=>st,()=>({duration:200})),v(b,k)};ne(W,b=>{c(o)&&b(z)})}u(m),S(()=>{F($,"aria-label",c(o)?"Close menu":"Open menu"),F($,"aria-expanded",c(o)),A(oe,"rotated",c(o)),A(ae,"hidden",c(o)),A(_e,"rotated-reverse",c(o))}),H("click",C,g),H("click",q,h),H("click",$,()=>U(o,!c(o))),v(n,m),qe(),s()}var Yt=x('<main class="shell svelte-28zx1m"><!></main>');function Jt(n,e){var t=Yt(),s=p(t);tt(s,e,"default",{}),u(t),v(n,t)}const P=Object.create(null);P.open="0";P.close="1";P.ping="2";P.pong="3";P.message="4";P.upgrade="5";P.noop="6";const le=Object.create(null);Object.keys(P).forEach(n=>{le[P[n]]=n});const Ae={type:"error",data:"parser error"},it=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",ot=typeof ArrayBuffer=="function",at=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,$e=({type:n,data:e},t,s)=>it&&e instanceof Blob?t?s(e):Xe(e,s):ot&&(e instanceof ArrayBuffer||at(e))?t?s(e):Xe(new Blob([e]),s):s(P[n]+(e||"")),Xe=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function Qe(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let ke;function Xt(n,e){if(it&&n.data instanceof Blob)return n.data.arrayBuffer().then(Qe).then(e);if(ot&&(n.data instanceof ArrayBuffer||at(n.data)))return e(Qe(n.data));$e(n,!1,t=>{ke||(ke=new TextEncoder),e(ke.encode(t))})}const je="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",se=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<je.length;n++)se[je.charCodeAt(n)]=n;const Qt=n=>{let e=n.length*.75,t=n.length,s,r=0,i,o,a,h;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);const g=new ArrayBuffer(e),m=new Uint8Array(g);for(s=0;s<t;s+=4)i=se[n.charCodeAt(s)],o=se[n.charCodeAt(s+1)],a=se[n.charCodeAt(s+2)],h=se[n.charCodeAt(s+3)],m[r++]=i<<2|o>>4,m[r++]=(o&15)<<4|a>>2,m[r++]=(a&3)<<6|h&63;return g},jt=typeof ArrayBuffer=="function",De=(n,e)=>{if(typeof n!="string")return{type:"message",data:ct(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:Gt(n.substring(1),e)}:le[t]?n.length>1?{type:le[t],data:n.substring(1)}:{type:le[t]}:Ae},Gt=(n,e)=>{if(jt){const t=Qt(n);return ct(t,e)}else return{base64:!0,data:n}},ct=(n,e)=>{switch(e){case"blob":return n instanceof Blob?n:new Blob([n]);case"arraybuffer":default:return n instanceof ArrayBuffer?n:n.buffer}},ht="",Zt=(n,e)=>{const t=n.length,s=new Array(t);let r=0;n.forEach((i,o)=>{$e(i,!1,a=>{s[o]=a,++r===t&&e(s.join(ht))})})},es=(n,e)=>{const t=n.split(ht),s=[];for(let r=0;r<t.length;r++){const i=De(t[r],e);if(s.push(i),i.type==="error")break}return s};function ts(){return new TransformStream({transform(n,e){Xt(n,t=>{const s=t.length;let r;if(s<126)r=new Uint8Array(1),new DataView(r.buffer).setUint8(0,s);else if(s<65536){r=new Uint8Array(3);const i=new DataView(r.buffer);i.setUint8(0,126),i.setUint16(1,s)}else{r=new Uint8Array(9);const i=new DataView(r.buffer);i.setUint8(0,127),i.setBigUint64(1,BigInt(s))}n.data&&typeof n.data!="string"&&(r[0]|=128),e.enqueue(r),e.enqueue(t)})}})}let Ee;function ce(n){return n.reduce((e,t)=>e+t.length,0)}function he(n,e){if(n[0].length===e)return n.shift();const t=new Uint8Array(e);let s=0;for(let r=0;r<e;r++)t[r]=n[0][s++],s===n[0].length&&(n.shift(),s=0);return n.length&&s<n[0].length&&(n[0]=n[0].slice(s)),t}function ss(n,e){Ee||(Ee=new TextDecoder);const t=[];let s=0,r=-1,i=!1;return new TransformStream({transform(o,a){for(t.push(o);;){if(s===0){if(ce(t)<1)break;const h=he(t,1);i=(h[0]&128)===128,r=h[0]&127,r<126?s=3:r===126?s=1:s=2}else if(s===1){if(ce(t)<2)break;const h=he(t,2);r=new DataView(h.buffer,h.byteOffset,h.length).getUint16(0),s=3}else if(s===2){if(ce(t)<8)break;const h=he(t,8),g=new DataView(h.buffer,h.byteOffset,h.length),m=g.getUint32(0);if(m>Math.pow(2,21)-1){a.enqueue(Ae);break}r=m*Math.pow(2,32)+g.getUint32(4),s=3}else{if(ce(t)<r)break;const h=he(t,r);a.enqueue(De(i?h:Ee.decode(h),e)),s=0}if(r===0||r>n){a.enqueue(Ae);break}}}})}const lt=4;function y(n){if(n)return ns(n)}function ns(n){for(var e in y.prototype)n[e]=y.prototype[e];return n}y.prototype.on=y.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};y.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};y.prototype.off=y.prototype.removeListener=y.prototype.removeAllListeners=y.prototype.removeEventListener=function(n,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+n];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;for(var s,r=0;r<t.length;r++)if(s=t[r],s===e||s.fn===e){t.splice(r,1);break}return t.length===0&&delete this._callbacks["$"+n],this};y.prototype.emit=function(n){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+n],s=1;s<arguments.length;s++)e[s-1]=arguments[s];if(t){t=t.slice(0);for(var s=0,r=t.length;s<r;++s)t[s].apply(this,e)}return this};y.prototype.emitReserved=y.prototype.emit;y.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};y.prototype.hasListeners=function(n){return!!this.listeners(n).length};const me=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),O=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),rs="arraybuffer";function ut(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const is=O.setTimeout,os=O.clearTimeout;function ge(n,e){e.useNativeTimers?(n.setTimeoutFn=is.bind(O),n.clearTimeoutFn=os.bind(O)):(n.setTimeoutFn=O.setTimeout.bind(O),n.clearTimeoutFn=O.clearTimeout.bind(O))}const as=1.33;function cs(n){return typeof n=="string"?hs(n):Math.ceil((n.byteLength||n.size)*as)}function hs(n){let e=0,t=0;for(let s=0,r=n.length;s<r;s++)e=n.charCodeAt(s),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(s++,t+=4);return t}function ft(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function ls(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function us(n){let e={},t=n.split("&");for(let s=0,r=t.length;s<r;s++){let i=t[s].split("=");e[decodeURIComponent(i[0])]=decodeURIComponent(i[1])}return e}class fs extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Ie extends y{constructor(e){super(),this.writable=!1,ge(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new fs(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=De(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=ls(e);return t.length?"?"+t:""}}class ps extends Ie{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let s=0;this._polling&&(s++,this.once("pollComplete",function(){--s||t()})),this.writable||(s++,this.once("drain",function(){--s||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)};es(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Zt(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=ft()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let pt=!1;try{pt=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ds=pt;function ys(){}class ms extends ps{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let s=location.port;s||(s=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(r,i)=>{this.onError("xhr post error",r,i)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,s)=>{this.onError("xhr poll error",t,s)}),this.pollXhr=e}}class L extends y{constructor(e,t,s){super(),this.createRequest=e,ge(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;const t=ut(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const s=this._xhr=this.createRequest(t);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let r in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(r)&&s.setRequestHeader(r,this._opts.extraHeaders[r])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var r;s.readyState===3&&((r=this._opts.cookieJar)===null||r===void 0||r.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(r){this.setTimeoutFn(()=>{this._onError(r)},0);return}typeof document<"u"&&(this._index=L.requestsCount++,L.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ys,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete L.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}L.requestsCount=0;L.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Ge);else if(typeof addEventListener=="function"){const n="onpagehide"in O?"pagehide":"unload";addEventListener(n,Ge,!1)}}function Ge(){for(let n in L.requests)L.requests.hasOwnProperty(n)&&L.requests[n].abort()}const gs=function(){const n=dt({xdomain:!1});return n&&n.responseType!==null}();class _s extends ms{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=gs&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new L(dt,this.uri(),e)}}function dt(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||ds))return new XMLHttpRequest}catch{}if(!e)try{return new O[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const yt=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class vs extends Ie{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=yt?{}:ut(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(r){return this.emitReserved("error",r)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],r=t===e.length-1;$e(s,this.supportsBinary,i=>{try{this.doWrite(s,i)}catch{}r&&me(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=ft()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const Re=O.WebSocket||O.MozWebSocket;class bs extends vs{createSocket(e,t,s){return yt?new Re(e,t,s):t?new Re(e,t):new Re(e)}doWrite(e,t){this.ws.send(t)}}class ws extends Ie{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=ss(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),r=ts();r.readable.pipeTo(e.writable),this._writer=r.writable.getWriter();const i=()=>{s.read().then(({done:a,value:h})=>{a||(this.onPacket(h),i())}).catch(a=>{})};i();const o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],r=t===e.length-1;this._writer.write(s).then(()=>{r&&me(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const ks={websocket:bs,webtransport:ws,polling:_s},Es=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Rs=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Oe(n){if(n.length>8e3)throw"URI too long";const e=n,t=n.indexOf("["),s=n.indexOf("]");t!=-1&&s!=-1&&(n=n.substring(0,t)+n.substring(t,s).replace(/:/g,";")+n.substring(s,n.length));let r=Es.exec(n||""),i={},o=14;for(;o--;)i[Rs[o]]=r[o]||"";return t!=-1&&s!=-1&&(i.source=e,i.host=i.host.substring(1,i.host.length-1).replace(/;/g,":"),i.authority=i.authority.replace("[","").replace("]","").replace(/;/g,":"),i.ipv6uri=!0),i.pathNames=xs(i,i.path),i.queryKey=Ts(i,i.query),i}function xs(n,e){const t=/\/{2,9}/g,s=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&s.splice(0,1),e.slice(-1)=="/"&&s.splice(s.length-1,1),s}function Ts(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,r,i){r&&(t[r]=i)}),t}const Ce=typeof addEventListener=="function"&&typeof removeEventListener=="function",ue=[];Ce&&addEventListener("offline",()=>{ue.forEach(n=>n())},!1);class M extends y{constructor(e,t){if(super(),this.binaryType=rs,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const s=Oe(e);t.hostname=s.host,t.secure=s.protocol==="https"||s.protocol==="wss",t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=Oe(t.host).host);ge(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(s=>{const r=s.prototype.name;this.transports.push(r),this._transportsByName[r]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=us(this.opts.query)),Ce&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},ue.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=lt,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&M.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",M.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const r=this.writeBuffer[s].data;if(r&&(t+=cs(r)),s>0&&t>this._maxPayload)return this.writeBuffer.slice(0,s);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,me(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,r){if(typeof t=="function"&&(r=t,t=void 0),typeof s=="function"&&(r=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;const i={type:e,data:t,options:s};this.emitReserved("packetCreate",i),this.writeBuffer.push(i),r&&this.once("flush",r),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(M.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Ce&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=ue.indexOf(this._offlineEventListener);s!==-1&&ue.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}M.protocol=lt;class As extends M{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),s=!1;M.priorWebsocketSuccess=!1;const r=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",w=>{if(!s)if(w.type==="pong"&&w.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;M.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{s||this.readyState!=="closed"&&(m(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const C=new Error("probe error");C.transport=t.name,this.emitReserved("upgradeError",C)}}))};function i(){s||(s=!0,m(),t.close(),t=null)}const o=w=>{const C=new Error("probe error: "+w);C.transport=t.name,i(),this.emitReserved("upgradeError",C)};function a(){o("transport closed")}function h(){o("socket closed")}function g(w){t&&w.name!==t.name&&i()}const m=()=>{t.removeListener("open",r),t.removeListener("error",o),t.removeListener("close",a),this.off("close",h),this.off("upgrading",g)};t.once("open",r),t.once("error",o),t.once("close",a),this.once("close",h),this.once("upgrading",g),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let s=0;s<e.length;s++)~this.transports.indexOf(e[s])&&t.push(e[s]);return t}}let Os=class extends As{constructor(e,t={}){const s=typeof e=="object"?e:t;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(r=>ks[r]).filter(r=>!!r)),super(e,s)}};function Cs(n,e="",t){let s=n;t=t||typeof location<"u"&&location,n==null&&(n=t.protocol+"//"+t.host),typeof n=="string"&&(n.charAt(0)==="/"&&(n.charAt(1)==="/"?n=t.protocol+n:n=t.host+n),/^(https?|wss?):\/\//.test(n)||(typeof t<"u"?n=t.protocol+"//"+n:n="https://"+n),s=Oe(n)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const i=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+i+":"+s.port+e,s.href=s.protocol+"://"+i+(t&&t.port===s.port?"":":"+s.port),s}const Ss=typeof ArrayBuffer=="function",Bs=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,mt=Object.prototype.toString,Ns=typeof Blob=="function"||typeof Blob<"u"&&mt.call(Blob)==="[object BlobConstructor]",Ls=typeof File=="function"||typeof File<"u"&&mt.call(File)==="[object FileConstructor]";function Ue(n){return Ss&&(n instanceof ArrayBuffer||Bs(n))||Ns&&n instanceof Blob||Ls&&n instanceof File}function fe(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(fe(n[t]))return!0;return!1}if(Ue(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return fe(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&fe(n[t]))return!0;return!1}function Ps(n){const e=[],t=n.data,s=n;return s.data=Se(t,e),s.attachments=e.length,{packet:s,buffers:e}}function Se(n,e){if(!n)return n;if(Ue(n)){const t={_placeholder:!0,num:e.length};return e.push(n),t}else if(Array.isArray(n)){const t=new Array(n.length);for(let s=0;s<n.length;s++)t[s]=Se(n[s],e);return t}else if(typeof n=="object"&&!(n instanceof Date)){const t={};for(const s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=Se(n[s],e));return t}return n}function qs(n,e){return n.data=Be(n.data,e),delete n.attachments,n}function Be(n,e){if(!n)return n;if(n&&n._placeholder===!0){if(typeof n.num=="number"&&n.num>=0&&n.num<e.length)return e[n.num];throw new Error("illegal attachments")}else if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=Be(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Be(n[t],e));return n}const $s=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var l;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(l||(l={}));class Ds{constructor(e){this.replacer=e}encode(e){return(e.type===l.EVENT||e.type===l.ACK)&&fe(e)?this.encodeAsBinary({type:e.type===l.EVENT?l.BINARY_EVENT:l.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===l.BINARY_EVENT||e.type===l.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=Ps(e),s=this.encodeAsString(t.packet),r=t.buffers;return r.unshift(s),r}}function Ze(n){return Object.prototype.toString.call(n)==="[object Object]"}class Fe extends y{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const s=t.type===l.BINARY_EVENT;s||t.type===l.BINARY_ACK?(t.type=s?l.EVENT:l.ACK,this.reconstructor=new Is(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Ue(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0;const s={type:Number(e.charAt(0))};if(l[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===l.BINARY_EVENT||s.type===l.BINARY_ACK){const i=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const o=e.substring(i,t);if(o!=Number(o)||e.charAt(t)!=="-")throw new Error("Illegal attachments");s.attachments=Number(o)}if(e.charAt(t+1)==="/"){const i=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););s.nsp=e.substring(i,t)}else s.nsp="/";const r=e.charAt(t+1);if(r!==""&&Number(r)==r){const i=t+1;for(;++t;){const o=e.charAt(t);if(o==null||Number(o)!=o){--t;break}if(t===e.length)break}s.id=Number(e.substring(i,t+1))}if(e.charAt(++t)){const i=this.tryParse(e.substr(t));if(Fe.isPayloadValid(s.type,i))s.data=i;else throw new Error("invalid payload")}return s}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case l.CONNECT:return Ze(t);case l.DISCONNECT:return t===void 0;case l.CONNECT_ERROR:return typeof t=="string"||Ze(t);case l.EVENT:case l.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&$s.indexOf(t[0])===-1);case l.ACK:case l.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Is{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=qs(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const Us=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Fe,Encoder:Ds,get PacketType(){return l}},Symbol.toStringTag,{value:"Module"}));function B(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const Fs=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class gt extends y{constructor(e,t,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[B(e,"open",this.onopen.bind(this)),B(e,"packet",this.onpacket.bind(this)),B(e,"error",this.onerror.bind(this)),B(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var s,r,i;if(Fs.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const o={type:l.EVENT,data:t};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const m=this.ids++,w=t.pop();this._registerAckCallback(m,w),o.id=m}const a=(r=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||r===void 0?void 0:r.writable,h=this.connected&&!(!((i=this.io.engine)===null||i===void 0)&&i._hasPingExpired());return this.flags.volatile&&!a||(h?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(e,t){var s;const r=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(r===void 0){this.acks[e]=t;return}const i=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===e&&this.sendBuffer.splice(a,1);t.call(this,new Error("operation has timed out"))},r),o=(...a)=>{this.io.clearTimeoutFn(i),t.apply(this,a)};o.withError=!0,this.acks[e]=o}emitWithAck(e,...t){return new Promise((s,r)=>{const i=(o,a)=>o?r(o):s(a);i.withError=!0,t.push(i),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((r,...i)=>s!==this._queue[0]?void 0:(r!==null?s.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(r)):(this._queue.shift(),t&&t(null,...i)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:l.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(s=>String(s.id)===e)){const s=this.acks[e];delete this.acks[e],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case l.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case l.EVENT:case l.BINARY_EVENT:this.onevent(e);break;case l.ACK:case l.BINARY_ACK:this.onack(e);break;case l.DISCONNECT:this.ondisconnect();break;case l.CONNECT_ERROR:this.destroy();const s=new Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let s=!1;return function(...r){s||(s=!0,t.packet({type:l.ACK,id:e,data:r}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:l.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const s of t)s.apply(this,e.data)}}}function X(n){n=n||{},this.ms=n.min||100,this.max=n.max||1e4,this.factor=n.factor||2,this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0,this.attempts=0}X.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*n);n=Math.floor(e*10)&1?n+t:n-t}return Math.min(n,this.max)|0};X.prototype.reset=function(){this.attempts=0};X.prototype.setMin=function(n){this.ms=n};X.prototype.setMax=function(n){this.max=n};X.prototype.setJitter=function(n){this.jitter=n};class Ne extends y{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,ge(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((s=t.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new X({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const r=t.parser||Us;this.encoder=new r.Encoder,this.decoder=new r.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new Os(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const r=B(t,"open",function(){s.onopen(),e&&e()}),i=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),e?e(a):this.maybeReconnectOnOpen()},o=B(t,"error",i);if(this._timeout!==!1){const a=this._timeout,h=this.setTimeoutFn(()=>{r(),i(new Error("timeout")),t.close()},a);this.opts.autoUnref&&h.unref(),this.subs.push(()=>{this.clearTimeoutFn(h)})}return this.subs.push(r),this.subs.push(o),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(B(e,"ping",this.onping.bind(this)),B(e,"data",this.ondata.bind(this)),B(e,"error",this.onerror.bind(this)),B(e,"close",this.onclose.bind(this)),B(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){me(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new gt(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const s of t)if(this.nsps[s].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;s<t.length;s++)this.engine.write(t[s],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(r=>{r?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",r)):e.onreconnect()}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const te={};function pe(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=Cs(n,e.path||"/socket.io"),s=t.source,r=t.id,i=t.path,o=te[r]&&i in te[r].nsps,a=e.forceNew||e["force new connection"]||e.multiplex===!1||o;let h;return a?h=new Ne(s,e):(te[r]||(te[r]=new Ne(s,e)),h=te[r]),t.query&&!e.query&&(e.query=t.queryKey),h.socket(t.path,e)}Object.assign(pe,{Manager:Ne,Socket:gt,io:pe,connect:pe});var Vs=x('<div class="terminal-wrap svelte-olniy1"><div class="terminal-bar svelte-olniy1"><span class="dot red svelte-olniy1"></span> <span class="dot yellow svelte-olniy1"></span> <span class="dot green svelte-olniy1"></span></div> <pre class="terminal svelte-olniy1"> </pre></div>');function Ms(n,e){Pe(e,!1);let t=Bt(e,"output",8,""),s=V();Rt(()=>{c(s)&&xt(s,c(s).scrollTop=c(s).scrollHeight)}),Le();var r=Vs(),i=_(p(r),2),o=p(i,!0);u(i),It(i,a=>U(s,a),()=>c(s)),u(r),S(()=>K(o,t())),v(n,r),qe()}var Hs=x('<span class="run-id svelte-ynu3lh"> </span>'),Ks=x('<span class="dot svelte-ynu3lh"></span>'),Ws=x('<button class="worker-btn svelte-ynu3lh"> </button>'),zs=x('<div class="report-row svelte-ynu3lh"><a target="_blank" rel="noopener noreferrer" class="svelte-ynu3lh"><!></a></div>'),Ys=x('<div class="body svelte-ynu3lh"><div class="controls svelte-ynu3lh"><input type="text" class="field-input run-input svelte-ynu3lh" placeholder="@test-1 or @suite-login or blank for all"> <div class="workers-control svelte-ynu3lh"></div> <!></div> <!> <!></div>'),Js=x('<div class="panel svelte-ynu3lh"><div class="bar svelte-ynu3lh"><div class="bar-left svelte-ynu3lh"><span class="status-dot svelte-ynu3lh"></span> <span class="status-label svelte-ynu3lh"> </span> <!></div> <div class="bar-dots svelte-ynu3lh"></div> <button class="expand-btn svelte-ynu3lh"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-ynu3lh"><polyline points="18 15 12 9 6 15" class="svelte-ynu3lh"></polyline></svg></button></div> <!></div>');function Xs(n,e){Pe(e,!1);const[t,s]=nt(),r=()=>re(be,"$runnerState",t),i=()=>re(we,"$runnerConfig",t),o=()=>re(ze,"$panelExpanded",t),a=V(),h=V(),g=V(),m=V(),w=V(),C=V(),Q=[1,2,4,8];Tt(()=>{const f=pe("http://localhost:3001");return qt.set(f),f.on("log",d=>{be.update(E=>({...E,output:E.output+d+`
19
+ `}))}),f.on("done",async d=>{const E=await $t().catch(()=>null),R=d===0;be.update(Y=>({...Y,output:Y.output+(R?`✓ All tests passed
20
+ `:`✗ Some tests failed
21
+ `),running:!1,testCompleted:!0,latestReport:E,status:R?"pass":"fail"}))}),()=>f.disconnect()});function ie(f){f.key==="Enter"&&!c(a).running&&Ye()}J(()=>r(),()=>{U(a,r())}),J(()=>i(),()=>{U(h,i())}),J(()=>c(h),()=>{U(g,Math.min(c(h).workers,4))}),J(()=>c(g),()=>{U(m,Array.from({length:c(g)}))}),J(()=>c(a),()=>{U(w,c(a).status==="pass"?"var(--pass)":c(a).status==="fail"?"var(--fail)":c(a).status==="running"?"var(--accent)":"var(--border)")}),J(()=>c(a),()=>{U(C,c(a).status==="running"?"running":c(a).status==="pass"?"passed":c(a).status==="fail"?"failed":"ready")}),At(),Le();var q=Js(),j=p(q),G=p(j),Z=p(G),$=_(Z,2),oe=p($,!0);u($);var ae=_($,2);{var _e=f=>{var d=Hs(),E=p(d,!0);u(d),S(()=>K(E,c(a).lastRunId||"(all)")),v(f,d)};ne(ae,f=>{c(a).lastRunId&&f(_e)})}u(G);var W=_(G,2);de(W,5,()=>c(m),ye,(f,d,E)=>{var R=Ks();F(R,"style",`animation-delay: ${E*180}ms`),S(()=>{A(R,"running",c(a).running),A(R,"pass",c(a).status==="pass"),A(R,"fail",c(a).status==="fail")}),v(f,R)}),u(W);var z=_(W,2),b=p(z);u(z),u(j);var k=_(j,2);{var D=f=>{var d=Ys(),E=p(d),R=p(E);Ct(R);var Y=_(R,2);de(Y,5,()=>Q,ye,(I,N)=>{var T=Ws(),ve=p(T,!0);u(T),S(()=>{A(T,"active",c(h).workers===c(N)),K(ve,c(N)===1?"Off":c(N))}),H("click",T,()=>we.update(ee=>({...ee,workers:c(N)}))),v(I,T)}),u(Y);var _t=_(Y,2);Je(_t,{get disabled(){return c(a).running},$$events:{click:()=>Ye()},children:(I,N)=>{He();var T=Me();S(()=>K(T,c(a).running?"Running…":"Run")),v(I,T)},$$slots:{default:!0}}),u(E);var Ve=_(E,2);Ms(Ve,{get output(){return c(a).output}});var vt=_(Ve,2);{var bt=I=>{var N=zs(),T=p(N),ve=p(T);Je(ve,{variant:"outline",size:"sm",children:(ee,js)=>{He();var wt=Me("View Report →");v(ee,wt)},$$slots:{default:!0}}),u(T),u(N),S(ee=>F(T,"href",ee),[()=>Dt(c(a).latestReport)],Ot),xe(3,N,()=>St,()=>({y:6,duration:200})),v(I,N)};ne(vt,I=>{c(a).testCompleted&&c(a).latestReport&&I(bt)})}u(d),S(()=>R.disabled=c(a).running),Pt(R,()=>i().testID,I=>Nt(we,Ke(i).testID=I,Ke(i))),H("keydown",R,ie),xe(3,d,()=>st,()=>({duration:220})),v(f,d)};ne(k,f=>{o()&&f(D)})}u(q),S(()=>{A(q,"expanded",o()),F(Z,"style",`background: ${c(w)??""}`),A(Z,"pulse",c(a).running),K(oe,c(C)),F(W,"title",`${c(h).workers??""} worker${(c(h).workers!==1?"s":"")??""}`),F(z,"aria-label",o()?"Collapse panel":"Expand panel"),A(b,"rotated",o())}),H("click",z,()=>ze.update(f=>!f)),v(n,q),qe(),s()}var Qs=x("<!> <!> <!>",1);function dn(n,e){var t=Qs(),s=We(t);zt(s,{});var r=_(s,2);Jt(r,{children:(o,a)=>{var h=kt(),g=We(h);tt(g,e,"default",{}),v(o,h)},$$slots:{default:!0}});var i=_(r,2);Xs(i,{}),v(n,t)}export{dn as component};
@@ -0,0 +1,18 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import{a as g,t as h,s}from"../chunks/DFJLQFic.js";import{i as l}from"../chunks/DTUE7kkY.js";import{l as v,x as d,D as x,y as _,B as o,C as p,v as $}from"../chunks/B0bn91RF.js";import{s as k,p as i}from"../chunks/Cit9MuSg.js";const b={get error(){return i.error},get status(){return i.status}};k.updated.check;const m=b;var y=h("<h1> </h1> <p> </p>",1);function j(n,c){v(c,!1),l();var r=y(),t=d(r),f=o(t,!0);p(t);var e=$(t,2),u=o(e,!0);p(e),x(()=>{var a;s(f,m.status),s(u,(a=m.error)==null?void 0:a.message)}),g(n,r),_()}export{j as component};