@juspay/shooter 1.19.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/build/client/_app/immutable/assets/11.F10lvwyh.css +1 -0
  2. package/build/client/_app/immutable/assets/11.F10lvwyh.css.br +0 -0
  3. package/build/client/_app/immutable/assets/11.F10lvwyh.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/C_YNQL8b.js +3 -0
  5. package/build/client/_app/immutable/chunks/C_YNQL8b.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/C_YNQL8b.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DA4Zt9Me.js → DIZ3Qst5.js} +1 -1
  8. package/build/client/_app/immutable/chunks/DIZ3Qst5.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/{DA4Zt9Me.js.gz → DIZ3Qst5.js.gz} +0 -0
  10. package/build/client/_app/immutable/chunks/{DCDL_9ys.js → DT4H19pV.js} +1 -1
  11. package/build/client/_app/immutable/chunks/DT4H19pV.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/DT4H19pV.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/J5-Cr5oR.js +6 -0
  14. package/build/client/_app/immutable/chunks/J5-Cr5oR.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/J5-Cr5oR.js.gz +0 -0
  16. package/build/client/_app/immutable/entry/{app.D4TXlu7A.js → app.Bd-DfeJi.js} +2 -2
  17. package/build/client/_app/immutable/entry/app.Bd-DfeJi.js.br +0 -0
  18. package/build/client/_app/immutable/entry/app.Bd-DfeJi.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/start.evvp4tX7.js +1 -0
  20. package/build/client/_app/immutable/entry/start.evvp4tX7.js.br +2 -0
  21. package/build/client/_app/immutable/entry/start.evvp4tX7.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{0.1zylwAPT.js → 0.Bl-1LQWM.js} +1 -1
  23. package/build/client/_app/immutable/nodes/0.Bl-1LQWM.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/0.Bl-1LQWM.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{1.BVnLUSs-.js → 1.DT4dq6Ay.js} +1 -1
  26. package/build/client/_app/immutable/nodes/1.DT4dq6Ay.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/1.DT4dq6Ay.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{10.D1wl2wPX.js → 10.CF7RGXpe.js} +1 -1
  29. package/build/client/_app/immutable/nodes/10.CF7RGXpe.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/10.CF7RGXpe.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/11.BV_G7yLI.js +2 -0
  32. package/build/client/_app/immutable/nodes/11.BV_G7yLI.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/11.BV_G7yLI.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{2.D1Mm0DUX.js → 2.DcRhsjYp.js} +1 -1
  35. package/build/client/_app/immutable/nodes/2.DcRhsjYp.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/2.DcRhsjYp.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{3.Wfz3TcJd.js → 3.0MMe3oxR.js} +1 -1
  38. package/build/client/_app/immutable/nodes/3.0MMe3oxR.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/3.0MMe3oxR.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{6.DtZAEPXb.js → 6.ComiWlV6.js} +1 -1
  41. package/build/client/_app/immutable/nodes/6.ComiWlV6.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/6.ComiWlV6.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{7.MfBRh32I.js → 7.vkPx1kVP.js} +1 -1
  44. package/build/client/_app/immutable/nodes/7.vkPx1kVP.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/7.vkPx1kVP.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{8.DVE6LnOC.js → 8.Bmr3sWbS.js} +1 -1
  47. package/build/client/_app/immutable/nodes/8.Bmr3sWbS.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/8.Bmr3sWbS.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{9.BCel5OqI.js → 9.CAJucyeI.js} +1 -1
  50. package/build/client/_app/immutable/nodes/9.CAJucyeI.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/9.CAJucyeI.js.gz +0 -0
  52. package/build/client/_app/version.json +1 -1
  53. package/build/client/_app/version.json.br +0 -0
  54. package/build/client/_app/version.json.gz +0 -0
  55. package/build/server/chunks/{0-DJqyZZTr.js → 0-DDGB6CRT.js} +2 -2
  56. package/build/server/chunks/{0-DJqyZZTr.js.map → 0-DDGB6CRT.js.map} +1 -1
  57. package/build/server/chunks/{1-2YUVen1F.js → 1-DEjonQXD.js} +2 -2
  58. package/build/server/chunks/{1-2YUVen1F.js.map → 1-DEjonQXD.js.map} +1 -1
  59. package/build/server/chunks/{10-D1X7LB3v.js → 10-BK1kiiiw.js} +2 -2
  60. package/build/server/chunks/{10-D1X7LB3v.js.map → 10-BK1kiiiw.js.map} +1 -1
  61. package/build/server/chunks/{11-qXSPdF5j.js → 11-CJPjkEF3.js} +4 -4
  62. package/build/server/chunks/11-CJPjkEF3.js.map +1 -0
  63. package/build/server/chunks/{2-BD7kj1mt.js → 2-RLnhlWh5.js} +2 -2
  64. package/build/server/chunks/{2-BD7kj1mt.js.map → 2-RLnhlWh5.js.map} +1 -1
  65. package/build/server/chunks/{3-oNjv-BhZ.js → 3-Dd4pJBqZ.js} +2 -2
  66. package/build/server/chunks/{3-oNjv-BhZ.js.map → 3-Dd4pJBqZ.js.map} +1 -1
  67. package/build/server/chunks/{6-DRJGUqHG.js → 6-DdRMnKNa.js} +2 -2
  68. package/build/server/chunks/{6-DRJGUqHG.js.map → 6-DdRMnKNa.js.map} +1 -1
  69. package/build/server/chunks/{7-_giJiu0L.js → 7-vLOMMetm.js} +2 -2
  70. package/build/server/chunks/{7-_giJiu0L.js.map → 7-vLOMMetm.js.map} +1 -1
  71. package/build/server/chunks/{8-zvWAVNT5.js → 8-rJyiQLFs.js} +2 -2
  72. package/build/server/chunks/{8-zvWAVNT5.js.map → 8-rJyiQLFs.js.map} +1 -1
  73. package/build/server/chunks/{9-DVyDL445.js → 9-CVSNNYED.js} +2 -2
  74. package/build/server/chunks/{9-DVyDL445.js.map → 9-CVSNNYED.js.map} +1 -1
  75. package/build/server/chunks/Banner-BgaAs1rs.js.map +1 -1
  76. package/build/server/chunks/Button-D0hZ7JYt.js.map +1 -1
  77. package/build/server/chunks/Icon-D0GBnDcs.js.map +1 -1
  78. package/build/server/chunks/Input-OmIiydSx.js.map +1 -1
  79. package/build/server/chunks/Pill-4xJ-VhAA.js.map +1 -1
  80. package/build/server/chunks/Shimmer-Dw2uvTC1.js.map +1 -1
  81. package/build/server/chunks/_error.svelte-CZnkxeLr.js.map +1 -1
  82. package/build/server/chunks/_page.svelte-BLo2v_8E.js.map +1 -1
  83. package/build/server/chunks/_page.svelte-BTlfUsBp.js.map +1 -1
  84. package/build/server/chunks/_page.svelte-BX2FMgSg.js.map +1 -1
  85. package/build/server/chunks/_page.svelte-C7B0qdrC.js.map +1 -1
  86. package/build/server/chunks/_page.svelte-CE7COWnF.js.map +1 -1
  87. package/build/server/chunks/_page.svelte-CWsjjd4l.js.map +1 -1
  88. package/build/server/chunks/_page.svelte-D5S2hkBk.js.map +1 -1
  89. package/build/server/chunks/_page.svelte-D_Ey8QRG.js.map +1 -1
  90. package/build/server/chunks/{_page.svelte-BUBLUSGo.js → _page.svelte-dabsQl9c.js} +206 -5
  91. package/build/server/chunks/_page.svelte-dabsQl9c.js.map +1 -0
  92. package/build/server/chunks/_page.svelte-tBuIq8Pg.js.map +1 -1
  93. package/build/server/chunks/{_server.ts-C_OOUqsd.js → _server.ts-AnBXfZXh.js} +2 -2
  94. package/build/server/chunks/{_server.ts-C_OOUqsd.js.map → _server.ts-AnBXfZXh.js.map} +1 -1
  95. package/build/server/chunks/_server.ts-B-evHL2q.js +13 -0
  96. package/build/server/chunks/_server.ts-B-evHL2q.js.map +1 -0
  97. package/build/server/chunks/_server.ts-B2wIgsW4.js +95 -0
  98. package/build/server/chunks/_server.ts-B2wIgsW4.js.map +1 -0
  99. package/build/server/chunks/{_server.ts-Bi0Oe4PF.js → _server.ts-CJGyN8mw.js} +14 -9
  100. package/build/server/chunks/_server.ts-CJGyN8mw.js.map +1 -0
  101. package/build/server/chunks/{_server.ts-DhJx0DLr.js → _server.ts-DEx9-epI.js} +16 -7
  102. package/build/server/chunks/_server.ts-DEx9-epI.js.map +1 -0
  103. package/build/server/chunks/{_server.ts-DxT9IlZF.js → _server.ts-DKNIsQeH.js} +3 -3
  104. package/build/server/chunks/{_server.ts-DxT9IlZF.js.map → _server.ts-DKNIsQeH.js.map} +1 -1
  105. package/build/server/chunks/_server.ts-DpRr0Tfh.js +68 -0
  106. package/build/server/chunks/_server.ts-DpRr0Tfh.js.map +1 -0
  107. package/build/server/chunks/{_server.ts-CRVNEOd2.js → _server.ts-Dz9Jd9Jh.js} +3 -3
  108. package/build/server/chunks/{_server.ts-CRVNEOd2.js.map → _server.ts-Dz9Jd9Jh.js.map} +1 -1
  109. package/build/server/chunks/{_server.ts-Bjbr7glm.js → _server.ts-QN-Bo5ql.js} +12 -5
  110. package/build/server/chunks/_server.ts-QN-Bo5ql.js.map +1 -0
  111. package/build/server/chunks/{_server.ts-BrqaMMAa.js → _server.ts-W6i3EnGX.js} +29 -6
  112. package/build/server/chunks/_server.ts-W6i3EnGX.js.map +1 -0
  113. package/build/server/chunks/{_server.ts-DMm0hBP4.js → _server.ts-bk_EeAdY.js} +2 -2
  114. package/build/server/chunks/{_server.ts-DMm0hBP4.js.map → _server.ts-bk_EeAdY.js.map} +1 -1
  115. package/build/server/chunks/cache-BlMaDsHi.js.map +1 -1
  116. package/build/server/chunks/guest-registry-t0-7Zv5q.js +39 -0
  117. package/build/server/chunks/guest-registry-t0-7Zv5q.js.map +1 -0
  118. package/build/server/chunks/index-CoYB03g7.js.map +1 -1
  119. package/build/server/chunks/index2-dSGQ9Eaa.js.map +1 -1
  120. package/build/server/chunks/{pty-manager-41h3IK8K.js → pty-manager-CkZNoW1t.js} +6 -2
  121. package/build/server/chunks/pty-manager-CkZNoW1t.js.map +1 -0
  122. package/build/server/chunks/root-D4IoFC8F.js.map +1 -1
  123. package/build/server/chunks/share-auth-BS7JuiHf.js +27 -0
  124. package/build/server/chunks/share-auth-BS7JuiHf.js.map +1 -0
  125. package/build/server/chunks/share-store-B9jMpVg0.js +127 -0
  126. package/build/server/chunks/share-store-B9jMpVg0.js.map +1 -0
  127. package/build/server/chunks/state.svelte-CmHqngc_.js.map +1 -1
  128. package/build/server/chunks/stores-CRYxfF0o.js.map +1 -1
  129. package/build/server/index.js +1 -1
  130. package/build/server/index.js.map +1 -1
  131. package/build/server/manifest.js +40 -19
  132. package/build/server/manifest.js.map +1 -1
  133. package/package.json +2 -2
  134. package/server.ts +8 -3
  135. package/src/lib/modules/client/terminal/ShareGate.svelte +96 -0
  136. package/src/lib/modules/client/terminal/ShareSheet.svelte +395 -0
  137. package/src/lib/modules/client/terminal/xterm-wrapper.ts +19 -2
  138. package/src/lib/modules/server/terminal/pty-manager.ts +6 -0
  139. package/src/lib/modules/server/terminal/share-auth.ts +37 -0
  140. package/src/lib/modules/server/terminal/share-store.ts +172 -0
  141. package/src/lib/modules/server/ws/guest-registry.ts +49 -0
  142. package/src/lib/modules/server/ws/server.ts +22 -3
  143. package/src/lib/modules/server/ws/session-handler.ts +18 -4
  144. package/src/lib/modules/server/ws/terminal-handler.ts +21 -2
  145. package/src/lib/modules/server/ws/ticket-store.ts +18 -10
  146. package/src/lib/types/generated/Client.ts +25 -1
  147. package/src/lib/types/generated/Share.ts +404 -0
  148. package/src/lib/types/generated/WsProtocol.ts +73 -2
  149. package/src/lib/types/generated/index.ts +1 -0
  150. package/src/lib/types/terminal-client.ts +19 -2
  151. package/src/lib/types/ws.ts +1 -0
  152. package/src/routes/api/terminals/[id]/+server.ts +14 -3
  153. package/src/routes/api/terminals/[id]/paste-image/+server.ts +8 -4
  154. package/src/routes/api/terminals/[id]/resize/+server.ts +8 -4
  155. package/src/routes/api/terminals/[id]/share/+server.ts +98 -0
  156. package/src/routes/api/terminals/[id]/share/auth/+server.ts +81 -0
  157. package/src/routes/api/terminals/[id]/share/status/+server.ts +11 -0
  158. package/src/routes/api/ws-ticket/+server.ts +26 -5
  159. package/src/routes/terminals/[id]/+page.svelte +184 -43
  160. package/build/client/_app/immutable/assets/11.v5KA95xm.css +0 -1
  161. package/build/client/_app/immutable/assets/11.v5KA95xm.css.br +0 -0
  162. package/build/client/_app/immutable/assets/11.v5KA95xm.css.gz +0 -0
  163. package/build/client/_app/immutable/chunks/BcqA7eKM.js +0 -3
  164. package/build/client/_app/immutable/chunks/BcqA7eKM.js.br +0 -0
  165. package/build/client/_app/immutable/chunks/BcqA7eKM.js.gz +0 -0
  166. package/build/client/_app/immutable/chunks/CR6bkGJW.js +0 -6
  167. package/build/client/_app/immutable/chunks/CR6bkGJW.js.br +0 -0
  168. package/build/client/_app/immutable/chunks/CR6bkGJW.js.gz +0 -0
  169. package/build/client/_app/immutable/chunks/DA4Zt9Me.js.br +0 -0
  170. package/build/client/_app/immutable/chunks/DCDL_9ys.js.br +0 -0
  171. package/build/client/_app/immutable/chunks/DCDL_9ys.js.gz +0 -0
  172. package/build/client/_app/immutable/entry/app.D4TXlu7A.js.br +0 -0
  173. package/build/client/_app/immutable/entry/app.D4TXlu7A.js.gz +0 -0
  174. package/build/client/_app/immutable/entry/start.BBQhtURO.js +0 -1
  175. package/build/client/_app/immutable/entry/start.BBQhtURO.js.br +0 -0
  176. package/build/client/_app/immutable/entry/start.BBQhtURO.js.gz +0 -0
  177. package/build/client/_app/immutable/nodes/0.1zylwAPT.js.br +0 -0
  178. package/build/client/_app/immutable/nodes/0.1zylwAPT.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/1.BVnLUSs-.js.br +0 -0
  180. package/build/client/_app/immutable/nodes/1.BVnLUSs-.js.gz +0 -0
  181. package/build/client/_app/immutable/nodes/10.D1wl2wPX.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/10.D1wl2wPX.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/11.C18nMGmp.js +0 -2
  184. package/build/client/_app/immutable/nodes/11.C18nMGmp.js.br +0 -0
  185. package/build/client/_app/immutable/nodes/11.C18nMGmp.js.gz +0 -0
  186. package/build/client/_app/immutable/nodes/2.D1Mm0DUX.js.br +0 -0
  187. package/build/client/_app/immutable/nodes/2.D1Mm0DUX.js.gz +0 -0
  188. package/build/client/_app/immutable/nodes/3.Wfz3TcJd.js.br +0 -0
  189. package/build/client/_app/immutable/nodes/3.Wfz3TcJd.js.gz +0 -0
  190. package/build/client/_app/immutable/nodes/6.DtZAEPXb.js.br +0 -0
  191. package/build/client/_app/immutable/nodes/6.DtZAEPXb.js.gz +0 -0
  192. package/build/client/_app/immutable/nodes/7.MfBRh32I.js.br +0 -0
  193. package/build/client/_app/immutable/nodes/7.MfBRh32I.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/8.DVE6LnOC.js.br +0 -0
  195. package/build/client/_app/immutable/nodes/8.DVE6LnOC.js.gz +0 -0
  196. package/build/client/_app/immutable/nodes/9.BCel5OqI.js.br +0 -0
  197. package/build/client/_app/immutable/nodes/9.BCel5OqI.js.gz +0 -0
  198. package/build/server/chunks/11-qXSPdF5j.js.map +0 -1
  199. package/build/server/chunks/_page.svelte-BUBLUSGo.js.map +0 -1
  200. package/build/server/chunks/_server.ts-Bi0Oe4PF.js.map +0 -1
  201. package/build/server/chunks/_server.ts-Bjbr7glm.js.map +0 -1
  202. package/build/server/chunks/_server.ts-BrqaMMAa.js.map +0 -1
  203. package/build/server/chunks/_server.ts-DhJx0DLr.js.map +0 -1
  204. package/build/server/chunks/events-handler-Dm1mNPQP.js +0 -20
  205. package/build/server/chunks/events-handler-Dm1mNPQP.js.map +0 -1
  206. package/build/server/chunks/pty-manager-41h3IK8K.js.map +0 -1
@@ -1,3 +0,0 @@
1
- import{bv as Te,v as Ve,s as P,g as j,b as N,P as oe,bw as At}from"./DWmC0QM7.js";class pe{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Le{constructor(t,n){this.status=t,this.location=n}}class Pe extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function Et(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function kt(e){return e.split("%25").map(decodeURI).join("%25")}function Rt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ye({href:e}){return e.split("#")[0]}function St(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*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;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const It=new TextDecoder;function Ut(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const Tt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&z.delete(je(e)),Tt(e,t));const z=new Map;function Lt(e,t){const n=je(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...s}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&z.set(n,{body:a,init:s,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=Ut(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function Pt(e,t,n){if(z.size>0){const r=je(e,n),a=z.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);z.delete(r)}}return window.fetch(t,n)}function je(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${St(...a)}"]`}return r}const jt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Nt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${xt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((i,l)=>{if(l%2){if(i.startsWith("x+"))return ve(String.fromCharCode(parseInt(i.slice(2),16)));if(i.startsWith("u+"))return ve(String.fromCharCode(...i.slice(2).split("-").map(g=>parseInt(g,16))));const u=jt.exec(i),[,d,p,h,f]=u;return t.push({name:h,matcher:f,optional:!!d,rest:!!p,chained:p?l===1&&o[0]==="":!1}),p?"([^]*?)":d?"([^/]*)?":"([^/]+?)"}return ve(i)}).join("")}).join("")}/?$`),params:t}}function Ot(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function xt(e){return e.slice(1).split("/").filter(Ot)}function Ct(e,t,n){const r={},a=e.slice(1),s=a.filter(c=>c!==void 0);let o=0;for(let c=0;c<t.length;c+=1){const i=t[c];let l=a[c-o];if(i.chained&&i.rest&&o&&(l=a.slice(c-o,c+1).filter(u=>u).join("/"),o=0),l===void 0)if(i.rest)l="";else continue;if(!i.matcher||n[i.matcher](l)){r[i.name]=l;const u=t[c+1],d=a[c+1];u&&!u.rest&&u.optional&&d&&i.chained&&(o=0),!u&&!d&&Object.keys(r).length===s.length&&(o=0);continue}if(i.optional&&i.chained){o++;continue}return}if(!o)return r}function ve(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Dt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([c,[i,l,u]])=>{const{pattern:d,params:p}=Nt(c),h={id:c,exec:f=>{const g=d.exec(f);if(g)return Ct(g,p,r)},errors:[1,...u||[]].map(f=>e[f]),layouts:[0,...l||[]].map(o),leaf:s(i)};return h.errors.length=h.layouts.length=Math.max(h.errors.length,h.layouts.length),h});function s(c){const i=c<0;return i&&(c=~c),[i,e[c]]}function o(c){return c===void 0?c:[a.has(c),e[c]]}}function Qe(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function qe(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const U=globalThis.__sveltekit_1g07lo2?.base??"",$t=globalThis.__sveltekit_1g07lo2?.assets??U??"",Bt="1780945214701",et="sveltekit:snapshot",tt="sveltekit:scroll",nt="sveltekit:states",Ft="sveltekit:pageurl",q="sveltekit:history",Q="sveltekit:navigation",B={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},re=location.origin;function Ne(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function M(){return{x:pageXOffset,y:pageYOffset}}function V(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Ye={...B,"":B.hover};function rt(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function at(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=rt(e)}}function Ee(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const c=location.hash.split("#")[1]||"/";r.hash=`#${c}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||_e(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=r?.origin===re&&e.hasAttribute("download");return{url:r,external:s,target:a,download:o}}function se(e){let t=null,n=null,r=null,a=null,s=null,o=null,c=e;for(;c&&c!==document.documentElement;)r===null&&(r=V(c,"preload-code")),a===null&&(a=V(c,"preload-data")),t===null&&(t=V(c,"keepfocus")),n===null&&(n=V(c,"noscroll")),s===null&&(s=V(c,"reload")),o===null&&(o=V(c,"replacestate")),c=rt(c);function i(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ye[r??"off"],preload_data:Ye[a??"off"],keepfocus:i(t),noscroll:i(n),reload:i(s),replace_state:i(o)}}function Ge(e){const t=Te(e);let n=!0;function r(){n=!0,t.update(o=>o)}function a(o){n=!1,t.set(o)}function s(o){let c;return t.subscribe(i=>{(c===void 0||n&&i!==c)&&o(c=i)})}return{notify:r,set:a,subscribe:s}}const ot={v:()=>{}};function Mt(){const{set:e,subscribe:t}=Te(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${$t}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Bt;return o&&(e(!0),ot.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:r}}function _e(e,t,n){return e.origin!==re||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function jn(e){}const Vt=-1,qt=-2,Yt=-3,Gt=-4,Kt=-5,Wt=-6,Ht=-7,st=2**32-1,ke=st-1;function Xt(e){return!(!Number.isInteger(e)||e<0||e>ke)}function zt(e){return!(!Number.isInteger(e)||e<0||e>st)}function Jt(e){return Uint8Array.fromBase64(e).buffer}function Zt(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function Qt(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let a=0;a<n;a++)r[a]=t.charCodeAt(a);return r.buffer}const en=typeof Uint8Array.fromBase64=="function",tn=typeof process=="object"&&process.versions?.node!==void 0,nn=en?Jt:tn?Zt:Qt;function rn(e,t){if(typeof e=="number")return s(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);let a=null;function s(o,c=!1){if(o===Vt)return;if(o===Yt)return NaN;if(o===Gt)return 1/0;if(o===Kt)return-1/0;if(o===Wt)return-0;if(c||typeof o!="number")throw new Error("Invalid input");if(o in r)return r[o];const i=n[o];if(!i||typeof i!="object")r[o]=i;else if(Array.isArray(i))if(typeof i[0]=="string"){const l=i[0],u=t&&Object.hasOwn(t,l)?t[l]:void 0;if(u){let d=i[1];if(typeof d!="number"&&(d=n.push(i[1])-1),a??=new Set,a.has(d))throw new Error("Invalid circular reference");return a.add(d),r[o]=u(s(d)),a.delete(d),r[o]}switch(l){case"Date":r[o]=new Date(i[1]);break;case"Set":const d=new Set;r[o]=d;for(let f=1;f<i.length;f+=1)d.add(s(i[f]));break;case"Map":const p=new Map;r[o]=p;for(let f=1;f<i.length;f+=2)p.set(s(i[f]),s(i[f+1]));break;case"RegExp":r[o]=new RegExp(i[1],i[2]);break;case"Object":{const f=i[1];if(typeof n[f]=="object"&&n[f][0]!=="BigInt")throw new Error("Invalid input");r[o]=Object(s(f));break}case"BigInt":r[o]=BigInt(i[1]);break;case"null":const h=Object.create(null);r[o]=h;for(let f=1;f<i.length;f+=2){if(i[f]==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");h[i[f]]=s(i[f+1])}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Float16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":case"DataView":{if(n[i[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const f=globalThis[l],g=s(i[1]);r[o]=i[2]!==void 0?new f(g,i[2],i[3]):new f(g);break}case"ArrayBuffer":{const f=i[1];if(typeof f!="string")throw new Error("Invalid ArrayBuffer encoding");const g=nn(f);r[o]=g;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const f=l.slice(9);r[o]=Temporal[f].from(i[1]);break}case"URL":{const f=new URL(i[1]);r[o]=f;break}case"URLSearchParams":{const f=new URLSearchParams(i[1]);r[o]=f;break}default:throw new Error(`Unknown type ${l}`)}}else if(i[0]===Ht){const l=i[1];if(!zt(l))throw new Error("Invalid input");const u=[];r[o]=u,u[ke]=void 0,delete u[ke];for(let d=2;d<i.length;d+=2){const p=i[d];if(!Xt(p)||p>=l)throw new Error("Invalid input");u[p]=s(i[d+1])}u.length=l}else{const l=new Array(i.length);r[o]=l;for(let u=0;u<i.length;u+=1){const d=i[u];d!==qt&&(l[u]=s(d))}}else{const l={};r[o]=l;for(const u of Object.keys(i)){if(u==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const d=i[u];l[u]=s(d)}}return r[o]}return s(0)}const it=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...it];const an=new Set([...it]);[...an];function on(e){return e.filter(t=>t!=null)}const sn="x-sveltekit-invalidated",cn="x-sveltekit-trailing-slash";function ie(e){return e instanceof pe||e instanceof Pe?e.status:500}function ln(e){return e instanceof Pe?e.text:"Internal Error"}let S,ee,be;const fn=Ve.toString().includes("$$")||/function \w+\(\) \{\}/.test(Ve.toString()),Ke="a:";fn?(S={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ke)},ee={current:null},be={current:!1}):(S=new class{#e=P({});get data(){return j(this.#e)}set data(t){N(this.#e,t)}#t=P(null);get form(){return j(this.#t)}set form(t){N(this.#t,t)}#n=P(null);get error(){return j(this.#n)}set error(t){N(this.#n,t)}#r=P({});get params(){return j(this.#r)}set params(t){N(this.#r,t)}#a=P({id:null});get route(){return j(this.#a)}set route(t){N(this.#a,t)}#o=P({});get state(){return j(this.#o)}set state(t){N(this.#o,t)}#s=P(-1);get status(){return j(this.#s)}set status(t){N(this.#s,t)}#i=P(new URL(Ke));get url(){return j(this.#i)}set url(t){N(this.#i,t)}},ee=new class{#e=P(null);get current(){return j(this.#e)}set current(t){N(this.#e,t)}},be=new class{#e=P(!1);get current(){return j(this.#e)}set current(t){N(this.#e,t)}},ot.v=()=>be.current=!0);function un(e){Object.assign(S,e)}const dn="/__data.json",hn=".html__data.json";function pn(e){return e.endsWith(".html")?e.replace(/\.html$/,hn):e.replace(/\/$/,"")+dn}const _n=new Set(["icon","shortcut icon","apple-touch-icon"]);let H=null;const D=Qe(tt)??{},te=Qe(et)??{},C={url:Ge({}),page:Ge({}),navigating:Te(null),updated:Mt()};function Oe(e){D[e]=M()}function gn(e,t){let n=e+1;for(;D[n];)delete D[n],n+=1;for(n=t+1;te[n];)delete te[n],n+=1}function K(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function ct(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(U||"/");e&&await e.update()}}function We(){}let xe,Re,ce,x,Se,A;const le=[],fe=[];let L=null;function Ie(){L?.fork?.then(e=>e?.discard()),L=null}const ae=new Map,lt=new Set,mn=new Set,J=new Set;let w={branch:[],error:null,url:null},Ce=!1,ue=!1,He=!0,ne=!1,X=!1,ft=!1,De=!1,ut,R,I,F;const Z=new Set,Xe=new Map;async function Cn(e,t,n){globalThis.__sveltekit_1g07lo2?.data&&globalThis.__sveltekit_1g07lo2.data,document.URL!==location.href&&(location.href=location.href),A=e,await e.hooks.init?.(),xe=Dt(e),x=document.documentElement,Se=t,Re=e.nodes[0],ce=e.nodes[1],Re(),ce(),R=history.state?.[q],I=history.state?.[Q],R||(R=I=Date.now(),history.replaceState({...history.state,[q]:R,[Q]:I},""));const r=D[R];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await Un(Se,n)):(await Y({type:"enter",url:Ne(A.hash?Ln(new URL(location.href)):location.href),replace_state:!0}),a()),In()}function wn(){le.length=0,De=!1}function dt(e){fe.some(t=>t?.snapshot)&&(te[e]=fe.map(t=>t?.snapshot?.capture()))}function ht(e){te[e]?.forEach((t,n)=>{fe[n]?.snapshot?.restore(t)})}function ze(){Oe(R),qe(tt,D),dt(I),qe(et,te)}async function pt(e,t,n,r){let a;t.invalidateAll&&Ie(),await Y({type:"goto",url:Ne(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(De=!0,a=[...Xe.keys()]),t.invalidate&&t.invalidate.forEach(Sn)}}),t.invalidateAll&&oe().then(oe).then(()=>{Xe.forEach(({resource:s},o)=>{a?.includes(o)&&s.refresh?.()})})}async function yn(e){if(e.id!==L?.id){Ie();const t={};Z.add(t),L={id:e.id,token:t,promise:gt({...e,preload:t}).then(n=>(Z.delete(t),n.type==="loaded"&&n.state.error&&Ie(),n)),fork:null}}return L.promise}async function Ae(e){const t=(await me(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function _t(e,t,n){const r={params:w.params,route:{id:w.route?.id??null},url:new URL(location.href)};w={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(S,e.props.page),ut=new A.root({target:t,props:{...e.props,stores:C,components:fe},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),ht(I),n){const s={from:null,to:{...r,scroll:D[R]??M()},willUnload:!1,type:"enter",complete:Promise.resolve()};J.forEach(o=>o(s))}ue=!0}async function de({url:e,params:t,branch:n,errors:r,status:a,error:s,route:o,form:c}){let i="never";if(U&&(e.pathname===U||e.pathname===U+"/"))i="always";else for(const f of n)f?.slash!==void 0&&(i=f.slash);e.pathname=Et(e.pathname,i),e.search=e.search;const l={type:"loaded",state:{url:e,params:t,branch:n,error:s,route:o},props:{constructors:on(n).map(f=>f.node.component),page:Me(S)}};c!==void 0&&(l.props.form=c);let u={},d=!S,p=0;for(let f=0;f<Math.max(n.length,w.branch.length);f+=1){const g=n[f],b=w.branch[f];g?.data!==b?.data&&(d=!0),g&&(u={...u,...g.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!w.url||e.href!==w.url.href||w.error!==s||c!==void 0&&c!==S.form||d)&&(l.props.page={error:s,params:t,route:{id:o?.id??null},state:{},status:a,url:new URL(e),form:c??null,data:d?u:S.data}),l}async function $e({loader:e,parent:t,url:n,params:r,route:a,server_data_node:s}){let o=null;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},i=await e();return{node:i,loader:e,server:s,universal:i.universal?.load?{type:"data",data:o,uses:c}:null,data:o??s?.data??null,slash:i.universal?.trailingSlash??s?.slash}}function vn(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=ue?Pt(r,a.href,t):Lt(r,t);return{resolved:a,promise:s}}function Je(e,t,n,r,a,s){if(De)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const o of a.search_params)if(r.has(o))return!0;for(const o of a.params)if(s[o]!==w.params[o])return!0;for(const o of a.dependencies)if(le.some(c=>c(new URL(o))))return!0;return!1}function Be(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function bn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(o=>s.includes(o))&&s.every(o=>a.includes(o))&&n.delete(r)}return n}function Ze({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Me(S),constructors:[]}}}async function gt({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(L?.id===e)return Z.delete(L.token),L.promise;const{errors:o,layouts:c,leaf:i}=a,l=[...c,i];o.forEach(m=>m?.().catch(()=>{})),l.forEach(m=>m?.[1]().catch(()=>{}));let u=null;const d=w.url?e!==he(w.url):!1,p=w.route?a.id!==w.route.id:!1,h=bn(w.url,n);let f=!1;{const m=l.map((y,E)=>{const k=w.branch[E],v=!!y?.[0]&&(k?.loader!==y[1]||Je(f,p,d,h,k.server?.uses,r));return v&&(f=!0),v});if(m.some(Boolean)){try{u=await yt(n,m)}catch(y){const E=await G(y,{url:n,params:r,route:{id:e}});return Z.has(s)?Ze({error:E,url:n,params:r,route:a}):ge({status:ie(y),error:E,url:n,route:a})}if(u.type==="redirect")return u}}const g=u?.nodes;let b=!1;const _=l.map(async(m,y)=>{if(!m)return;const E=w.branch[y],k=g?.[y];if((!k||k.type==="skip")&&m[1]===E?.loader&&!Je(b,p,d,h,E.universal?.uses,r))return E;if(b=!0,k?.type==="error")throw k;return $e({loader:m[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let $=0;$<y;$+=1)Object.assign(O,(await _[$])?.data);return O},server_data_node:Be(k===void 0&&m[0]?{type:"skip"}:k??null,m[0]?E?.server:void 0)})});for(const m of _)m.catch(()=>{});const T=[];for(let m=0;m<l.length;m+=1)if(l[m])try{T.push(await _[m])}catch(y){if(y instanceof Le)return{type:"redirect",location:y.location};if(Z.has(s))return Ze({error:await G(y,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=ie(y),k;if(g?.includes(y))E=y.status??E,k=y.error;else if(y instanceof pe)k=y.body;else{if(await C.updated.check())return await ct(),await K(n);k=await G(y,{params:r,url:n,route:{id:a.id}})}const v=await An(m,T,o);return v?de({url:n,params:r,branch:T.slice(0,v.idx).concat(v.node),errors:o,status:E,error:k,route:a}):await wt(n,{id:a.id},k,E)}else T.push(void 0);return de({url:n,params:r,branch:T,errors:o,status:200,error:null,route:a,form:t?void 0:null})}async function An(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function ge({status:e,error:t,url:n,route:r}){const a={};let s=null;if(A.server_loads[0]===0)try{const c=await yt(n,[!0]);if(c.type!=="data"||c.nodes[0]&&c.nodes[0].type!=="data")throw 0;s=c.nodes[0]??null}catch{(n.origin!==re||n.pathname!==location.pathname||Ce)&&await K(n)}try{const o=await $e({loader:Re,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Be(s)}),c={node:await ce(),loader:ce,universal:null,server:null,data:null};return de({url:n,params:a,branch:[o,c],status:e,error:t,errors:[],route:null})}catch(o){if(o instanceof Le)return pt(new URL(o.location,location.href),{},0);throw o}}async function En(e){const t=e.href;if(ae.has(t))return ae.get(t);let n;try{const r=(async()=>{let a=await A.hooks.reroute({url:new URL(e),fetch:async(s,o)=>vn(s,o,e).promise})??e;if(typeof a=="string"){const s=new URL(e);A.hash?s.hash=a:s.pathname=a,a=s}return a})();ae.set(t,r),n=await r}catch{ae.delete(t);return}return n}async function me(e,t){if(e&&!_e(e,U,A.hash)){const n=await En(e);if(!n)return;const r=kn(n);for(const a of xe){const s=a.exec(r);if(s)return{id:he(e),invalidating:t,route:a,params:Rt(s),url:e}}}}function kn(e){return kt(A.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(U.length))||"/"}function he(e){return(A.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function mt({url:e,type:t,intent:n,delta:r,event:a,scroll:s}){let o=!1;const c=Fe(w,n,e,t,s??null);r!==void 0&&(c.navigation.delta=r),a!==void 0&&(c.navigation.event=a);const i={...c.navigation,cancel:()=>{o=!0,c.reject(new Error("navigation cancelled"))}};return ne||lt.forEach(l=>l(i)),o?null:c}async function Y({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:o={},redirect_count:c=0,nav_token:i={},accept:l=We,block:u=We,event:d}){const p=F;F=i;const h=await me(t,!1),f=e==="enter"?Fe(w,h,t,e):mt({url:t,type:e,delta:n?.delta,intent:h,scroll:n?.scroll,event:d});if(!f){u(),F===i&&(F=p);return}const g=R,b=I;l(),ne=!0,ue&&f.navigation.type!=="enter"&&C.navigating.set(ee.current=f.navigation);let _=h&&await gt(h);if(!_){if(_e(t,U,A.hash))return await K(t,s);_=await wt(t,{id:null},await G(new Pe(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=h?.url||t,F!==i)return f.reject(new Error("navigation aborted")),!1;if(_.type==="redirect"){if(c<20){await Y({type:e,url:new URL(_.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:s,state:o,redirect_count:c+1,nav_token:i}),f.fulfil(void 0);return}_=await ge({status:500,error:await G(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else _.props.page.status>=400&&await C.updated.check()&&(await ct(),await K(t,s));if(wn(),Oe(g),dt(b),_.props.page.url.pathname!==t.pathname&&(t.pathname=_.props.page.url.pathname),o=n?n.state:o,!n){const v=s?0:1,O={[q]:R+=v,[Q]:I+=v,[nt]:o};(s?history.replaceState:history.pushState).call(history,O,"",t),s||gn(R,I)}const T=h&&L?.id===h.id?L.fork:null;L=null,_.props.page.state=o;let m;if(ue){const v=(await Promise.all(Array.from(mn,W=>W(f.navigation)))).filter(W=>typeof W=="function");if(v.length>0){let W=function(){v.forEach(we=>{J.delete(we)})};v.push(W),v.forEach(we=>{J.add(we)})}const O=f.navigation.to;w={..._.state,nav:{params:O.params,route:O.route,url:O.url}},_.props.page&&(_.props.page.url=t);const $=T&&await T;$?m=$.commit():(H=null,ut.$set(_.props),H&&Object.assign(_.props.page,H),un(_.props.page),m=At?.()),ft=!0}else await _t(_,Se,!1);const{activeElement:y}=document;await m,await oe(),await oe();let E=null;if(He){const v=n?n.scroll:a?M():null;v?scrollTo(v.x,v.y):(E=t.hash&&document.getElementById(bt(t)))?E.scrollIntoView():scrollTo(0,0)}const k=document.activeElement!==y&&document.activeElement!==document.body;!r&&!k&&Tn(t,!E),He=!0,_.props.page&&(H&&Object.assign(_.props.page,H),Object.assign(S,_.props.page)),ne=!1,e==="popstate"&&ht(I),f.fulfil(void 0),f.navigation.to&&(f.navigation.to.scroll=M()),J.forEach(v=>v(f.navigation)),C.navigating.set(ee.current=null)}async function wt(e,t,n,r,a){return e.origin===re&&e.pathname===location.pathname&&!Ce?await ge({status:r,error:n,url:e,route:t}):await K(e,a)}function Rn(){let e,t={element:void 0,href:void 0},n;x.addEventListener("mousemove",c=>{const i=c.target;clearTimeout(e),e=setTimeout(()=>{s(i,B.hover)},20)});function r(c){c.defaultPrevented||s(c.composedPath()[0],B.tap)}x.addEventListener("mousedown",r),x.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(c=>{for(const i of c)i.isIntersecting&&(Ae(new URL(i.target.href)),a.unobserve(i.target))},{threshold:0});async function s(c,i){const l=at(c,x),u=l===t.element&&l?.href===t.href&&i>=n;if(!l||u)return;const{url:d,external:p,download:h}=Ee(l,U,A.hash);if(p||h)return;const f=se(l),g=d&&he(w.url)===he(d);if(!(f.reload||g))if(i<=f.preload_data){t={element:l,href:l.href},n=B.tap;const b=await me(d,!1);if(!b)return;yn(b)}else i<=f.preload_code&&(t={element:l,href:l.href},n=i,Ae(d))}function o(){a.disconnect();for(const c of x.querySelectorAll("a")){const{url:i,external:l,download:u}=Ee(c,U,A.hash);if(l||u)continue;const d=se(c);d.reload||(d.preload_code===B.viewport&&a.observe(c),d.preload_code===B.eager&&Ae(i))}}J.add(o),o()}function G(e,t){if(e instanceof pe)return e.body;const n=ie(e),r=ln(e);return A.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Dn(e,t={}){return e=new URL(Ne(e)),e.origin!==re?Promise.reject(new Error("goto: invalid URL")):pt(e,t,0)}function Sn(e){if(typeof e=="function")le.push(e);else{const{href:t}=new URL(e,location.href);le.push(n=>n.href===t)}}function In(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(ze(),!ne){const r=Fe(w,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};lt.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ze()}),navigator.connection?.saveData||Rn(),x.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=at(t.composedPath()[0],x);if(!n)return;const{url:r,external:a,target:s,download:o}=Ee(n,U,A.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const c=se(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[l,u]=(A.hash?r.hash.replace(/^#/,""):r.href).split("#"),d=l===ye(location);if(a||c.reload&&(!d||!u)){mt({url:r,type:"link",event:t})?ne=!0:t.preventDefault();return}if(u!==void 0&&d){const[,p]=w.url.href.split("#");if(p===u){if(t.preventDefault(),u===""||u==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const h=n.ownerDocument.getElementById(decodeURIComponent(u));h&&(h.scrollIntoView(),h.focus())}return}if(X=!0,Oe(R),e(r),!c.replace_state)return;X=!1}t.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await Y({type:"link",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href,event:t})}),x.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const o=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(_e(o,U,!1))return;const c=t.target,i=se(c);if(i.reload)return;t.preventDefault(),t.stopPropagation();const l=new FormData(c,r);o.search=new URLSearchParams(l).toString(),Y({type:"form",url:o,keepfocus:i.keepfocus,noscroll:i.noscroll,replace_state:i.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Ue){if(t.state?.[q]){const n=t.state[q];if(F={},n===R)return;const r=D[n],a=t.state[nt]??{},s=new URL(t.state[Ft]??location.href),o=t.state[Q],c=w.url?ye(location)===ye(w.url):!1;if(o===I&&(ft||c)){a!==S.state&&(S.state=a),e(s),D[R]=M(),r&&scrollTo(r.x,r.y),R=n;return}const l=n-R;await Y({type:"popstate",url:s,popped:{state:a,scroll:r,delta:l},accept:()=>{R=n,I=o},block:()=>{history.go(-l)},nav_token:F,event:t})}else if(!X){const n=new URL(location.href);e(n),A.hash&&location.reload()}}}),addEventListener("hashchange",()=>{X&&(X=!1,history.replaceState({...history.state,[q]:++R,[Q]:I},"",location.href))});for(const t of document.querySelectorAll("link"))_n.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&C.navigating.set(ee.current=null)});function e(t){w.url=S.url=t,C.page.set(Me(S)),C.page.notify()}}async function Un(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:o,data:c,form:i}){Ce=!0;const l=new URL(location.href);let u;({params:a={},route:s={id:null}}=await me(l,!1)||{}),u=xe.find(({id:h})=>h===s.id);let d,p=!0;try{const h=r.map(async(g,b)=>{const _=c[b];return _?.uses&&(_.uses=vt(_.uses)),$e({loader:A.nodes[g],url:l,params:a,route:s,parent:async()=>{const T={};for(let m=0;m<b;m+=1)Object.assign(T,(await h[m]).data);return T},server_data_node:Be(_)})}),f=await Promise.all(h);if(u){const g=u.layouts;for(let b=0;b<g.length;b++)g[b]||f.splice(b,0,void 0)}d=await de({url:l,params:a,branch:f,status:t,error:n,errors:u?.errors,form:i,route:u??null})}catch(h){if(h instanceof Le){await K(new URL(h.location,location.href));return}d=await ge({status:ie(h),error:await G(h,{url:l,params:a,route:s}),url:l,route:s}),e.textContent="",p=!1}d.props.page&&(d.props.page.state={}),await _t(d,e,p)}async function yt(e,t){const n=new URL(e);n.pathname=pn(e.pathname),e.pathname.endsWith("/")&&n.searchParams.append(cn,"1"),n.searchParams.append(sn,t.map(s=>s?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let s;throw a.headers.get("content-type")?.includes("application/json")?s=await a.json():a.status===404?s="Not Found":a.status===500&&(s="Internal Error"),new pe(a.status,s)}return new Promise(async s=>{const o=new Map,c=a.body.getReader();function i(u){return rn(u,{...A.decoders,Promise:d=>new Promise((p,h)=>{o.set(d,{fulfil:p,reject:h})})})}let l="";for(;;){const{done:u,value:d}=await c.read();if(u&&!l)break;for(l+=!d&&l?`
2
- `:It.decode(d,{stream:!0});;){const p=l.indexOf(`
3
- `);if(p===-1)break;const h=JSON.parse(l.slice(0,p));if(l=l.slice(p+1),h.type==="redirect")return s(h);if(h.type==="data")h.nodes?.forEach(f=>{f?.type==="data"&&(f.uses=vt(f.uses),f.data=i(f.data))}),s(h);else if(h.type==="chunk"){const{id:f,data:g,error:b}=h,_=o.get(f);o.delete(f),b?_.reject(i(b)):_.fulfil(i(g))}}}})}function vt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Ue=!1;function Tn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=bt(e);if(r&&document.getElementById(r)){const{x:s,y:o}=M();setTimeout(()=>{const c=history.state;Ue=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(c,"",e),t&&scrollTo(s,o),Ue=!1})}else{const s=document.body,o=s.getAttribute("tabindex");s.tabIndex=-1,s.focus({preventScroll:!0,focusVisible:!1}),o!==null?s.setAttribute("tabindex",o):s.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const s=[];for(let o=0;o<a.rangeCount;o+=1)s.push(a.getRangeAt(o));setTimeout(()=>{if(a.rangeCount===s.length){for(let o=0;o<a.rangeCount;o+=1){const c=s[o],i=a.getRangeAt(o);if(c.commonAncestorContainer!==i.commonAncestorContainer||c.startContainer!==i.startContainer||c.endContainer!==i.endContainer||c.startOffset!==i.startOffset||c.endOffset!==i.endOffset)return}a.removeAllRanges()}})}}}function Fe(e,t,n,r,a=null){let s,o;const c=new Promise((l,u)=>{s=l,o=u});return c.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:M()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:c},fulfil:s,reject:o}}function Me(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Ln(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function bt(e){let t;if(A.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Cn as a,Dn as g,jn as l,S as p,C as s};
@@ -1,6 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../assets/xterm.DFuMZ0ql.css"])))=>i.map(i=>d[i]);
2
- import{_ as u}from"./PPVm8Dsz.js";async function D(e){const{Terminal:m}=await u(async()=>{const{Terminal:t}=await import("./BTGVxaYV.js").then(i=>i.x);return{Terminal:t}},[],import.meta.url),{FitAddon:h}=await u(async()=>{const{FitAddon:t}=await import("./BlxrFPDK.js").then(i=>i.a);return{FitAddon:t}},[],import.meta.url),{WebLinksAddon:S}=await u(async()=>{const{WebLinksAddon:t}=await import("./DLu6yJIZ.js").then(i=>i.a);return{WebLinksAddon:t}},[],import.meta.url);await u(()=>Promise.resolve({}),__vite__mapDeps([0]),import.meta.url);const d=new h,n=new m({allowTransparency:!0,cursorBlink:!0,cursorStyle:"block",fontFamily:"'SF Mono', 'Fira Code', 'Cascadia Code', 'Menlo', monospace",fontSize:e.fontSize||14,theme:{background:"#0a0a0f",black:"#0a0a0f",blue:"#3b82f6",brightBlack:"#64748b",brightBlue:"#60a5fa",brightCyan:"#67e8f9",brightGreen:"#4ade80",brightMagenta:"#c4b5fd",brightRed:"#f87171",brightWhite:"#f8fafc",brightYellow:"#fbbf24",cursor:"#e2e8f0",cursorAccent:"#0a0a0f",cyan:"#38bdf8",foreground:"#e2e8f0",green:"#22c55e",magenta:"#a78bfa",red:"#ef4444",selectionBackground:"rgba(99, 102, 241, 0.3)",white:"#e2e8f0",yellow:"#f59e0b"}});n.loadAddon(d),n.loadAddon(new S),n.open(e.container),d.fit();const _=new Set(["f","g","h","j","n","o","p","q","s","t","u","w"]);n.attachCustomKeyEventHandler(t=>{const i=t.key.toLowerCase();return t.metaKey?i==="c"||i==="v"?!0:!_.has(i):!0});let f=null;if(e.terminalId&&e.apiKey){const t=e.terminalId,i=e.apiKey;f=r=>{(async()=>{try{if(!r.clipboardData)return;const g=Array.from(r.clipboardData.items).find(b=>b.type.startsWith("image/"));if(!g)return;const w=g.getAsFile();if(!w)return;r.preventDefault();const l=new FileReader,O=await new Promise((b,A)=>{l.onload=()=>{b(l.result)},l.onerror=A,l.readAsDataURL(w)});(await fetch(`/api/terminals/${t}/paste-image`,{body:JSON.stringify({image:O}),headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json"},method:"POST"})).ok&&a?.readyState===WebSocket.OPEN&&a.send(JSON.stringify({data:"",type:"input"}))}catch{}})()},e.container.addEventListener("paste",f)}let a=null,c=null,o=1e3,s=!1;async function y(){if(s)return;let t;try{t=await e.getTicket()}catch{s||(e.onDisconnect?.(),c=setTimeout(()=>{o=Math.min(o*2,3e4),y()},o));return}s||(a=new WebSocket(`${e.wsUrl}?ticket=${t}`),a.onopen=()=>{o=1e3,e.onReconnect?.()},a.onmessage=i=>{const r=JSON.parse(i.data);r.type==="output"||r.type==="scrollback"?n.write(r.data??""):r.type==="exit"?(n.write(`\r
3
- \x1B[90m[Process exited with code ${String(r.code)}]\x1B[0m\r
4
- `),s=!0,c&&clearTimeout(c),e.onExit?.(r.code??0)):r.type==="output-dropped"?n.write(`\r
5
- \x1B[33m[${String(r.bytes)} bytes dropped]\x1B[0m\r
6
- `):r.type==="activity"?e.onActivity?.(r.active??!1):r.type==="cwd"&&e.onCwd?.(r.path??"")},a.onclose=()=>{s||(e.onDisconnect?.(),c=setTimeout(()=>{o=Math.min(o*2,3e4),y()},o))})}y(),n.onData(t=>{a?.readyState===WebSocket.OPEN&&a.send(JSON.stringify({data:t,type:"input"}))});const p=new ResizeObserver(()=>{!e.container.offsetWidth||!e.container.offsetHeight||(d.fit(),a?.readyState===WebSocket.OPEN&&a.send(JSON.stringify({cols:n.cols,rows:n.rows,type:"resize"})))});p.observe(e.container);function k(){s=!0,c&&clearTimeout(c),f&&e.container.removeEventListener("paste",f),p.disconnect(),a?.close(),n.dispose()}function v(t){a?.readyState===WebSocket.OPEN&&a.send(JSON.stringify({data:t,type:"input"}))}return{dispose:k,fitAddon:d,sendInput:v,term:n}}function N(e,m){e.readyState===WebSocket.OPEN&&e.send(JSON.stringify({signal:m,type:"signal"}))}export{D as createTerminal,N as sendSignal};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/BcqA7eKM.js";export{o as load_css,r as start};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CR6bkGJW.js","../chunks/PPVm8Dsz.js"])))=>i.map(i=>d[i]);
2
- import{_ as _e}from"../chunks/PPVm8Dsz.js";import{p as ke,i as M,s as at,a as S,f as x,j as Se,e as xe,c as Ce,g as $t}from"../chunks/BPDiEZo0.js";import{p as rt,w as ot,g as t,x as g,c as k,d as c,r as y,t as B,A as Wt,s as h,q as Ie,v as Te,y as Ee,z as je,b as n,$ as Ae}from"../chunks/DWmC0QM7.js";import{h as Ke}from"../chunks/2rBV5OkJ.js";import{m as Me,s as dt,d as Ft,B as H,e as zt,M as qe,K as De,P as Nt,k as Ot,c as Pe,T as Rt,n as $e,I as Ne}from"../chunks/ZS5XYDx_.js";import{g as Y}from"../chunks/BcqA7eKM.js";import{p as Oe}from"../chunks/DCDL_9ys.js";import{A as Re}from"../chunks/DzuS5Nbr.js";import"../chunks/BDcFu3l7.js";import{A as Le}from"../chunks/BdtLzPpO.js";import{C as We}from"../chunks/BB2l8o4X.js";import{E as Fe}from"../chunks/ClIPTXf3.js";function ze(b,o){rt(o,!0);let w=ke(o,"open",15,!1);const u=g(()=>o.commands.map((s,d)=>({label:s.label,value:String(d)})));function T(s){const d=parseInt(s.value,10);o.commands[d]&&o.commands[d].action()}Me(b,{get items(){return t(u)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return o.onClose},classes:"command-palette",get open(){return w()},set open(s){w(s)}}),ot()}var Be=x('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function He(b,o){const w=g(()=>o.status==="connected"?"Connected":o.status==="reconnecting"?"Reconnecting...":"Disconnected");var u=Be();let T;var s=k(u),d=c(s,2),D=k(d,!0);y(d);var q=c(d,2);{var E=j=>{H(j,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return o.onretry},text:"Retry"})};M(q,j=>{o.status==="disconnected"&&o.onretry&&j(E)})}y(u),B(()=>{T=dt(u,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:o.status==="reconnecting",disconnected:o.status==="disconnected",connected:o.status==="connected"}),Ft(u,"aria-label",`Connection: ${o.status??""}`),dt(s,1,`conn-dot ${o.status??""}`,"svelte-1cg9pai"),at(D,t(w))}),S(b,u)}const Bt=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),Lt=Bt?"⌘":"Ctrl";function Ue(b){function o(w){if((Bt?w.metaKey:w.ctrlKey)&&!Ge()&&w.key==="/"){w.preventDefault(),w.stopPropagation(),b.onHelp();return}}return window.addEventListener("keydown",o,!0),{destroy(){window.removeEventListener("keydown",o,!0)}}}function Je(){return[{description:"Command palette",keys:`${Lt}+K`},{description:"Keyboard shortcuts",keys:`${Lt}+/`}]}function Ge(){const b=document.activeElement;if(!b)return!1;const o=b.tagName;return!!(o==="INPUT"||o==="TEXTAREA"||b.isContentEditable||b.closest(".xterm"))}var Ve=x('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Qe(b,o){rt(o,!0);const w=[{escape:"",label:"Ctrl+C"},{escape:" ",label:"Tab"},{escape:"\x1B[A",label:"↑"},{escape:"\x1B[B",label:"↓"},{escape:"\x1B",label:"Esc"},{escape:"",label:"Ctrl+D"},{escape:"",label:"Ctrl+Z"}];var u=Ve();zt(u,21,()=>w,T=>T.label,(T,s)=>{H(T,{classes:"btn-quick-key",onclick:()=>{o.onKey(t(s).escape)},get text(){return t(s).label}})}),y(u),S(b,u),ot()}var Xe=x('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Ze=x('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ye(b,o){rt(o,!0);const w=Je();var u=Se(),T=Wt(u);{var s=d=>{qe(d,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return o.onClose},classes:"shortcuts-modal",content:q=>{var E=Ze();zt(E,21,()=>w,j=>j.keys,(j,F)=>{var f=Xe(),C=k(f),$=k(C,!0);y(C);var N=c(C,2);De(N,{get keys(){return t(F).keys},classes:"shortcut-kbd"}),y(f),B(()=>at($,t(F).description)),S(j,f)}),y(E),S(q,E)},$$slots:{content:!0}})};M(T,d=>{o.open&&d(s)})}S(b,u),ot()}var tn=x('<meta name="description" content="Interactive terminal session"/>'),en=x('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton" style="width: 100%; height: 100%;"></div></div></div>'),nn=x('<main class="main"><div class="session-back-row"><a href="/terminals" class="back-link"><span class="back-arrow">&larr;</span> Terminals</a></div> <!></main>'),sn=x("<span></span>"),an=x('<span class="term-cwd svelte-1tubujq"> </span>'),rn=x('<a class="term-session-link svelte-1tubujq" title="View session history">Session</a>'),on=x('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),ln=x('<div class="term-exited-bar svelte-1tubujq"><span>Process exited</span> <!></div>'),cn=x('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="term-topbar-left svelte-1tubujq"><a href="/terminals" class="term-back svelte-1tubujq" aria-label="Back to terminals">&larr;</a> <span class="term-command-name svelte-1tubujq"> </span> <!> <!> <!> <!> <!></div> <div class="term-topbar-right svelte-1tubujq"><!> <!> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),un=x("<!> <!> <!>",1);function Sn(b,o){rt(o,!0);const w=()=>Ce(Oe,"$page",u),[u,T]=xe();let s=h(null),d=h(!0),D=h(null),q=h(!1),E=h(!1),j=h(!1),F=h(null),f=h("raw"),C=h("disconnected"),$=h("disconnected"),N=h(""),P=h(Ie([])),ft=h(!1),U=h(null),it=h(null),O=null,vt=null,L=h(!1),lt=h(!1),v=null,W=null,m=!1;const J=g(()=>w().params.id),G=g(()=>t(s)?Le.includes((t(s).command.split("/").pop()||"").toLowerCase()):!1),z=g(()=>t(s)?.status==="running"),mt=g(()=>t(s)?.command.split("/").pop()||"terminal"),Ht=g(()=>t(G)?"AI":"SHELL"),Ut=g(()=>t(G)?"pill-badge-ai":"pill-badge-shell"),Jt=["Raw","Chat"],pt=g(()=>t(f)==="raw"?t(C):t($)),Gt=g(()=>t(f)==="raw"?0:1),ht=g(()=>Qt(t(F)||t(s)?.cwd||"")),Vt=g(()=>{const e=[{action:()=>{Y("/")},label:"Go to Home"},{action:()=>{Y("/terminals")},label:"Go to Terminals"},{action:()=>{Y("/config")},label:"Go to Settings"},{action:()=>{n(L,!0)},label:"Show keyboard shortcuts"}];return t(z)&&e.push({action:()=>{yt()},label:"Kill terminal"}),e});function Qt(e){if(!e)return"";const a="";let r=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?r=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(r=`~/${l.slice(3).join("/")}`)}if(r.length>30){const l=r.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return r||a}function V(){try{const e=localStorage.getItem("shooter_config");if(!e)return null;const a=JSON.parse(e);return typeof a?.apiKey=="string"&&a.apiKey?a:null}catch{return null}}async function Xt(){const e=V();if(!e){n(D,"No configuration found. Please configure settings first."),n(d,!1);return}try{const a=await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!a.ok){n(D,a.status===404?"Terminal not found":"Failed to load terminal",!0),n(d,!1);return}n(s,await a.json(),!0)}catch{n(D,"Failed to connect to server")}n(d,!1)}async function gt(){const e=V();if(!e)return null;try{const a=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${e.apiKey}`},method:"POST"});return a.ok?(await a.json()).ticket:null}catch{return null}}async function yt(){if(!t(s)||t(q))return;const e=V();if(e){n(q,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(q,!1)}catch{n(q,!1)}}}async function Zt(){if(!t(s)||t(E))return;const e=V();if(e){n(E,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(E,!1)}catch{n(E,!1)}}}async function ct(){if(!t(U)||!t(s)||m)return;const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).ws}`,r=async()=>{const l=await gt();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await _e(async()=>{const{createTerminal:A}=await import("../chunks/CR6bkGJW.js");return{createTerminal:A}},__vite__mapDeps([0,1]),import.meta.url);if(m||!t(U))return;const p=await l({apiKey:V()?.apiKey,container:t(U),fontSize:window.innerWidth<768?12:14,getTicket:r,onActivity:A=>{m||n(j,A,!0)},onCwd:A=>{m||n(F,A,!0)},onDisconnect:()=>{m||n(C,"reconnecting")},onExit:A=>{!m&&t(s)&&(n(s,{...t(s),exitCode:A,exitedAt:new Date().toISOString(),status:"exited"},!0),n(C,"disconnected"))},onReconnect:()=>{m||n(C,"connected")},terminalId:t(J),wsUrl:a});if(m){p.dispose();return}O=p,n(C,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(C,"disconnected")}}function bt(){O&&(O.dispose(),O=null)}async function tt(){if(!t(s)||m||v&&(v.readyState===WebSocket.OPEN||v.readyState===WebSocket.CONNECTING))return;const e=await gt();if(!e||m||!t(s)){n($,"disconnected");return}const r=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).sessionWs}?ticket=${e}`;v=new WebSocket(r),v.onopen=()=>{m||(n($,"connected"),v?.send(JSON.stringify({sessionId:t(J),type:"subscribe"})))},v.onmessage=l=>{if(!m)try{const p=JSON.parse(l.data);Yt(p)}catch{}},v.onclose=()=>{!m&&t(s)?.status==="running"&&(n($,"reconnecting"),W&&clearTimeout(W),W=setTimeout(()=>{W=null,!m&&t(s)?.status==="running"&&tt()},2e3))},v.onerror=()=>{m||n($,"disconnected")}}function Q(){return t(P)}function Yt(e){if(e.type==="history"){const a=e.messages||[];n(P,a.map(r=>({id:r.id,parts:r.content,role:r.role,timestamp:r.timestamp})),!0)}else if(e.type==="message"){const a=typeof e.role=="string"?e.role:"assistant",r=a==="user"?"user":a==="system"?"system":"assistant",l={id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:r,timestamp:(typeof e.timestamp=="string"?e.timestamp:"")||new Date().toISOString()};n(P,Q().concat(l),!0)}else if(e.type==="tool-use"){const a={id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"},r={id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else if(e.type==="tool-result"){const a={isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"},r={id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"system",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else if(e.type==="thinking"){const a={content:e.text||"",type:"thinking"},r=Q(),l=r.length-1;if(l>=0&&r[l].role==="assistant"){const p=r[l],A={id:p.id,parts:p.parts.concat(a),role:p.role,timestamp:p.timestamp};n(P,[...r.slice(0,l),A],!0)}else{const p={id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()};n(P,r.concat(p),!0)}}else if(e.type==="error"){const a={content:e.message||"Unknown error",type:"text"},r={id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"system",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else e.type==="session-end"&&(n(ft,!0),t(s)&&n(s,{...t(s),status:"exited"},!0))}function wt(){W&&(clearTimeout(W),W=null),v&&(v.onclose=null,v.close(),v=null)}function _t(){t(N).trim()&&(O&&t(C)==="connected"&&O.sendInput(`${t(N)}\r`),n(N,""),t(it)?.focus())}function te(e){!e.trim()||v?.readyState!==WebSocket.OPEN||v.send(JSON.stringify({text:e,type:"send-input"}))}function kt(){v?.readyState===WebSocket.OPEN&&v.send(JSON.stringify({type:"cancel"}))}function ee(e){t(f)==="raw"?O&&t(C)==="connected"&&O.sendInput(e):t(f)==="chat"&&e===""&&kt()}function ne(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),_t())}let et=!1,nt=!1;function se(e){e!==t(f)&&(n(f,e,!0),e==="raw"&&!et?(requestAnimationFrame(()=>{ct()}),et=!0):e==="chat"&&!nt&&(tt(),nt=!0))}function ae(){t(f)==="raw"?(bt(),n(C,"reconnecting"),ct(),et=!0):(wt(),n($,"reconnecting"),tt(),nt=!0)}Te(async()=>{await Xt(),!m&&(vt=Ue({onHelp:()=>{n(L,!t(L))}}),!(!t(s)||t(D))&&(t(G)&&window.innerWidth<768?n(f,"chat"):n(f,"raw"),t(f)==="raw"?(requestAnimationFrame(()=>{ct()}),et=!0):(tt(),nt=!0)))}),Ee(()=>{m=!0,bt(),wt(),vt?.destroy()});var St=un();Ke("1tubujq",e=>{var a=tn();je(()=>{Ae.title=`${t(mt)??""} - Terminal - Shooter`}),S(e,a)});var xt=Wt(St);{var re=e=>{var a=en();S(e,a)},oe=e=>{var a=nn(),r=c(k(a),2);Fe(r,{title:"Error",get description(){return t(D)},icon:p=>{Pe(p,{get svg(){return Re},classes:"icon-24"})}}),y(a),S(e,a)},ie=e=>{var a=cn(),r=k(a),l=k(r),p=c(k(l),2),A=k(p,!0);y(p);var It=c(p,2);Nt(It,{get text(){return t(Ht)},get classes(){return t(Ut)}});var Tt=c(It,2);{var ce=i=>{{let _=g(()=>t(j)?"Active":"Idle");Rt(i,{get text(){return t(_)},position:"bottom",children:(K,R)=>{var I=sn();B(()=>dt(I,1,`activity-dot ${t(j)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(K,I)},$$slots:{default:!0}})}};M(Tt,i=>{t(z)&&i(ce)})}var Et=c(Tt,2);{var ue=i=>{{let _=g(()=>t(F)||t(s)?.cwd||"");Rt(i,{get text(){return t(_)},position:"bottom",children:(K,R)=>{var I=an(),X=k(I,!0);y(I),B(()=>at(X,t(ht))),S(K,I)},$$slots:{default:!0}})}};M(Et,i=>{t(ht)&&i(ue)})}var jt=c(Et,2);He(jt,{get status(){return t(pt)},onretry:ae});var de=c(jt,2);{var fe=i=>{const _=g(()=>t(s).sessionFile??"");var K=rn();B(R=>Ft(K,"href",`/session/${R??""}`),[()=>t(_).split(/[\\/]/).pop()?.replace(".jsonl","")||""]),S(i,K)};M(de,i=>{t(G)&&t(s)?.sessionFile&&i(fe)})}y(l);var At=c(l,2),Kt=k(At);{var ve=i=>{$e(i,{get items(){return Jt},get activeIndex(){return t(Gt)},onchange:_=>{se(_===0?"raw":"chat")},classes:"term-tabs"})};M(Kt,i=>{t(G)&&i(ve)})}var Mt=c(Kt,2);H(Mt,{classes:"term-shortcuts-btn",onclick:()=>{n(L,!t(L))},text:"?",ariaLabel:"Keyboard shortcuts"});var me=c(Mt,2);{var pe=i=>{H(i,{classes:"btn-danger btn-sm",onclick:yt,get disabled(){return t(q)},get showLoader(){return t(q)},text:"Kill"})},he=i=>{H(i,{classes:"btn-secondary btn-sm",onclick:Zt,get disabled(){return t(E)},get showLoader(){return t(E)},text:"Remove"})};M(me,i=>{t(z)?i(pe):i(he,-1)})}y(At),y(r);var ut=c(r,2);let qt;$t(ut,i=>n(U,i),()=>t(U));var Dt=c(ut,2);{var ge=i=>{var _=on(),K=k(_);Qe(K,{onKey:ee});var R=c(K,2),I=k(R);$t(Ne(I,{dataType:"text",useTextArea:!0,placeholder:"Type command... (Shift+Enter for new line)",classes:"input-mono term-input-field",onKeyDown:ne,get value(){return t(N)},set value(Z){n(N,Z,!0)}}),Z=>n(it,Z,!0),()=>t(it));var X=c(I,2);{let Z=g(()=>!t(N).trim());H(X,{classes:"btn-primary btn-send",onclick:_t,get disabled(){return t(Z)},text:"↵"})}y(R),y(_),S(i,_)};M(Dt,i=>{t(z)&&t(f)==="raw"&&i(ge)})}var st=c(Dt,2);let Pt;var ye=k(st);We(ye,{get messages(){return t(P)},get connectionState(){return t(pt)},get sessionEnded(){return t(ft)},get showInput(){return t(z)},onSendInput:te,onCancel:kt}),y(st);var be=c(st,2);{var we=i=>{var _=ln(),K=c(k(_),2);{var R=I=>{{let X=g(()=>t(s).exitCode!==0?"pill-exit-error":"pill-exit-ok");Nt(I,{get text(){return`code ${t(s).exitCode??""}`},get classes(){return t(X)}})}};M(K,I=>{t(s).exitCode!==null&&I(R)})}y(_),S(i,_)};M(be,i=>{t(z)||i(we)})}y(a),B(()=>{at(A,t(mt)),qt=Ot(ut,"",qt,{display:t(f)==="raw"?"flex":"none"}),Pt=Ot(st,"",Pt,{display:t(f)==="chat"?"flex":"none"})}),S(e,a)};M(xt,e=>{t(d)?e(re):t(D)?e(oe,1):t(s)&&e(ie,2)})}var Ct=c(xt,2);Ye(Ct,{get open(){return t(L)},onClose:()=>{n(L,!1)}});var le=c(Ct,2);ze(le,{get commands(){return t(Vt)},onClose:()=>{n(lt,!1)},get open(){return t(lt)},set open(e){n(lt,e,!0)}}),S(b,St),ot(),T()}export{Sn as component};
@@ -1 +0,0 @@
1
- {"version":3,"file":"11-qXSPdF5j.js","sources":["../../../.svelte-kit/adapter-node/nodes/11.js"],"sourcesContent":["\n\nexport const index = 11;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/11.C18nMGmp.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/BPDiEZo0.js\",\"_app/immutable/chunks/DWmC0QM7.js\",\"_app/immutable/chunks/2rBV5OkJ.js\",\"_app/immutable/chunks/ZS5XYDx_.js\",\"_app/immutable/chunks/BcqA7eKM.js\",\"_app/immutable/chunks/DCDL_9ys.js\",\"_app/immutable/chunks/DzuS5Nbr.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BdtLzPpO.js\",\"_app/immutable/chunks/BB2l8o4X.js\",\"_app/immutable/chunks/BcpydfqI.js\",\"_app/immutable/chunks/ClIPTXf3.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/ChatView.Bnlg-oAF.css\",\"_app/immutable/assets/11.v5KA95xm.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAC/G,MAAC,OAAO,GAAG,CAAC,qCAAqC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACrgB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,6CAA6C,CAAC,uCAAuC;AACtJ,MAAC,KAAK,GAAG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-BUBLUSGo.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/terminals/_id_/_page.svelte.js"],"sourcesContent":["import { d as derived, b as attr_class, s as stringify, ac as attr, e as escape_html, ae as spread_props, ah as clsx, f as ensure_array_like, ad as bind_props, h as head } from \"../../../../chunks/index.js\";\nimport { g as goto } from \"../../../../chunks/client.js\";\nimport { o as onDestroy } from \"../../../../chunks/index-server.js\";\nimport \"../../../../chunks/markdown.js\";\n/* empty css */\n/* empty css */\nimport { S as SvelteMap } from \"../../../../chunks/index-server2.js\";\nimport { B as Button, h as html } from \"../../../../chunks/Button.js\";\nfunction ModalAnimation($$renderer, $$props) {\n let {\n enable = true,\n align = \"bottom\",\n transitionType = \"ALL\",\n children\n } = $$props;\n let useFlyAnimation = derived(() => align === \"top\" || align === \"bottom\");\n let useOutTransition = derived(() => transitionType === \"ALL\");\n if (enable) {\n $$renderer.push(\"<!--[0-->\");\n if (useFlyAnimation() && useOutTransition()) {\n $$renderer.push(\"<!--[0-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n } else if (useFlyAnimation()) {\n $$renderer.push(\"<!--[1-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n } else if (useOutTransition()) {\n $$renderer.push(\"<!--[2-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n }\n $$renderer.push(`<!--]-->`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n children?.($$renderer);\n $$renderer.push(`<!---->`);\n }\n $$renderer.push(`<!--]-->`);\n}\nfunction OverlayAnimation($$renderer, $$props) {\n let { children } = $$props;\n $$renderer.push(`<div>`);\n children?.($$renderer);\n $$renderer.push(`<!----></div>`);\n}\nfunction Modal($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let backPressed = false;\n let {\n size = \"fit-content\",\n align = \"center\",\n showOverlay = true,\n supportHardwareBackPress = false,\n enableTransition = true,\n transitionType = \"ALL\",\n header = {},\n footer,\n debounceTime = 700,\n leftImageTestId,\n testId,\n content,\n footerSnippet,\n onclose,\n onheaderRightImageClick,\n onheaderLeftImageClick,\n onprimaryButtonClick,\n onsecondaryButtonClick,\n onoverlayClick,\n onkeydown,\n classes\n } = $$props;\n function handlePopstate() {\n backPressed = true;\n onclose?.();\n }\n function handlePrimaryButtonClick(event) {\n onprimaryButtonClick?.(event);\n }\n function handleSecondaryButtonClick(event) {\n onsecondaryButtonClick?.(event);\n }\n onDestroy(() => {\n if (typeof window !== \"undefined\") {\n document.body.style.overflow = \"\";\n if (supportHardwareBackPress) {\n if (!backPressed) {\n history.back();\n }\n window.removeEventListener(\"popstate\", handlePopstate);\n }\n }\n });\n if (typeof content === \"function\") {\n $$renderer2.push(\"<!--[0-->\");\n OverlayAnimation($$renderer2, {\n children: ($$renderer3) => {\n $$renderer3.push(`<div${attr_class(`modal ${stringify(align)} ${stringify(showOverlay ? \"overlay-active\" : \"overlay-inactive\")} ${stringify(classes ?? \"\")}`, \"svelte-1hs4dh0\")} role=\"button\" tabindex=\"0\"${attr(\"data-pw\", testId)}>`);\n ModalAnimation($$renderer3, {\n enable: enableTransition,\n align,\n transitionType,\n children: ($$renderer4) => {\n $$renderer4.push(`<div${attr_class(`modal-content ${stringify(size)}`, \"svelte-1hs4dh0\")}>`);\n if (typeof header?.leftImage === \"string\" && header.leftImage.length > 0 || typeof header?.text === \"string\" && header.text.length > 0 || typeof header?.rightImage === \"string\" && header.rightImage.length > 0) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"header svelte-1hs4dh0\">`);\n if (header.leftImage) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div role=\"button\" tabindex=\"0\"${attr(\"data-pw\", leftImageTestId)}><img class=\"header-left-img svelte-1hs4dh0\"${attr(\"src\", header.leftImage)} alt=\"\"/></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (header.text) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"header-text svelte-1hs4dh0\"${attr(\"data-pw\", header.testId)}>${escape_html(header.text)}</div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (header.rightImage) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div role=\"button\" tabindex=\"0\"${attr(\"data-pw\", header.buttonTestId)}><img class=\"header-right-img svelte-1hs4dh0\"${attr(\"src\", header.rightImage)} alt=\"\"/></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> <div class=\"slot-content svelte-1hs4dh0\">`);\n content?.($$renderer4);\n $$renderer4.push(`<!----></div> `);\n if (typeof footerSnippet === \"function\") {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"footer-content svelte-1hs4dh0\">`);\n footerSnippet?.($$renderer4);\n $$renderer4.push(`<!----></div>`);\n } else if (typeof footer?.primaryButton === \"object\" || typeof footer?.secondaryButton === \"object\") {\n $$renderer4.push(\"<!--[1-->\");\n $$renderer4.push(`<div class=\"footer-content svelte-1hs4dh0\"><div class=\"footer-action-buttons svelte-1hs4dh0\">`);\n if (footer.secondaryButton) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"footer-secondary-button svelte-1hs4dh0\">`);\n Button($$renderer4, spread_props([\n footer.secondaryButton,\n { onclick: handleSecondaryButtonClick }\n ]));\n $$renderer4.push(`<!----></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--> `);\n if (footer.primaryButton) {\n $$renderer4.push(\"<!--[0-->\");\n $$renderer4.push(`<div class=\"footer-primary-button svelte-1hs4dh0\">`);\n Button($$renderer4, spread_props([footer.primaryButton, { onclick: handlePrimaryButtonClick }]));\n $$renderer4.push(`<!----></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div></div>`);\n } else {\n $$renderer4.push(\"<!--[-1-->\");\n }\n $$renderer4.push(`<!--]--></div>`);\n }\n });\n $$renderer3.push(`<!----></div>`);\n }\n });\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction Img($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { src, alt, classes } = $$props;\n let currentSrc = derived(() => src);\n $$renderer2.push(`<img${attr_class(clsx(classes ?? \"\"), \"svelte-17cjlp4\")}${attr(\"src\", currentSrc())}${attr(\"alt\", alt)} onerror=\"this.__e=event\"/>`);\n });\n}\nfunction KeyboardInput($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { keys, separator = \"+\", testId, onclick, classes } = $$props;\n const KEY_SYMBOLS = {\n cmd: \"⌘\",\n command: \"⌘\",\n ctrl: \"⌃\",\n control: \"⌃\",\n alt: \"⌥\",\n option: \"⌥\",\n shift: \"⇧\",\n enter: \"↵\",\n backspace: \"⌫\",\n delete: \"⌦\",\n tab: \"⇥\",\n escape: \"Esc\",\n esc: \"Esc\",\n up: \"↑\",\n down: \"↓\",\n left: \"←\",\n right: \"→\",\n space: \"␣\"\n };\n let keyList = derived(() => Array.isArray(keys) ? keys : keys.split(separator).map((k) => k.trim()));\n let interactive = derived(() => typeof onclick === \"function\");\n function getSymbol(key) {\n return KEY_SYMBOLS[key.toLowerCase()] ?? key;\n }\n $$renderer2.push(`<span${attr_class(`keyboard-input ${stringify(classes ?? \"\")}`, \"svelte-m0aqug\")}${attr(\"data-pw\", typeof testId === \"string\" ? testId : null)}${attr(\"role\", interactive() ? \"button\" : null)}${attr(\"tabindex\", interactive() ? 0 : null)}><!--[-->`);\n const each_array = ensure_array_like(keyList());\n for (let i = 0, $$length = each_array.length; i < $$length; i++) {\n let key = each_array[i];\n if (i > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"separator svelte-m0aqug\">${escape_html(separator)}</span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <kbd class=\"key svelte-m0aqug\">${escape_html(getSymbol(key))}</kbd>`);\n }\n $$renderer2.push(`<!--]--></span>`);\n });\n}\nconst searchSvg = '<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\\n</svg>\\n';\nfunction CommandMenu($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n items,\n open = false,\n placeholder = \"Search commands...\",\n emptyText = \"No results found.\",\n testId,\n itemIcon,\n searchIcon,\n onselect,\n onclose,\n classes\n } = $$props;\n let query = \"\";\n let activeIndex = 0;\n let filteredItems = derived(() => {\n if (query.trim() === \"\") {\n return items;\n }\n const lower = query.toLowerCase();\n return items.filter((item) => item.label.toLowerCase().includes(lower));\n });\n let groupedItems = derived(() => {\n const groups = new SvelteMap();\n for (const item of filteredItems()) {\n const group = item.group ?? \"\";\n if (!groups.has(group)) {\n groups.set(group, []);\n }\n const groupList = groups.get(group);\n if (Array.isArray(groupList)) {\n groupList.push(item);\n }\n }\n return groups;\n });\n let flatItems = derived(() => {\n const result = [];\n for (const [, groupItems] of groupedItems()) {\n for (const item of groupItems) {\n result.push(item);\n }\n }\n return result;\n });\n let flatIndexLookup = derived(() => {\n const map = new SvelteMap();\n for (let i = 0; i < flatItems().length; i++) {\n const item = flatItems().at(i);\n if (typeof item === \"object\") {\n map.set(item.value, i);\n }\n }\n return map;\n });\n function close() {\n open = false;\n query = \"\";\n activeIndex = 0;\n onclose?.();\n }\n function handleGlobalKeyDown(event) {\n if ((event.metaKey || event.ctrlKey) && event.key === \"k\") {\n event.preventDefault();\n if (open) {\n close();\n } else {\n open = true;\n }\n }\n }\n onDestroy(() => {\n if (typeof window !== \"undefined\") {\n document.body.style.overflow = \"\";\n window.removeEventListener(\"keydown\", handleGlobalKeyDown);\n }\n });\n if (open) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div${attr_class(`command-menu-overlay ${stringify(classes ?? \"\")}`, \"svelte-nvxm9c\")} role=\"dialog\" aria-modal=\"true\" aria-label=\"Command menu\" tabindex=\"-1\"${attr(\"data-pw\", typeof testId === \"string\" ? testId : null)}><div class=\"command-menu-dialog svelte-nvxm9c\"><div class=\"command-menu-input-wrapper svelte-nvxm9c\">`);\n if (typeof searchIcon === \"function\") {\n $$renderer2.push(\"<!--[0-->\");\n searchIcon($$renderer2);\n $$renderer2.push(`<!---->`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<span class=\"command-menu-search-icon svelte-nvxm9c\">${html(searchSvg)}</span>`);\n }\n $$renderer2.push(`<!--]--> <input${attr(\"value\", query)} type=\"text\" class=\"command-menu-input svelte-nvxm9c\"${attr(\"placeholder\", placeholder)} autocomplete=\"off\" spellcheck=\"false\"${attr(\"data-pw\", typeof testId === \"string\" ? `${testId}-input` : null)}/></div> <div class=\"command-menu-separator svelte-nvxm9c\"></div> <div class=\"command-menu-list svelte-nvxm9c\" role=\"listbox\">`);\n if (flatItems().length === 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"command-menu-empty svelte-nvxm9c\">${escape_html(emptyText)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n $$renderer2.push(`<!--[-->`);\n const each_array = ensure_array_like(groupedItems());\n for (let $$index_2 = 0, $$length = each_array.length; $$index_2 < $$length; $$index_2++) {\n let [group, groupItems] = each_array[$$index_2];\n if (group !== \"\") {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<div class=\"command-menu-group-heading svelte-nvxm9c\">${escape_html(group)}</div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <!--[-->`);\n const each_array_1 = ensure_array_like(groupItems);\n for (let $$index_1 = 0, $$length2 = each_array_1.length; $$index_1 < $$length2; $$index_1++) {\n let item = each_array_1[$$index_1];\n const index = flatIndexLookup().get(item.value) ?? -1;\n $$renderer2.push(`<button type=\"button\"${attr_class(\"command-menu-item svelte-nvxm9c\", void 0, { \"active\": index === activeIndex, \"disabled\": item.disabled })}${attr(\"data-active\", index === activeIndex)} role=\"option\"${attr(\"aria-selected\", index === activeIndex)}${attr(\"aria-disabled\", item.disabled)} tabindex=\"-1\"${attr(\"data-pw\", typeof testId === \"string\" ? `${testId}-item-${item.value}` : null)}>`);\n if (typeof itemIcon === \"function\") {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"command-menu-item-icon svelte-nvxm9c\">`);\n itemIcon($$renderer2, item);\n $$renderer2.push(`<!----></span>`);\n } else if (typeof item.icon === \"string\" && item.icon.length > 0) {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<div class=\"command-menu-item-icon-img-wrapper svelte-nvxm9c\">`);\n Img($$renderer2, { src: item.icon, alt: \"\" });\n $$renderer2.push(`<!----></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--> <span class=\"command-menu-item-label svelte-nvxm9c\">${escape_html(item.label)}</span> `);\n if (typeof item.shortcut === \"string\" && item.shortcut.length > 0) {\n $$renderer2.push(\"<!--[0-->\");\n $$renderer2.push(`<span class=\"command-menu-item-shortcut svelte-nvxm9c\"><!--[-->`);\n const each_array_2 = ensure_array_like(item.shortcut.split(\"+\"));\n for (let i = 0, $$length3 = each_array_2.length; i < $$length3; i++) {\n let key = each_array_2[i];\n $$renderer2.push(`<kbd class=\"command-menu-kbd svelte-nvxm9c\">${escape_html(key.trim())}</kbd>`);\n }\n $$renderer2.push(`<!--]--></span>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]--></button>`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></div></div></div>`);\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n bind_props($$props, { open });\n });\n}\nfunction CommandPalette($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { commands, onClose, open = false } = $$props;\n const items = derived(() => commands.map((cmd, i) => ({ label: cmd.label, value: String(i) })));\n function handleSelect(item) {\n const index = parseInt(item.value, 10);\n if (commands[index]) {\n commands[index].action();\n }\n }\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n CommandMenu($$renderer3, {\n items: items(),\n placeholder: \"Type a command...\",\n emptyText: \"No matching commands\",\n onselect: handleSelect,\n onclose: onClose,\n classes: \"command-palette\",\n get open() {\n return open;\n },\n set open($$value) {\n open = $$value;\n $$settled = false;\n }\n });\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n bind_props($$props, { open });\n });\n}\nconst isMac = typeof navigator !== \"undefined\" && /Mac|iPhone|iPad/.test(navigator.userAgent);\nconst modLabel = isMac ? \"⌘\" : \"Ctrl\";\nfunction getShortcutList() {\n return [\n { description: \"Command palette\", keys: `${modLabel}+K` },\n { description: \"Keyboard shortcuts\", keys: `${modLabel}+/` }\n ];\n}\nfunction ShortcutsHelp($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const { onClose, open } = $$props;\n const shortcuts = getShortcutList();\n if (open) {\n $$renderer2.push(\"<!--[0-->\");\n {\n let content = function($$renderer3) {\n $$renderer3.push(`<div class=\"shortcuts-list svelte-1u7lstk\"><!--[-->`);\n const each_array = ensure_array_like(shortcuts);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let shortcut = each_array[$$index];\n $$renderer3.push(`<div class=\"shortcut-row svelte-1u7lstk\"><span class=\"shortcut-desc svelte-1u7lstk\">${escape_html(shortcut.description)}</span> `);\n KeyboardInput($$renderer3, { keys: shortcut.keys, classes: \"shortcut-kbd\" });\n $$renderer3.push(`<!----></div>`);\n }\n $$renderer3.push(`<!--]--></div>`);\n };\n Modal($$renderer2, {\n header: { text: \"Keyboard Shortcuts\" },\n onoverlayClick: onClose,\n classes: \"shortcuts-modal\",\n content\n });\n }\n } else {\n $$renderer2.push(\"<!--[-1-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let terminal = null;\n let showShortcutsHelp = false;\n let showCommandPalette = false;\n const isRunning = derived(() => terminal?.status === \"running\");\n const commandName = derived(() => \"terminal\");\n const paletteCommands = derived(() => {\n const cmds = [\n { action: () => void goto(), label: \"Go to Home\" },\n {\n action: () => void goto(),\n label: \"Go to Terminals\"\n },\n { action: () => void goto(), label: \"Go to Settings\" },\n {\n action: () => {\n showShortcutsHelp = true;\n },\n label: \"Show keyboard shortcuts\"\n }\n ];\n if (isRunning()) {\n cmds.push({ action: () => void killTerminal(), label: \"Kill terminal\" });\n }\n return cmds;\n });\n async function killTerminal() {\n {\n return;\n }\n }\n onDestroy(() => {\n });\n let $$settled = true;\n let $$inner_renderer;\n function $$render_inner($$renderer3) {\n head(\"1tubujq\", $$renderer3, ($$renderer4) => {\n $$renderer4.title(($$renderer5) => {\n $$renderer5.push(`<title>${escape_html(commandName())} - Terminal - Shooter</title>`);\n });\n $$renderer4.push(`<meta name=\"description\" content=\"Interactive terminal session\"/>`);\n });\n {\n $$renderer3.push(\"<!--[0-->\");\n $$renderer3.push(`<div class=\"term-page svelte-1tubujq\"><div class=\"term-topbar svelte-1tubujq\"><div class=\"skeleton\" style=\"width: 120px; height: 20px;\"></div></div> <div class=\"term-body-loading svelte-1tubujq\"><div class=\"skeleton\" style=\"width: 100%; height: 100%;\"></div></div></div>`);\n }\n $$renderer3.push(`<!--]--> `);\n ShortcutsHelp($$renderer3, {\n open: showShortcutsHelp,\n onClose: () => {\n showShortcutsHelp = false;\n }\n });\n $$renderer3.push(`<!----> `);\n CommandPalette($$renderer3, {\n commands: paletteCommands(),\n onClose: () => {\n showCommandPalette = false;\n },\n get open() {\n return showCommandPalette;\n },\n set open($$value) {\n showCommandPalette = $$value;\n $$settled = false;\n }\n });\n $$renderer3.push(`<!---->`);\n }\n do {\n $$settled = true;\n $$inner_renderer = $$renderer2.copy();\n $$render_inner($$inner_renderer);\n } while (!$$settled);\n $$renderer2.subsume($$inner_renderer);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Bi0Oe4PF.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_id_/resize/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { p as ptyManager } from \"../../../../../../chunks/pty-manager.js\";\nimport { t as toErrorMessage } from \"../../../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nconst POST = async ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n try {\n const { cols, rows } = body;\n if (cols === void 0 || rows === void 0) {\n return json({ error: \"cols and rows are required\" }, { status: 400 });\n }\n if (typeof cols !== \"number\" || cols < 1) {\n return json({ error: \"cols must be a positive number\" }, { status: 400 });\n }\n if (typeof rows !== \"number\" || rows < 1) {\n return json({ error: \"rows must be a positive number\" }, { status: 400 });\n }\n if (cols > 500 || rows > 200) {\n return json({ error: \"cols must be <= 500 and rows must be <= 200\" }, { status: 400 });\n }\n const terminal = ptyManager.get(params.id);\n if (!terminal) {\n return json({ error: \"Terminal not found\" }, { status: 404 });\n }\n if (terminal.status === \"exited\") {\n return json({ error: \"Terminal already exited\" }, { status: 409 });\n }\n ptyManager.resize(params.id, cols, rows);\n console.log(`[terminals] Resized terminal ${params.id} to ${cols}x${rows}`);\n return json({\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[terminals] Failed to resize terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to resize terminal\" }, { status: 500 });\n }\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAIK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC5C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI;AAC/B,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,IAAI;AACJ,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AAC9C,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,IAAI;AACJ,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;AAC9C,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;AAClC,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC5F,IAAI;AACJ,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnE,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;AACtC,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,IAAI;AACJ,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,6BAA6B,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,OAAO,EAAE,IAAI;AACnB,MAAM,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AACzD,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAClF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-Bjbr7glm.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_id_/paste-image/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { t as toErrorMessage } from \"../../../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { mkdirSync, writeFileSync } from \"fs\";\nconst POST = async ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const terminalId = params.id;\n if (!/^[A-Za-z0-9_-]+$/.test(terminalId)) {\n return json({ error: \"Invalid terminal ID\" }, { status: 400 });\n }\n let body;\n try {\n body = await request.json();\n } catch {\n return json({ error: \"Invalid JSON\" }, { status: 400 });\n }\n if (!body.image || typeof body.image !== \"string\") {\n return json({ error: \"image (base64) is required\" }, { status: 400 });\n }\n let imageBuffer;\n try {\n const base64Data = body.image.replace(/^data:image\\/\\w+;base64,/, \"\");\n const decoded = Buffer.from(base64Data, \"base64\");\n if (decoded.length === 0 || decoded.toString(\"base64\") !== base64Data) {\n return json({ error: \"Invalid base64 image data\" }, { status: 400 });\n }\n imageBuffer = decoded;\n } catch {\n return json({ error: \"Invalid base64 image data\" }, { status: 400 });\n }\n const clipboardDir = `/tmp/shooter-clipboard-${terminalId}`;\n const imagePath = `${clipboardDir}/image.png`;\n try {\n mkdirSync(clipboardDir, { recursive: true });\n writeFileSync(imagePath, imageBuffer);\n } catch (err) {\n console.error(\"[paste-image] Failed to write image:\", toErrorMessage(err));\n return json({ error: \"Failed to write image\" }, { status: 500 });\n }\n return json({ size: imageBuffer.length, success: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;AAIK,MAAC,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC5C,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE;AAC9B,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAC5C,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAClE,EAAE;AACF,EAAE,IAAI,IAAI;AACV,EAAE,IAAI;AACN,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AAC/B,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3D,EAAE;AACF,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;AACrD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzE,EAAE;AACF,EAAE,IAAI,WAAW;AACjB,EAAE,IAAI;AACN,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC;AACzE,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;AACrD,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE;AAC3E,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC1E,IAAI;AACJ,IAAI,WAAW,GAAG,OAAO;AACzB,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE;AACF,EAAE,MAAM,YAAY,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;AAC7D,EAAE,MAAM,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC;AAC/C,EAAE,IAAI;AACN,IAAI,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAChD,IAAI,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC;AACzC,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;AAC9E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACpE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1D;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BrqaMMAa.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/ws-ticket/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { randomBytes } from \"crypto\";\nimport { json } from \"@sveltejs/kit\";\nconst GLOBAL_KEY = \"__shooter_ws_tickets\";\nconst tickets = globalThis[GLOBAL_KEY] || /* @__PURE__ */ new Map();\nglobalThis[GLOBAL_KEY] = tickets;\nfunction generateTicket() {\n const ticket = randomBytes(32).toString(\"hex\");\n tickets.set(ticket, { createdAt: Date.now(), used: false });\n return ticket;\n}\nsetInterval(() => {\n const now = Date.now();\n for (const [key, val] of tickets) {\n if (now - val.createdAt > 3e4) {\n tickets.delete(key);\n }\n }\n}, 3e4).unref();\nconst RATE_LIMIT_WINDOW_MS = 6e4;\nconst RATE_LIMIT_MAX = 30;\nconst rateLimitMap = /* @__PURE__ */ new Map();\nfunction checkRateLimit(apiKey) {\n const now = Date.now();\n const cutoff = now - RATE_LIMIT_WINDOW_MS;\n let timestamps = rateLimitMap.get(apiKey);\n if (!timestamps) {\n timestamps = [];\n rateLimitMap.set(apiKey, timestamps);\n }\n const recent = timestamps.filter((t) => t > cutoff);\n rateLimitMap.set(apiKey, recent);\n if (recent.length >= RATE_LIMIT_MAX) {\n return false;\n }\n recent.push(now);\n return true;\n}\nsetInterval(() => {\n const cutoff = Date.now() - RATE_LIMIT_WINDOW_MS;\n for (const [key, timestamps] of rateLimitMap) {\n const recent = timestamps.filter((t) => t > cutoff);\n if (recent.length === 0) {\n rateLimitMap.delete(key);\n } else {\n rateLimitMap.set(key, recent);\n }\n }\n}, 3e5).unref();\nconst POST = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const apiKey = (request.headers.get(\"authorization\") ?? \"\").substring(7).trim();\n if (!checkRateLimit(apiKey)) {\n return json(\n { error: \"Rate limit exceeded. Maximum 30 ticket requests per minute.\" },\n { status: 429 }\n );\n }\n const ticket = generateTicket();\n return json({\n expiresIn: 30,\n ticket\n });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-DhJx0DLr.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_id_/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { p as ptyManager } from \"../../../../../chunks/pty-manager.js\";\nimport { t as toErrorMessage } from \"../../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nfunction lastScrollbackLine(scrollback) {\n if (!scrollback) {\n return null;\n }\n const lines = scrollback.trimEnd().split(\"\\n\");\n for (let i = lines.length - 1; i >= 0; i--) {\n const line = lines[i].trim();\n if (line) {\n return line.slice(0, 200);\n }\n }\n return null;\n}\nconst GET = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n try {\n const terminal = ptyManager.get(params.id);\n if (!terminal) {\n return json({ error: \"Terminal not found\" }, { status: 404 });\n }\n return json({\n args: terminal.args,\n clientCount: terminal.clients.size,\n command: terminal.command,\n createdAt: terminal.createdAt.toISOString(),\n cwd: terminal.cwd,\n exitCode: terminal.exitCode,\n exitedAt: terminal.exitedAt?.toISOString() ?? null,\n id: terminal.id,\n lastOutput: lastScrollbackLine(terminal.scrollback),\n pid: terminal.pid,\n sessionWs: `/ws/session/${terminal.id}`,\n status: terminal.status,\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n ws: `/ws/terminal/${terminal.id}`\n });\n } catch (error) {\n console.error(\"[terminals] Failed to get terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to get terminal\" }, { status: 500 });\n }\n};\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n try {\n const terminal = ptyManager.get(params.id);\n if (!terminal) {\n return json({ error: \"Terminal not found\" }, { status: 404 });\n }\n if (terminal.status === \"exited\") {\n ptyManager.remove(params.id);\n console.log(`[terminals] Removed exited terminal ${params.id}`);\n return json({\n removed: true,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n ptyManager.kill(params.id);\n console.log(`[terminals] Killed terminal ${params.id} (pid=${terminal.pid})`);\n return json({\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[terminals] Failed to kill terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to kill terminal\" }, { status: 500 });\n }\n};\nexport {\n DELETE,\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAIA,SAAS,kBAAkB,CAAC,UAAU,EAAE;AACxC,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAChD,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAChC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AAC/B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI;AACb;AACK,MAAC,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACrC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnE,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,IAAI,EAAE,QAAQ,CAAC,IAAI;AACzB,MAAM,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI;AACxC,MAAM,OAAO,EAAE,QAAQ,CAAC,OAAO;AAC/B,MAAM,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;AACjD,MAAM,GAAG,EAAE,QAAQ,CAAC,GAAG;AACvB,MAAM,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AACjC,MAAM,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI;AACxD,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE;AACrB,MAAM,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzD,MAAM,GAAG,EAAE,QAAQ,CAAC,GAAG;AACvB,MAAM,SAAS,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7C,MAAM,MAAM,EAAE,QAAQ,CAAC,MAAM;AAC7B,MAAM,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AAC3D,MAAM,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;AACtC,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAC/E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrE,EAAE;AACF;AACK,MAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,MAAM,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnE,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;AACtC,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAClC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,oCAAoC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,MAAM,OAAO,IAAI,CAAC;AAClB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,OAAO,EAAE,IAAI;AACrB,QAAQ,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AAC3D,OAAO,CAAC;AACR,IAAI;AACJ,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,4BAA4B,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjF,IAAI,OAAO,IAAI,CAAC;AAChB,MAAM,OAAO,EAAE,IAAI;AACnB,MAAM,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AACzD,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAChF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF;;;;"}
@@ -1,20 +0,0 @@
1
- const EVENTS_KEY = "__shooter_ws_events_clients";
2
- const eventsClients = globalThis[EVENTS_KEY] || /* @__PURE__ */ new Set();
3
- globalThis[EVENTS_KEY] = eventsClients;
4
- function broadcastEvent(event) {
5
- const data = JSON.stringify({
6
- ...event,
7
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
8
- });
9
- for (const ws of eventsClients) {
10
- if (ws.readyState === 1) {
11
- ws.send(data);
12
- }
13
- }
14
- }
15
- function getEventsClientCount() {
16
- return eventsClients.size;
17
- }
18
-
19
- export { broadcastEvent as b, getEventsClientCount as g };
20
- //# sourceMappingURL=events-handler-Dm1mNPQP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events-handler-Dm1mNPQP.js","sources":["../../../.svelte-kit/adapter-node/chunks/events-handler.js"],"sourcesContent":["const EVENTS_KEY = \"__shooter_ws_events_clients\";\nconst eventsClients = globalThis[EVENTS_KEY] || /* @__PURE__ */ new Set();\nglobalThis[EVENTS_KEY] = eventsClients;\nfunction broadcastEvent(event) {\n const data = JSON.stringify({\n ...event,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n for (const ws of eventsClients) {\n if (ws.readyState === 1) {\n ws.send(data);\n }\n }\n}\nfunction getEventsClientCount() {\n return eventsClients.size;\n}\nexport {\n broadcastEvent as b,\n getEventsClientCount as g\n};\n"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,6BAA6B;AAChD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,oBAAoB,IAAI,GAAG,EAAE;AACzE,UAAU,CAAC,UAAU,CAAC,GAAG,aAAa;AACtC,SAAS,cAAc,CAAC,KAAK,EAAE;AAC/B,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9B,IAAI,GAAG,KAAK;AACZ,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AACvD,GAAG,CAAC;AACJ,EAAE,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;AAClC,IAAI,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE;AAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,IAAI;AACJ,EAAE;AACF;AACA,SAAS,oBAAoB,GAAG;AAChC,EAAE,OAAO,aAAa,CAAC,IAAI;AAC3B;;;;"}