@juspay/shooter 1.0.0 → 1.1.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 (433) hide show
  1. package/.claude/hooks/notifier.cjs +117 -33
  2. package/.claude/settings.json +14 -14
  3. package/README.md +116 -84
  4. package/bin/shooter.cjs +471 -102
  5. package/build/client/_app/immutable/assets/{0.CM9Hl6d-.css → 0.DC5pAwP3.css} +1 -1
  6. package/build/client/_app/immutable/assets/0.DC5pAwP3.css.br +0 -0
  7. package/build/client/_app/immutable/assets/{0.CM9Hl6d-.css.gz → 0.DC5pAwP3.css.gz} +0 -0
  8. package/build/client/_app/immutable/assets/2.CAShZ7lQ.css.gz +0 -0
  9. package/build/client/_app/immutable/assets/3.BoXp0JoS.css +1 -0
  10. package/build/client/_app/immutable/assets/3.BoXp0JoS.css.br +0 -0
  11. package/build/client/_app/immutable/assets/3.BoXp0JoS.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/4.cJuCkJKZ.css.gz +0 -0
  13. package/build/client/_app/immutable/assets/5.DRjApZQW.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/6.eZGZN-BF.css +1 -0
  15. package/build/client/_app/immutable/assets/6.eZGZN-BF.css.br +0 -0
  16. package/build/client/_app/immutable/assets/6.eZGZN-BF.css.gz +0 -0
  17. package/build/client/_app/immutable/assets/{7.BCJ1IuMx.css → 7.PyEFVv_s.css} +1 -1
  18. package/build/client/_app/immutable/assets/7.PyEFVv_s.css.br +0 -0
  19. package/build/client/_app/immutable/assets/7.PyEFVv_s.css.gz +0 -0
  20. package/build/client/_app/immutable/assets/ChatView.CsdBAOKx.css.gz +0 -0
  21. package/build/client/_app/immutable/assets/Phone.FQEfwCX2.css +1 -0
  22. package/build/client/_app/immutable/assets/Phone.FQEfwCX2.css.br +0 -0
  23. package/build/client/_app/immutable/assets/Phone.FQEfwCX2.css.gz +0 -0
  24. package/build/client/_app/immutable/assets/markdown.Dc-OSJWY.css +1 -0
  25. package/build/client/_app/immutable/assets/markdown.Dc-OSJWY.css.br +0 -0
  26. package/build/client/_app/immutable/assets/markdown.Dc-OSJWY.css.gz +0 -0
  27. package/build/client/_app/immutable/assets/xterm.DFuMZ0ql.css.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{Cjwk_cGO.js → 50RPd5u3.js} +1 -1
  29. package/build/client/_app/immutable/chunks/50RPd5u3.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/50RPd5u3.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BDC7XD4o.js +1 -0
  32. package/build/client/_app/immutable/chunks/BDC7XD4o.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/BDC7XD4o.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/BTGVxaYV.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/BeONA6_G.js +2 -0
  36. package/build/client/_app/immutable/chunks/BeONA6_G.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/BeONA6_G.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/BlxrFPDK.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/BygiiMA0.js +1 -0
  40. package/build/client/_app/immutable/chunks/BygiiMA0.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/BygiiMA0.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/CGLrx-H5.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/CHvUpVYv.js +1 -0
  44. package/build/client/_app/immutable/chunks/CHvUpVYv.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CHvUpVYv.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/CbqC9BW7.js +1 -0
  47. package/build/client/_app/immutable/chunks/CbqC9BW7.js.br +2 -0
  48. package/build/client/_app/immutable/chunks/CbqC9BW7.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/CdL99jkG.js +1 -0
  50. package/build/client/_app/immutable/chunks/CdL99jkG.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/CdL99jkG.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/ClK4wZbC.js +61 -0
  53. package/build/client/_app/immutable/chunks/ClK4wZbC.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/ClK4wZbC.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/CojFyTPp.js +1 -0
  56. package/build/client/_app/immutable/chunks/CojFyTPp.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/CojFyTPp.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.gz +0 -0
  59. package/build/client/_app/immutable/chunks/DREFAyhX.js +60 -0
  60. package/build/client/_app/immutable/chunks/DREFAyhX.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/DREFAyhX.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/DSU1n5N_.js +1 -0
  63. package/build/client/_app/immutable/chunks/DSU1n5N_.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/DSU1n5N_.js.gz +0 -0
  65. package/build/client/_app/immutable/chunks/K_aHH2KN.js +1 -0
  66. package/build/client/_app/immutable/chunks/K_aHH2KN.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/K_aHH2KN.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/Ona8oofC.js +1 -0
  69. package/build/client/_app/immutable/chunks/Ona8oofC.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/Ona8oofC.js.gz +0 -0
  71. package/build/client/_app/immutable/chunks/PPVm8Dsz.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/tjbnEgXP.js +1 -0
  73. package/build/client/_app/immutable/chunks/tjbnEgXP.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/tjbnEgXP.js.gz +0 -0
  75. package/build/client/_app/immutable/entry/app.anqwe7ZL.js +2 -0
  76. package/build/client/_app/immutable/entry/app.anqwe7ZL.js.br +0 -0
  77. package/build/client/_app/immutable/entry/app.anqwe7ZL.js.gz +0 -0
  78. package/build/client/_app/immutable/entry/start.BV2VRv6h.js +1 -0
  79. package/build/client/_app/immutable/entry/start.BV2VRv6h.js.br +2 -0
  80. package/build/client/_app/immutable/entry/start.BV2VRv6h.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/0.D0i5MqcI.js +1 -0
  82. package/build/client/_app/immutable/nodes/0.D0i5MqcI.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/0.D0i5MqcI.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/1.DN5n5c6F.js +1 -0
  85. package/build/client/_app/immutable/nodes/1.DN5n5c6F.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/1.DN5n5c6F.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js +1 -0
  88. package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/2.BTjkNKZJ.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/3.CEkigHDv.js +3 -0
  91. package/build/client/_app/immutable/nodes/3.CEkigHDv.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/3.CEkigHDv.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js +1 -0
  94. package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/4.B-8Zsc9k.js.gz +0 -0
  96. package/build/client/_app/immutable/nodes/5.shitbtHc.js +1 -0
  97. package/build/client/_app/immutable/nodes/5.shitbtHc.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/5.shitbtHc.js.gz +0 -0
  99. package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js +2 -0
  100. package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js.br +0 -0
  101. package/build/client/_app/immutable/nodes/6.CB8Q6eH8.js.gz +0 -0
  102. package/build/client/_app/immutable/nodes/7.D0CrR6pl.js +2 -0
  103. package/build/client/_app/immutable/nodes/7.D0CrR6pl.js.br +0 -0
  104. package/build/client/_app/immutable/nodes/7.D0CrR6pl.js.gz +0 -0
  105. package/build/client/_app/version.json +1 -1
  106. package/build/client/_app/version.json.br +0 -0
  107. package/build/client/_app/version.json.gz +0 -0
  108. package/build/client/favicon.svg.gz +0 -0
  109. package/build/pty-holder.cjs +37 -8
  110. package/build/server/chunks/0-Cs1dzfRz.js +9 -0
  111. package/build/server/chunks/{0-q2IUp76Y.js.map → 0-Cs1dzfRz.js.map} +1 -1
  112. package/build/server/chunks/1-BCSX7oED.js +9 -0
  113. package/build/server/chunks/{1-CU50G5wZ.js.map → 1-BCSX7oED.js.map} +1 -1
  114. package/build/server/chunks/2-6gkeO8b4.js +9 -0
  115. package/build/server/chunks/2-6gkeO8b4.js.map +1 -0
  116. package/build/server/chunks/3-DH9J9Vsc.js +9 -0
  117. package/build/server/chunks/3-DH9J9Vsc.js.map +1 -0
  118. package/build/server/chunks/4-Rzy5TYjl.js +9 -0
  119. package/build/server/chunks/4-Rzy5TYjl.js.map +1 -0
  120. package/build/server/chunks/5-D0wB7nfE.js +9 -0
  121. package/build/server/chunks/5-D0wB7nfE.js.map +1 -0
  122. package/build/server/chunks/6-DR2ABDPq.js +9 -0
  123. package/build/server/chunks/6-DR2ABDPq.js.map +1 -0
  124. package/build/server/chunks/7-D-oQJsia.js +9 -0
  125. package/build/server/chunks/7-D-oQJsia.js.map +1 -0
  126. package/build/server/chunks/Button-C7D5W6wV.js +80 -0
  127. package/build/server/chunks/Button-C7D5W6wV.js.map +1 -0
  128. package/build/server/chunks/EmptyState-Ci4pSpmY.js +20 -0
  129. package/build/server/chunks/EmptyState-Ci4pSpmY.js.map +1 -0
  130. package/build/server/chunks/Icon-DyrkHVnV.js +36 -0
  131. package/build/server/chunks/Icon-DyrkHVnV.js.map +1 -0
  132. package/build/server/chunks/Shimmer-BITK6wrm.js +10 -0
  133. package/build/server/chunks/Shimmer-BITK6wrm.js.map +1 -0
  134. package/build/server/chunks/_layout.svelte-CO4f8UD7.js +76 -0
  135. package/build/server/chunks/_layout.svelte-CO4f8UD7.js.map +1 -0
  136. package/build/server/chunks/_page.svelte-3Cc3NMAP.js +81 -0
  137. package/build/server/chunks/_page.svelte-3Cc3NMAP.js.map +1 -0
  138. package/build/server/chunks/_page.svelte-C0p3HsIW.js +46 -0
  139. package/build/server/chunks/_page.svelte-C0p3HsIW.js.map +1 -0
  140. package/build/server/chunks/_page.svelte-C6bns9aQ.js +41 -0
  141. package/build/server/chunks/_page.svelte-C6bns9aQ.js.map +1 -0
  142. package/build/server/chunks/_page.svelte-CFCONiDK.js +97 -0
  143. package/build/server/chunks/_page.svelte-CFCONiDK.js.map +1 -0
  144. package/build/server/chunks/_page.svelte-DskND_G9.js +550 -0
  145. package/build/server/chunks/_page.svelte-DskND_G9.js.map +1 -0
  146. package/build/server/chunks/_page.svelte-rTrWmhOp.js +651 -0
  147. package/build/server/chunks/_page.svelte-rTrWmhOp.js.map +1 -0
  148. package/build/server/chunks/{_server.ts-CbDRDIoP.js → _server.ts-BStnNIcq.js} +9 -11
  149. package/build/server/chunks/_server.ts-BStnNIcq.js.map +1 -0
  150. package/build/server/chunks/{_server.ts-C29xzfaw.js → _server.ts-C8slOHB0.js} +9 -10
  151. package/build/server/chunks/_server.ts-C8slOHB0.js.map +1 -0
  152. package/build/server/chunks/{_server.ts-CPa6DgIt.js → _server.ts-COu0vNpd.js} +6 -6
  153. package/build/server/chunks/_server.ts-COu0vNpd.js.map +1 -0
  154. package/build/server/chunks/{_server.ts-DRVbgm6k.js → _server.ts-CS5H5klP.js} +10 -17
  155. package/build/server/chunks/_server.ts-CS5H5klP.js.map +1 -0
  156. package/build/server/chunks/{_server.ts-D4MNi4cD.js → _server.ts-Cf84YIaW.js} +3 -3
  157. package/build/server/chunks/{_server.ts-D4MNi4cD.js.map → _server.ts-Cf84YIaW.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-BL2FGb5Z.js → _server.ts-Ch-6iOHp.js} +99 -53
  159. package/build/server/chunks/_server.ts-Ch-6iOHp.js.map +1 -0
  160. package/build/server/chunks/{_server.ts-DfajWaqh.js → _server.ts-DV8zTCF9.js} +7 -9
  161. package/build/server/chunks/_server.ts-DV8zTCF9.js.map +1 -0
  162. package/build/server/chunks/{_server.ts-ColfDHW8.js → _server.ts-DYvb9ijZ.js} +21 -10
  163. package/build/server/chunks/_server.ts-DYvb9ijZ.js.map +1 -0
  164. package/build/server/chunks/_server.ts-DhTrdlWH.js +62 -0
  165. package/build/server/chunks/_server.ts-DhTrdlWH.js.map +1 -0
  166. package/build/server/chunks/{_server.ts-Cv_OrRuL.js → _server.ts-DpEVfp8W.js} +165 -8
  167. package/build/server/chunks/_server.ts-DpEVfp8W.js.map +1 -0
  168. package/build/server/chunks/{_server.ts-y9-WYDMa.js → _server.ts-WhTJBEJy.js} +5 -4
  169. package/build/server/chunks/{_server.ts-y9-WYDMa.js.map → _server.ts-WhTJBEJy.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-BjOJsoy4.js → _server.ts-XzT2UHM1.js} +6 -5
  171. package/build/server/chunks/_server.ts-XzT2UHM1.js.map +1 -0
  172. package/build/server/chunks/{_server.ts-BgdjBZco.js → _server.ts-tSpgyl1D.js} +7 -5
  173. package/build/server/chunks/_server.ts-tSpgyl1D.js.map +1 -0
  174. package/build/server/chunks/{_server.ts-BihKSdj_.js → _server.ts-uHUi-4cd.js} +7 -8
  175. package/build/server/chunks/_server.ts-uHUi-4cd.js.map +1 -0
  176. package/build/server/chunks/{auth-CEgFis71.js → auth-DeCdZ83n.js} +2 -2
  177. package/build/server/chunks/{auth-CEgFis71.js.map → auth-DeCdZ83n.js.map} +1 -1
  178. package/build/server/chunks/client-BYT9c0ig.js +7 -0
  179. package/build/server/chunks/client-BYT9c0ig.js.map +1 -0
  180. package/build/server/chunks/client2-BjxIYuno.js +25 -0
  181. package/build/server/chunks/client2-BjxIYuno.js.map +1 -0
  182. package/build/server/chunks/error-DDXB3duW.js +12 -0
  183. package/build/server/chunks/error-DDXB3duW.js.map +1 -0
  184. package/build/server/chunks/error.svelte-BG_yE-Wt.js +27 -0
  185. package/build/server/chunks/error.svelte-BG_yE-Wt.js.map +1 -0
  186. package/build/server/chunks/{exports-CJ0Q5XmL.js → index-Cnl871UW.js} +1111 -1634
  187. package/build/server/chunks/index-Cnl871UW.js.map +1 -0
  188. package/build/server/chunks/index-server-CUC9Jt7r.js +9 -0
  189. package/build/server/chunks/index-server-CUC9Jt7r.js.map +1 -0
  190. package/build/server/chunks/index2-HA3VTH7y.js +58 -0
  191. package/build/server/chunks/index2-HA3VTH7y.js.map +1 -0
  192. package/build/server/chunks/{library-apns-BHxLmuIx.js → library-apns-BqJbvSKh.js} +4 -4
  193. package/build/server/chunks/library-apns-BqJbvSKh.js.map +1 -0
  194. package/build/server/chunks/markdown-W_mTBct0.js +8 -0
  195. package/build/server/chunks/markdown-W_mTBct0.js.map +1 -0
  196. package/build/server/chunks/{pty-manager-C0FhBiVq.js → pty-manager-DR0Wt2Ac.js} +146 -319
  197. package/build/server/chunks/pty-manager-DR0Wt2Ac.js.map +1 -0
  198. package/build/server/chunks/root-DhswcH6o.js +1171 -0
  199. package/build/server/chunks/root-DhswcH6o.js.map +1 -0
  200. package/build/server/chunks/{shared-server-BDY8jh20.js → shared-server-sSGG17Df.js} +2 -3
  201. package/build/server/chunks/{shared-server-BDY8jh20.js.map → shared-server-sSGG17Df.js.map} +1 -1
  202. package/build/server/chunks/state.svelte-2Lellg7t.js +11 -0
  203. package/build/server/chunks/state.svelte-2Lellg7t.js.map +1 -0
  204. package/build/server/index.js +1085 -2242
  205. package/build/server/index.js.map +1 -1
  206. package/build/server/manifest.js +23 -23
  207. package/build/server/manifest.js.map +1 -1
  208. package/package.json +32 -9
  209. package/scripts/fix-generated-types.sh +37 -0
  210. package/scripts/homebrew/shooter.rb +51 -0
  211. package/scripts/install.sh +348 -186
  212. package/scripts/setup.cjs +139 -43
  213. package/server.ts +111 -71
  214. package/src/app.css +12 -3
  215. package/src/app.d.ts +13 -20
  216. package/src/app.html +0 -2
  217. package/src/generated/types/API.ts +280 -0
  218. package/src/generated/types/APN.ts +186 -203
  219. package/src/generated/types/CLI.ts +18 -25
  220. package/src/generated/types/Client.ts +589 -0
  221. package/src/generated/types/Config.ts +53 -0
  222. package/src/generated/types/Holder.ts +638 -0
  223. package/src/generated/types/JWT.ts +39 -50
  224. package/src/generated/types/Notification.ts +426 -0
  225. package/src/generated/types/OpenCode.ts +356 -0
  226. package/src/generated/types/Sessions.ts +570 -0
  227. package/src/generated/types/Terminal.ts +2184 -2071
  228. package/src/generated/types/WsProtocol.ts +2004 -0
  229. package/src/generated/types/index.ts +9 -3
  230. package/src/lib/env.ts +29 -0
  231. package/src/lib/modules/client/common/config-guard.ts +37 -5
  232. package/src/lib/modules/client/common/error.ts +10 -0
  233. package/src/lib/modules/client/common/index.ts +6 -5
  234. package/src/lib/modules/client/common/native-bridge.ts +28 -20
  235. package/src/lib/modules/client/terminal/ChatView.svelte +46 -23
  236. package/src/lib/modules/client/terminal/CommandPalette.svelte +3 -2
  237. package/src/lib/modules/client/terminal/ConnectionStatus.svelte +6 -1
  238. package/src/lib/modules/client/terminal/LaunchSheet.svelte +147 -84
  239. package/src/lib/modules/client/terminal/QuickKeys.svelte +3 -1
  240. package/src/lib/modules/client/terminal/ShortcutsHelp.svelte +2 -5
  241. package/src/lib/modules/client/terminal/keyboard-shortcuts.ts +27 -24
  242. package/src/lib/modules/client/terminal/xterm-wrapper.ts +70 -44
  243. package/src/lib/modules/server/apn/library-apns.ts +3 -2
  244. package/src/lib/modules/server/apn/notification-history.ts +2 -13
  245. package/src/lib/modules/server/apn/notification-sessions.ts +3 -13
  246. package/src/lib/modules/server/apn/pending-requests.ts +3 -8
  247. package/src/lib/modules/server/apn/types.ts +5 -4
  248. package/src/lib/modules/server/cli/index.ts +3 -2
  249. package/src/lib/modules/server/fcm/fcm-service.ts +8 -6
  250. package/src/lib/modules/server/sessions/jsonl-parser.ts +3 -3
  251. package/src/lib/modules/server/sessions/jsonl-reader.ts +60 -15
  252. package/src/lib/modules/server/sessions/types.ts +11 -22
  253. package/src/lib/modules/server/terminal/holder-client.ts +272 -248
  254. package/src/lib/modules/server/terminal/opencode-watcher.ts +555 -553
  255. package/src/lib/modules/server/terminal/pty-holder.cjs +37 -8
  256. package/src/lib/modules/server/terminal/pty-manager.ts +141 -111
  257. package/src/lib/modules/server/terminal/session-watcher.ts +6 -4
  258. package/src/lib/modules/server/terminal/terminal-store.ts +131 -128
  259. package/src/lib/modules/server/utils/error.ts +9 -0
  260. package/src/lib/modules/server/ws/events-handler.ts +12 -6
  261. package/src/lib/modules/server/ws/keepalive.ts +86 -69
  262. package/src/lib/modules/server/ws/server.ts +43 -37
  263. package/src/lib/modules/server/ws/session-handler.ts +52 -45
  264. package/src/lib/modules/server/ws/terminal-handler.ts +29 -17
  265. package/src/lib/modules/server/ws/ticket-store.ts +29 -26
  266. package/src/lib/types/config.ts +1 -6
  267. package/src/routes/+layout.svelte +66 -31
  268. package/src/routes/+page.svelte +8 -15
  269. package/src/routes/api/debug/+server.ts +3 -1
  270. package/src/routes/api/device-token/+server.ts +60 -60
  271. package/src/routes/api/health/+server.ts +69 -73
  272. package/src/routes/api/notify/+server.ts +115 -68
  273. package/src/routes/api/qr-config/+server.ts +30 -32
  274. package/src/routes/api/response/+server.ts +9 -4
  275. package/src/routes/api/sessions/+server.ts +3 -1
  276. package/src/routes/api/terminals/+server.ts +14 -15
  277. package/src/routes/api/terminals/[id]/+server.ts +13 -7
  278. package/src/routes/api/terminals/[id]/paste-image/+server.ts +54 -52
  279. package/src/routes/api/terminals/[id]/resize/+server.ts +6 -3
  280. package/src/routes/api/webhook/+server.ts +8 -10
  281. package/src/routes/api/ws-status/+server.ts +7 -5
  282. package/src/routes/api/ws-ticket/+server.ts +42 -41
  283. package/src/routes/config/+page.svelte +129 -76
  284. package/src/routes/project/+page.svelte +7 -28
  285. package/src/routes/session/[id]/+page.svelte +70 -52
  286. package/src/routes/terminals/+page.svelte +45 -43
  287. package/src/routes/terminals/[id]/+page.svelte +198 -91
  288. package/build/client/_app/immutable/assets/0.CM9Hl6d-.css.br +0 -0
  289. package/build/client/_app/immutable/assets/3.C0uFg0IS.css +0 -1
  290. package/build/client/_app/immutable/assets/3.C0uFg0IS.css.br +0 -0
  291. package/build/client/_app/immutable/assets/3.C0uFg0IS.css.gz +0 -0
  292. package/build/client/_app/immutable/assets/6.AraZrY8I.css +0 -1
  293. package/build/client/_app/immutable/assets/6.AraZrY8I.css.br +0 -0
  294. package/build/client/_app/immutable/assets/6.AraZrY8I.css.gz +0 -0
  295. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css.br +0 -0
  296. package/build/client/_app/immutable/assets/7.BCJ1IuMx.css.gz +0 -0
  297. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css +0 -1
  298. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css.br +0 -0
  299. package/build/client/_app/immutable/assets/markdown.B0b5w2tq.css.gz +0 -0
  300. package/build/client/_app/immutable/chunks/BNJphC1q.js +0 -56
  301. package/build/client/_app/immutable/chunks/BNJphC1q.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/BNJphC1q.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/Bvk7mfPM.js +0 -1
  304. package/build/client/_app/immutable/chunks/Bvk7mfPM.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/Bvk7mfPM.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/CAokzuPQ.js +0 -1
  307. package/build/client/_app/immutable/chunks/CAokzuPQ.js.br +0 -0
  308. package/build/client/_app/immutable/chunks/CAokzuPQ.js.gz +0 -0
  309. package/build/client/_app/immutable/chunks/CgCpWzEA.js +0 -1
  310. package/build/client/_app/immutable/chunks/CgCpWzEA.js.br +0 -0
  311. package/build/client/_app/immutable/chunks/CgCpWzEA.js.gz +0 -0
  312. package/build/client/_app/immutable/chunks/Cjwk_cGO.js.br +0 -0
  313. package/build/client/_app/immutable/chunks/Cjwk_cGO.js.gz +0 -0
  314. package/build/client/_app/immutable/chunks/CtQ8EED1.js +0 -11
  315. package/build/client/_app/immutable/chunks/CtQ8EED1.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/CtQ8EED1.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/DERQCisl.js +0 -1
  318. package/build/client/_app/immutable/chunks/DERQCisl.js.br +0 -0
  319. package/build/client/_app/immutable/chunks/DERQCisl.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/DKrg8TQs.js +0 -1
  321. package/build/client/_app/immutable/chunks/DKrg8TQs.js.br +0 -0
  322. package/build/client/_app/immutable/chunks/DKrg8TQs.js.gz +0 -0
  323. package/build/client/_app/immutable/chunks/Dkkpz_4D.js +0 -126
  324. package/build/client/_app/immutable/chunks/Dkkpz_4D.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/Dkkpz_4D.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/DoczjQhA.js +0 -1
  327. package/build/client/_app/immutable/chunks/DoczjQhA.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/DoczjQhA.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/RpcNruLP.js +0 -2
  330. package/build/client/_app/immutable/chunks/RpcNruLP.js.br +0 -0
  331. package/build/client/_app/immutable/chunks/RpcNruLP.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/a-St0Zwo.js +0 -1
  333. package/build/client/_app/immutable/chunks/a-St0Zwo.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/a-St0Zwo.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/bo70OQUZ.js +0 -1
  336. package/build/client/_app/immutable/chunks/bo70OQUZ.js.br +0 -0
  337. package/build/client/_app/immutable/chunks/bo70OQUZ.js.gz +0 -0
  338. package/build/client/_app/immutable/entry/app.QvGgdvTI.js +0 -2
  339. package/build/client/_app/immutable/entry/app.QvGgdvTI.js.br +0 -0
  340. package/build/client/_app/immutable/entry/app.QvGgdvTI.js.gz +0 -0
  341. package/build/client/_app/immutable/entry/start.BntDNRMC.js +0 -1
  342. package/build/client/_app/immutable/entry/start.BntDNRMC.js.br +0 -0
  343. package/build/client/_app/immutable/entry/start.BntDNRMC.js.gz +0 -0
  344. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js +0 -1
  345. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js.br +0 -0
  346. package/build/client/_app/immutable/nodes/0.CzkdvJ7j.js.gz +0 -0
  347. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js +0 -1
  348. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js.br +0 -0
  349. package/build/client/_app/immutable/nodes/1.MG1QhfrI.js.gz +0 -0
  350. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js +0 -1
  351. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js.br +0 -0
  352. package/build/client/_app/immutable/nodes/2.B4MlOSh6.js.gz +0 -0
  353. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js +0 -3
  354. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js.br +0 -0
  355. package/build/client/_app/immutable/nodes/3.DIwYkjDn.js.gz +0 -0
  356. package/build/client/_app/immutable/nodes/4.D-cIe70D.js +0 -1
  357. package/build/client/_app/immutable/nodes/4.D-cIe70D.js.br +0 -0
  358. package/build/client/_app/immutable/nodes/4.D-cIe70D.js.gz +0 -0
  359. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js +0 -1
  360. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js.br +0 -0
  361. package/build/client/_app/immutable/nodes/5.D7zPRe3L.js.gz +0 -0
  362. package/build/client/_app/immutable/nodes/6.BB7QE48r.js +0 -2
  363. package/build/client/_app/immutable/nodes/6.BB7QE48r.js.br +0 -0
  364. package/build/client/_app/immutable/nodes/6.BB7QE48r.js.gz +0 -0
  365. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js +0 -2
  366. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js.br +0 -0
  367. package/build/client/_app/immutable/nodes/7.D8mqsrZG.js.gz +0 -0
  368. package/build/client/manifest.webmanifest +0 -1
  369. package/build/client/registerSW.js +0 -1
  370. package/build/client/registerSW.js.br +0 -0
  371. package/build/client/registerSW.js.gz +0 -0
  372. package/build/client/sw.js +0 -222
  373. package/build/client/sw.js.br +0 -0
  374. package/build/client/sw.js.gz +0 -0
  375. package/build/client/workbox-5119daf5.js +0 -3395
  376. package/build/client/workbox-5119daf5.js.br +0 -0
  377. package/build/client/workbox-5119daf5.js.gz +0 -0
  378. package/build/server/chunks/0-q2IUp76Y.js +0 -9
  379. package/build/server/chunks/1-CU50G5wZ.js +0 -9
  380. package/build/server/chunks/2-D01t9s8T.js +0 -9
  381. package/build/server/chunks/2-D01t9s8T.js.map +0 -1
  382. package/build/server/chunks/3-5PUQ04wC.js +0 -9
  383. package/build/server/chunks/3-5PUQ04wC.js.map +0 -1
  384. package/build/server/chunks/4-e7gywnSG.js +0 -9
  385. package/build/server/chunks/4-e7gywnSG.js.map +0 -1
  386. package/build/server/chunks/5-CA1SA6KZ.js +0 -9
  387. package/build/server/chunks/5-CA1SA6KZ.js.map +0 -1
  388. package/build/server/chunks/6-71H221sV.js +0 -9
  389. package/build/server/chunks/6-71H221sV.js.map +0 -1
  390. package/build/server/chunks/7-Bo-vmdyz.js +0 -9
  391. package/build/server/chunks/7-Bo-vmdyz.js.map +0 -1
  392. package/build/server/chunks/_layout.svelte-SFHOxs74.js +0 -132
  393. package/build/server/chunks/_layout.svelte-SFHOxs74.js.map +0 -1
  394. package/build/server/chunks/_page.svelte-B4w-2wD-.js +0 -120
  395. package/build/server/chunks/_page.svelte-B4w-2wD-.js.map +0 -1
  396. package/build/server/chunks/_page.svelte-B_qAXjkh.js +0 -213
  397. package/build/server/chunks/_page.svelte-B_qAXjkh.js.map +0 -1
  398. package/build/server/chunks/_page.svelte-CsF1_TRG.js +0 -50
  399. package/build/server/chunks/_page.svelte-CsF1_TRG.js.map +0 -1
  400. package/build/server/chunks/_page.svelte-DJC6U-P0.js +0 -68
  401. package/build/server/chunks/_page.svelte-DJC6U-P0.js.map +0 -1
  402. package/build/server/chunks/_page.svelte-DQ6HBtsz.js +0 -407
  403. package/build/server/chunks/_page.svelte-DQ6HBtsz.js.map +0 -1
  404. package/build/server/chunks/_page.svelte-LbhhjP21.js +0 -148
  405. package/build/server/chunks/_page.svelte-LbhhjP21.js.map +0 -1
  406. package/build/server/chunks/_server.ts-BL2FGb5Z.js.map +0 -1
  407. package/build/server/chunks/_server.ts-BgdjBZco.js.map +0 -1
  408. package/build/server/chunks/_server.ts-BihKSdj_.js.map +0 -1
  409. package/build/server/chunks/_server.ts-BjOJsoy4.js.map +0 -1
  410. package/build/server/chunks/_server.ts-C29xzfaw.js.map +0 -1
  411. package/build/server/chunks/_server.ts-CPa6DgIt.js.map +0 -1
  412. package/build/server/chunks/_server.ts-CbDRDIoP.js.map +0 -1
  413. package/build/server/chunks/_server.ts-Cl1OEWL4.js +0 -54
  414. package/build/server/chunks/_server.ts-Cl1OEWL4.js.map +0 -1
  415. package/build/server/chunks/_server.ts-ColfDHW8.js.map +0 -1
  416. package/build/server/chunks/_server.ts-Cv_OrRuL.js.map +0 -1
  417. package/build/server/chunks/_server.ts-DRVbgm6k.js.map +0 -1
  418. package/build/server/chunks/_server.ts-DfajWaqh.js.map +0 -1
  419. package/build/server/chunks/client-CxCatAKr.js +0 -255
  420. package/build/server/chunks/client-CxCatAKr.js.map +0 -1
  421. package/build/server/chunks/error.svelte-BqdwMWdK.js +0 -26
  422. package/build/server/chunks/error.svelte-BqdwMWdK.js.map +0 -1
  423. package/build/server/chunks/exports-CJ0Q5XmL.js.map +0 -1
  424. package/build/server/chunks/index2-DAxIoAO-.js +0 -36
  425. package/build/server/chunks/index2-DAxIoAO-.js.map +0 -1
  426. package/build/server/chunks/jsonl-parser-dmZU_Hyu.js +0 -137
  427. package/build/server/chunks/jsonl-parser-dmZU_Hyu.js.map +0 -1
  428. package/build/server/chunks/library-apns-BHxLmuIx.js.map +0 -1
  429. package/build/server/chunks/markdown-Bxrl3cCF.js +0 -1241
  430. package/build/server/chunks/markdown-Bxrl3cCF.js.map +0 -1
  431. package/build/server/chunks/pty-manager-C0FhBiVq.js.map +0 -1
  432. package/build/server/chunks/stores-D0HorpgL.js +0 -36
  433. package/build/server/chunks/stores-D0HorpgL.js.map +0 -1
@@ -1,11 +1,144 @@
1
- import { v as validateAuth } from './auth-CEgFis71.js';
1
+ import { v as validateAuth } from './auth-DeCdZ83n.js';
2
2
  import * as crypto from 'crypto';
3
3
  import * as fs from 'fs';
4
4
  import * as path from 'path';
5
- import { p as parseJsonlText } from './jsonl-parser-dmZU_Hyu.js';
6
5
  import Database from 'better-sqlite3';
7
- import { j as json } from './shared-server-BDY8jh20.js';
6
+ import { j as json } from './shared-server-sSGG17Df.js';
8
7
 
8
+ const SKIP_EVENT_TYPES = /* @__PURE__ */ new Set([
9
+ "config",
10
+ "heartbeat",
11
+ "metadata",
12
+ "result",
13
+ "summary",
14
+ "system"
15
+ ]);
16
+ function parseAssistantBlock(block) {
17
+ if (!block || typeof block !== "object") {
18
+ return null;
19
+ }
20
+ switch (block.type) {
21
+ case "text":
22
+ return { content: block.text || "", type: "text" };
23
+ case "thinking":
24
+ return { content: block.thinking || "", type: "thinking" };
25
+ case "tool_use":
26
+ return {
27
+ id: block.id || "",
28
+ input: block.input || {},
29
+ toolName: block.name || "Unknown",
30
+ type: "tool_use"
31
+ };
32
+ default:
33
+ return null;
34
+ }
35
+ }
36
+ function parseJsonlLine(line, assistantTurns, messageIndex) {
37
+ const messages = [];
38
+ const assistantCompleted = [];
39
+ const entry = JSON.parse(line);
40
+ const entryType = entry.type;
41
+ if (SKIP_EVENT_TYPES.has(entryType)) {
42
+ return { assistantCompleted, messages };
43
+ }
44
+ if (entryType === "user") {
45
+ const msg = entry.message;
46
+ if (!msg?.content) {
47
+ return { assistantCompleted, messages };
48
+ }
49
+ const parts = [];
50
+ const content = Array.isArray(msg.content) ? msg.content : [msg.content];
51
+ for (const block of content) {
52
+ if (typeof block === "string") {
53
+ parts.push({ content: block, type: "text" });
54
+ } else if (block.type === "text") {
55
+ parts.push({ content: block.text || "", type: "text" });
56
+ } else if (block.type === "tool_result") {
57
+ let output = "";
58
+ if (typeof block.content === "string") {
59
+ output = block.content;
60
+ } else if (Array.isArray(block.content)) {
61
+ output = block.content.filter((c) => c.type === "text").map((c) => c.text).join("\n");
62
+ }
63
+ if (entry.toolUseResult?.content) {
64
+ const trc = entry.toolUseResult.content;
65
+ if (typeof trc === "string") {
66
+ output = trc;
67
+ } else if (Array.isArray(trc)) {
68
+ output = trc.filter((c) => c.type === "text").map((c) => c.text).join("\n");
69
+ }
70
+ }
71
+ parts.push({
72
+ isError: block.is_error || false,
73
+ output: output.slice(0, 2e3),
74
+ toolUseId: block.tool_use_id || "",
75
+ type: "tool_result"
76
+ });
77
+ }
78
+ }
79
+ if (parts.length > 0 && parts.some((p) => p.type === "text")) {
80
+ messages.push({
81
+ id: entry.uuid || `user-${messageIndex}`,
82
+ parts: parts.filter((p) => p.type === "text"),
83
+ role: "user",
84
+ timestamp: entry.timestamp || ""
85
+ });
86
+ }
87
+ const toolResults = parts.filter((p) => p.type === "tool_result");
88
+ if (toolResults.length > 0) {
89
+ messages.push({
90
+ id: `tool-result-${entry.uuid || messageIndex}`,
91
+ parts: toolResults,
92
+ role: "system",
93
+ timestamp: entry.timestamp || ""
94
+ });
95
+ }
96
+ } else if (entryType === "assistant") {
97
+ const msg = entry.message;
98
+ if (!msg?.content) {
99
+ return { assistantCompleted, messages };
100
+ }
101
+ const content = Array.isArray(msg.content) ? msg.content : [msg.content];
102
+ const msgId = msg.id || entry.uuid;
103
+ for (const block of content) {
104
+ const part = parseAssistantBlock(block);
105
+ if (!part) {
106
+ continue;
107
+ }
108
+ if (!assistantTurns.has(msgId)) {
109
+ assistantTurns.set(msgId, { parts: [], timestamp: entry.timestamp || "" });
110
+ }
111
+ assistantTurns.get(msgId).parts.push(part);
112
+ }
113
+ if (msg.stop_reason) {
114
+ const turn = assistantTurns.get(msgId);
115
+ if (turn && turn.parts.length > 0) {
116
+ assistantCompleted.push({
117
+ id: msgId,
118
+ parts: turn.parts,
119
+ role: "assistant",
120
+ timestamp: turn.timestamp
121
+ });
122
+ assistantTurns.delete(msgId);
123
+ }
124
+ }
125
+ }
126
+ return { assistantCompleted, messages };
127
+ }
128
+ function parseJsonlText(text, assistantTurns, startIndex) {
129
+ const lines = text.split("\n").filter((line) => line.trim());
130
+ const allMessages = [];
131
+ let idx = startIndex;
132
+ for (const line of lines) {
133
+ try {
134
+ const { assistantCompleted, messages } = parseJsonlLine(line, assistantTurns, idx);
135
+ allMessages.push(...messages, ...assistantCompleted);
136
+ idx++;
137
+ } catch {
138
+ }
139
+ }
140
+ return allMessages;
141
+ }
9
142
  function shortHash$1(input) {
10
143
  return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
11
144
  }
@@ -56,13 +189,12 @@ function listProjectsWithSessions() {
56
189
  const projects = [];
57
190
  for (const dir of projectDirs) {
58
191
  const projectDir = path.join(CLAUDE_PROJECTS_DIR, dir);
59
- const decodedPath = dir.startsWith("-") ? dir.replace(/-/g, "/") : `/${dir.replace(/-/g, "/")}`;
60
192
  const sessions = listSessionsForProject(projectDir);
61
193
  if (sessions.length === 0) {
62
194
  continue;
63
195
  }
64
196
  sessions.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());
65
- const realPath = sessions.find((s) => s.projectPath && !s.projectPath.includes(".claude/projects"))?.projectPath || decodedPath;
197
+ const realPath = sessions.find((s) => s.projectPath && !s.projectPath.includes(".claude/projects"))?.projectPath || readCwdFromProjectDir(projectDir, sessions) || (dir.startsWith("-") ? dir.replace(/-/g, "/") : `/${dir.replace(/-/g, "/")}`);
66
198
  const pathSegments = realPath.split("/").filter(Boolean);
67
199
  const projectName = pathSegments.slice(-2).join("/");
68
200
  projects.push({
@@ -79,7 +211,7 @@ function listProjectsWithSessions() {
79
211
  );
80
212
  }
81
213
  function cleanTitle(prompt) {
82
- let cleaned = prompt.replace(/<command-message>.*?<\/command-message>/gs, "").replace(/<command-name>.*?<\/command-name>/gs, "").replace(/<command-args>.*?<\/command-args>/gs, "").replace(/<local-command-caveat>.*?<\/local-command-caveat>/gs, "").replace(/<local-command-stdout>.*?<\/local-command-stdout>/gs, "").replace(/<system-reminder>.*?<\/system-reminder>/gs, "");
214
+ let cleaned = prompt.replace(/<command-message>.*?<\/command-message>/gs, "").replace(/<command-name>.*?<\/command-name>/gs, "").replace(/<command-args>.*?<\/command-args>/gs, "").replace(/<local-command-caveat>.*?<\/local-command-caveat>/gs, "").replace(/<local-command-stdout>.*?<\/local-command-stdout>/gs, "").replace(/<system-reminder>.*?<\/system-reminder>/gs, "").replace(/<task-notification>.*?<\/task-notification>/gs, "");
83
215
  let prev = "";
84
216
  while (prev !== cleaned) {
85
217
  prev = cleaned;
@@ -189,7 +321,7 @@ function listSessionsForProject(projectDir) {
189
321
  if (!text) {
190
322
  continue;
191
323
  }
192
- if (text.startsWith("<local-command") || text.startsWith("<command-name>") || text.startsWith("<local-command-stdout>") || text.startsWith("<system-reminder>") || text.startsWith("<task-notification>")) {
324
+ if (text.startsWith("<local-command") || text.startsWith("<command-name>") || text.startsWith("<command-message>") || text.startsWith("<command-args>") || text.startsWith("<local-command-stdout>") || text.startsWith("<local-command-caveat>") || text.startsWith("<system-reminder>") || text.startsWith("<task-notification>")) {
193
325
  continue;
194
326
  }
195
327
  firstPrompt = text;
@@ -220,6 +352,31 @@ function listSessionsForProject(projectDir) {
220
352
  return [];
221
353
  }
222
354
  }
355
+ function readCwdFromProjectDir(projectDir, sessions) {
356
+ for (const session of sessions) {
357
+ try {
358
+ const jsonlPath = path.join(projectDir, `${session.id}.jsonl`);
359
+ if (!fs.existsSync(jsonlPath)) {
360
+ continue;
361
+ }
362
+ const content = fs.readFileSync(jsonlPath, "utf-8");
363
+ for (const line of content.split("\n")) {
364
+ if (!line.trim()) {
365
+ continue;
366
+ }
367
+ try {
368
+ const entry = JSON.parse(line);
369
+ if (typeof entry.cwd === "string" && entry.cwd) {
370
+ return entry.cwd;
371
+ }
372
+ } catch {
373
+ }
374
+ }
375
+ } catch {
376
+ }
377
+ }
378
+ return "";
379
+ }
223
380
  function shortHash(input) {
224
381
  return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
225
382
  }
@@ -491,4 +648,4 @@ const GET = ({ request, url }) => {
491
648
  };
492
649
 
493
650
  export { GET };
494
- //# sourceMappingURL=_server.ts-Cv_OrRuL.js.map
651
+ //# sourceMappingURL=_server.ts-DpEVfp8W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DpEVfp8W.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport Database from \"better-sqlite3\";\nimport { json } from \"@sveltejs/kit\";\nconst SKIP_EVENT_TYPES = /* @__PURE__ */ new Set([\n \"config\",\n \"heartbeat\",\n \"metadata\",\n \"result\",\n \"summary\",\n \"system\"\n]);\nfunction parseAssistantBlock(block) {\n if (!block || typeof block !== \"object\") {\n return null;\n }\n switch (block.type) {\n case \"text\":\n return { content: block.text || \"\", type: \"text\" };\n case \"thinking\":\n return { content: block.thinking || \"\", type: \"thinking\" };\n case \"tool_use\":\n return {\n id: block.id || \"\",\n input: block.input || {},\n toolName: block.name || \"Unknown\",\n type: \"tool_use\"\n };\n default:\n return null;\n }\n}\nfunction parseJsonlLine(line, assistantTurns, messageIndex) {\n const messages = [];\n const assistantCompleted = [];\n const entry = JSON.parse(line);\n const entryType = entry.type;\n if (SKIP_EVENT_TYPES.has(entryType)) {\n return { assistantCompleted, messages };\n }\n if (entryType === \"user\") {\n const msg = entry.message;\n if (!msg?.content) {\n return { assistantCompleted, messages };\n }\n const parts = [];\n const content = Array.isArray(msg.content) ? msg.content : [msg.content];\n for (const block of content) {\n if (typeof block === \"string\") {\n parts.push({ content: block, type: \"text\" });\n } else if (block.type === \"text\") {\n parts.push({ content: block.text || \"\", type: \"text\" });\n } else if (block.type === \"tool_result\") {\n let output = \"\";\n if (typeof block.content === \"string\") {\n output = block.content;\n } else if (Array.isArray(block.content)) {\n output = block.content.filter((c) => c.type === \"text\").map((c) => c.text).join(\"\\n\");\n }\n if (entry.toolUseResult?.content) {\n const trc = entry.toolUseResult.content;\n if (typeof trc === \"string\") {\n output = trc;\n } else if (Array.isArray(trc)) {\n output = trc.filter((c) => c.type === \"text\").map((c) => c.text).join(\"\\n\");\n }\n }\n parts.push({\n isError: block.is_error || false,\n output: output.slice(0, 2e3),\n toolUseId: block.tool_use_id || \"\",\n type: \"tool_result\"\n });\n }\n }\n if (parts.length > 0 && parts.some((p) => p.type === \"text\")) {\n messages.push({\n id: entry.uuid || `user-${messageIndex}`,\n parts: parts.filter((p) => p.type === \"text\"),\n role: \"user\",\n timestamp: entry.timestamp || \"\"\n });\n }\n const toolResults = parts.filter((p) => p.type === \"tool_result\");\n if (toolResults.length > 0) {\n messages.push({\n id: `tool-result-${entry.uuid || messageIndex}`,\n parts: toolResults,\n role: \"system\",\n timestamp: entry.timestamp || \"\"\n });\n }\n } else if (entryType === \"assistant\") {\n const msg = entry.message;\n if (!msg?.content) {\n return { assistantCompleted, messages };\n }\n const content = Array.isArray(msg.content) ? msg.content : [msg.content];\n const msgId = msg.id || entry.uuid;\n for (const block of content) {\n const part = parseAssistantBlock(block);\n if (!part) {\n continue;\n }\n if (!assistantTurns.has(msgId)) {\n assistantTurns.set(msgId, { parts: [], timestamp: entry.timestamp || \"\" });\n }\n assistantTurns.get(msgId).parts.push(part);\n }\n if (msg.stop_reason) {\n const turn = assistantTurns.get(msgId);\n if (turn && turn.parts.length > 0) {\n assistantCompleted.push({\n id: msgId,\n parts: turn.parts,\n role: \"assistant\",\n timestamp: turn.timestamp\n });\n assistantTurns.delete(msgId);\n }\n }\n }\n return { assistantCompleted, messages };\n}\nfunction parseJsonlText(text, assistantTurns, startIndex) {\n const lines = text.split(\"\\n\").filter((line) => line.trim());\n const allMessages = [];\n let idx = startIndex;\n for (const line of lines) {\n try {\n const { assistantCompleted, messages } = parseJsonlLine(line, assistantTurns, idx);\n allMessages.push(...messages, ...assistantCompleted);\n idx++;\n } catch {\n }\n }\n return allMessages;\n}\nfunction shortHash$1(input) {\n return crypto.createHash(\"sha256\").update(input).digest(\"hex\").slice(0, 8);\n}\nconst CLAUDE_PROJECTS_DIR = path.join(process.env.HOME || \"\", \".claude\", \"projects\");\nfunction getSessionConversation(sessionId, offset = 0, limit = 100, projectId) {\n const projectDir = projectId ? path.join(CLAUDE_PROJECTS_DIR, projectId) : getProjectDir();\n const jsonlPath = path.join(projectDir, `${sessionId}.jsonl`);\n if (!fs.existsSync(jsonlPath)) {\n return [];\n }\n try {\n const raw = fs.readFileSync(jsonlPath, \"utf-8\");\n const assistantTurns = /* @__PURE__ */ new Map();\n const messages = parseJsonlText(raw, assistantTurns, 0);\n for (const [msgId, turn] of assistantTurns) {\n if (turn.parts.length > 0) {\n messages.push({\n id: msgId,\n parts: turn.parts,\n role: \"assistant\",\n timestamp: turn.timestamp\n });\n }\n }\n return messages.slice(offset, offset + limit);\n } catch (error) {\n console.error(\"[sessions] Failed to parse session JSONL:\", error);\n return [];\n }\n}\nfunction listProjectsWithSessions() {\n if (!fs.existsSync(CLAUDE_PROJECTS_DIR)) {\n return [];\n }\n let projectDirs;\n try {\n projectDirs = fs.readdirSync(CLAUDE_PROJECTS_DIR).filter((d) => {\n const fullPath = path.join(CLAUDE_PROJECTS_DIR, d);\n try {\n return fs.statSync(fullPath).isDirectory();\n } catch {\n return false;\n }\n });\n } catch {\n return [];\n }\n const projects = [];\n for (const dir of projectDirs) {\n const projectDir = path.join(CLAUDE_PROJECTS_DIR, dir);\n const sessions = listSessionsForProject(projectDir);\n if (sessions.length === 0) {\n continue;\n }\n sessions.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());\n const realPath = sessions.find((s) => s.projectPath && !s.projectPath.includes(\".claude/projects\"))?.projectPath || readCwdFromProjectDir(projectDir, sessions) || (dir.startsWith(\"-\") ? dir.replace(/-/g, \"/\") : `/${dir.replace(/-/g, \"/\")}`);\n const pathSegments = realPath.split(\"/\").filter(Boolean);\n const projectName = pathSegments.slice(-2).join(\"/\");\n projects.push({\n fullPath: realPath,\n id: shortHash$1(realPath),\n lastModified: sessions[0]?.modified || \"\",\n name: projectName,\n sessionCount: sessions.length,\n sessions\n });\n }\n return projects.sort(\n (a, b) => new Date(b.lastModified).getTime() - new Date(a.lastModified).getTime()\n );\n}\nfunction cleanTitle(prompt) {\n let cleaned = prompt.replace(/<command-message>.*?<\\/command-message>/gs, \"\").replace(/<command-name>.*?<\\/command-name>/gs, \"\").replace(/<command-args>.*?<\\/command-args>/gs, \"\").replace(/<local-command-caveat>.*?<\\/local-command-caveat>/gs, \"\").replace(/<local-command-stdout>.*?<\\/local-command-stdout>/gs, \"\").replace(/<system-reminder>.*?<\\/system-reminder>/gs, \"\").replace(/<task-notification>.*?<\\/task-notification>/gs, \"\");\n let prev = \"\";\n while (prev !== cleaned) {\n prev = cleaned;\n cleaned = cleaned.replace(/<[^>]*>/g, \"\").replace(/</g, \"\");\n }\n cleaned = cleaned.trim();\n if (!cleaned) {\n return \"Untitled Session\";\n }\n const firstLine = cleaned.split(\"\\n\")[0].trim();\n if (!firstLine) {\n return \"Untitled Session\";\n }\n if (firstLine.length > 80) {\n return `${firstLine.slice(0, 77)}...`;\n }\n return firstLine;\n}\nfunction getProjectDir() {\n const projectPath = process.cwd();\n const encoded = projectPath.replace(/\\//g, \"-\");\n return path.join(CLAUDE_PROJECTS_DIR, encoded);\n}\nfunction listSessionsForProject(projectDir) {\n const indexPath = path.join(projectDir, \"sessions-index.json\");\n if (!fs.existsSync(indexPath)) {\n return [];\n }\n try {\n const raw = fs.readFileSync(indexPath, \"utf-8\");\n const index = JSON.parse(raw);\n const indexedIds = /* @__PURE__ */ new Set();\n const sessions = index.entries.filter((e) => !e.isSidechain).filter((e) => {\n const jsonlFile = path.join(projectDir, `${e.sessionId}.jsonl`);\n return fs.existsSync(jsonlFile);\n }).map((entry) => {\n indexedIds.add(entry.sessionId);\n return {\n created: entry.created || \"\",\n gitBranch: entry.gitBranch || \"\",\n id: entry.sessionId,\n messageCount: entry.messageCount || 0,\n modified: entry.modified || \"\",\n projectPath: entry.projectPath || \"\",\n source: \"claude-code\",\n summary: entry.summary || \"\",\n title: cleanTitle(entry.firstPrompt || entry.summary || \"Untitled Session\")\n };\n });\n try {\n const files = fs.readdirSync(projectDir);\n for (const file of files) {\n if (!file.endsWith(\".jsonl\")) {\n continue;\n }\n const sessionId = file.replace(\".jsonl\", \"\");\n if (indexedIds.has(sessionId)) {\n continue;\n }\n const filePath = path.join(projectDir, file);\n const stat = fs.statSync(filePath);\n let firstPrompt = \"Active Session\";\n let messageCount = 0;\n try {\n const content = fs.readFileSync(filePath, \"utf-8\");\n const lines = content.split(\"\\n\");\n for (const line of lines) {\n if (!line.trim()) {\n continue;\n }\n try {\n const entry = JSON.parse(line);\n if (entry.type === \"user\" || entry.type === \"assistant\") {\n messageCount++;\n }\n } catch {\n }\n }\n for (const line of lines) {\n if (!line.trim()) {\n continue;\n }\n try {\n const entry = JSON.parse(line);\n if (entry.type !== \"user\") {\n continue;\n }\n const msg = entry.message;\n if (!msg?.content) {\n continue;\n }\n let text = \"\";\n if (typeof msg.content === \"string\") {\n text = msg.content.trim();\n } else if (Array.isArray(msg.content)) {\n for (const b of msg.content) {\n if (typeof b === \"string\" && b.trim()) {\n text = b.trim();\n break;\n }\n if (typeof b === \"object\" && b !== null && b.type === \"text\" && b.text?.trim()) {\n text = b.text.trim();\n break;\n }\n }\n }\n if (!text) {\n continue;\n }\n if (text.startsWith(\"<local-command\") || text.startsWith(\"<command-name>\") || text.startsWith(\"<command-message>\") || text.startsWith(\"<command-args>\") || text.startsWith(\"<local-command-stdout>\") || text.startsWith(\"<local-command-caveat>\") || text.startsWith(\"<system-reminder>\") || text.startsWith(\"<task-notification>\")) {\n continue;\n }\n firstPrompt = text;\n break;\n } catch {\n continue;\n }\n }\n } catch {\n }\n sessions.push({\n created: stat.birthtime.toISOString(),\n gitBranch: \"\",\n id: sessionId,\n messageCount,\n modified: stat.mtime.toISOString(),\n projectPath: \"\",\n source: \"claude-code\",\n summary: \"\",\n title: cleanTitle(firstPrompt)\n });\n }\n } catch {\n }\n return sessions.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());\n } catch (error) {\n console.error(\"[sessions] Failed to read sessions index:\", error);\n return [];\n }\n}\nfunction readCwdFromProjectDir(projectDir, sessions) {\n for (const session of sessions) {\n try {\n const jsonlPath = path.join(projectDir, `${session.id}.jsonl`);\n if (!fs.existsSync(jsonlPath)) {\n continue;\n }\n const content = fs.readFileSync(jsonlPath, \"utf-8\");\n for (const line of content.split(\"\\n\")) {\n if (!line.trim()) {\n continue;\n }\n try {\n const entry = JSON.parse(line);\n if (typeof entry.cwd === \"string\" && entry.cwd) {\n return entry.cwd;\n }\n } catch {\n }\n }\n } catch {\n }\n }\n return \"\";\n}\nfunction shortHash(input) {\n return crypto.createHash(\"sha256\").update(input).digest(\"hex\").slice(0, 8);\n}\nconst OPENCODE_DB_PATH = path.join(\n process.env.HOME || \"\",\n \".local\",\n \"share\",\n \"opencode\",\n \"opencode.db\"\n);\nfunction getOpenCodeConversation(sessionId, offset = 0, limit = 100) {\n const db = getDb();\n if (!db) {\n return [];\n }\n try {\n const messages = db.prepare(\n `\n SELECT id, session_id, time_created, data\n FROM message\n WHERE session_id = ?\n ORDER BY time_created ASC\n LIMIT ? OFFSET ?\n `\n ).all(sessionId, limit, offset);\n const messageIds = messages.map((m) => m.id);\n if (messageIds.length === 0) {\n return [];\n }\n const placeholders = messageIds.map(() => \"?\").join(\",\");\n const parts = db.prepare(\n `\n SELECT id, message_id, time_created, data\n FROM part\n WHERE message_id IN (${placeholders})\n ORDER BY time_created ASC\n `\n ).all(...messageIds);\n const partsByMessage = /* @__PURE__ */ new Map();\n for (const part of parts) {\n if (!partsByMessage.has(part.message_id)) {\n partsByMessage.set(part.message_id, []);\n }\n const bucket = partsByMessage.get(part.message_id);\n if (bucket) {\n bucket.push(part);\n }\n }\n const result = [];\n for (const msg of messages) {\n let msgData = {};\n try {\n msgData = JSON.parse(msg.data);\n } catch {\n }\n const role = msgData.role === \"user\" ? \"user\" : \"assistant\";\n const msgParts = partsByMessage.get(msg.id) || [];\n const convertedParts = [];\n for (const part of msgParts) {\n let partData = {};\n try {\n partData = JSON.parse(part.data);\n } catch {\n continue;\n }\n const converted = convertOpenCodePart(partData);\n if (converted) {\n convertedParts.push(converted);\n }\n }\n if (convertedParts.length > 0) {\n result.push({\n id: msg.id,\n parts: convertedParts,\n role,\n timestamp: new Date(msg.time_created).toISOString()\n });\n }\n }\n return result;\n } catch (error) {\n console.error(\"[opencode] Failed to read conversation:\", error);\n return [];\n } finally {\n db.close();\n }\n}\nfunction listOpenCodeProjects() {\n const db = getDb();\n if (!db) {\n return [];\n }\n try {\n const sessions = db.prepare(\n `\n SELECT id, directory, title, slug, time_created, time_updated, parent_id\n FROM session\n WHERE time_archived IS NULL OR time_archived = 0\n ORDER BY time_updated DESC\n `\n ).all();\n const msgCounts = db.prepare(`SELECT session_id, COUNT(*) as count FROM message GROUP BY session_id`).all();\n const msgCountMap = new Map(msgCounts.map((r) => [r.session_id, r.count]));\n const projectMap = /* @__PURE__ */ new Map();\n for (const row of sessions) {\n const dir = row.directory || \"unknown\";\n if (!projectMap.has(dir)) {\n projectMap.set(dir, []);\n }\n const sessionInfo = {\n created: new Date(row.time_created).toISOString(),\n gitBranch: \"\",\n id: row.id,\n messageCount: msgCountMap.get(row.id) || 0,\n modified: new Date(row.time_updated).toISOString(),\n projectPath: dir,\n source: \"opencode\",\n summary: \"\",\n title: row.title || row.slug || \"Untitled Session\"\n };\n const bucket = projectMap.get(dir);\n if (bucket) {\n bucket.push(sessionInfo);\n }\n }\n const projects = [];\n for (const [dir, dirSessions] of projectMap) {\n const pathSegments = dir.split(\"/\").filter(Boolean);\n const projectName = pathSegments.slice(-2).join(\"/\");\n dirSessions.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());\n projects.push({\n fullPath: dir,\n id: shortHash(dir),\n lastModified: dirSessions[0]?.modified || \"\",\n name: `${projectName} (OpenCode)`,\n sessionCount: dirSessions.length,\n sessions: dirSessions\n });\n }\n return projects.sort(\n (a, b) => new Date(b.lastModified).getTime() - new Date(a.lastModified).getTime()\n );\n } catch (error) {\n console.error(\"[opencode] Failed to read sessions:\", error);\n return [];\n } finally {\n db.close();\n }\n}\nfunction convertOpenCodePart(data) {\n const type = data.type;\n switch (type) {\n case \"reasoning\":\n return {\n content: data.text || \"\",\n type: \"thinking\"\n };\n case \"text\":\n return {\n content: data.text || \"\",\n type: \"text\"\n };\n case \"tool\": {\n const state = data.state;\n return {\n id: data.callID || data.id || \"\",\n input: state?.input || {},\n toolName: data.tool || \"Unknown\",\n type: \"tool_use\"\n };\n }\n default:\n return null;\n }\n}\nfunction getDb() {\n if (!fs.existsSync(OPENCODE_DB_PATH)) {\n return null;\n }\n try {\n return new Database(OPENCODE_DB_PATH, { readonly: true });\n } catch {\n return null;\n }\n}\nlet cachedProjects = null;\nlet cacheTimestamp = 0;\nconst CACHE_TTL_MS = 3e4;\nfunction getMergedProjects() {\n const now = Date.now();\n if (cachedProjects && now - cacheTimestamp < CACHE_TTL_MS) {\n return cachedProjects;\n }\n const claudeProjects = listProjectsWithSessions();\n const openCodeProjects = listOpenCodeProjects();\n const projectsByPath = /* @__PURE__ */ new Map();\n for (const p of claudeProjects) {\n projectsByPath.set(p.fullPath, { ...p });\n }\n for (const op of openCodeProjects) {\n const existing = projectsByPath.get(op.fullPath);\n if (existing) {\n existing.sessions.push(...op.sessions);\n existing.sessions.sort(\n (a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime()\n );\n existing.sessionCount = existing.sessions.length;\n existing.lastModified = existing.sessions[0]?.modified || existing.lastModified;\n existing.name = existing.name.replace(\" (OpenCode)\", \"\");\n } else {\n op.name = op.name.replace(\" (OpenCode)\", \"\");\n projectsByPath.set(op.fullPath, { ...op });\n }\n }\n cachedProjects = [...projectsByPath.values()].sort(\n (a, b) => new Date(b.lastModified).getTime() - new Date(a.lastModified).getTime()\n );\n cacheTimestamp = now;\n return cachedProjects;\n}\nconst GET = ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const sessionId = url.searchParams.get(\"id\");\n if (sessionId) {\n const projectId = url.searchParams.get(\"project\") || \"\";\n const offset2 = parseInt(url.searchParams.get(\"offset\") || \"0\");\n const limit2 = parseInt(url.searchParams.get(\"limit\") || \"100\");\n const allProjects2 = getMergedProjects();\n const matchedProject = projectId ? allProjects2.find((p) => p.id === projectId) : void 0;\n const claudeProjectDir = matchedProject ? matchedProject.fullPath.replace(/\\//g, \"-\") : void 0;\n let messages = getSessionConversation(sessionId, offset2, limit2, claudeProjectDir);\n if (messages.length === 0) {\n messages = getOpenCodeConversation(sessionId, offset2, limit2);\n }\n let sessionInfo = null;\n for (const project of allProjects2) {\n if (projectId && project.id !== projectId) {\n continue;\n }\n const found = project.sessions.find((s) => s.id === sessionId);\n if (found) {\n sessionInfo = found;\n break;\n }\n }\n if (!sessionInfo) {\n return json({ error: \"Session not found\" }, { status: 404 });\n }\n return json({\n messages,\n session: sessionInfo,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n const allProjects = getMergedProjects();\n const limit = parseInt(url.searchParams.get(\"limit\") || \"0\");\n const offset = parseInt(url.searchParams.get(\"offset\") || \"0\");\n const total = allProjects.length;\n const paginatedProjects = limit > 0 ? allProjects.slice(offset, offset + limit) : allProjects;\n return json({\n count: allProjects.reduce((sum, p) => sum + p.sessionCount, 0),\n projects: paginatedProjects,\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n total\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { b as private_env, j as json } from './shared-server-BDY8jh20.js';
2
- import { L as LibraryAPNsService } from './library-apns-BHxLmuIx.js';
3
- import { v as validateAuth } from './auth-CEgFis71.js';
1
+ import { b as private_env, j as json } from './shared-server-sSGG17Df.js';
2
+ import { L as LibraryAPNsService } from './library-apns-BqJbvSKh.js';
3
+ import { v as validateAuth } from './auth-DeCdZ83n.js';
4
4
  import '@parse/node-apn';
5
+ import './error-DDXB3duW.js';
5
6
  import 'crypto';
6
7
 
7
8
  const GET = ({ request }) => {
@@ -32,4 +33,4 @@ const GET = ({ request }) => {
32
33
  };
33
34
 
34
35
  export { GET };
35
- //# sourceMappingURL=_server.ts-y9-WYDMa.js.map
36
+ //# sourceMappingURL=_server.ts-WhTJBEJy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-y9-WYDMa.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/debug/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { L as LibraryAPNsService } from \"../../../../chunks/library-apns.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nconst GET = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const apnsClient = new LibraryAPNsService();\n const deviceToken = private_env.DEVICE_TOKEN?.trim();\n return json({\n apns: {\n configured: apnsClient.isConfigured(),\n environment: private_env.APNS_PRODUCTION === \"true\" ? \"production\" : \"sandbox\",\n hasBundleId: !!private_env.APNS_BUNDLE_ID,\n hasKey: !!private_env.APNS_KEY,\n hasKeyId: !!private_env.APNS_KEY_ID,\n hasTeamId: !!private_env.APNS_TEAM_ID\n },\n deviceToken: {\n exists: !!deviceToken,\n length: deviceToken ? deviceToken.length : 0,\n valid: deviceToken ? /^[a-f0-9]{64}$/i.test(deviceToken) : false\n },\n environment: private_env.NODE_ENV || \"development\",\n hasApiKey: !!private_env.API_KEY,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;AAIK,MAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AAC7B,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,IAAI,kBAAkB,EAAE;AAC7C,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE;AACtD,EAAE,OAAO,IAAI,CAAC;AACd,IAAI,IAAI,EAAE;AACV,MAAM,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE;AAC3C,MAAM,WAAW,EAAE,WAAW,CAAC,eAAe,KAAK,MAAM,GAAG,YAAY,GAAG,SAAS;AACpF,MAAM,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc;AAC/C,MAAM,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;AACpC,MAAM,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW;AACzC,MAAM,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC;AAC/B,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,MAAM,EAAE,CAAC,CAAC,WAAW;AAC3B,MAAM,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAClD,MAAM,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG;AACjE,KAAK;AACL,IAAI,WAAW,EAAE,WAAW,CAAC,QAAQ,IAAI,aAAa;AACtD,IAAI,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;AACpC,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AACvD,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"_server.ts-WhTJBEJy.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/debug/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { L as LibraryAPNsService } from \"../../../../chunks/library-apns.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nconst GET = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const apnsClient = new LibraryAPNsService();\n const deviceToken = private_env.DEVICE_TOKEN?.trim();\n return json({\n apns: {\n configured: apnsClient.isConfigured(),\n environment: private_env.APNS_PRODUCTION === \"true\" ? \"production\" : \"sandbox\",\n hasBundleId: !!private_env.APNS_BUNDLE_ID,\n hasKey: !!private_env.APNS_KEY,\n hasKeyId: !!private_env.APNS_KEY_ID,\n hasTeamId: !!private_env.APNS_TEAM_ID\n },\n deviceToken: {\n exists: !!deviceToken,\n length: deviceToken ? deviceToken.length : 0,\n valid: deviceToken ? /^[a-f0-9]{64}$/i.test(deviceToken) : false\n },\n environment: private_env.NODE_ENV || \"development\",\n hasApiKey: !!private_env.API_KEY,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAIK,MAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AAC7B,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,IAAI,kBAAkB,EAAE;AAC7C,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE;AACtD,EAAE,OAAO,IAAI,CAAC;AACd,IAAI,IAAI,EAAE;AACV,MAAM,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE;AAC3C,MAAM,WAAW,EAAE,WAAW,CAAC,eAAe,KAAK,MAAM,GAAG,YAAY,GAAG,SAAS;AACpF,MAAM,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,cAAc;AAC/C,MAAM,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ;AACpC,MAAM,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,WAAW;AACzC,MAAM,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC;AAC/B,KAAK;AACL,IAAI,WAAW,EAAE;AACjB,MAAM,MAAM,EAAE,CAAC,CAAC,WAAW;AAC3B,MAAM,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;AAClD,MAAM,KAAK,EAAE,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG;AACjE,KAAK;AACL,IAAI,WAAW,EAAE,WAAW,CAAC,QAAQ,IAAI,aAAa;AACtD,IAAI,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO;AACpC,IAAI,SAAS,EAAE,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW;AACvD,GAAG,CAAC;AACJ;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { a as cleanup, g as getDecision, s as setDecision } from './pending-requests-D8UiTw7L.js';
2
- import { v as validateAuth } from './auth-CEgFis71.js';
3
- import { j as json } from './shared-server-BDY8jh20.js';
2
+ import { v as validateAuth } from './auth-DeCdZ83n.js';
3
+ import { t as toErrorMessage } from './error-DDXB3duW.js';
4
+ import { j as json } from './shared-server-sSGG17Df.js';
4
5
  import 'crypto';
5
6
 
6
7
  const POST = async ({ request }) => {
@@ -34,8 +35,8 @@ const POST = async ({ request }) => {
34
35
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
35
36
  });
36
37
  } catch (error) {
37
- const err = error;
38
- return json({ details: err.message, error: "Failed to process response" }, { status: 500 });
38
+ console.error("[response] Failed to process response:", toErrorMessage(error));
39
+ return json({ error: "Failed to process response" }, { status: 500 });
39
40
  }
40
41
  };
41
42
  const GET = ({ request, url }) => {
@@ -60,4 +61,4 @@ const GET = ({ request, url }) => {
60
61
  };
61
62
 
62
63
  export { GET, POST };
63
- //# sourceMappingURL=_server.ts-BjOJsoy4.js.map
64
+ //# sourceMappingURL=_server.ts-XzT2UHM1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-XzT2UHM1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/response/_server.ts.js"],"sourcesContent":["import { a as cleanup, g as getDecision, s as setDecision } from \"../../../../chunks/pending-requests.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nconst POST = async ({ request }) => {\n cleanup();\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 { decision, requestId } = body;\n if (!requestId || !decision) {\n return json({ error: \"requestId and decision are required\" }, { status: 400 });\n }\n if (decision !== \"allow\" && decision !== \"deny\") {\n return json({ error: 'decision must be \"allow\" or \"deny\"' }, { status: 400 });\n }\n const found = setDecision(requestId, decision);\n if (!found) {\n return json({ error: \"Request not found or expired\" }, { status: 404 });\n }\n console.log(`[response] Decision received: ${decision} for request ${requestId}`);\n return json({\n message: \"Decision recorded\",\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[response] Failed to process response:\", toErrorMessage(error));\n return json({ error: \"Failed to process response\" }, { status: 500 });\n }\n};\nconst GET = ({ request, url }) => {\n cleanup();\n const authErr = validateAuth(request);\n if (authErr) {\n return authErr;\n }\n const requestId = url.searchParams.get(\"requestId\");\n if (!requestId) {\n return json({ error: \"requestId query parameter is required\" }, { status: 400 });\n }\n const result = getDecision(requestId);\n if (result.status === \"not_found\") {\n return json({ error: \"Request not found or expired\" }, { status: 404 });\n }\n return json({\n decision: result.decision ?? null,\n status: result.status,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { v as validateAuth } from './auth-CEgFis71.js';
2
- import { j as json } from './shared-server-BDY8jh20.js';
1
+ import { v as validateAuth } from './auth-DeCdZ83n.js';
2
+ import { t as toErrorMessage } from './error-DDXB3duW.js';
3
+ import { j as json } from './shared-server-sSGG17Df.js';
3
4
  import { mkdirSync, writeFileSync } from 'fs';
4
5
  import 'crypto';
5
6
 
@@ -38,10 +39,11 @@ const POST = async ({ params, request }) => {
38
39
  mkdirSync(clipboardDir, { recursive: true });
39
40
  writeFileSync(imagePath, imageBuffer);
40
41
  } catch (err) {
41
- return json({ details: err.message, error: "Failed to write image" }, { status: 500 });
42
+ console.error("[paste-image] Failed to write image:", toErrorMessage(err));
43
+ return json({ error: "Failed to write image" }, { status: 500 });
42
44
  }
43
- return json({ path: imagePath, size: imageBuffer.length });
45
+ return json({ size: imageBuffer.length, success: true });
44
46
  };
45
47
 
46
48
  export { POST };
47
- //# sourceMappingURL=_server.ts-BgdjBZco.js.map
49
+ //# sourceMappingURL=_server.ts-tSpgyl1D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-tSpgyl1D.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,6 +1,7 @@
1
- import { v as validateAuth } from './auth-CEgFis71.js';
2
- import { p as ptyManager } from './pty-manager-C0FhBiVq.js';
3
- import { j as json } from './shared-server-BDY8jh20.js';
1
+ import { v as validateAuth } from './auth-DeCdZ83n.js';
2
+ import { p as ptyManager } from './pty-manager-DR0Wt2Ac.js';
3
+ import { t as toErrorMessage } from './error-DDXB3duW.js';
4
+ import { j as json } from './shared-server-sSGG17Df.js';
4
5
  import 'crypto';
5
6
  import 'child_process';
6
7
  import 'fs';
@@ -8,8 +9,6 @@ import 'path';
8
9
  import 'url';
9
10
  import 'net';
10
11
  import 'better-sqlite3';
11
- import 'chokidar';
12
- import './jsonl-parser-dmZU_Hyu.js';
13
12
 
14
13
  const POST = async ({ params, request }) => {
15
14
  const authError = validateAuth(request);
@@ -50,10 +49,10 @@ const POST = async ({ params, request }) => {
50
49
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
51
50
  });
52
51
  } catch (error) {
53
- const err = error;
54
- return json({ details: err.message, error: "Failed to resize terminal" }, { status: 500 });
52
+ console.error("[terminals] Failed to resize terminal:", toErrorMessage(error));
53
+ return json({ error: "Failed to resize terminal" }, { status: 500 });
55
54
  }
56
55
  };
57
56
 
58
57
  export { POST };
59
- //# sourceMappingURL=_server.ts-BihKSdj_.js.map
58
+ //# sourceMappingURL=_server.ts-uHUi-4cd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-uHUi-4cd.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,4 +1,4 @@
1
- import { b as private_env } from './shared-server-BDY8jh20.js';
1
+ import { b as private_env } from './shared-server-sSGG17Df.js';
2
2
  import { timingSafeEqual } from 'crypto';
3
3
 
4
4
  function validateAuth(request) {
@@ -29,4 +29,4 @@ function validateAuth(request) {
29
29
  }
30
30
 
31
31
  export { validateAuth as v };
32
- //# sourceMappingURL=auth-CEgFis71.js.map
32
+ //# sourceMappingURL=auth-DeCdZ83n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-CEgFis71.js","sources":["../../../.svelte-kit/adapter-node/chunks/auth.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport { timingSafeEqual } from \"crypto\";\nfunction validateAuth(request) {\n const auth = request.headers.get(\"Authorization\") || request.headers.get(\"authorization\");\n if (!auth?.startsWith(\"Bearer \")) {\n return new Response(JSON.stringify({ error: \"Missing authorization\" }), {\n headers: { \"Content-Type\": \"application/json\" },\n status: 401\n });\n }\n const token = auth.slice(7);\n const expectedKey = private_env.API_KEY?.trim();\n if (!expectedKey) {\n return new Response(JSON.stringify({ error: \"Invalid API key\" }), {\n headers: { \"Content-Type\": \"application/json\" },\n status: 401\n });\n }\n const tokenBuf = Buffer.from(token);\n const expectedBuf = Buffer.from(expectedKey);\n if (tokenBuf.length !== expectedBuf.length || !timingSafeEqual(tokenBuf, expectedBuf)) {\n return new Response(JSON.stringify({ error: \"Invalid API key\" }), {\n headers: { \"Content-Type\": \"application/json\" },\n status: 401\n });\n }\n return null;\n}\nexport {\n validateAuth as v\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,YAAY,CAAC,OAAO,EAAE;AAC/B,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAC3F,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;AACpC,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAE;AAC5E,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACrD,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AACjD,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE;AACtE,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACrD,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9C,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;AACzF,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE;AACtE,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACrD,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF,EAAE,OAAO,IAAI;AACb;;;;"}
1
+ {"version":3,"file":"auth-DeCdZ83n.js","sources":["../../../.svelte-kit/adapter-node/chunks/auth.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport { timingSafeEqual } from \"crypto\";\nfunction validateAuth(request) {\n const auth = request.headers.get(\"Authorization\") || request.headers.get(\"authorization\");\n if (!auth?.startsWith(\"Bearer \")) {\n return new Response(JSON.stringify({ error: \"Missing authorization\" }), {\n headers: { \"Content-Type\": \"application/json\" },\n status: 401\n });\n }\n const token = auth.slice(7);\n const expectedKey = private_env.API_KEY?.trim();\n if (!expectedKey) {\n return new Response(JSON.stringify({ error: \"Invalid API key\" }), {\n headers: { \"Content-Type\": \"application/json\" },\n status: 401\n });\n }\n const tokenBuf = Buffer.from(token);\n const expectedBuf = Buffer.from(expectedKey);\n if (tokenBuf.length !== expectedBuf.length || !timingSafeEqual(tokenBuf, expectedBuf)) {\n return new Response(JSON.stringify({ error: \"Invalid API key\" }), {\n headers: { \"Content-Type\": \"application/json\" },\n status: 401\n });\n }\n return null;\n}\nexport {\n validateAuth as v\n};\n"],"names":[],"mappings":";;;AAEA,SAAS,YAAY,CAAC,OAAO,EAAE;AAC/B,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAC3F,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;AACpC,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,EAAE;AAC5E,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACrD,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,EAAE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AACjD,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE;AACtE,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACrD,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,EAAE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC9C,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;AACzF,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE;AACtE,MAAM,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AACrD,MAAM,MAAM,EAAE;AACd,KAAK,CAAC;AACN,EAAE;AACF,EAAE,OAAO,IAAI;AACb;;;;"}
@@ -0,0 +1,7 @@
1
+ import './state.svelte-2Lellg7t.js';
2
+ import { s as stores } from './client2-BjxIYuno.js';
3
+
4
+ ({
5
+ check: stores.updated.check
6
+ });
7
+ //# sourceMappingURL=client-BYT9c0ig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-BYT9c0ig.js","sources":["../../../.svelte-kit/adapter-node/chunks/client.js"],"sourcesContent":["import \"./state.svelte.js\";\nimport { s as stores } from \"./client2.js\";\n({\n check: stores.updated.check\n});\n"],"names":[],"mappings":";;;AAEA,CAAC;AACD,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import './root-DhswcH6o.js';
2
+ import { w as writable } from './index2-HA3VTH7y.js';
3
+ import './state.svelte-2Lellg7t.js';
4
+
5
+ function create_updated_store() {
6
+ const { set, subscribe } = writable(false);
7
+ {
8
+ return {
9
+ subscribe,
10
+ // eslint-disable-next-line @typescript-eslint/require-await
11
+ check: async () => false
12
+ };
13
+ }
14
+ }
15
+ const stores = {
16
+ updated: /* @__PURE__ */ create_updated_store()
17
+ };
18
+ function goto(url, opts = {}) {
19
+ {
20
+ throw new Error("Cannot call goto(...) on the server");
21
+ }
22
+ }
23
+
24
+ export { goto as g, stores as s };
25
+ //# sourceMappingURL=client2-BjxIYuno.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client2-BjxIYuno.js","sources":["../../../.svelte-kit/adapter-node/chunks/client2.js"],"sourcesContent":["import \"@sveltejs/kit/internal\";\nimport \"./exports.js\";\nimport \"./utils2.js\";\nimport { w as writable } from \"./index2.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"./root.js\";\nimport \"./state.svelte.js\";\nfunction create_updated_store() {\n const { set, subscribe } = writable(false);\n {\n return {\n subscribe,\n // eslint-disable-next-line @typescript-eslint/require-await\n check: async () => false\n };\n }\n}\nconst stores = {\n updated: /* @__PURE__ */ create_updated_store()\n};\nfunction goto(url, opts = {}) {\n {\n throw new Error(\"Cannot call goto(...) on the server\");\n }\n}\nexport {\n goto as g,\n stores as s\n};\n"],"names":[],"mappings":";;;;AAOA,SAAS,oBAAoB,GAAG;AAChC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC5C,EAAE;AACF,IAAI,OAAO;AACX,MAAM,SAAS;AACf;AACA,MAAM,KAAK,EAAE,YAAY;AACzB,KAAK;AACL,EAAE;AACF;AACK,MAAC,MAAM,GAAG;AACf,EAAE,OAAO,kBAAkB,oBAAoB;AAC/C;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;AAC9B,EAAE;AACF,IAAI,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AAC1D,EAAE;AACF;;;;"}
@@ -0,0 +1,12 @@
1
+ function toErrorMessage(err) {
2
+ if (err instanceof Error) {
3
+ return err.message;
4
+ }
5
+ if (typeof err === "string") {
6
+ return err;
7
+ }
8
+ return String(err);
9
+ }
10
+
11
+ export { toErrorMessage as t };
12
+ //# sourceMappingURL=error-DDXB3duW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-DDXB3duW.js","sources":["../../../.svelte-kit/adapter-node/chunks/error.js"],"sourcesContent":["function toErrorMessage(err) {\n if (err instanceof Error) {\n return err.message;\n }\n if (typeof err === \"string\") {\n return err;\n }\n return String(err);\n}\nexport {\n toErrorMessage as t\n};\n"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,GAAG,EAAE;AAC7B,EAAE,IAAI,GAAG,YAAY,KAAK,EAAE;AAC5B,IAAI,OAAO,GAAG,CAAC,OAAO;AACtB,EAAE;AACF,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,OAAO,GAAG;AACd,EAAE;AACF,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC;AACpB;;;;"}
@@ -0,0 +1,27 @@
1
+ import { k as escape_html, l as getContext } from './index-Cnl871UW.js';
2
+ import './client-BYT9c0ig.js';
3
+ import './state.svelte-2Lellg7t.js';
4
+ import './root-DhswcH6o.js';
5
+ import './client2-BjxIYuno.js';
6
+ import './index2-HA3VTH7y.js';
7
+
8
+ function context() {
9
+ return getContext("__request__");
10
+ }
11
+ const page$1 = {
12
+ get error() {
13
+ return context().page.error;
14
+ },
15
+ get status() {
16
+ return context().page.status;
17
+ }
18
+ };
19
+ const page = page$1;
20
+ function Error$1($$renderer, $$props) {
21
+ $$renderer.component(($$renderer2) => {
22
+ $$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);
23
+ });
24
+ }
25
+
26
+ export { Error$1 as default };
27
+ //# sourceMappingURL=error.svelte-BG_yE-Wt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.svelte-BG_yE-Wt.js","sources":["../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { g as getContext, e as escape_html } from \"../../chunks/index.js\";\nimport \"../../chunks/client.js\";\nfunction context() {\n return getContext(\"__request__\");\n}\nconst page$1 = {\n get error() {\n return context().page.error;\n },\n get status() {\n return context().page.status;\n }\n};\nconst page = page$1;\nfunction Error$1($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n });\n}\nexport {\n Error$1 as default\n};\n"],"names":[],"mappings":";;;;;;;AAEA,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,aAAa,CAAC;AAClC;AACA,MAAM,MAAM,GAAG;AACf,EAAE,IAAI,KAAK,GAAG;AACd,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK;AAC/B,EAAE,CAAC;AACH,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChC,EAAE;AACF,CAAC;AACD,MAAM,IAAI,GAAG,MAAM;AACnB,SAAS,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE;AACtC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,WAAW,KAAK;AACxC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACvG,EAAE,CAAC,CAAC;AACJ;;;;"}