@juspay/shooter 1.24.0 → 1.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/bin/lib/service-manager.cjs +148 -0
  2. package/bin/shooter.cjs +151 -62
  3. package/build/client/_app/immutable/chunks/{Dd1KNHg-.js → BBuzUXZ9.js} +1 -1
  4. package/build/client/_app/immutable/chunks/BBuzUXZ9.js.br +0 -0
  5. package/build/client/_app/immutable/chunks/BBuzUXZ9.js.gz +0 -0
  6. package/build/client/_app/immutable/chunks/BPIV28L3.js +3 -0
  7. package/build/client/_app/immutable/chunks/BPIV28L3.js.br +0 -0
  8. package/build/client/_app/immutable/chunks/BPIV28L3.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/{D868VwmX.js → BPIlDnhM.js} +1 -1
  10. package/build/client/_app/immutable/chunks/BPIlDnhM.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/BPIlDnhM.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/{2rBV5OkJ.js → BQJR1fvD.js} +1 -1
  13. package/build/client/_app/immutable/chunks/BQJR1fvD.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/BQJR1fvD.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/{DLu6yJIZ.js → BjXFD2Pv.js} +1 -1
  16. package/build/client/_app/immutable/chunks/BjXFD2Pv.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/BjXFD2Pv.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/{C4Hns_Wl.js → CnsJhNGt.js} +1 -1
  19. package/build/client/_app/immutable/chunks/CnsJhNGt.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/CnsJhNGt.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/{DomZZqvG.js → DFa6kKPT.js} +1 -1
  22. package/build/client/_app/immutable/chunks/DFa6kKPT.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/DFa6kKPT.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/{BcpydfqI.js → DcXdn821.js} +1 -1
  25. package/build/client/_app/immutable/chunks/DcXdn821.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/DcXdn821.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/Dk1NUsIU.js +61 -0
  28. package/build/client/_app/immutable/chunks/Dk1NUsIU.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/Dk1NUsIU.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/DoGIJDSZ.js +2 -0
  31. package/build/client/_app/immutable/chunks/DoGIJDSZ.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/DoGIJDSZ.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/{V8pbM9cl.js → Dqmsaccg.js} +1 -1
  34. package/build/client/_app/immutable/chunks/Dqmsaccg.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/Dqmsaccg.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/{B1bOvemT.js → aiM7Bbhi.js} +8 -8
  37. package/build/client/_app/immutable/chunks/aiM7Bbhi.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/aiM7Bbhi.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/{CJulw9ux.js → etLjvmY8.js} +1 -1
  40. package/build/client/_app/immutable/chunks/{CJulw9ux.js.br → etLjvmY8.js.br} +0 -0
  41. package/build/client/_app/immutable/chunks/etLjvmY8.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/kzeZOqU5.js +1 -0
  43. package/build/client/_app/immutable/chunks/kzeZOqU5.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/kzeZOqU5.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/{i5iZvmIH.js → oIHVoAuz.js} +1 -1
  46. package/build/client/_app/immutable/chunks/oIHVoAuz.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/oIHVoAuz.js.gz +0 -0
  48. package/build/client/_app/immutable/entry/app.Bu4nq_bk.js +2 -0
  49. package/build/client/_app/immutable/entry/app.Bu4nq_bk.js.br +0 -0
  50. package/build/client/_app/immutable/entry/app.Bu4nq_bk.js.gz +0 -0
  51. package/build/client/_app/immutable/entry/start.CbpzR6Gp.js +1 -0
  52. package/build/client/_app/immutable/entry/start.CbpzR6Gp.js.br +2 -0
  53. package/build/client/_app/immutable/entry/start.CbpzR6Gp.js.gz +0 -0
  54. package/build/client/_app/immutable/nodes/{0.BRFdS_ay.js → 0.CnSSjKHX.js} +1 -1
  55. package/build/client/_app/immutable/nodes/0.CnSSjKHX.js.br +0 -0
  56. package/build/client/_app/immutable/nodes/0.CnSSjKHX.js.gz +0 -0
  57. package/build/client/_app/immutable/nodes/{1.B1pgwYu3.js → 1.D_5wZINa.js} +1 -1
  58. package/build/client/_app/immutable/nodes/1.D_5wZINa.js.br +0 -0
  59. package/build/client/_app/immutable/nodes/1.D_5wZINa.js.gz +0 -0
  60. package/build/client/_app/immutable/nodes/{10.558mUFIl.js → 10.C_B2eMms.js} +1 -1
  61. package/build/client/_app/immutable/nodes/10.C_B2eMms.js.br +0 -0
  62. package/build/client/_app/immutable/nodes/10.C_B2eMms.js.gz +0 -0
  63. package/build/client/_app/immutable/nodes/{11.CdmPyt4k.js → 11.DUKnn5ja.js} +2 -2
  64. package/build/client/_app/immutable/nodes/11.DUKnn5ja.js.br +0 -0
  65. package/build/client/_app/immutable/nodes/11.DUKnn5ja.js.gz +0 -0
  66. package/build/client/_app/immutable/nodes/{2.1tiK5o4L.js → 2.C37CZKYv.js} +1 -1
  67. package/build/client/_app/immutable/nodes/2.C37CZKYv.js.br +0 -0
  68. package/build/client/_app/immutable/nodes/2.C37CZKYv.js.gz +0 -0
  69. package/build/client/_app/immutable/nodes/{3.DyQTorXE.js → 3.C48G514u.js} +1 -1
  70. package/build/client/_app/immutable/nodes/3.C48G514u.js.br +0 -0
  71. package/build/client/_app/immutable/nodes/3.C48G514u.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/{4.BFYS2g9C.js → 4.C9fv_m2R.js} +1 -1
  73. package/build/client/_app/immutable/nodes/4.C9fv_m2R.js.br +0 -0
  74. package/build/client/_app/immutable/nodes/4.C9fv_m2R.js.gz +0 -0
  75. package/build/client/_app/immutable/nodes/{5.DziEu9rx.js → 5.vMR5XEA6.js} +1 -1
  76. package/build/client/_app/immutable/nodes/5.vMR5XEA6.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/5.vMR5XEA6.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/{6.Chn2ZM2V.js → 6.DGlutNk6.js} +1 -1
  79. package/build/client/_app/immutable/nodes/6.DGlutNk6.js.br +0 -0
  80. package/build/client/_app/immutable/nodes/6.DGlutNk6.js.gz +0 -0
  81. package/build/client/_app/immutable/nodes/{7.DhJ2K3GQ.js → 7.BXAYsEHF.js} +1 -1
  82. package/build/client/_app/immutable/nodes/7.BXAYsEHF.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/7.BXAYsEHF.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/{8.B4pLxBkI.js → 8.D-SxCq24.js} +1 -1
  85. package/build/client/_app/immutable/nodes/8.D-SxCq24.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/8.D-SxCq24.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/{9.CVsskPw5.js → 9.Bek2YR4U.js} +1 -1
  88. package/build/client/_app/immutable/nodes/9.Bek2YR4U.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/9.Bek2YR4U.js.gz +0 -0
  90. package/build/client/_app/version.json +1 -1
  91. package/build/client/_app/version.json.br +0 -0
  92. package/build/client/_app/version.json.gz +0 -0
  93. package/build/server/chunks/{0-DZO0pCuJ.js → 0-ByOnI9Md.js} +3 -3
  94. package/build/server/chunks/{0-DZO0pCuJ.js.map → 0-ByOnI9Md.js.map} +1 -1
  95. package/build/server/chunks/1-DcJwehLu.js +9 -0
  96. package/build/server/chunks/{1-D2SDQFeq.js.map → 1-DcJwehLu.js.map} +1 -1
  97. package/build/server/chunks/10-B5bdfDfK.js +9 -0
  98. package/build/server/chunks/{10-CEJDEhpQ.js.map → 10-B5bdfDfK.js.map} +1 -1
  99. package/build/server/chunks/11-DOJ9j7KC.js +9 -0
  100. package/build/server/chunks/{11-CMC_i3co.js.map → 11-DOJ9j7KC.js.map} +1 -1
  101. package/build/server/chunks/{2-C1XSBNj7.js → 2-BY0LGSMl.js} +3 -3
  102. package/build/server/chunks/{2-C1XSBNj7.js.map → 2-BY0LGSMl.js.map} +1 -1
  103. package/build/server/chunks/{3-DRjTDzaV.js → 3-DEa6RtDT.js} +3 -3
  104. package/build/server/chunks/{3-DRjTDzaV.js.map → 3-DEa6RtDT.js.map} +1 -1
  105. package/build/server/chunks/{4-D92KnTmb.js → 4-w2W_T8ax.js} +3 -3
  106. package/build/server/chunks/{4-D92KnTmb.js.map → 4-w2W_T8ax.js.map} +1 -1
  107. package/build/server/chunks/{5-D-Uv1voC.js → 5-BKDmLKb4.js} +3 -3
  108. package/build/server/chunks/{5-D-Uv1voC.js.map → 5-BKDmLKb4.js.map} +1 -1
  109. package/build/server/chunks/6-DoTu6ygH.js +9 -0
  110. package/build/server/chunks/{6-BcgshtK4.js.map → 6-DoTu6ygH.js.map} +1 -1
  111. package/build/server/chunks/7-CYQ9V6d4.js +9 -0
  112. package/build/server/chunks/{7-BBsuxiGz.js.map → 7-CYQ9V6d4.js.map} +1 -1
  113. package/build/server/chunks/8-DMwmCD5X.js +9 -0
  114. package/build/server/chunks/{8-B0qM-Zzs.js.map → 8-DMwmCD5X.js.map} +1 -1
  115. package/build/server/chunks/9-CNmPa2Jo.js +9 -0
  116. package/build/server/chunks/{9-XIfsp2D_.js.map → 9-CNmPa2Jo.js.map} +1 -1
  117. package/build/server/chunks/{Banner-BgaAs1rs.js → Banner-8zU7JxF6.js} +3 -3
  118. package/build/server/chunks/Banner-8zU7JxF6.js.map +1 -0
  119. package/build/server/chunks/{Button-D0hZ7JYt.js → Button-DmE4ENkb.js} +2 -2
  120. package/build/server/chunks/Button-DmE4ENkb.js.map +1 -0
  121. package/build/server/chunks/{Icon-D0GBnDcs.js → Icon-By4fwUeB.js} +3 -3
  122. package/build/server/chunks/Icon-By4fwUeB.js.map +1 -0
  123. package/build/server/chunks/{Input-OmIiydSx.js → Input-DP3ahKZB.js} +2 -2
  124. package/build/server/chunks/Input-DP3ahKZB.js.map +1 -0
  125. package/build/server/chunks/{Pill-4xJ-VhAA.js → Pill-DwAR6cas.js} +3 -3
  126. package/build/server/chunks/Pill-DwAR6cas.js.map +1 -0
  127. package/build/server/chunks/{Shimmer-Dw2uvTC1.js → Shimmer-Bo1CUNAU.js} +2 -2
  128. package/build/server/chunks/Shimmer-Bo1CUNAU.js.map +1 -0
  129. package/build/server/chunks/{_error.svelte-CZnkxeLr.js → _error.svelte-r3eJvFdN.js} +8 -8
  130. package/build/server/chunks/_error.svelte-r3eJvFdN.js.map +1 -0
  131. package/build/server/chunks/{_layout.svelte-DfgNGGiM.js → _layout.svelte-BlI9weU7.js} +10 -10
  132. package/build/server/chunks/_layout.svelte-BlI9weU7.js.map +1 -0
  133. package/build/server/chunks/{_page.svelte-dabsQl9c.js → _page.svelte-B7_oMI0l.js} +10 -10
  134. package/build/server/chunks/_page.svelte-B7_oMI0l.js.map +1 -0
  135. package/build/server/chunks/{_page.svelte-CWsjjd4l.js → _page.svelte-BB3pLObN.js} +9 -9
  136. package/build/server/chunks/_page.svelte-BB3pLObN.js.map +1 -0
  137. package/build/server/chunks/{_page.svelte-CE7COWnF.js → _page.svelte-BDoNXDBU.js} +7 -7
  138. package/build/server/chunks/_page.svelte-BDoNXDBU.js.map +1 -0
  139. package/build/server/chunks/{_page.svelte-8OFzwdNA.js → _page.svelte-CMryWeEG.js} +11 -11
  140. package/build/server/chunks/_page.svelte-CMryWeEG.js.map +1 -0
  141. package/build/server/chunks/{_page.svelte-D_Ey8QRG.js → _page.svelte-CS4GU4ex.js} +11 -11
  142. package/build/server/chunks/_page.svelte-CS4GU4ex.js.map +1 -0
  143. package/build/server/chunks/{_page.svelte-D5S2hkBk.js → _page.svelte-CUfOc8Hm.js} +9 -9
  144. package/build/server/chunks/{_page.svelte-D5S2hkBk.js.map → _page.svelte-CUfOc8Hm.js.map} +1 -1
  145. package/build/server/chunks/{_page.svelte-BTlfUsBp.js → _page.svelte-Cj5OW0HR.js} +6 -6
  146. package/build/server/chunks/_page.svelte-Cj5OW0HR.js.map +1 -0
  147. package/build/server/chunks/{_page.svelte-Gv9p8nlS.js → _page.svelte-DDE2nChH.js} +6 -6
  148. package/build/server/chunks/_page.svelte-DDE2nChH.js.map +1 -0
  149. package/build/server/chunks/{_page.svelte-BX2FMgSg.js → _page.svelte-svT4jMLg.js} +4 -4
  150. package/build/server/chunks/{_page.svelte-BX2FMgSg.js.map → _page.svelte-svT4jMLg.js.map} +1 -1
  151. package/build/server/chunks/{_page.svelte-C7B0qdrC.js → _page.svelte-vtaZs27Q.js} +5 -5
  152. package/build/server/chunks/_page.svelte-vtaZs27Q.js.map +1 -0
  153. package/build/server/chunks/{_server.ts-DtT-ZXki.js → _server.ts--7PnGah8.js} +2 -2
  154. package/build/server/chunks/{_server.ts-DtT-ZXki.js.map → _server.ts--7PnGah8.js.map} +1 -1
  155. package/build/server/chunks/{_server.ts-Mttr0-Sl.js → _server.ts-57dINphj.js} +2 -2
  156. package/build/server/chunks/{_server.ts-Mttr0-Sl.js.map → _server.ts-57dINphj.js.map} +1 -1
  157. package/build/server/chunks/{_server.ts-BCljU9Sg.js → _server.ts-5ZMeZtad.js} +2 -2
  158. package/build/server/chunks/{_server.ts-BCljU9Sg.js.map → _server.ts-5ZMeZtad.js.map} +1 -1
  159. package/build/server/chunks/{_server.ts-CGqCOCdK.js → _server.ts-ArA8CrYi.js} +2 -2
  160. package/build/server/chunks/{_server.ts-CGqCOCdK.js.map → _server.ts-ArA8CrYi.js.map} +1 -1
  161. package/build/server/chunks/{_server.ts-DPHRUFYS.js → _server.ts-BKqxnNf1.js} +2 -2
  162. package/build/server/chunks/{_server.ts-DPHRUFYS.js.map → _server.ts-BKqxnNf1.js.map} +1 -1
  163. package/build/server/chunks/{_server.ts-BXhmLZwN.js → _server.ts-BTNIhKVv.js} +2 -2
  164. package/build/server/chunks/{_server.ts-BXhmLZwN.js.map → _server.ts-BTNIhKVv.js.map} +1 -1
  165. package/build/server/chunks/{_server.ts-BhP3b8A5.js → _server.ts-Bcagaih0.js} +2 -2
  166. package/build/server/chunks/{_server.ts-BhP3b8A5.js.map → _server.ts-Bcagaih0.js.map} +1 -1
  167. package/build/server/chunks/{_server.ts-B-evHL2q.js → _server.ts-Bmp-ldee.js} +2 -2
  168. package/build/server/chunks/{_server.ts-B-evHL2q.js.map → _server.ts-Bmp-ldee.js.map} +1 -1
  169. package/build/server/chunks/{_server.ts-QN-Bo5ql.js → _server.ts-BrDK1fJ9.js} +2 -2
  170. package/build/server/chunks/{_server.ts-QN-Bo5ql.js.map → _server.ts-BrDK1fJ9.js.map} +1 -1
  171. package/build/server/chunks/{_server.ts-D9ir7u24.js → _server.ts-C-XPLtdp.js} +2 -2
  172. package/build/server/chunks/{_server.ts-D9ir7u24.js.map → _server.ts-C-XPLtdp.js.map} +1 -1
  173. package/build/server/chunks/{_server.ts-B-Gekwsu.js → _server.ts-C3rA9AOZ.js} +2 -2
  174. package/build/server/chunks/{_server.ts-B-Gekwsu.js.map → _server.ts-C3rA9AOZ.js.map} +1 -1
  175. package/build/server/chunks/{_server.ts-DZvfyuNj.js → _server.ts-CDeJYhn1.js} +2 -2
  176. package/build/server/chunks/{_server.ts-DZvfyuNj.js.map → _server.ts-CDeJYhn1.js.map} +1 -1
  177. package/build/server/chunks/{_server.ts-Cx0S__hk.js → _server.ts-CLxpocw5.js} +2 -2
  178. package/build/server/chunks/{_server.ts-Cx0S__hk.js.map → _server.ts-CLxpocw5.js.map} +1 -1
  179. package/build/server/chunks/{_server.ts-D_WRex0k.js → _server.ts-COpXw9HU.js} +2 -2
  180. package/build/server/chunks/{_server.ts-D_WRex0k.js.map → _server.ts-COpXw9HU.js.map} +1 -1
  181. package/build/server/chunks/{_server.ts-DkZX_O9a.js → _server.ts-CYfsIgGS.js} +2 -2
  182. package/build/server/chunks/{_server.ts-DkZX_O9a.js.map → _server.ts-CYfsIgGS.js.map} +1 -1
  183. package/build/server/chunks/{_server.ts-MbnroWEF.js → _server.ts-CZFcAWEP.js} +2 -2
  184. package/build/server/chunks/{_server.ts-MbnroWEF.js.map → _server.ts-CZFcAWEP.js.map} +1 -1
  185. package/build/server/chunks/{_server.ts-DpRr0Tfh.js → _server.ts-Cm0noZR0.js} +2 -2
  186. package/build/server/chunks/{_server.ts-DpRr0Tfh.js.map → _server.ts-Cm0noZR0.js.map} +1 -1
  187. package/build/server/chunks/{_server.ts-BaaY7Z9D.js → _server.ts-Cu_4i2k1.js} +2 -2
  188. package/build/server/chunks/{_server.ts-BaaY7Z9D.js.map → _server.ts-Cu_4i2k1.js.map} +1 -1
  189. package/build/server/chunks/{_server.ts-BLNDdFWC.js → _server.ts-D2RS8TFd.js} +2 -2
  190. package/build/server/chunks/{_server.ts-BLNDdFWC.js.map → _server.ts-D2RS8TFd.js.map} +1 -1
  191. package/build/server/chunks/{_server.ts-BScvgttw.js → _server.ts-D9_hkPQ6.js} +2 -2
  192. package/build/server/chunks/{_server.ts-BScvgttw.js.map → _server.ts-D9_hkPQ6.js.map} +1 -1
  193. package/build/server/chunks/{_server.ts-BbRSpB74.js → _server.ts-DFI6mMYL.js} +2 -2
  194. package/build/server/chunks/{_server.ts-BbRSpB74.js.map → _server.ts-DFI6mMYL.js.map} +1 -1
  195. package/build/server/chunks/{_server.ts-C6NRpe7e.js → _server.ts-DGPBCKvQ.js} +2 -2
  196. package/build/server/chunks/{_server.ts-C6NRpe7e.js.map → _server.ts-DGPBCKvQ.js.map} +1 -1
  197. package/build/server/chunks/{_server.ts-BB46Fbqn.js → _server.ts-DRRGeb__.js} +2 -2
  198. package/build/server/chunks/{_server.ts-BB46Fbqn.js.map → _server.ts-DRRGeb__.js.map} +1 -1
  199. package/build/server/chunks/{_server.ts-CTdFxJdD.js → _server.ts-DaA9ZSqv.js} +2 -2
  200. package/build/server/chunks/{_server.ts-CTdFxJdD.js.map → _server.ts-DaA9ZSqv.js.map} +1 -1
  201. package/build/server/chunks/{_server.ts-05JJOdcX.js → _server.ts-DfscXcFe.js} +38 -23
  202. package/build/server/chunks/_server.ts-DfscXcFe.js.map +1 -0
  203. package/build/server/chunks/{_server.ts-CVPZOpiv.js → _server.ts-DlGrc8cE.js} +2 -2
  204. package/build/server/chunks/{_server.ts-CVPZOpiv.js.map → _server.ts-DlGrc8cE.js.map} +1 -1
  205. package/build/server/chunks/{_server.ts-C0317RBD.js → _server.ts-DuAA6Ks-.js} +2 -2
  206. package/build/server/chunks/{_server.ts-C0317RBD.js.map → _server.ts-DuAA6Ks-.js.map} +1 -1
  207. package/build/server/chunks/{_server.ts-BTmknWpO.js → _server.ts-EJVmhLtg.js} +2 -2
  208. package/build/server/chunks/{_server.ts-BTmknWpO.js.map → _server.ts-EJVmhLtg.js.map} +1 -1
  209. package/build/server/chunks/{_server.ts-jtqWDWcf.js → _server.ts-NVx03KEN.js} +2 -2
  210. package/build/server/chunks/{_server.ts-jtqWDWcf.js.map → _server.ts-NVx03KEN.js.map} +1 -1
  211. package/build/server/chunks/{_server.ts-W6i3EnGX.js → _server.ts-o_sRQMMS.js} +2 -2
  212. package/build/server/chunks/{_server.ts-W6i3EnGX.js.map → _server.ts-o_sRQMMS.js.map} +1 -1
  213. package/build/server/chunks/{_server.ts-DOGUMzPx.js → _server.ts-v7TaT83B.js} +2 -2
  214. package/build/server/chunks/{_server.ts-DOGUMzPx.js.map → _server.ts-v7TaT83B.js.map} +1 -1
  215. package/build/server/chunks/{cache-BlMaDsHi.js → cache-De-MXr04.js} +2 -2
  216. package/build/server/chunks/cache-De-MXr04.js.map +1 -0
  217. package/build/server/chunks/{client-Ds1brw-8.js → client-dJTdv51U.js} +4 -4
  218. package/build/server/chunks/client-dJTdv51U.js.map +1 -0
  219. package/build/server/chunks/client2-CZlO7zn4.js +7 -0
  220. package/build/server/chunks/{client2-DngLdcUc.js.map → client2-CZlO7zn4.js.map} +1 -1
  221. package/build/server/chunks/{index2-dSGQ9Eaa.js → index-L-OMOXY-.js} +2 -2
  222. package/build/server/chunks/index-L-OMOXY-.js.map +1 -0
  223. package/build/server/chunks/{index-CoD1IJuy.js → index-lhTMmBNn.js} +20 -3
  224. package/build/server/chunks/index-lhTMmBNn.js.map +1 -0
  225. package/build/server/chunks/{index-server-Bq3cnK69.js → index-server-CdDI4vgN.js} +2 -2
  226. package/build/server/chunks/index-server-CdDI4vgN.js.map +1 -0
  227. package/build/server/chunks/{index-CoYB03g7.js → index2-BLq4EEng.js} +1627 -1627
  228. package/build/server/chunks/index2-BLq4EEng.js.map +1 -0
  229. package/build/server/chunks/pty-manager-BsHXoNks.js.map +1 -1
  230. package/build/server/chunks/qwen-reader-DGfUbKaJ.js.map +1 -1
  231. package/build/server/chunks/registry-D4J_CuzW.js.map +1 -1
  232. package/build/server/chunks/{root-D4IoFC8F.js → root-Ce8FGAoU.js} +42 -43
  233. package/build/server/chunks/root-Ce8FGAoU.js.map +1 -0
  234. package/build/server/chunks/{state.svelte-CmHqngc_.js → state.svelte-DCKkPJr6.js} +3 -3
  235. package/build/server/chunks/state.svelte-DCKkPJr6.js.map +1 -0
  236. package/build/server/chunks/{stores-CRYxfF0o.js → stores-CVemzLCH.js} +4 -4
  237. package/build/server/chunks/stores-CVemzLCH.js.map +1 -0
  238. package/build/server/index.js +365 -169
  239. package/build/server/index.js.map +1 -1
  240. package/build/server/manifest.js +44 -44
  241. package/build/server/manifest.js.map +1 -1
  242. package/package.json +2 -2
  243. package/src/lib/modules/server/apn/device-token.ts +57 -0
  244. package/src/routes/api/notify/+server.ts +20 -35
  245. package/build/client/_app/immutable/chunks/2rBV5OkJ.js.br +0 -0
  246. package/build/client/_app/immutable/chunks/2rBV5OkJ.js.gz +0 -0
  247. package/build/client/_app/immutable/chunks/B1bOvemT.js.br +0 -0
  248. package/build/client/_app/immutable/chunks/B1bOvemT.js.gz +0 -0
  249. package/build/client/_app/immutable/chunks/BDcFu3l7.js +0 -61
  250. package/build/client/_app/immutable/chunks/BDcFu3l7.js.br +0 -0
  251. package/build/client/_app/immutable/chunks/BDcFu3l7.js.gz +0 -0
  252. package/build/client/_app/immutable/chunks/BPDiEZo0.js +0 -2
  253. package/build/client/_app/immutable/chunks/BPDiEZo0.js.br +0 -0
  254. package/build/client/_app/immutable/chunks/BPDiEZo0.js.gz +0 -0
  255. package/build/client/_app/immutable/chunks/BcpydfqI.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/BcpydfqI.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/C4Hns_Wl.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/C4Hns_Wl.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/CJulw9ux.js.gz +0 -0
  260. package/build/client/_app/immutable/chunks/CbINytmr.js +0 -3
  261. package/build/client/_app/immutable/chunks/CbINytmr.js.br +0 -0
  262. package/build/client/_app/immutable/chunks/CbINytmr.js.gz +0 -0
  263. package/build/client/_app/immutable/chunks/D868VwmX.js.br +0 -0
  264. package/build/client/_app/immutable/chunks/D868VwmX.js.gz +0 -0
  265. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.br +0 -0
  266. package/build/client/_app/immutable/chunks/DLu6yJIZ.js.gz +0 -0
  267. package/build/client/_app/immutable/chunks/DWmC0QM7.js +0 -1
  268. package/build/client/_app/immutable/chunks/DWmC0QM7.js.br +0 -0
  269. package/build/client/_app/immutable/chunks/DWmC0QM7.js.gz +0 -0
  270. package/build/client/_app/immutable/chunks/Dd1KNHg-.js.br +0 -0
  271. package/build/client/_app/immutable/chunks/Dd1KNHg-.js.gz +0 -0
  272. package/build/client/_app/immutable/chunks/DomZZqvG.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/DomZZqvG.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/V8pbM9cl.js.br +0 -0
  275. package/build/client/_app/immutable/chunks/V8pbM9cl.js.gz +0 -0
  276. package/build/client/_app/immutable/chunks/i5iZvmIH.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/i5iZvmIH.js.gz +0 -0
  278. package/build/client/_app/immutable/entry/app.CiQHPW0j.js +0 -2
  279. package/build/client/_app/immutable/entry/app.CiQHPW0j.js.br +0 -0
  280. package/build/client/_app/immutable/entry/app.CiQHPW0j.js.gz +0 -0
  281. package/build/client/_app/immutable/entry/start.DUCXuMLl.js +0 -1
  282. package/build/client/_app/immutable/entry/start.DUCXuMLl.js.br +0 -2
  283. package/build/client/_app/immutable/entry/start.DUCXuMLl.js.gz +0 -0
  284. package/build/client/_app/immutable/nodes/0.BRFdS_ay.js.br +0 -0
  285. package/build/client/_app/immutable/nodes/0.BRFdS_ay.js.gz +0 -0
  286. package/build/client/_app/immutable/nodes/1.B1pgwYu3.js.br +0 -0
  287. package/build/client/_app/immutable/nodes/1.B1pgwYu3.js.gz +0 -0
  288. package/build/client/_app/immutable/nodes/10.558mUFIl.js.br +0 -0
  289. package/build/client/_app/immutable/nodes/10.558mUFIl.js.gz +0 -0
  290. package/build/client/_app/immutable/nodes/11.CdmPyt4k.js.br +0 -0
  291. package/build/client/_app/immutable/nodes/11.CdmPyt4k.js.gz +0 -0
  292. package/build/client/_app/immutable/nodes/2.1tiK5o4L.js.br +0 -0
  293. package/build/client/_app/immutable/nodes/2.1tiK5o4L.js.gz +0 -0
  294. package/build/client/_app/immutable/nodes/3.DyQTorXE.js.br +0 -0
  295. package/build/client/_app/immutable/nodes/3.DyQTorXE.js.gz +0 -0
  296. package/build/client/_app/immutable/nodes/4.BFYS2g9C.js.br +0 -0
  297. package/build/client/_app/immutable/nodes/4.BFYS2g9C.js.gz +0 -0
  298. package/build/client/_app/immutable/nodes/5.DziEu9rx.js.br +0 -0
  299. package/build/client/_app/immutable/nodes/5.DziEu9rx.js.gz +0 -0
  300. package/build/client/_app/immutable/nodes/6.Chn2ZM2V.js.br +0 -0
  301. package/build/client/_app/immutable/nodes/6.Chn2ZM2V.js.gz +0 -0
  302. package/build/client/_app/immutable/nodes/7.DhJ2K3GQ.js.br +0 -0
  303. package/build/client/_app/immutable/nodes/7.DhJ2K3GQ.js.gz +0 -0
  304. package/build/client/_app/immutable/nodes/8.B4pLxBkI.js.br +0 -0
  305. package/build/client/_app/immutable/nodes/8.B4pLxBkI.js.gz +0 -0
  306. package/build/client/_app/immutable/nodes/9.CVsskPw5.js.br +0 -0
  307. package/build/client/_app/immutable/nodes/9.CVsskPw5.js.gz +0 -0
  308. package/build/server/chunks/1-D2SDQFeq.js +0 -9
  309. package/build/server/chunks/10-CEJDEhpQ.js +0 -9
  310. package/build/server/chunks/11-CMC_i3co.js +0 -9
  311. package/build/server/chunks/6-BcgshtK4.js +0 -9
  312. package/build/server/chunks/7-BBsuxiGz.js +0 -9
  313. package/build/server/chunks/8-B0qM-Zzs.js +0 -9
  314. package/build/server/chunks/9-XIfsp2D_.js +0 -9
  315. package/build/server/chunks/Banner-BgaAs1rs.js.map +0 -1
  316. package/build/server/chunks/Button-D0hZ7JYt.js.map +0 -1
  317. package/build/server/chunks/Icon-D0GBnDcs.js.map +0 -1
  318. package/build/server/chunks/Input-OmIiydSx.js.map +0 -1
  319. package/build/server/chunks/Pill-4xJ-VhAA.js.map +0 -1
  320. package/build/server/chunks/Shimmer-Dw2uvTC1.js.map +0 -1
  321. package/build/server/chunks/_error.svelte-CZnkxeLr.js.map +0 -1
  322. package/build/server/chunks/_layout.svelte-DfgNGGiM.js.map +0 -1
  323. package/build/server/chunks/_page.svelte-8OFzwdNA.js.map +0 -1
  324. package/build/server/chunks/_page.svelte-BTlfUsBp.js.map +0 -1
  325. package/build/server/chunks/_page.svelte-C7B0qdrC.js.map +0 -1
  326. package/build/server/chunks/_page.svelte-CE7COWnF.js.map +0 -1
  327. package/build/server/chunks/_page.svelte-CWsjjd4l.js.map +0 -1
  328. package/build/server/chunks/_page.svelte-D_Ey8QRG.js.map +0 -1
  329. package/build/server/chunks/_page.svelte-Gv9p8nlS.js.map +0 -1
  330. package/build/server/chunks/_page.svelte-dabsQl9c.js.map +0 -1
  331. package/build/server/chunks/_server.ts-05JJOdcX.js.map +0 -1
  332. package/build/server/chunks/cache-BlMaDsHi.js.map +0 -1
  333. package/build/server/chunks/client-Ds1brw-8.js.map +0 -1
  334. package/build/server/chunks/client2-DngLdcUc.js +0 -7
  335. package/build/server/chunks/index-CoD1IJuy.js.map +0 -1
  336. package/build/server/chunks/index-CoYB03g7.js.map +0 -1
  337. package/build/server/chunks/index-server-Bq3cnK69.js.map +0 -1
  338. package/build/server/chunks/index2-dSGQ9Eaa.js.map +0 -1
  339. package/build/server/chunks/root-D4IoFC8F.js.map +0 -1
  340. package/build/server/chunks/state.svelte-CmHqngc_.js.map +0 -1
  341. package/build/server/chunks/stores-CRYxfF0o.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BB46Fbqn.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/autopilot/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { mkdirSync, writeFileSync, existsSync, readFileSync } from \"fs\";\nimport { homedir } from \"os\";\nimport { join } from \"path\";\nconst STATE_FILE = join(homedir(), \".shooter\", \"autopilot.json\");\nfunction control() {\n return globalThis.__shooter_autopilot;\n}\nfunction readFileEnabled() {\n try {\n if (existsSync(STATE_FILE)) {\n const parsed = JSON.parse(readFileSync(STATE_FILE, \"utf-8\"));\n return Boolean(parsed?.enabled);\n }\n } catch {\n }\n return false;\n}\nconst GET = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const ctrl = control();\n return json({ enabled: ctrl ? ctrl.isEnabled() : readFileEnabled(), running: Boolean(ctrl) });\n};\nconst POST = async ({ 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 body\" }, { status: 400 });\n }\n if (typeof body.enabled !== \"boolean\") {\n return json({ error: \"enabled must be a boolean\" }, { status: 400 });\n }\n const ctrl = control();\n if (ctrl) {\n ctrl.setEnabled(body.enabled);\n } else {\n try {\n mkdirSync(join(homedir(), \".shooter\"), { recursive: true });\n writeFileSync(STATE_FILE, JSON.stringify({ enabled: body.enabled }), \"utf-8\");\n } catch {\n }\n }\n return json({ enabled: body.enabled, running: Boolean(ctrl) });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC;AAChE,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,mBAAmB;AACvC;AACA,SAAS,eAAe,GAAG;AAC3B,EAAE,IAAI;AACN,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AAChC,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClE,MAAM,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AACrC,IAAI;AACJ,EAAE,CAAC,CAAC,MAAM;AACV,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACK,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,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/F;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,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,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChE,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AACzC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,EAAE,CAAC,MAAM;AACT,IAAI,IAAI;AACR,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACjE,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;AACnF,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAChE;;;;"}
1
+ {"version":3,"file":"_server.ts-DRRGeb__.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/autopilot/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { mkdirSync, writeFileSync, existsSync, readFileSync } from \"fs\";\nimport { homedir } from \"os\";\nimport { join } from \"path\";\nconst STATE_FILE = join(homedir(), \".shooter\", \"autopilot.json\");\nfunction control() {\n return globalThis.__shooter_autopilot;\n}\nfunction readFileEnabled() {\n try {\n if (existsSync(STATE_FILE)) {\n const parsed = JSON.parse(readFileSync(STATE_FILE, \"utf-8\"));\n return Boolean(parsed?.enabled);\n }\n } catch {\n }\n return false;\n}\nconst GET = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const ctrl = control();\n return json({ enabled: ctrl ? ctrl.isEnabled() : readFileEnabled(), running: Boolean(ctrl) });\n};\nconst POST = async ({ 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 body\" }, { status: 400 });\n }\n if (typeof body.enabled !== \"boolean\") {\n return json({ error: \"enabled must be a boolean\" }, { status: 400 });\n }\n const ctrl = control();\n if (ctrl) {\n ctrl.setEnabled(body.enabled);\n } else {\n try {\n mkdirSync(join(homedir(), \".shooter\"), { recursive: true });\n writeFileSync(STATE_FILE, JSON.stringify({ enabled: body.enabled }), \"utf-8\");\n } catch {\n }\n }\n return json({ enabled: body.enabled, running: Boolean(ctrl) });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,gBAAgB,CAAC;AAChE,SAAS,OAAO,GAAG;AACnB,EAAE,OAAO,UAAU,CAAC,mBAAmB;AACvC;AACA,SAAS,eAAe,GAAG;AAC3B,EAAE,IAAI;AACN,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;AAChC,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAClE,MAAM,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;AACrC,IAAI;AACJ,EAAE,CAAC,CAAC,MAAM;AACV,EAAE;AACF,EAAE,OAAO,KAAK;AACd;AACK,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,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,eAAe,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/F;AACK,MAAC,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK;AACpC,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,mBAAmB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChE,EAAE;AACF,EAAE,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;AACzC,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,OAAO,EAAE;AACxB,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,EAAE,CAAC,MAAM;AACT,IAAI,IAAI;AACR,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACjE,MAAM,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;AACnF,IAAI,CAAC,CAAC,MAAM;AACZ,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAChE;;;;"}
@@ -2,7 +2,7 @@ import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { P as PROVIDER_COMMANDS } from './registry-D4J_CuzW.js';
3
3
  import { p as ptyManager } from './pty-manager-BsHXoNks.js';
4
4
  import { t as toErrorMessage } from './error-DDXB3duW.js';
5
- import { j as json } from './index-CoD1IJuy.js';
5
+ import { j as json } from './index-lhTMmBNn.js';
6
6
  import { realpathSync, statSync } from 'fs';
7
7
  import { relative, isAbsolute } from 'path';
8
8
  import './shared-server-DaWdgxVh.js';
@@ -140,4 +140,4 @@ const POST = async ({ request }) => {
140
140
  };
141
141
 
142
142
  export { GET, POST };
143
- //# sourceMappingURL=_server.ts-CTdFxJdD.js.map
143
+ //# sourceMappingURL=_server.ts-DaA9ZSqv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CTdFxJdD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { P as PROVIDER_COMMANDS } from \"../../../../chunks/registry.js\";\nimport { p as ptyManager } from \"../../../../chunks/pty-manager.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { realpathSync, statSync } from \"fs\";\nimport { relative, isAbsolute } from \"path\";\nconst ALLOWED_COMMANDS = [\"zsh\", \"bash\", \"sh\", \"fish\", ...PROVIDER_COMMANDS];\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 = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n try {\n const terminals = ptyManager.list().map((t) => ({\n args: t.args,\n clientCount: t.clients.size,\n command: t.command,\n createdAt: t.createdAt.toISOString(),\n currentCwd: t.currentCwd,\n cwd: t.cwd,\n exitCode: t.exitCode,\n exitedAt: t.exitedAt?.toISOString() ?? null,\n id: t.id,\n isActive: t.isActive,\n lastOutput: lastScrollbackLine(t.scrollback),\n pid: t.pid,\n status: t.status\n }));\n return json({\n count: terminals.length,\n terminals,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[terminals] Failed to list terminals:\", toErrorMessage(error));\n return json({ error: \"Failed to list terminals\" }, { status: 500 });\n }\n};\nconst POST = async ({ 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 { args, cols, command, cwd, rows } = body;\n if (!command) {\n return json({ error: \"command is required\" }, { status: 400 });\n }\n if (command.includes(\"/\") || command.includes(\"\\\\\") || !ALLOWED_COMMANDS.includes(command)) {\n return json(\n { error: `Command not allowed. Allowed: ${ALLOWED_COMMANDS.join(\", \")}` },\n { status: 400 }\n );\n }\n if (!cwd) {\n return json({ error: \"cwd is required\" }, { status: 400 });\n }\n let realCwd;\n try {\n realCwd = realpathSync(cwd);\n if (!statSync(realCwd).isDirectory()) {\n return json({ error: \"cwd must be a directory\" }, { status: 400 });\n }\n } catch {\n return json({ error: \"cwd must be a directory\" }, { status: 400 });\n }\n const home = process.env.HOME || \"\";\n if (home) {\n const rel = relative(home, realCwd);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) {\n return json({ error: \"Working directory must be under home directory\" }, { status: 400 });\n }\n }\n if (args !== void 0 && !Array.isArray(args)) {\n return json({ error: \"args must be an array of strings\" }, { status: 400 });\n }\n if (args && !args.every((a) => typeof a === \"string\")) {\n return json({ error: \"All args must be strings\" }, { status: 400 });\n }\n if (cols !== void 0 && (typeof cols !== \"number\" || cols < 1)) {\n return json({ error: \"cols must be a positive number\" }, { status: 400 });\n }\n if (rows !== void 0 && (typeof rows !== \"number\" || rows < 1)) {\n return json({ error: \"rows must be a positive number\" }, { status: 400 });\n }\n const terminal = await ptyManager.create(command, args ?? [], realCwd, cols ?? 80, rows ?? 24);\n console.log(\n `[terminals] Created terminal ${terminal.id} (pid=${terminal.pid}, command=${command})`\n );\n return json(\n {\n command: terminal.command,\n createdAt: terminal.createdAt instanceof Date ? terminal.createdAt.toISOString() : terminal.createdAt,\n cwd: terminal.cwd,\n id: terminal.id,\n pid: terminal.pid,\n sessionWs: `/ws/session/${terminal.id}`,\n ws: `/ws/terminal/${terminal.id}`\n },\n { status: 201 }\n );\n } catch (error) {\n console.error(\"[terminals] Failed to create terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to create terminal\" }, { status: 500 });\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-DaA9ZSqv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/terminals/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { P as PROVIDER_COMMANDS } from \"../../../../chunks/registry.js\";\nimport { p as ptyManager } from \"../../../../chunks/pty-manager.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport { realpathSync, statSync } from \"fs\";\nimport { relative, isAbsolute } from \"path\";\nconst ALLOWED_COMMANDS = [\"zsh\", \"bash\", \"sh\", \"fish\", ...PROVIDER_COMMANDS];\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 = ({ request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n try {\n const terminals = ptyManager.list().map((t) => ({\n args: t.args,\n clientCount: t.clients.size,\n command: t.command,\n createdAt: t.createdAt.toISOString(),\n currentCwd: t.currentCwd,\n cwd: t.cwd,\n exitCode: t.exitCode,\n exitedAt: t.exitedAt?.toISOString() ?? null,\n id: t.id,\n isActive: t.isActive,\n lastOutput: lastScrollbackLine(t.scrollback),\n pid: t.pid,\n status: t.status\n }));\n return json({\n count: terminals.length,\n terminals,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (error) {\n console.error(\"[terminals] Failed to list terminals:\", toErrorMessage(error));\n return json({ error: \"Failed to list terminals\" }, { status: 500 });\n }\n};\nconst POST = async ({ 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 { args, cols, command, cwd, rows } = body;\n if (!command) {\n return json({ error: \"command is required\" }, { status: 400 });\n }\n if (command.includes(\"/\") || command.includes(\"\\\\\") || !ALLOWED_COMMANDS.includes(command)) {\n return json(\n { error: `Command not allowed. Allowed: ${ALLOWED_COMMANDS.join(\", \")}` },\n { status: 400 }\n );\n }\n if (!cwd) {\n return json({ error: \"cwd is required\" }, { status: 400 });\n }\n let realCwd;\n try {\n realCwd = realpathSync(cwd);\n if (!statSync(realCwd).isDirectory()) {\n return json({ error: \"cwd must be a directory\" }, { status: 400 });\n }\n } catch {\n return json({ error: \"cwd must be a directory\" }, { status: 400 });\n }\n const home = process.env.HOME || \"\";\n if (home) {\n const rel = relative(home, realCwd);\n if (rel.startsWith(\"..\") || isAbsolute(rel)) {\n return json({ error: \"Working directory must be under home directory\" }, { status: 400 });\n }\n }\n if (args !== void 0 && !Array.isArray(args)) {\n return json({ error: \"args must be an array of strings\" }, { status: 400 });\n }\n if (args && !args.every((a) => typeof a === \"string\")) {\n return json({ error: \"All args must be strings\" }, { status: 400 });\n }\n if (cols !== void 0 && (typeof cols !== \"number\" || cols < 1)) {\n return json({ error: \"cols must be a positive number\" }, { status: 400 });\n }\n if (rows !== void 0 && (typeof rows !== \"number\" || rows < 1)) {\n return json({ error: \"rows must be a positive number\" }, { status: 400 });\n }\n const terminal = await ptyManager.create(command, args ?? [], realCwd, cols ?? 80, rows ?? 24);\n console.log(\n `[terminals] Created terminal ${terminal.id} (pid=${terminal.pid}, command=${command})`\n );\n return json(\n {\n command: terminal.command,\n createdAt: terminal.createdAt instanceof Date ? terminal.createdAt.toISOString() : terminal.createdAt,\n cwd: terminal.cwd,\n id: terminal.id,\n pid: terminal.pid,\n sessionWs: `/ws/session/${terminal.id}`,\n ws: `/ws/terminal/${terminal.id}`\n },\n { status: 201 }\n );\n } catch (error) {\n console.error(\"[terminals] Failed to create terminal:\", toErrorMessage(error));\n return json({ error: \"Failed to create terminal\" }, { status: 500 });\n }\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { b as private_env } from './shared-server-DaWdgxVh.js';
2
+ import { existsSync, readFileSync } from 'fs';
3
+ import { homedir } from 'os';
4
+ import { join } from 'path';
2
5
  import { L as LibraryAPNsService } from './library-apns-D8RPINlv.js';
3
6
  import { c as createPendingRequest } from './pending-requests-8rWjrF6d.js';
4
7
  import { v as validateAuth } from './auth-DuunT7Cg.js';
5
8
  import admin from 'firebase-admin';
6
9
  import { t as toErrorMessage } from './error-DDXB3duW.js';
7
10
  import { b as broadcastEvent } from './guest-registry-Dxvd7p-g.js';
8
- import { existsSync, readFileSync } from 'fs';
9
- import { join } from 'path';
10
- import { homedir } from 'os';
11
11
  import './super-session-handler-DPyxFgmz.js';
12
- import { j as json } from './index-CoD1IJuy.js';
12
+ import { j as json } from './index-lhTMmBNn.js';
13
13
  import 'child_process';
14
14
  import 'jsonwebtoken';
15
15
  import 'util';
@@ -20,6 +20,28 @@ import './registry-D4J_CuzW.js';
20
20
  import './qwen-reader-DGfUbKaJ.js';
21
21
  import './coordinator-DMU_ADXf.js';
22
22
 
23
+ const normalize = (value) => {
24
+ const trimmed = value?.trim();
25
+ return trimmed ? trimmed : void 0;
26
+ };
27
+ function readPersistedDeviceToken(platform) {
28
+ const tokensFile = join(homedir(), ".shooter", "device-tokens.json");
29
+ if (!existsSync(tokensFile)) {
30
+ return void 0;
31
+ }
32
+ try {
33
+ const parsed = JSON.parse(readFileSync(tokensFile, "utf-8"));
34
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
35
+ const value = parsed[platform];
36
+ return typeof value === "string" && value ? value : void 0;
37
+ }
38
+ } catch {
39
+ }
40
+ return void 0;
41
+ }
42
+ function resolveDeviceToken(requestToken, persistedToken, envToken) {
43
+ return normalize(requestToken) ?? normalize(persistedToken) ?? normalize(envToken);
44
+ }
23
45
  const MAX_HISTORY = 100;
24
46
  const history = [];
25
47
  function addNotification(record) {
@@ -84,21 +106,6 @@ function getApp() {
84
106
  }
85
107
  return app;
86
108
  }
87
- function readPersistedDeviceToken(platform) {
88
- const tokensFile = join(homedir(), ".shooter", "device-tokens.json");
89
- if (!existsSync(tokensFile)) {
90
- return void 0;
91
- }
92
- try {
93
- const parsed = JSON.parse(readFileSync(tokensFile, "utf-8"));
94
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
95
- const value = parsed[platform];
96
- return typeof value === "string" && value ? value : void 0;
97
- }
98
- } catch {
99
- }
100
- return void 0;
101
- }
102
109
  let apnsSingleton = null;
103
110
  function getAPNsClient() {
104
111
  if (!apnsSingleton) {
@@ -376,7 +383,11 @@ const POST = async ({ request }) => {
376
383
  { status: 500 }
377
384
  );
378
385
  }
379
- const androidToken = requestDeviceToken?.trim() || private_env.ANDROID_DEVICE_TOKEN?.trim() || readPersistedDeviceToken("android");
386
+ const androidToken = resolveDeviceToken(
387
+ requestDeviceToken,
388
+ readPersistedDeviceToken("android"),
389
+ private_env.ANDROID_DEVICE_TOKEN
390
+ );
380
391
  if (!androidToken) {
381
392
  return json(
382
393
  {
@@ -440,11 +451,15 @@ const POST = async ({ request }) => {
440
451
  { status: 500 }
441
452
  );
442
453
  }
443
- const deviceToken = requestDeviceToken?.trim() || private_env.DEVICE_TOKEN?.trim();
454
+ const deviceToken = resolveDeviceToken(
455
+ requestDeviceToken,
456
+ readPersistedDeviceToken("ios"),
457
+ private_env.DEVICE_TOKEN
458
+ );
444
459
  if (!deviceToken) {
445
460
  return json(
446
461
  {
447
- details: "DEVICE_TOKEN environment variable is missing and no deviceToken in request body",
462
+ details: "No iOS device token available pass deviceToken in the request body, ensure ~/.shooter/device-tokens.json contains an ios token, or set DEVICE_TOKEN.",
448
463
  error: "No device token configured"
449
464
  },
450
465
  { status: 500 }
@@ -516,4 +531,4 @@ const GET = ({ request, url }) => {
516
531
  };
517
532
 
518
533
  export { GET, POST };
519
- //# sourceMappingURL=_server.ts-05JJOdcX.js.map
534
+ //# sourceMappingURL=_server.ts-DfscXcFe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-DfscXcFe.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/notify/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { existsSync, readFileSync } from \"fs\";\nimport { homedir } from \"os\";\nimport { join } from \"path\";\nimport { L as LibraryAPNsService } from \"../../../../chunks/library-apns.js\";\nimport { c as createPendingRequest } from \"../../../../chunks/pending-requests.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport admin from \"firebase-admin\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport { b as broadcastEvent } from \"../../../../chunks/guest-registry.js\";\nimport \"../../../../chunks/super-session-handler.js\";\nimport { json } from \"@sveltejs/kit\";\nconst normalize = (value) => {\n const trimmed = value?.trim();\n return trimmed ? trimmed : void 0;\n};\nfunction readPersistedDeviceToken(platform) {\n const tokensFile = join(homedir(), \".shooter\", \"device-tokens.json\");\n if (!existsSync(tokensFile)) {\n return void 0;\n }\n try {\n const parsed = JSON.parse(readFileSync(tokensFile, \"utf-8\"));\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n const value = parsed[platform];\n return typeof value === \"string\" && value ? value : void 0;\n }\n } catch {\n }\n return void 0;\n}\nfunction resolveDeviceToken(requestToken, persistedToken, envToken) {\n return normalize(requestToken) ?? normalize(persistedToken) ?? normalize(envToken);\n}\nconst MAX_HISTORY = 100;\nconst history = [];\nfunction addNotification(record) {\n history.unshift(record);\n if (history.length > MAX_HISTORY) {\n history.length = MAX_HISTORY;\n }\n}\nfunction getNotifications(limit = 50) {\n return history.slice(0, limit);\n}\nlet app = null;\nfunction isFCMConfigured() {\n return !!(process.env.FCM_PROJECT_ID && process.env.FCM_CLIENT_EMAIL && process.env.FCM_PRIVATE_KEY);\n}\nasync function sendFCMNotification(deviceToken, payload) {\n try {\n const fcmApp = getApp();\n const message = {\n android: {\n priority: \"high\",\n // Ensures delivery even in Doze mode\n ttl: 3e5\n // 5 minutes TTL (matches pending request expiry)\n },\n data: {\n body: payload.body || payload.message || \"\",\n category: payload.category ?? (typeof payload.data?.category === \"string\" ? payload.data.category : \"\"),\n project: typeof payload.data?.project === \"string\" ? payload.data.project : \"\",\n requestId: typeof payload.data?.requestId === \"string\" ? payload.data.requestId : \"\",\n source: typeof payload.data?.source === \"string\" ? payload.data.source : \"\",\n subtitle: payload.subtitle ?? \"\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n title: payload.title,\n toolInput: payload.data?.toolInput ? JSON.stringify(payload.data.toolInput) : \"\",\n toolName: typeof payload.data?.toolName === \"string\" ? payload.data.toolName : \"\",\n type: typeof payload.data?.type === \"string\" ? payload.data.type : \"\"\n },\n token: deviceToken\n };\n const messageId = await admin.messaging(fcmApp).send(message);\n return { messageId, success: true };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n console.error(\"[FCM] Send failed:\", errorMessage);\n return { error: errorMessage, success: false };\n }\n}\nfunction getApp() {\n if (!app) {\n const projectId = process.env.FCM_PROJECT_ID;\n const clientEmail = process.env.FCM_CLIENT_EMAIL;\n const privateKey = process.env.FCM_PRIVATE_KEY?.replace(/\\\\n/g, \"\\n\");\n if (!projectId || !clientEmail || !privateKey) {\n throw new Error(\n \"FCM not configured: missing FCM_PROJECT_ID, FCM_CLIENT_EMAIL, or FCM_PRIVATE_KEY\"\n );\n }\n app = admin.initializeApp({\n credential: admin.credential.cert({ clientEmail, privateKey, projectId })\n });\n }\n return app;\n}\nlet apnsSingleton = null;\nfunction getAPNsClient() {\n if (!apnsSingleton) {\n apnsSingleton = new LibraryAPNsService();\n }\n return apnsSingleton;\n}\nconst notificationCache = /* @__PURE__ */ new Map();\nconst DEDUP_WINDOW = 1e4;\nfunction broadcastHookEvent(body) {\n const data = body.data ?? {};\n const eventType = typeof data.eventType === \"string\" ? data.eventType : typeof body.eventType === \"string\" ? body.eventType : \"\";\n const tool = typeof data.tool === \"string\" ? data.tool : \"\";\n const terminalId = typeof data.terminalId === \"string\" ? data.terminalId : void 0;\n const sessionId = typeof data.sessionId === \"string\" ? data.sessionId : void 0;\n switch (eventType) {\n case \"error\":\n broadcastEvent({\n error: typeof data.error === \"string\" ? data.error : typeof data.message === \"string\" ? data.message : \"Unknown error\",\n terminalId,\n tool,\n type: \"tool-failed\"\n });\n break;\n case \"idle_input\":\n case \"session.idle\":\n broadcastEvent({\n message: typeof data.message === \"string\" ? data.message : \"\",\n sessionId,\n terminalId,\n type: \"agent-idle\"\n });\n break;\n case \"permission\":\n case \"permission_notification\":\n if (data.requestId && data.toolName) {\n broadcastEvent({\n input: typeof data.toolInput === \"object\" && data.toolInput !== null ? data.toolInput : {},\n requestId: data.requestId,\n tool: data.toolName,\n type: \"permission-requested\"\n });\n }\n break;\n case \"question\":\n broadcastEvent({\n message: typeof data.message === \"string\" ? data.message : \"\",\n sessionId,\n terminalId,\n type: \"agent-question\"\n });\n break;\n case \"tool.after\":\n broadcastEvent({ success: true, terminalId, tool, type: \"tool-completed\" });\n break;\n case \"tool.before\":\n broadcastEvent({\n command: typeof data.command === \"string\" ? data.command : \"\",\n filePath: typeof data.filePath === \"string\" ? data.filePath : typeof data.files === \"string\" ? data.files : \"\",\n terminalId,\n tool,\n type: \"tool-started\"\n });\n break;\n }\n}\nfunction buildNotificationRecord(id, title, message, status, data, error) {\n return {\n category: data?.category ?? null,\n data: data ?? null,\n error: error ?? null,\n id,\n message,\n project: data?.project ?? null,\n source: data?.source ?? null,\n status,\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n title,\n tool: data?.tool ?? null\n };\n}\nfunction intelligentNotificationFilter(title, message, data, waitForResponse = false) {\n const source = data?.source || \"unknown\";\n if (isDuplicateNotification(title, message, data, waitForResponse)) {\n return {\n reason: \"Duplicate notification within 10-second window\",\n send: false\n };\n }\n if (source === \"smart-completion-detector\" || source === \"shooter-completion-detector\") {\n return {\n reason: \"Smart completion detector - completion or intervention needed\",\n send: true\n };\n }\n const spamPatterns = [\n /PreToolUse/i,\n // Any PreToolUse notifications\n /PostToolUse/i,\n // Any PostToolUse notifications\n /^(Read|Write|Edit|Bash)\\s+Starting\\s*\\|\\s*\\w+$/i,\n // Only basic tool starting patterns\n /^unknown\\s*\\|\\s*\\w+$/i\n // Only \"unknown | projectname\" exactly\n ];\n const isSpam = spamPatterns.some((pattern) => pattern.test(title) || pattern.test(message));\n if (isSpam) {\n return {\n reason: \"Filtered spam notification from old hook system\",\n send: false\n };\n }\n const importantPatterns = [\n /session complete/i,\n /intervention needed/i,\n /error/i,\n /failed/i,\n /blocked/i,\n /attention/i\n ];\n const isImportant = importantPatterns.some(\n (pattern) => pattern.test(title) || pattern.test(message)\n );\n if (isImportant) {\n return {\n reason: \"Important notification - completion or intervention\",\n send: true\n };\n }\n return {\n reason: \"General notification - allowing by default\",\n send: true\n };\n}\nfunction isDuplicateNotification(title, message, data, waitForResponse = false) {\n if (waitForResponse) {\n return false;\n }\n const dataRecord = data;\n const key = dataRecord?.dedupKey ? dataRecord.dedupKey : `${title}|${message}|${data?.category || \"unknown\"}`;\n const now = Date.now();\n if (notificationCache.has(key)) {\n const lastSent = notificationCache.get(key) ?? 0;\n if (now - lastSent < DEDUP_WINDOW) {\n return true;\n }\n }\n for (const [k, v] of notificationCache.entries()) {\n if (now - v > DEDUP_WINDOW) {\n notificationCache.delete(k);\n }\n }\n notificationCache.set(key, now);\n return false;\n}\nfunction notificationKey(title, message, data) {\n const dataRecord = data;\n return dataRecord?.dedupKey ?? `${title}|${message}|${data?.category || \"unknown\"}`;\n}\nfunction recordNotification(title, message, data) {\n notificationCache.set(notificationKey(title, message, data), Date.now());\n}\nfunction releaseNotification(title, message, data) {\n notificationCache.delete(notificationKey(title, message, data));\n}\nconst POST = async ({ request }) => {\n try {\n const apnsClient = getAPNsClient();\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const rawBody = await request.json();\n if (!rawBody || typeof rawBody !== \"object\" || Array.isArray(rawBody)) {\n return json({ error: \"Request body must be a JSON object\" }, { status: 400 });\n }\n const body = rawBody;\n const data = body.data;\n const requestDeviceToken = body.deviceToken;\n const message = body.message;\n const title = body.title;\n const subtitle = typeof body.subtitle === \"string\" ? body.subtitle : void 0;\n const skipPush = typeof body.skipPush === \"boolean\" ? body.skipPush : false;\n const waitForResponse = typeof body.waitForResponse === \"boolean\" ? body.waitForResponse : false;\n const forcePush = typeof body.forcePush === \"boolean\" ? body.forcePush : false;\n const notificationCategory = typeof body.notificationCategory === \"string\" && body.notificationCategory.length > 0 ? body.notificationCategory : void 0;\n const question = typeof body.question === \"string\" ? body.question : void 0;\n const options = Array.isArray(body.options) && body.options.every((o) => o && typeof o === \"object\") ? body.options : void 0;\n const responseKindRaw = body.responseKind;\n const responseKind = responseKindRaw === \"hook\" || responseKindRaw === \"pty\" || responseKindRaw === \"info\" ? responseKindRaw : void 0;\n try {\n broadcastHookEvent(body);\n } catch {\n }\n if (!title || typeof title !== \"string\" || !message || typeof message !== \"string\") {\n return json({ error: \"Title and message are required and must be strings\" }, { status: 400 });\n }\n if (requestDeviceToken !== void 0 && typeof requestDeviceToken !== \"string\") {\n return json({ error: \"deviceToken must be a string\" }, { status: 400 });\n }\n const requestId = Math.random().toString(36).substring(2, 15);\n const dataRequestId = typeof data?.requestId === \"string\" ? data.requestId : void 0;\n const canonicalRequestId = dataRequestId || requestId;\n const shouldSendNotification = intelligentNotificationFilter(\n title,\n message,\n data,\n waitForResponse\n );\n if (!shouldSendNotification.send) {\n addNotification(\n buildNotificationRecord(\n canonicalRequestId,\n title,\n message,\n \"filtered\",\n data,\n shouldSendNotification.reason\n )\n );\n return json({\n message: \"Notification filtered (not sent)\",\n reason: shouldSendNotification.reason,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n if (skipPush && !forcePush) {\n if (waitForResponse) {\n createPendingRequest(canonicalRequestId, {\n options,\n question: question ?? null,\n responseKind: responseKind ?? \"hook\",\n sessionId: data?.sessionId || \"\",\n toolInput: data?.toolInput || {},\n toolName: data?.toolName || \"\"\n });\n }\n addNotification(buildNotificationRecord(canonicalRequestId, title, message, \"skipped\", data));\n return json({\n message: \"Push skipped (WebSocket clients connected)\",\n requestId: canonicalRequestId,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n }\n const payload = {\n badge: 1,\n body: message,\n // notificationCategory wins when explicitly set so plan-mode /\n // elicitation flows can pick CLAUDE_PLAN_APPROVAL / CHOICE_2..4.\n // Falls back to CLAUDE_PERMISSION for the legacy bidirectional\n // permission flow when only waitForResponse is provided.\n category: notificationCategory ?? (waitForResponse ? \"CLAUDE_PERMISSION\" : void 0),\n data: {\n ...data,\n requestId: canonicalRequestId,\n source: \"modern-apns-api\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString(),\n waitForResponse: waitForResponse || false\n },\n message: null,\n sound: \"default\",\n ...subtitle ? { subtitle } : {},\n title\n };\n const platform = private_env.DEVICE_PLATFORM || \"ios\";\n if (platform === \"android\") {\n if (!isFCMConfigured()) {\n return json(\n {\n details: \"Missing FCM_PROJECT_ID, FCM_CLIENT_EMAIL, or FCM_PRIVATE_KEY environment variables\",\n error: \"FCM not configured\"\n },\n { status: 500 }\n );\n }\n const androidToken = resolveDeviceToken(\n requestDeviceToken,\n readPersistedDeviceToken(\"android\"),\n private_env.ANDROID_DEVICE_TOKEN\n );\n if (!androidToken) {\n return json(\n {\n details: \"No Android device token available — set ANDROID_DEVICE_TOKEN, pass deviceToken in the request body, or open the Android app so it can auto-register its FCM token.\",\n error: \"No device token configured\"\n },\n { status: 500 }\n );\n }\n const fcmResult = await sendFCMNotification(androidToken, payload);\n if (fcmResult.success) {\n recordNotification(title, message, data);\n if (waitForResponse) {\n createPendingRequest(canonicalRequestId, {\n options,\n question: question ?? null,\n responseKind: responseKind ?? \"hook\",\n sessionId: data?.sessionId || \"\",\n toolInput: data?.toolInput || {},\n toolName: data?.toolName || \"\"\n });\n }\n addNotification(buildNotificationRecord(canonicalRequestId, title, message, \"sent\", data));\n return json({\n message: \"Notification sent successfully\",\n requestId: canonicalRequestId,\n result: { messageId: fcmResult.messageId },\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } else {\n console.error(`[notify] FCM delivery failed: ${fcmResult.error}`);\n releaseNotification(title, message, data);\n addNotification(\n buildNotificationRecord(\n canonicalRequestId,\n title,\n message,\n \"failed\",\n data,\n fcmResult.error\n )\n );\n return json(\n {\n details: fcmResult.error,\n error: \"Failed to send notification\",\n requestId: canonicalRequestId,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n },\n { status: 500 }\n );\n }\n } else {\n if (!apnsClient.isConfigured()) {\n return json(\n {\n details: \"Missing APNS_KEY, APNS_KEY_ID, or APNS_TEAM_ID environment variables\",\n error: \"APNs client not configured\"\n },\n { status: 500 }\n );\n }\n const deviceToken = resolveDeviceToken(\n requestDeviceToken,\n readPersistedDeviceToken(\"ios\"),\n private_env.DEVICE_TOKEN\n );\n if (!deviceToken) {\n return json(\n {\n details: \"No iOS device token available — pass deviceToken in the request body, ensure ~/.shooter/device-tokens.json contains an ios token, or set DEVICE_TOKEN.\",\n error: \"No device token configured\"\n },\n { status: 500 }\n );\n }\n try {\n const result = await apnsClient.sendNotification(deviceToken, payload);\n recordNotification(title, message, data);\n if (waitForResponse) {\n createPendingRequest(canonicalRequestId, {\n options,\n question: question ?? null,\n responseKind: responseKind ?? \"hook\",\n sessionId: data?.sessionId || \"\",\n toolInput: data?.toolInput || {},\n toolName: data?.toolName || \"\"\n });\n }\n addNotification(buildNotificationRecord(canonicalRequestId, title, message, \"sent\", data));\n return json({\n message: \"Notification sent successfully\",\n requestId: canonicalRequestId,\n result,\n success: true,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n } catch (notificationError) {\n const notifErrMsg = toErrorMessage(notificationError);\n console.error(`[notify] APNs delivery failed: ${notifErrMsg}`);\n releaseNotification(title, message, data);\n addNotification(\n buildNotificationRecord(canonicalRequestId, title, message, \"failed\", data, notifErrMsg)\n );\n return json(\n {\n details: notifErrMsg,\n error: \"Failed to send notification\",\n requestId: canonicalRequestId,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n },\n { status: 500 }\n );\n }\n }\n } catch (error) {\n console.error(\"Notification error:\", error);\n return json(\n {\n details: toErrorMessage(error),\n error: \"Failed to send notification\",\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n },\n { status: 500 }\n );\n }\n};\nconst GET = ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const limit = parseInt(url.searchParams.get(\"limit\") || \"50\");\n const notifications = getNotifications(limit);\n return json({\n count: notifications.length,\n notifications,\n timestamp: (/* @__PURE__ */ new Date()).toISOString()\n });\n};\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { s as sosCoordinator } from './coordinator-DMU_ADXf.js';
3
- import { j as json } from './index-CoD1IJuy.js';
3
+ import { j as json } from './index-lhTMmBNn.js';
4
4
  import './shared-server-DaWdgxVh.js';
5
5
  import 'crypto';
6
6
  import 'better-sqlite3';
@@ -20,4 +20,4 @@ const DELETE = ({ params, request }) => {
20
20
  };
21
21
 
22
22
  export { DELETE };
23
- //# sourceMappingURL=_server.ts-CVPZOpiv.js.map
23
+ //# sourceMappingURL=_server.ts-DlGrc8cE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CVPZOpiv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/members/_mid_/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../../../chunks/coordinator.js\";\nimport { json } from \"@sveltejs/kit\";\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n if (!sosCoordinator.removeMember(params.id ?? \"\", params.mid ?? \"\")) {\n return json({ error: \"Super-session or member not found\" }, { status: 404 });\n }\n return json({ removed: true });\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;AAGK,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,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;AACvE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChF,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"_server.ts-DlGrc8cE.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/members/_mid_/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../../../chunks/coordinator.js\";\nimport { json } from \"@sveltejs/kit\";\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n if (!sosCoordinator.removeMember(params.id ?? \"\", params.mid ?? \"\")) {\n return json({ error: \"Super-session or member not found\" }, { status: 404 });\n }\n return json({ removed: true });\n};\nexport {\n DELETE\n};\n"],"names":[],"mappings":";;;;;;;;;;AAGK,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,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;AACvE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAChF,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { s as sosCoordinator } from './coordinator-DMU_ADXf.js';
3
- import { j as json } from './index-CoD1IJuy.js';
3
+ import { j as json } from './index-lhTMmBNn.js';
4
4
  import './shared-server-DaWdgxVh.js';
5
5
  import 'crypto';
6
6
  import 'better-sqlite3';
@@ -54,4 +54,4 @@ const DELETE = ({ params, request }) => {
54
54
  };
55
55
 
56
56
  export { DELETE, GET, PATCH };
57
- //# sourceMappingURL=_server.ts-C0317RBD.js.map
57
+ //# sourceMappingURL=_server.ts-DuAA6Ks-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C0317RBD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../chunks/coordinator.js\";\nimport { json } from \"@sveltejs/kit\";\nconst GET = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const session = sosCoordinator.getSuperSession(params.id ?? \"\");\n if (!session) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json(session);\n};\nconst PATCH = 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 if (typeof body !== \"object\" || body === null) {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const payload = body;\n if (payload.status !== \"active\" && payload.status !== \"paused\" && payload.status !== \"archived\") {\n return json({ error: \"status must be active | paused | archived\" }, { status: 400 });\n }\n if (!sosCoordinator.setStatus(params.id ?? \"\", payload.status)) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json({ id: params.id, status: payload.status });\n};\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n if (!sosCoordinator.deleteSuperSession(params.id ?? \"\")) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json({ deleted: true });\n};\nexport {\n DELETE,\n GET,\n PATCH\n};\n"],"names":[],"mappings":";;;;;;;;;;AAGK,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,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;AACjE,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB;AACK,MAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC7C,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,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,IAAI;AACtB,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACnG,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2CAA2C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxF,EAAE;AACF,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;AAClE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACxD;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,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AAC3D,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
1
+ {"version":3,"file":"_server.ts-DuAA6Ks-.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../chunks/coordinator.js\";\nimport { json } from \"@sveltejs/kit\";\nconst GET = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const session = sosCoordinator.getSuperSession(params.id ?? \"\");\n if (!session) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json(session);\n};\nconst PATCH = 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 if (typeof body !== \"object\" || body === null) {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const payload = body;\n if (payload.status !== \"active\" && payload.status !== \"paused\" && payload.status !== \"archived\") {\n return json({ error: \"status must be active | paused | archived\" }, { status: 400 });\n }\n if (!sosCoordinator.setStatus(params.id ?? \"\", payload.status)) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json({ id: params.id, status: payload.status });\n};\nconst DELETE = ({ params, request }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n if (!sosCoordinator.deleteSuperSession(params.id ?? \"\")) {\n return json({ error: \"Super-session not found\" }, { status: 404 });\n }\n return json({ deleted: true });\n};\nexport {\n DELETE,\n GET,\n PATCH\n};\n"],"names":[],"mappings":";;;;;;;;;;AAGK,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,MAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;AACjE,EAAE,IAAI,CAAC,OAAO,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB;AACK,MAAC,KAAK,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC7C,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,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,IAAI;AACtB,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACnG,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2CAA2C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxF,EAAE;AACF,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;AAClE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AACxD;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,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;AAC3D,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACtE,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { b as private_env } from './shared-server-DaWdgxVh.js';
2
2
  import { L as LibraryAPNsService } from './library-apns-D8RPINlv.js';
3
3
  import { v as validateAuth } from './auth-DuunT7Cg.js';
4
- import { j as json } from './index-CoD1IJuy.js';
4
+ import { j as json } from './index-lhTMmBNn.js';
5
5
  import 'child_process';
6
6
  import 'jsonwebtoken';
7
7
  import 'util';
@@ -36,4 +36,4 @@ const GET = ({ request }) => {
36
36
  };
37
37
 
38
38
  export { GET };
39
- //# sourceMappingURL=_server.ts-BTmknWpO.js.map
39
+ //# sourceMappingURL=_server.ts-EJVmhLtg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BTmknWpO.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-EJVmhLtg.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,6 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { s as sosCoordinator } from './coordinator-DMU_ADXf.js';
3
- import { j as json } from './index-CoD1IJuy.js';
3
+ import { j as json } from './index-lhTMmBNn.js';
4
4
  import './shared-server-DaWdgxVh.js';
5
5
  import 'crypto';
6
6
  import 'better-sqlite3';
@@ -42,4 +42,4 @@ const POST = async ({ params, request }) => {
42
42
  };
43
43
 
44
44
  export { POST };
45
- //# sourceMappingURL=_server.ts-jtqWDWcf.js.map
45
+ //# sourceMappingURL=_server.ts-NVx03KEN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-jtqWDWcf.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/inject/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../../chunks/coordinator.js\";\nimport { json } from \"@sveltejs/kit\";\nconst MAX_RELAY_TEXT = 10240;\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 if (typeof body !== \"object\" || body === null) {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const payload = body;\n if (typeof payload.toMemberId !== \"string\" || payload.toMemberId.length === 0) {\n return json({ error: \"toMemberId is required (string)\" }, { status: 400 });\n }\n if (typeof payload.text !== \"string\" || payload.text.length === 0) {\n return json({ error: \"text is required (string)\" }, { status: 400 });\n }\n if (Buffer.byteLength(payload.text, \"utf8\") > MAX_RELAY_TEXT) {\n return json({ error: `text exceeds ${MAX_RELAY_TEXT} bytes` }, { status: 413 });\n }\n const error = sosCoordinator.relayForward(params.id ?? \"\", payload.toMemberId, payload.text);\n if (error) {\n const status = error.includes(\"not found\") ? 404 : 400;\n return json({ error }, { status });\n }\n return json({ ok: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;AAGA,MAAM,cAAc,GAAG,KAAK;AACvB,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,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,IAAI;AACtB,EAAE,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9E,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE;AACF,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,cAAc,EAAE;AAChE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnF,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC;AAC9F,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG;AAC1D,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACtC,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;"}
1
+ {"version":3,"file":"_server.ts-NVx03KEN.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sos/_id_/inject/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../../../chunks/auth.js\";\nimport { s as sosCoordinator } from \"../../../../../../chunks/coordinator.js\";\nimport { json } from \"@sveltejs/kit\";\nconst MAX_RELAY_TEXT = 10240;\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 if (typeof body !== \"object\" || body === null) {\n return json({ error: \"Invalid JSON in request body\" }, { status: 400 });\n }\n const payload = body;\n if (typeof payload.toMemberId !== \"string\" || payload.toMemberId.length === 0) {\n return json({ error: \"toMemberId is required (string)\" }, { status: 400 });\n }\n if (typeof payload.text !== \"string\" || payload.text.length === 0) {\n return json({ error: \"text is required (string)\" }, { status: 400 });\n }\n if (Buffer.byteLength(payload.text, \"utf8\") > MAX_RELAY_TEXT) {\n return json({ error: `text exceeds ${MAX_RELAY_TEXT} bytes` }, { status: 413 });\n }\n const error = sosCoordinator.relayForward(params.id ?? \"\", payload.toMemberId, payload.text);\n if (error) {\n const status = error.includes(\"not found\") ? 404 : 400;\n return json({ error }, { status });\n }\n return json({ ok: true });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;;;;;AAGA,MAAM,cAAc,GAAG,KAAK;AACvB,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,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AACjD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC3E,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,IAAI;AACtB,EAAE,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACjF,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC9E,EAAE;AACF,EAAE,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACxE,EAAE;AACF,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,cAAc,EAAE;AAChE,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnF,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC;AAC9F,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,GAAG,GAAG,GAAG;AAC1D,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;AACtC,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3B;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
2
  import { s as shareStore } from './share-store-B9jMpVg0.js';
3
3
  import { randomBytes } from 'crypto';
4
- import { j as json } from './index-CoD1IJuy.js';
4
+ import { j as json } from './index-lhTMmBNn.js';
5
5
  import './shared-server-DaWdgxVh.js';
6
6
  import 'better-sqlite3';
7
7
  import 'fs';
@@ -92,4 +92,4 @@ const POST = ({ request }) => {
92
92
  };
93
93
 
94
94
  export { POST };
95
- //# sourceMappingURL=_server.ts-W6i3EnGX.js.map
95
+ //# sourceMappingURL=_server.ts-o_sRQMMS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-W6i3EnGX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/ws-ticket/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { s as shareStore } from \"../../../../chunks/share-store.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(scope) {\n const ticket = randomBytes(32).toString(\"hex\");\n tickets.set(ticket, {\n createdAt: Date.now(),\n readOnly: scope?.readOnly ?? null,\n terminalId: scope?.terminalId ?? null,\n used: false\n });\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 bearer = (request.headers.get(\"authorization\") ?? request.headers.get(\"Authorization\") ?? \"\").replace(/^Bearer\\s+/i, \"\").trim();\n const authError = validateAuth(request);\n if (authError) {\n const session = bearer ? shareStore.resolveToken(bearer) : null;\n if (!session) {\n return authError;\n }\n if (!checkRateLimit(bearer)) {\n return json(\n { error: \"Rate limit exceeded. Maximum 30 ticket requests per minute.\" },\n { status: 429 }\n );\n }\n const ticket2 = generateTicket({\n readOnly: session.mode === \"view\",\n terminalId: session.terminalId\n });\n return json({ expiresIn: 30, ticket: ticket2 });\n }\n if (!checkRateLimit(bearer)) {\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
+ {"version":3,"file":"_server.ts-o_sRQMMS.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/ws-ticket/_server.ts.js"],"sourcesContent":["import { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { s as shareStore } from \"../../../../chunks/share-store.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(scope) {\n const ticket = randomBytes(32).toString(\"hex\");\n tickets.set(ticket, {\n createdAt: Date.now(),\n readOnly: scope?.readOnly ?? null,\n terminalId: scope?.terminalId ?? null,\n used: false\n });\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 bearer = (request.headers.get(\"authorization\") ?? request.headers.get(\"Authorization\") ?? \"\").replace(/^Bearer\\s+/i, \"\").trim();\n const authError = validateAuth(request);\n if (authError) {\n const session = bearer ? shareStore.resolveToken(bearer) : null;\n if (!session) {\n return authError;\n }\n if (!checkRateLimit(bearer)) {\n return json(\n { error: \"Rate limit exceeded. Maximum 30 ticket requests per minute.\" },\n { status: 429 }\n );\n }\n const ticket2 = generateTicket({\n readOnly: session.mode === \"view\",\n terminalId: session.terminalId\n });\n return json({ expiresIn: 30, ticket: ticket2 });\n }\n if (!checkRateLimit(bearer)) {\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,7 +1,7 @@
1
1
  import { b as private_env } from './shared-server-DaWdgxVh.js';
2
2
  import { v as validateAuth } from './auth-DuunT7Cg.js';
3
3
  import { t as toErrorMessage } from './error-DDXB3duW.js';
4
- import { j as json } from './index-CoD1IJuy.js';
4
+ import { j as json } from './index-lhTMmBNn.js';
5
5
  import QRCode from 'qrcode';
6
6
  import 'crypto';
7
7
 
@@ -35,4 +35,4 @@ const GET = async ({ request, url }) => {
35
35
  };
36
36
 
37
37
  export { GET };
38
- //# sourceMappingURL=_server.ts-DOGUMzPx.js.map
38
+ //# sourceMappingURL=_server.ts-v7TaT83B.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DOGUMzPx.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/qr-config/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport QRCode from \"qrcode\";\nconst GET = async ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const apiKey = private_env.API_KEY?.trim();\n if (!apiKey) {\n return json({ error: \"API_KEY not configured on server\" }, { status: 500 });\n }\n const serverUrl = private_env.ORIGIN?.trim() || url.origin;\n const configPayload = JSON.stringify({ apiKey, serverUrl });\n try {\n const dataUrl = await QRCode.toDataURL(configPayload, {\n color: {\n dark: \"#ededed\",\n light: \"#0a0a0a\"\n },\n errorCorrectionLevel: \"M\",\n margin: 2,\n type: \"image/png\",\n width: 280\n });\n return json({ dataUrl, serverUrl });\n } catch (error) {\n console.error(\"[qr-config] QR generation failed:\", toErrorMessage(error));\n return json({ error: \"Failed to generate QR code\" }, { status: 500 });\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAKK,MAAC,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC5C,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM;AAC5D,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,EAAE,IAAI;AACN,IAAI,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;AAC1D,MAAM,KAAK,EAAE;AACb,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,MAAM,oBAAoB,EAAE,GAAG;AAC/B,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,WAAW;AACvB,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACvC,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzE,EAAE;AACF;;;;"}
1
+ {"version":3,"file":"_server.ts-v7TaT83B.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/qr-config/_server.ts.js"],"sourcesContent":["import { b as private_env } from \"../../../../chunks/shared-server.js\";\nimport { v as validateAuth } from \"../../../../chunks/auth.js\";\nimport { t as toErrorMessage } from \"../../../../chunks/error.js\";\nimport { json } from \"@sveltejs/kit\";\nimport QRCode from \"qrcode\";\nconst GET = async ({ request, url }) => {\n const authError = validateAuth(request);\n if (authError) {\n return authError;\n }\n const apiKey = private_env.API_KEY?.trim();\n if (!apiKey) {\n return json({ error: \"API_KEY not configured on server\" }, { status: 500 });\n }\n const serverUrl = private_env.ORIGIN?.trim() || url.origin;\n const configPayload = JSON.stringify({ apiKey, serverUrl });\n try {\n const dataUrl = await QRCode.toDataURL(configPayload, {\n color: {\n dark: \"#ededed\",\n light: \"#0a0a0a\"\n },\n errorCorrectionLevel: \"M\",\n margin: 2,\n type: \"image/png\",\n width: 280\n });\n return json({ dataUrl, serverUrl });\n } catch (error) {\n console.error(\"[qr-config] QR generation failed:\", toErrorMessage(error));\n return json({ error: \"Failed to generate QR code\" }, { status: 500 });\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;AAKK,MAAC,GAAG,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK;AACxC,EAAE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;AACzC,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,OAAO,SAAS;AACpB,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC5C,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAC/E,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM;AAC5D,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7D,EAAE,IAAI;AACN,IAAI,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;AAC1D,MAAM,KAAK,EAAE;AACb,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,KAAK,EAAE;AACf,OAAO;AACP,MAAM,oBAAoB,EAAE,GAAG;AAC/B,MAAM,MAAM,EAAE,CAAC;AACf,MAAM,IAAI,EAAE,WAAW;AACvB,MAAM,KAAK,EAAE;AACb,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACvC,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE;AAClB,IAAI,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;AAC7E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACzE,EAAE;AACF;;;;"}
@@ -1,4 +1,4 @@
1
- import { ap as attr_class, an as stringify, au as escape_html } from './index-CoYB03g7.js';
1
+ import { ap as attr_class, an as stringify, au as escape_html } from './index2-BLq4EEng.js';
2
2
 
3
3
  /* empty css */
4
4
  function EmptyState($$renderer, $$props) {
@@ -32,4 +32,4 @@ function clearCache(key) {
32
32
  }
33
33
 
34
34
  export { EmptyState as E, RefreshSvg as R, clearCache as c };
35
- //# sourceMappingURL=cache-BlMaDsHi.js.map
35
+ //# sourceMappingURL=cache-De-MXr04.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-De-MXr04.js","sources":["../../../.svelte-kit/adapter-node/chunks/cache.js"],"sourcesContent":["import { b as attr_class, e as escape_html, a as stringify } from \"./index2.js\";\n/* empty css */\nfunction EmptyState($$renderer, $$props) {\n let { title, description, icon, children, classes } = $$props;\n $$renderer.push(`<div${attr_class(`empty-state ${stringify(classes ?? \"\")}`, \"svelte-1elsu8i\")}>`);\n if (typeof icon === \"function\") {\n $$renderer.push(\"<!--[0-->\");\n $$renderer.push(`<div class=\"empty-state-icon svelte-1elsu8i\">`);\n icon($$renderer);\n $$renderer.push(`<!----></div>`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n }\n $$renderer.push(`<!--]--> <div class=\"empty-state-title svelte-1elsu8i\">${escape_html(title)}</div> <div class=\"empty-state-description svelte-1elsu8i\">${escape_html(description)}</div> `);\n if (typeof children === \"function\") {\n $$renderer.push(\"<!--[0-->\");\n $$renderer.push(`<div class=\"empty-state-actions svelte-1elsu8i\">`);\n children($$renderer);\n $$renderer.push(`<!----></div>`);\n } else {\n $$renderer.push(\"<!--[-1-->\");\n }\n $$renderer.push(`<!--]--></div>`);\n}\nconst RefreshSvg = '<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\\n <path d=\"M23 4v6h-6M1 20v-6h6\"/>\\n <path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"/>\\n</svg>\\n';\nfunction clearCache(key) {\n try {\n sessionStorage.removeItem(key);\n } catch {\n }\n}\nexport {\n EmptyState as E,\n RefreshSvg as R,\n clearCache as c\n};\n"],"names":[],"mappings":";;AACA;AACA,SAAS,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE;AACzC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO;AAC/D,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,EAAE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAClC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,6CAA6C,CAAC,CAAC;AACpE,IAAI,IAAI,CAAC,UAAU,CAAC;AACpB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACpC,EAAE,CAAC,MAAM;AACT,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,uDAAuD,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,2DAA2D,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9L,EAAE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;AACtC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AAChC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,gDAAgD,CAAC,CAAC;AACvE,IAAI,QAAQ,CAAC,UAAU,CAAC;AACxB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAAC;AACpC,EAAE,CAAC,MAAM;AACT,IAAI,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACjC,EAAE;AACF,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC;AACnC;AACK,MAAC,UAAU,GAAG;AACnB,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,EAAE,IAAI;AACN,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC;AAClC,EAAE,CAAC,CAAC,MAAM;AACV,EAAE;AACF;;;;"}
@@ -1,6 +1,6 @@
1
- import './root-D4IoFC8F.js';
2
- import { w as writable } from './index2-dSGQ9Eaa.js';
3
- import './state.svelte-CmHqngc_.js';
1
+ import './root-Ce8FGAoU.js';
2
+ import { w as writable } from './index-L-OMOXY-.js';
3
+ import './state.svelte-DCKkPJr6.js';
4
4
 
5
5
  function create_updated_store() {
6
6
  const { set, subscribe } = writable(false);
@@ -22,4 +22,4 @@ function goto(url, opts = {}) {
22
22
  }
23
23
 
24
24
  export { goto as g, stores as s };
25
- //# sourceMappingURL=client-Ds1brw-8.js.map
25
+ //# sourceMappingURL=client-dJTdv51U.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-dJTdv51U.js","sources":["../../../.svelte-kit/adapter-node/chunks/client.js"],"sourcesContent":["import \"@sveltejs/kit/internal\";\nimport \"./exports.js\";\nimport \"./utils2.js\";\nimport { w as writable } from \"./index.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,7 @@
1
+ import './state.svelte-DCKkPJr6.js';
2
+ import { s as stores } from './client-dJTdv51U.js';
3
+
4
+ ({
5
+ check: stores.updated.check
6
+ });
7
+ //# sourceMappingURL=client2-CZlO7zn4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client2-DngLdcUc.js","sources":["../../../.svelte-kit/adapter-node/chunks/client2.js"],"sourcesContent":["import \"./state.svelte.js\";\nimport { s as stores } from \"./client.js\";\n({\n check: stores.updated.check\n});\n"],"names":[],"mappings":";;;AAEA,CAAC;AACD,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"client2-CZlO7zn4.js","sources":["../../../.svelte-kit/adapter-node/chunks/client2.js"],"sourcesContent":["import \"./state.svelte.js\";\nimport { s as stores } from \"./client.js\";\n({\n check: stores.updated.check\n});\n"],"names":[],"mappings":";;;AAEA,CAAC;AACD,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { al as noop, am as safe_not_equal } from './index-CoYB03g7.js';
1
+ import { al as noop, am as safe_not_equal } from './index2-BLq4EEng.js';
2
2
 
3
3
  const subscriber_queue = [];
4
4
  function readable(value, start) {
@@ -55,4 +55,4 @@ function writable(value, start = noop) {
55
55
  }
56
56
 
57
57
  export { readable as r, writable as w };
58
- //# sourceMappingURL=index2-dSGQ9Eaa.js.map
58
+ //# sourceMappingURL=index-L-OMOXY-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-L-OMOXY-.js","sources":["../../../.svelte-kit/adapter-node/chunks/index.js"],"sourcesContent":["import { a8 as noop, a9 as safe_not_equal } from \"./index2.js\";\nconst subscriber_queue = [];\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop = null;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(\n /** @type {T} */\n value\n ));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set, update) || noop;\n }\n run(\n /** @type {T} */\n value\n );\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0 && stop) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nexport {\n readable as r,\n writable as w\n};\n"],"names":[],"mappings":";;AACA,MAAM,gBAAgB,GAAG,EAAE;AAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACtC,GAAG;AACH;AACA,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI;AACjB,EAAE,MAAM,WAAW,mBAAmB,IAAI,GAAG,EAAE;AAC/C,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;AAC1B,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,SAAS;AACvB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM;AAClD,QAAQ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC9C,UAAU,UAAU,CAAC,CAAC,CAAC,EAAE;AACzB,UAAU,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;AAClD,QAAQ;AACR,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/D,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,UAAU;AACV,UAAU,gBAAgB,CAAC,MAAM,GAAG,CAAC;AACrC,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE;AACtB,IAAI,GAAG,CAAC,EAAE;AACV;AACA,MAAM;AACN,KAAK,CAAC;AACN,EAAE;AACF,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC;AACxC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/B,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI;AACvC,IAAI;AACJ,IAAI,GAAG;AACP;AACA,MAAM;AACN,KAAK;AACL,IAAI,OAAO,MAAM;AACjB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;AACpC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;AAC1C,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,GAAG,IAAI;AACnB,MAAM;AACN,IAAI,CAAC;AACL,EAAE;AACF,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;AACnC;;;;"}