mongoku 2.6.0 → 2.7.0-compat

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 (453) hide show
  1. package/Dockerfile +1 -0
  2. package/README.md +25 -0
  3. package/build/client/_app/immutable/assets/0.CdYhspVa.css +1 -0
  4. package/build/client/_app/immutable/assets/0.CdYhspVa.css.br +0 -0
  5. package/build/client/_app/immutable/assets/0.CdYhspVa.css.gz +0 -0
  6. package/build/client/_app/immutable/chunks/{DdLT9cdj.js → B59nRjE7.js} +1 -1
  7. package/build/client/_app/immutable/chunks/B59nRjE7.js.br +2 -0
  8. package/build/client/_app/immutable/chunks/B59nRjE7.js.gz +0 -0
  9. package/build/client/_app/immutable/chunks/BBqIHhSl.js +1 -0
  10. package/build/client/_app/immutable/chunks/BBqIHhSl.js.br +0 -0
  11. package/build/client/_app/immutable/chunks/BBqIHhSl.js.gz +0 -0
  12. package/build/client/_app/immutable/chunks/{BEi7QatZ.js → BIUJX0Ps.js} +6 -6
  13. package/build/client/_app/immutable/chunks/BIUJX0Ps.js.br +0 -0
  14. package/build/client/_app/immutable/chunks/BIUJX0Ps.js.gz +0 -0
  15. package/build/client/_app/immutable/chunks/C6nv_pni.js +1 -0
  16. package/build/client/_app/immutable/chunks/C6nv_pni.js.br +0 -0
  17. package/build/client/_app/immutable/chunks/C6nv_pni.js.gz +0 -0
  18. package/build/client/_app/immutable/chunks/{Bh2n5Bfy.js → CETiZ6GF.js} +1 -1
  19. package/build/client/_app/immutable/chunks/CETiZ6GF.js.br +0 -0
  20. package/build/client/_app/immutable/chunks/CETiZ6GF.js.gz +0 -0
  21. package/build/client/_app/immutable/chunks/CX0xC2bt.js +1 -0
  22. package/build/client/_app/immutable/chunks/CX0xC2bt.js.br +0 -0
  23. package/build/client/_app/immutable/chunks/CX0xC2bt.js.gz +0 -0
  24. package/build/client/_app/immutable/chunks/CeXlKXQN.js +1 -0
  25. package/build/client/_app/immutable/chunks/CeXlKXQN.js.br +0 -0
  26. package/build/client/_app/immutable/chunks/CeXlKXQN.js.gz +0 -0
  27. package/build/client/_app/immutable/chunks/ChTiw7nk.js +4 -0
  28. package/build/client/_app/immutable/chunks/ChTiw7nk.js.br +0 -0
  29. package/build/client/_app/immutable/chunks/ChTiw7nk.js.gz +0 -0
  30. package/build/client/_app/immutable/chunks/Czyt1_Wc.js +1 -0
  31. package/build/client/_app/immutable/chunks/Czyt1_Wc.js.br +0 -0
  32. package/build/client/_app/immutable/chunks/Czyt1_Wc.js.gz +0 -0
  33. package/build/client/_app/immutable/chunks/{B5NTIIm5.js → DJHYr09v.js} +1 -1
  34. package/build/client/_app/immutable/chunks/DJHYr09v.js.br +0 -0
  35. package/build/client/_app/immutable/chunks/DJHYr09v.js.gz +0 -0
  36. package/build/client/_app/immutable/chunks/{C2amz0TU.js → DZxZehvI.js} +1 -1
  37. package/build/client/_app/immutable/chunks/DZxZehvI.js.br +0 -0
  38. package/build/client/_app/immutable/chunks/DZxZehvI.js.gz +0 -0
  39. package/build/client/_app/immutable/chunks/DaNl6Y92.js +2 -0
  40. package/build/client/_app/immutable/chunks/DaNl6Y92.js.br +0 -0
  41. package/build/client/_app/immutable/chunks/DaNl6Y92.js.gz +0 -0
  42. package/build/client/_app/immutable/chunks/Dbu5gl04.js +1 -0
  43. package/build/client/_app/immutable/chunks/Dbu5gl04.js.br +0 -0
  44. package/build/client/_app/immutable/chunks/Dbu5gl04.js.gz +0 -0
  45. package/build/client/_app/immutable/chunks/DczwA5Ds.js +1 -0
  46. package/build/client/_app/immutable/chunks/DczwA5Ds.js.br +0 -0
  47. package/build/client/_app/immutable/chunks/DczwA5Ds.js.gz +0 -0
  48. package/build/client/_app/immutable/chunks/DjlV9yev.js +1 -0
  49. package/build/client/_app/immutable/chunks/DjlV9yev.js.br +0 -0
  50. package/build/client/_app/immutable/chunks/DjlV9yev.js.gz +0 -0
  51. package/build/client/_app/immutable/chunks/DkIdyQoH.js +1 -0
  52. package/build/client/_app/immutable/chunks/DkIdyQoH.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/DkIdyQoH.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/DskkUG-R.js +41 -0
  55. package/build/client/_app/immutable/chunks/DskkUG-R.js.br +0 -0
  56. package/build/client/_app/immutable/chunks/DskkUG-R.js.gz +0 -0
  57. package/build/client/_app/immutable/chunks/DtqR9xj2.js +16 -0
  58. package/build/client/_app/immutable/chunks/DtqR9xj2.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/DtqR9xj2.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/{c-rWvg5T.js → Dv9wDVNU.js} +1 -1
  61. package/build/client/_app/immutable/chunks/Dv9wDVNU.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/Dv9wDVNU.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/{Bl8s7Z6r.js → DwvJoC1a.js} +1 -1
  64. package/build/client/_app/immutable/chunks/DwvJoC1a.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/DwvJoC1a.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/ULh2o3ji.js +1 -0
  67. package/build/client/_app/immutable/chunks/ULh2o3ji.js.br +0 -0
  68. package/build/client/_app/immutable/chunks/ULh2o3ji.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/V1mdyEl2.js +1 -0
  70. package/build/client/_app/immutable/chunks/V1mdyEl2.js.br +0 -0
  71. package/build/client/_app/immutable/chunks/V1mdyEl2.js.gz +0 -0
  72. package/build/client/_app/immutable/chunks/{DUw-I2kh.js → gjWX2x82.js} +1 -1
  73. package/build/client/_app/immutable/chunks/gjWX2x82.js.br +0 -0
  74. package/build/client/_app/immutable/chunks/gjWX2x82.js.gz +0 -0
  75. package/build/client/_app/immutable/chunks/{CxcplU4Q.js → y5L2Na-S.js} +1 -1
  76. package/build/client/_app/immutable/chunks/y5L2Na-S.js.br +0 -0
  77. package/build/client/_app/immutable/chunks/y5L2Na-S.js.gz +0 -0
  78. package/build/client/_app/immutable/entry/app.DSC3O-oq.js +2 -0
  79. package/build/client/_app/immutable/entry/app.DSC3O-oq.js.br +0 -0
  80. package/build/client/_app/immutable/entry/app.DSC3O-oq.js.gz +0 -0
  81. package/build/client/_app/immutable/entry/start.DXWFdQeQ.js +1 -0
  82. package/build/client/_app/immutable/entry/start.DXWFdQeQ.js.br +0 -0
  83. package/build/client/_app/immutable/entry/start.DXWFdQeQ.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/0.CMAlzqMw.js +1 -0
  85. package/build/client/_app/immutable/nodes/0.CMAlzqMw.js.br +0 -0
  86. package/build/client/_app/immutable/nodes/0.CMAlzqMw.js.gz +0 -0
  87. package/build/client/_app/immutable/nodes/1.B6Npt7WS.js +1 -0
  88. package/build/client/_app/immutable/nodes/1.B6Npt7WS.js.br +4 -0
  89. package/build/client/_app/immutable/nodes/1.B6Npt7WS.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/10.UKtNnnWx.js +2 -0
  91. package/build/client/_app/immutable/nodes/10.UKtNnnWx.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/10.UKtNnnWx.js.gz +0 -0
  93. package/build/client/_app/immutable/nodes/11.DZQrIhD6.js +6 -0
  94. package/build/client/_app/immutable/nodes/11.DZQrIhD6.js.br +0 -0
  95. package/build/client/_app/immutable/nodes/11.DZQrIhD6.js.gz +0 -0
  96. package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js +1 -0
  97. package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js.br +0 -0
  98. package/build/client/_app/immutable/nodes/12.Bb2XzJJ4.js.gz +0 -0
  99. package/build/client/_app/immutable/nodes/13.B_EllgAJ.js +1 -0
  100. package/build/client/_app/immutable/nodes/13.B_EllgAJ.js.br +0 -0
  101. package/build/client/_app/immutable/nodes/13.B_EllgAJ.js.gz +0 -0
  102. package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js +65 -0
  103. package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js.br +0 -0
  104. package/build/client/_app/immutable/nodes/14.Ds1Cbw86.js.gz +0 -0
  105. package/build/client/_app/immutable/nodes/{2.AM8fesja.js → 2.C6NzDBVE.js} +1 -1
  106. package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.br +2 -0
  107. package/build/client/_app/immutable/nodes/2.C6NzDBVE.js.gz +0 -0
  108. package/build/client/_app/immutable/nodes/{3.BShuoOz5.js → 3.CZJqJ4La.js} +1 -1
  109. package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.br +0 -0
  110. package/build/client/_app/immutable/nodes/3.CZJqJ4La.js.gz +0 -0
  111. package/build/client/_app/immutable/nodes/{4.BD6QbApY.js → 4.CNe3XPNo.js} +1 -1
  112. package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.br +0 -0
  113. package/build/client/_app/immutable/nodes/4.CNe3XPNo.js.gz +0 -0
  114. package/build/client/_app/immutable/nodes/{5.JM_dwz0R.js → 5.BWhhv567.js} +1 -1
  115. package/build/client/_app/immutable/nodes/5.BWhhv567.js.br +0 -0
  116. package/build/client/_app/immutable/nodes/5.BWhhv567.js.gz +0 -0
  117. package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js +1 -0
  118. package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js.br +0 -0
  119. package/build/client/_app/immutable/nodes/7.DrDdJlUZ.js.gz +0 -0
  120. package/build/client/_app/immutable/nodes/8.DY5fyf2p.js +2 -0
  121. package/build/client/_app/immutable/nodes/8.DY5fyf2p.js.br +0 -0
  122. package/build/client/_app/immutable/nodes/8.DY5fyf2p.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/9.DSZg3ucy.js +1 -0
  124. package/build/client/_app/immutable/nodes/9.DSZg3ucy.js.br +0 -0
  125. package/build/client/_app/immutable/nodes/9.DSZg3ucy.js.gz +0 -0
  126. package/build/client/_app/version.json +1 -1
  127. package/build/client/_app/version.json.br +0 -0
  128. package/build/client/_app/version.json.gz +0 -0
  129. package/build/client/robots.txt.br +0 -0
  130. package/build/client/robots.txt.gz +0 -0
  131. package/build/handler.js +290 -228
  132. package/build/server/chunks/0-94hvO2vX.js +31 -0
  133. package/build/server/chunks/0-94hvO2vX.js.map +1 -0
  134. package/build/server/chunks/1-DU2n-wa5.js +9 -0
  135. package/build/server/chunks/1-DU2n-wa5.js.map +1 -0
  136. package/build/server/chunks/{9-DrDIAOIh.js → 10-CA3VfgE7.js} +7 -6
  137. package/build/server/chunks/10-CA3VfgE7.js.map +1 -0
  138. package/build/server/chunks/{10-WRjYTwFT.js → 11-xh-tBR25.js} +8 -7
  139. package/build/server/chunks/11-xh-tBR25.js.map +1 -0
  140. package/build/server/chunks/{11-Cq79IAWK.js → 12-CHoThn5d.js} +8 -7
  141. package/build/server/chunks/12-CHoThn5d.js.map +1 -0
  142. package/build/server/chunks/{12-DnRkeAVv.js → 13-s3o-iKja.js} +8 -7
  143. package/build/server/chunks/13-s3o-iKja.js.map +1 -0
  144. package/build/server/chunks/{13-DKqDuEdB.js → 14-Ch_I9f3x.js} +7 -6
  145. package/build/server/chunks/14-Ch_I9f3x.js.map +1 -0
  146. package/build/server/chunks/{2-DaZMexAs.js → 2-BNTmkYSf.js} +2 -2
  147. package/build/server/chunks/{2-DaZMexAs.js.map → 2-BNTmkYSf.js.map} +1 -1
  148. package/build/server/chunks/{3-Dr4vFhF1.js → 3-ClKd4dXQ.js} +2 -2
  149. package/build/server/chunks/{3-Dr4vFhF1.js.map → 3-ClKd4dXQ.js.map} +1 -1
  150. package/build/server/chunks/{4-K2WnEwm7.js → 4-BSPVNKkN.js} +2 -2
  151. package/build/server/chunks/{4-K2WnEwm7.js.map → 4-BSPVNKkN.js.map} +1 -1
  152. package/build/server/chunks/{5-Be-Du8oZ.js → 5-BzxZlQk0.js} +2 -2
  153. package/build/server/chunks/{5-Be-Du8oZ.js.map → 5-BzxZlQk0.js.map} +1 -1
  154. package/build/server/chunks/{6-DsYzHmsZ.js → 6-Bw8JUxiD.js} +3 -2
  155. package/build/server/chunks/6-Bw8JUxiD.js.map +1 -0
  156. package/build/server/chunks/7-B_ur3ckj.js +9 -0
  157. package/build/server/chunks/7-B_ur3ckj.js.map +1 -0
  158. package/build/server/chunks/{7-eAzN1saI.js → 8-BEcdRamT.js} +8 -7
  159. package/build/server/chunks/8-BEcdRamT.js.map +1 -0
  160. package/build/server/chunks/{8-Dtaxi2J_.js → 9-CeMYWy9o.js} +7 -6
  161. package/build/server/chunks/9-CeMYWy9o.js.map +1 -0
  162. package/build/server/chunks/JsonValue-CTg4aH_w.js +320 -0
  163. package/build/server/chunks/JsonValue-CTg4aH_w.js.map +1 -0
  164. package/build/server/chunks/{Modal-fWUUqg69.js → Modal-yO0qzufQ.js} +2 -3
  165. package/build/server/chunks/Modal-yO0qzufQ.js.map +1 -0
  166. package/build/server/chunks/{Panel-BXokpC3w.js → Panel-D9GzVDDt.js} +7 -12
  167. package/build/server/chunks/Panel-D9GzVDDt.js.map +1 -0
  168. package/build/server/chunks/{PrettyJson-CV4qF02W.js → PrettyJson-CzzntSVh.js} +15 -10
  169. package/build/server/chunks/PrettyJson-CzzntSVh.js.map +1 -0
  170. package/build/server/chunks/{Tooltip-1tZ4BUxU.js → Tooltip-D2BX7dwq.js} +2 -2
  171. package/build/server/chunks/Tooltip-D2BX7dwq.js.map +1 -0
  172. package/build/server/chunks/{TooltipTable-B2QGp4YW.js → TooltipTable-91W9LxGR.js} +3 -4
  173. package/build/server/chunks/TooltipTable-91W9LxGR.js.map +1 -0
  174. package/build/server/chunks/{_layout.svelte-DAGMbkJX.js → _layout.svelte-BFxKanne.js} +28 -24
  175. package/build/server/chunks/_layout.svelte-BFxKanne.js.map +1 -0
  176. package/build/server/chunks/{_page.svelte-DgQxD9T8.js → _page.svelte-CQzzieEo.js} +16 -18
  177. package/build/server/chunks/_page.svelte-CQzzieEo.js.map +1 -0
  178. package/build/server/chunks/_page.svelte-CSuE9bVi.js +14 -0
  179. package/build/server/chunks/_page.svelte-CSuE9bVi.js.map +1 -0
  180. package/build/server/chunks/{_page.svelte-DfZ2COw_.js → _page.svelte-CnboYQ1K.js} +11 -73
  181. package/build/server/chunks/_page.svelte-CnboYQ1K.js.map +1 -0
  182. package/build/server/chunks/{_page.svelte-ClakOyno.js → _page.svelte-D41VQj4U.js} +17 -19
  183. package/build/server/chunks/_page.svelte-D41VQj4U.js.map +1 -0
  184. package/build/server/chunks/{_page.svelte-CB9ZXhBt.js → _page.svelte-Dg71nX8A.js} +117 -97
  185. package/build/server/chunks/_page.svelte-Dg71nX8A.js.map +1 -0
  186. package/build/server/chunks/{_page.svelte-BUqI0nM9.js → _page.svelte-DxlZXLVf.js} +17 -19
  187. package/build/server/chunks/_page.svelte-DxlZXLVf.js.map +1 -0
  188. package/build/server/chunks/{_page.svelte-Ccc0KJ66.js → _page.svelte-SZxwc25D.js} +45 -39
  189. package/build/server/chunks/_page.svelte-SZxwc25D.js.map +1 -0
  190. package/build/server/chunks/{_page.svelte-wmgrrvR7.js → _page.svelte-THKAhY4k.js} +48 -51
  191. package/build/server/chunks/_page.svelte-THKAhY4k.js.map +1 -0
  192. package/build/server/chunks/_server.ts-B3lXxheE.js +15 -0
  193. package/build/server/chunks/_server.ts-B3lXxheE.js.map +1 -0
  194. package/build/server/chunks/_server.ts-Bs5HC7Wf.js +46 -0
  195. package/build/server/chunks/_server.ts-Bs5HC7Wf.js.map +1 -0
  196. package/build/server/chunks/_server.ts-DRL9sDg4.js +34 -0
  197. package/build/server/chunks/_server.ts-DRL9sDg4.js.map +1 -0
  198. package/build/server/chunks/_server.ts-DqL5edUL.js +24 -0
  199. package/build/server/chunks/_server.ts-DqL5edUL.js.map +1 -0
  200. package/build/server/chunks/client-C7bEwskR.js +7 -0
  201. package/build/server/chunks/{client-BCfAqu0g.js.map → client-C7bEwskR.js.map} +1 -1
  202. package/build/server/chunks/{client2-B-hc4vU8.js → client2-DcCKOWWC.js} +6 -6
  203. package/build/server/chunks/client2-DcCKOWWC.js.map +1 -0
  204. package/build/server/chunks/error.svelte-Bk-0XnBt.js +18 -0
  205. package/build/server/chunks/error.svelte-Bk-0XnBt.js.map +1 -0
  206. package/build/server/chunks/exports-B5ORJhfK.js +65 -0
  207. package/build/server/chunks/exports-B5ORJhfK.js.map +1 -0
  208. package/build/server/chunks/{filters-CbFjTNFI.js → filters-B3U8Nh9P.js} +16 -6
  209. package/build/server/chunks/filters-B3U8Nh9P.js.map +1 -0
  210. package/build/server/chunks/hooks.server-Cq7ufuFU.js +79 -0
  211. package/build/server/chunks/hooks.server-Cq7ufuFU.js.map +1 -0
  212. package/build/server/chunks/{index2-CJE0QJlP.js → index-CC9WtE-y.js} +3 -13
  213. package/build/server/chunks/index-CC9WtE-y.js.map +1 -0
  214. package/build/server/chunks/index-wpIsICWW.js.map +1 -1
  215. package/build/server/chunks/{index3-CQyDuV4f.js → index2-DMabdSHV.js} +3 -3
  216. package/build/server/chunks/index2-DMabdSHV.js.map +1 -0
  217. package/build/server/chunks/{logger-KF6KpVP6.js → logger-PfH_grbh.js} +4 -3
  218. package/build/server/chunks/logger-PfH_grbh.js.map +1 -0
  219. package/build/server/chunks/{mongo-CpQtfvt6.js → mongo-B92d7zNj.js} +25 -24
  220. package/build/server/chunks/mongo-B92d7zNj.js.map +1 -0
  221. package/build/server/chunks/oauth-BfIECOev.js +178 -0
  222. package/build/server/chunks/oauth-BfIECOev.js.map +1 -0
  223. package/build/server/chunks/remote-xxtqbu-D0yn6nhQ.js +22 -0
  224. package/build/server/chunks/remote-xxtqbu-D0yn6nhQ.js.map +1 -0
  225. package/build/server/chunks/{routing-BdGCua8Q.js → routing-CYknP78v.js} +23 -4
  226. package/build/server/chunks/routing-CYknP78v.js.map +1 -0
  227. package/build/server/chunks/{server2-CkPmd3Rb.js → server2-uigtM6st.js} +3 -3
  228. package/build/server/chunks/server2-uigtM6st.js.map +1 -0
  229. package/build/server/chunks/{servers.remote-OwAA4KJJ.js → servers.remote-BhpVo4Zs.js} +67 -42
  230. package/build/server/chunks/servers.remote-BhpVo4Zs.js.map +1 -0
  231. package/build/server/chunks/shared-BqTYMAzZ.js +1027 -0
  232. package/build/server/chunks/shared-BqTYMAzZ.js.map +1 -0
  233. package/build/server/chunks/shared-server-BmU87nph.js +11 -0
  234. package/build/server/chunks/shared-server-BmU87nph.js.map +1 -0
  235. package/build/server/chunks/{state.svelte-BfzDwKMC.js → state.svelte-Dzb7Lf2r.js} +2 -3
  236. package/build/server/chunks/state.svelte-Dzb7Lf2r.js.map +1 -0
  237. package/build/server/chunks/url-hmE1zcJ6.js +4721 -0
  238. package/build/server/chunks/url-hmE1zcJ6.js.map +1 -0
  239. package/build/server/chunks/{utils-kjxf7BZO.js → utils2-kjxf7BZO.js} +1 -1
  240. package/build/server/chunks/utils2-kjxf7BZO.js.map +1 -0
  241. package/build/server/index.js +381 -3466
  242. package/build/server/index.js.map +1 -1
  243. package/build/server/manifest.js +52 -23
  244. package/build/server/manifest.js.map +1 -1
  245. package/cli.ts +4 -0
  246. package/dist/cli.js +3 -0
  247. package/ecosystem.config.js +3 -0
  248. package/package.json +2 -2
  249. package/src/api/servers.remote.ts +20 -8
  250. package/src/app.d.ts +5 -0
  251. package/src/hooks.server.ts +38 -17
  252. package/src/lib/actions/jsonTextarea.ts +24 -8
  253. package/src/lib/actions/portal.ts +12 -5
  254. package/src/lib/components/ExplainPanel.svelte +42 -14
  255. package/src/lib/components/JsonValue.svelte +12 -4
  256. package/src/lib/components/PrettyJson.svelte +12 -4
  257. package/src/lib/components/ReplicaSetSelector.svelte +3 -1
  258. package/src/lib/components/SearchBox.svelte +12 -4
  259. package/src/lib/components/Tooltip.svelte +1 -1
  260. package/src/lib/server/HostsManager.ts +8 -17
  261. package/src/lib/server/logger.ts +4 -4
  262. package/src/lib/server/mongo.ts +17 -12
  263. package/src/lib/server/oauth.ts +276 -0
  264. package/src/lib/utils/filters.ts +15 -5
  265. package/src/lib/utils/formatSignificantDigits.ts +3 -1
  266. package/src/lib/utils/formatTimeAgo.ts +3 -1
  267. package/src/lib/utils/hostnames.ts +15 -5
  268. package/src/lib/utils/jsonParser.ts +21 -7
  269. package/src/lib/utils/longestCommonSuffix.ts +3 -1
  270. package/src/routes/+layout.server.ts +5 -1
  271. package/src/routes/+layout.svelte +16 -1
  272. package/src/routes/.well-known/cimd.json/+server.ts +34 -0
  273. package/src/routes/auth/callback/+server.ts +57 -0
  274. package/src/routes/auth/login/+server.ts +29 -0
  275. package/src/routes/auth/logout/+page.svelte +9 -0
  276. package/src/routes/auth/logout/+server.ts +9 -0
  277. package/src/routes/servers/+page.svelte +9 -4
  278. package/src/routes/servers/[server]/databases/+page.svelte +3 -1
  279. package/src/routes/servers/[server]/databases/[database]/collections/+page.svelte +3 -1
  280. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +3 -1
  281. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/[document]/+page.svelte +9 -6
  282. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.svelte +18 -6
  283. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +3 -1
  284. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css +0 -1
  285. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.br +0 -0
  286. package/build/client/_app/immutable/assets/0.Bg-3Xsxo.css.gz +0 -0
  287. package/build/client/_app/immutable/chunks/2G5jukcB.js +0 -1
  288. package/build/client/_app/immutable/chunks/2G5jukcB.js.br +0 -0
  289. package/build/client/_app/immutable/chunks/2G5jukcB.js.gz +0 -0
  290. package/build/client/_app/immutable/chunks/B5NTIIm5.js.br +0 -0
  291. package/build/client/_app/immutable/chunks/B5NTIIm5.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/BEi7QatZ.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/BEi7QatZ.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/BOZBLPYr.js +0 -1
  295. package/build/client/_app/immutable/chunks/BOZBLPYr.js.br +0 -0
  296. package/build/client/_app/immutable/chunks/BOZBLPYr.js.gz +0 -0
  297. package/build/client/_app/immutable/chunks/BUr91kOw.js +0 -1
  298. package/build/client/_app/immutable/chunks/BUr91kOw.js.br +0 -0
  299. package/build/client/_app/immutable/chunks/BUr91kOw.js.gz +0 -0
  300. package/build/client/_app/immutable/chunks/BYPjaq07.js +0 -1
  301. package/build/client/_app/immutable/chunks/BYPjaq07.js.br +0 -0
  302. package/build/client/_app/immutable/chunks/BYPjaq07.js.gz +0 -0
  303. package/build/client/_app/immutable/chunks/BZagxdqB.js +0 -16
  304. package/build/client/_app/immutable/chunks/BZagxdqB.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/BZagxdqB.js.gz +0 -0
  306. package/build/client/_app/immutable/chunks/Bh2n5Bfy.js.br +0 -0
  307. package/build/client/_app/immutable/chunks/Bh2n5Bfy.js.gz +0 -0
  308. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.br +0 -1
  309. package/build/client/_app/immutable/chunks/Bl8s7Z6r.js.gz +0 -0
  310. package/build/client/_app/immutable/chunks/BnpHJF5-.js +0 -2
  311. package/build/client/_app/immutable/chunks/BnpHJF5-.js.br +0 -0
  312. package/build/client/_app/immutable/chunks/BnpHJF5-.js.gz +0 -0
  313. package/build/client/_app/immutable/chunks/C2amz0TU.js.br +0 -0
  314. package/build/client/_app/immutable/chunks/C2amz0TU.js.gz +0 -0
  315. package/build/client/_app/immutable/chunks/C93uPVVn.js +0 -1
  316. package/build/client/_app/immutable/chunks/C93uPVVn.js.br +0 -0
  317. package/build/client/_app/immutable/chunks/C93uPVVn.js.gz +0 -0
  318. package/build/client/_app/immutable/chunks/CXNtxrhs.js +0 -1
  319. package/build/client/_app/immutable/chunks/CXNtxrhs.js.br +0 -0
  320. package/build/client/_app/immutable/chunks/CXNtxrhs.js.gz +0 -0
  321. package/build/client/_app/immutable/chunks/Cc583CkD.js +0 -1
  322. package/build/client/_app/immutable/chunks/Cc583CkD.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/Cc583CkD.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/CxcplU4Q.js.br +0 -0
  325. package/build/client/_app/immutable/chunks/CxcplU4Q.js.gz +0 -0
  326. package/build/client/_app/immutable/chunks/DDy-Kuac.js +0 -1
  327. package/build/client/_app/immutable/chunks/DDy-Kuac.js.br +0 -0
  328. package/build/client/_app/immutable/chunks/DDy-Kuac.js.gz +0 -0
  329. package/build/client/_app/immutable/chunks/DIDOrPa8.js +0 -41
  330. package/build/client/_app/immutable/chunks/DIDOrPa8.js.br +0 -0
  331. package/build/client/_app/immutable/chunks/DIDOrPa8.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/DJ7MgPmk.js +0 -4
  333. package/build/client/_app/immutable/chunks/DJ7MgPmk.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/DJ7MgPmk.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/DUw-I2kh.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/DUw-I2kh.js.gz +0 -0
  337. package/build/client/_app/immutable/chunks/DdLT9cdj.js.br +0 -0
  338. package/build/client/_app/immutable/chunks/DdLT9cdj.js.gz +0 -0
  339. package/build/client/_app/immutable/chunks/c-rWvg5T.js.br +0 -0
  340. package/build/client/_app/immutable/chunks/c-rWvg5T.js.gz +0 -0
  341. package/build/client/_app/immutable/chunks/hbftB6pI.js +0 -1
  342. package/build/client/_app/immutable/chunks/hbftB6pI.js.br +0 -0
  343. package/build/client/_app/immutable/chunks/hbftB6pI.js.gz +0 -0
  344. package/build/client/_app/immutable/entry/app.BvdA5xZX.js +0 -2
  345. package/build/client/_app/immutable/entry/app.BvdA5xZX.js.br +0 -0
  346. package/build/client/_app/immutable/entry/app.BvdA5xZX.js.gz +0 -0
  347. package/build/client/_app/immutable/entry/start.B47HTlUj.js +0 -1
  348. package/build/client/_app/immutable/entry/start.B47HTlUj.js.br +0 -2
  349. package/build/client/_app/immutable/entry/start.B47HTlUj.js.gz +0 -0
  350. package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js +0 -1
  351. package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js.br +0 -0
  352. package/build/client/_app/immutable/nodes/0.C-Qb2qV-.js.gz +0 -0
  353. package/build/client/_app/immutable/nodes/1.CbwunOOA.js +0 -1
  354. package/build/client/_app/immutable/nodes/1.CbwunOOA.js.br +0 -4
  355. package/build/client/_app/immutable/nodes/1.CbwunOOA.js.gz +0 -0
  356. package/build/client/_app/immutable/nodes/10.BONTXBU2.js +0 -6
  357. package/build/client/_app/immutable/nodes/10.BONTXBU2.js.br +0 -0
  358. package/build/client/_app/immutable/nodes/10.BONTXBU2.js.gz +0 -0
  359. package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js +0 -1
  360. package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js.br +0 -0
  361. package/build/client/_app/immutable/nodes/11.Bt-WKNEi.js.gz +0 -0
  362. package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js +0 -1
  363. package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js.br +0 -0
  364. package/build/client/_app/immutable/nodes/12.DtpUwyyZ.js.gz +0 -0
  365. package/build/client/_app/immutable/nodes/13.Ce307l0A.js +0 -65
  366. package/build/client/_app/immutable/nodes/13.Ce307l0A.js.br +0 -0
  367. package/build/client/_app/immutable/nodes/13.Ce307l0A.js.gz +0 -0
  368. package/build/client/_app/immutable/nodes/2.AM8fesja.js.br +0 -0
  369. package/build/client/_app/immutable/nodes/2.AM8fesja.js.gz +0 -0
  370. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.br +0 -0
  371. package/build/client/_app/immutable/nodes/3.BShuoOz5.js.gz +0 -0
  372. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.br +0 -0
  373. package/build/client/_app/immutable/nodes/4.BD6QbApY.js.gz +0 -0
  374. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.br +0 -0
  375. package/build/client/_app/immutable/nodes/5.JM_dwz0R.js.gz +0 -0
  376. package/build/client/_app/immutable/nodes/7.lTuFbCm_.js +0 -1
  377. package/build/client/_app/immutable/nodes/7.lTuFbCm_.js.br +0 -0
  378. package/build/client/_app/immutable/nodes/7.lTuFbCm_.js.gz +0 -0
  379. package/build/client/_app/immutable/nodes/8.DIWHKPrG.js +0 -1
  380. package/build/client/_app/immutable/nodes/8.DIWHKPrG.js.br +0 -0
  381. package/build/client/_app/immutable/nodes/8.DIWHKPrG.js.gz +0 -0
  382. package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js +0 -2
  383. package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js.br +0 -0
  384. package/build/client/_app/immutable/nodes/9.D6Tw6uKW.js.gz +0 -0
  385. package/build/server/chunks/0-BdG9Cl9W.js +0 -22
  386. package/build/server/chunks/0-BdG9Cl9W.js.map +0 -1
  387. package/build/server/chunks/1-BcZWKLgB.js +0 -9
  388. package/build/server/chunks/1-BcZWKLgB.js.map +0 -1
  389. package/build/server/chunks/10-WRjYTwFT.js.map +0 -1
  390. package/build/server/chunks/11-Cq79IAWK.js.map +0 -1
  391. package/build/server/chunks/12-DnRkeAVv.js.map +0 -1
  392. package/build/server/chunks/13-DKqDuEdB.js.map +0 -1
  393. package/build/server/chunks/6-DsYzHmsZ.js.map +0 -1
  394. package/build/server/chunks/7-eAzN1saI.js.map +0 -1
  395. package/build/server/chunks/8-Dtaxi2J_.js.map +0 -1
  396. package/build/server/chunks/9-DrDIAOIh.js.map +0 -1
  397. package/build/server/chunks/JsonValue-Dj3vYG5T.js +0 -366
  398. package/build/server/chunks/JsonValue-Dj3vYG5T.js.map +0 -1
  399. package/build/server/chunks/Modal-fWUUqg69.js.map +0 -1
  400. package/build/server/chunks/Panel-BXokpC3w.js.map +0 -1
  401. package/build/server/chunks/PrettyJson-CV4qF02W.js.map +0 -1
  402. package/build/server/chunks/Tooltip-1tZ4BUxU.js.map +0 -1
  403. package/build/server/chunks/TooltipTable-B2QGp4YW.js.map +0 -1
  404. package/build/server/chunks/_layout.svelte-DAGMbkJX.js.map +0 -1
  405. package/build/server/chunks/_page.svelte-BUqI0nM9.js.map +0 -1
  406. package/build/server/chunks/_page.svelte-CB9ZXhBt.js.map +0 -1
  407. package/build/server/chunks/_page.svelte-Ccc0KJ66.js.map +0 -1
  408. package/build/server/chunks/_page.svelte-ClakOyno.js.map +0 -1
  409. package/build/server/chunks/_page.svelte-DfZ2COw_.js.map +0 -1
  410. package/build/server/chunks/_page.svelte-DgQxD9T8.js.map +0 -1
  411. package/build/server/chunks/_page.svelte-wmgrrvR7.js.map +0 -1
  412. package/build/server/chunks/client-BCfAqu0g.js +0 -7
  413. package/build/server/chunks/client2-B-hc4vU8.js.map +0 -1
  414. package/build/server/chunks/context-8UI9xWgq.js +0 -92
  415. package/build/server/chunks/context-8UI9xWgq.js.map +0 -1
  416. package/build/server/chunks/error.svelte-hj6GNaOv.js +0 -19
  417. package/build/server/chunks/error.svelte-hj6GNaOv.js.map +0 -1
  418. package/build/server/chunks/event-DVH-6ISX.js +0 -64
  419. package/build/server/chunks/event-DVH-6ISX.js.map +0 -1
  420. package/build/server/chunks/exports-CtTNDGe5.js +0 -161
  421. package/build/server/chunks/exports-CtTNDGe5.js.map +0 -1
  422. package/build/server/chunks/filters-CbFjTNFI.js.map +0 -1
  423. package/build/server/chunks/hooks.server-DRPXFQlL.js +0 -53
  424. package/build/server/chunks/hooks.server-DRPXFQlL.js.map +0 -1
  425. package/build/server/chunks/index-DOCFW0vv.js +0 -1355
  426. package/build/server/chunks/index-DOCFW0vv.js.map +0 -1
  427. package/build/server/chunks/index2-CJE0QJlP.js.map +0 -1
  428. package/build/server/chunks/index3-CQyDuV4f.js.map +0 -1
  429. package/build/server/chunks/logger-KF6KpVP6.js.map +0 -1
  430. package/build/server/chunks/mongo-CpQtfvt6.js.map +0 -1
  431. package/build/server/chunks/remote-xxtqbu-CbTWQ3bq.js +0 -21
  432. package/build/server/chunks/remote-xxtqbu-CbTWQ3bq.js.map +0 -1
  433. package/build/server/chunks/routing-BdGCua8Q.js.map +0 -1
  434. package/build/server/chunks/server2-CkPmd3Rb.js.map +0 -1
  435. package/build/server/chunks/servers.remote-OwAA4KJJ.js.map +0 -1
  436. package/build/server/chunks/shared-w5gO1Cte.js +0 -446
  437. package/build/server/chunks/shared-w5gO1Cte.js.map +0 -1
  438. package/build/server/chunks/state.svelte-BfzDwKMC.js.map +0 -1
  439. package/build/server/chunks/utils-kjxf7BZO.js.map +0 -1
  440. package/build/server/chunks/utils2-DrnJY_bz.js +0 -91
  441. package/build/server/chunks/utils2-DrnJY_bz.js.map +0 -1
  442. /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css → 11.Wc4MTSzM.css} +0 -0
  443. /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css.br → 11.Wc4MTSzM.css.br} +0 -0
  444. /package/build/client/_app/immutable/assets/{10.Wc4MTSzM.css.gz → 11.Wc4MTSzM.css.gz} +0 -0
  445. /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css → 12.CEtFGlZU.css} +0 -0
  446. /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css.br → 12.CEtFGlZU.css.br} +0 -0
  447. /package/build/client/_app/immutable/assets/{11.CEtFGlZU.css.gz → 12.CEtFGlZU.css.gz} +0 -0
  448. /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css → 13.I1sSDJ6i.css} +0 -0
  449. /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css.br → 13.I1sSDJ6i.css.br} +0 -0
  450. /package/build/client/_app/immutable/assets/{12.I1sSDJ6i.css.gz → 13.I1sSDJ6i.css.gz} +0 -0
  451. /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css → 8.CRKE8WvY.css} +0 -0
  452. /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css.br → 8.CRKE8WvY.css.br} +0 -0
  453. /package/build/client/_app/immutable/assets/{7.CRKE8WvY.css.gz → 8.CRKE8WvY.css.gz} +0 -0
@@ -1,4 +1,5 @@
1
- import { l as logger } from './logger-KF6KpVP6.js';
1
+ import { p as private_env } from './shared-server-BmU87nph.js';
2
+ import { l as logger } from './logger-PfH_grbh.js';
2
3
  import { resolveSrv } from 'dns/promises';
3
4
  import { ReadPreference, MongoClient } from 'mongodb';
4
5
  import { URL } from 'url';
@@ -6,8 +7,8 @@ import * as fs from 'node:fs';
6
7
  import * as os from 'node:os';
7
8
  import * as path from 'node:path';
8
9
 
9
- const DEFAULT_HOSTS = process.env.MONGOKU_DEFAULT_HOST ? process.env.MONGOKU_DEFAULT_HOST.split(";") : ["localhost:27017"];
10
- const DATABASE_FILE = process.env.MONGOKU_DATABASE_FILE || path.join(os.homedir(), ".mongoku.db");
10
+ const DEFAULT_HOSTS = private_env.MONGOKU_DEFAULT_HOST ? private_env.MONGOKU_DEFAULT_HOST.split(";") : ["localhost:27017"];
11
+ const DATABASE_FILE = private_env.MONGOKU_DATABASE_FILE || path.join(os.homedir(), ".mongoku.db");
11
12
  class HostsManager {
12
13
  _hosts = /* @__PURE__ */ new Map();
13
14
  // path -> _id
@@ -68,17 +69,12 @@ class HostsManager {
68
69
  await this._saveToFile();
69
70
  return id;
70
71
  }
71
- async remove(hostPath) {
72
- const toRemove = Array.from(this._hosts.keys()).filter((existingPath) => {
73
- try {
74
- const regex = new RegExp(hostPath);
75
- return existingPath === hostPath || regex.test(existingPath);
76
- } catch {
77
- return existingPath === hostPath;
72
+ async removeById(id) {
73
+ for (const [hostPath, hostId] of this._hosts) {
74
+ if (hostId === id) {
75
+ this._hosts.delete(hostPath);
76
+ break;
78
77
  }
79
- });
80
- for (const host of toRemove) {
81
- this._hosts.delete(host);
82
78
  }
83
79
  await this._saveToFile();
84
80
  }
@@ -222,22 +218,22 @@ class MongoConnections {
222
218
  clientIds = /* @__PURE__ */ new Map();
223
219
  // hostname -> _id
224
220
  hostsManager;
225
- countTimeout = parseInt(process.env.MONGOKU_COUNT_TIMEOUT, 10) || 3e4;
226
- queryTimeout = process.env.MONGOKU_QUERY_TIMEOUT ? parseInt(process.env.MONGOKU_QUERY_TIMEOUT, 10) : void 0;
221
+ countTimeout = parseInt(private_env.MONGOKU_COUNT_TIMEOUT, 10) || 3e4;
222
+ queryTimeout = private_env.MONGOKU_QUERY_TIMEOUT ? parseInt(private_env.MONGOKU_QUERY_TIMEOUT, 10) : void 0;
227
223
  excludedDatabases;
228
224
  readPreference;
229
225
  constructor() {
230
226
  this.hostsManager = new HostsManager();
231
- const excludeEnv = process.env.MONGOKU_EXCLUDE_DATABASES || "";
227
+ const excludeEnv = private_env.MONGOKU_EXCLUDE_DATABASES || "";
232
228
  this.excludedDatabases = new Set(
233
229
  excludeEnv.split(",").map((db) => db.trim()).filter((db) => db.length > 0)
234
230
  );
235
- const readPrefMode = process.env.MONGOKU_READ_PREFERENCE;
231
+ const readPrefMode = private_env.MONGOKU_READ_PREFERENCE;
236
232
  if (readPrefMode) {
237
233
  let tags;
238
- if (process.env.MONGOKU_READ_PREFERENCE_TAGS) {
234
+ if (private_env.MONGOKU_READ_PREFERENCE_TAGS) {
239
235
  try {
240
- tags = JSON.parse(process.env.MONGOKU_READ_PREFERENCE_TAGS);
236
+ tags = JSON.parse(private_env.MONGOKU_READ_PREFERENCE_TAGS);
241
237
  } catch (err) {
242
238
  logger.error("Failed to parse MONGOKU_READ_PREFERENCE_TAGS:", err);
243
239
  }
@@ -311,10 +307,15 @@ class MongoConnections {
311
307
  }
312
308
  }
313
309
  async removeServer(name) {
314
- await this.hostsManager.remove(name);
315
- this.clients.get(name)?.close().catch((err) => logger.error(`Error closing client ${name}:`, err));
316
- this.clients.delete(name);
317
- this.clientIds.delete(name);
310
+ const clientKey = this.clientIds.has(name) ? name : `${name}:27017`;
311
+ const clientId = this.clientIds.get(clientKey);
312
+ if (!clientId) {
313
+ throw new Error(`Server not found: ${name}`);
314
+ }
315
+ await this.hostsManager.removeById(clientId);
316
+ this.clients.get(clientId)?.close().catch((err) => logger.error(`Error closing client ${name}:`, err));
317
+ this.clients.delete(clientId);
318
+ this.clientIds.delete(clientKey);
318
319
  }
319
320
  async reconnectClient(id) {
320
321
  const oldClient = this.clients.get(id);
@@ -387,4 +388,4 @@ async function getMongo() {
387
388
  }
388
389
 
389
390
  export { getCollectionJson as a, getMongo as g };
390
- //# sourceMappingURL=mongo-CpQtfvt6.js.map
391
+ //# sourceMappingURL=mongo-B92d7zNj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongo-B92d7zNj.js","sources":["../../../.svelte-kit/adapter-node/chunks/mongo.js"],"sourcesContent":["import { b as private_env } from \"./shared-server.js\";\nimport { l as logger } from \"./logger.js\";\nimport { resolveSrv } from \"dns/promises\";\nimport { ReadPreference, MongoClient } from \"mongodb\";\nimport { URL } from \"url\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nconst DEFAULT_HOSTS = private_env.MONGOKU_DEFAULT_HOST ? private_env.MONGOKU_DEFAULT_HOST.split(\";\") : [\"localhost:27017\"];\nconst DATABASE_FILE = private_env.MONGOKU_DATABASE_FILE || path.join(os.homedir(), \".mongoku.db\");\nclass HostsManager {\n _hosts = /* @__PURE__ */ new Map();\n // path -> _id\n async load() {\n let first = false;\n try {\n await fs.promises.stat(DATABASE_FILE);\n } catch {\n first = true;\n }\n if (!first) {\n await this._loadFromFile();\n }\n if (first || this._hosts.size === 0) {\n for (const hostname of DEFAULT_HOSTS) {\n this._hosts.set(hostname, this._generateId());\n }\n await this._saveToFile();\n }\n }\n async _loadFromFile() {\n const content = await fs.promises.readFile(DATABASE_FILE, \"utf8\");\n const lines = content.trim().split(\"\\n\").filter((line) => line.trim());\n const newHosts = /* @__PURE__ */ new Map();\n for (const line of lines) {\n const host = JSON.parse(line);\n if (host && typeof host.path === \"string\") {\n const id = host._id || this._generateId();\n newHosts.set(host.path, id);\n }\n }\n this._hosts = newHosts;\n }\n async _saveToFile() {\n const lines = Array.from(this._hosts).map(([hostPath, id]) => JSON.stringify({ path: hostPath, _id: id }));\n await fs.promises.writeFile(DATABASE_FILE, lines.join(\"\\n\") + \"\\n\", \"utf8\");\n }\n _generateId() {\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n let result = \"\";\n for (let i = 0; i < 16; i++) {\n result += chars.charAt(Math.floor(Math.random() * chars.length));\n }\n return result;\n }\n async getHosts() {\n return Array.from(this._hosts).map(([hostPath, id]) => ({ path: hostPath, _id: id }));\n }\n getHost(name) {\n return this._hosts.get(name);\n }\n async add(hostPath) {\n let id = this._hosts.get(hostPath);\n if (!id) {\n id = this._generateId();\n this._hosts.set(hostPath, id);\n }\n await this._saveToFile();\n return id;\n }\n async removeById(id) {\n for (const [hostPath, hostId] of this._hosts) {\n if (hostId === id) {\n this._hosts.delete(hostPath);\n break;\n }\n }\n await this._saveToFile();\n }\n}\nasync function getCollectionJson(collection, type) {\n const stats = {\n size: 0,\n count: 0,\n avgObjSize: 0,\n storageSize: 0,\n capped: false,\n nindexes: 0,\n totalIndexSize: 0,\n indexSizes: {}\n };\n if (type !== \"view\") {\n const agg = await collection.aggregate([\n {\n $collStats: {\n storageStats: {},\n count: {}\n }\n }\n ]).next().catch(() => null);\n if (agg) {\n stats.size = agg.storageStats.size;\n stats.count = agg.storageStats.count;\n stats.avgObjSize = Math.round(agg.storageStats.size / agg.storageStats.count);\n stats.storageSize = agg.storageStats.storageSize;\n stats.capped = agg.storageStats.capped;\n stats.nindexes = agg.storageStats.nindexes;\n stats.totalIndexSize = agg.storageStats.totalIndexSize;\n stats.indexSizes = agg.storageStats.indexSizes;\n }\n }\n let indexes = [];\n if (type !== \"view\") {\n try {\n const indexList = await collection.listIndexes().toArray();\n indexes = indexList.map((index) => ({\n name: index.name,\n key: index.key,\n size: stats.indexSizes[index.name] || 0\n }));\n } catch {\n indexes = Object.entries(stats.indexSizes).map(([name, size]) => ({\n name,\n size\n }));\n }\n }\n return {\n name: collection.collectionName,\n size: (stats.storageSize ?? 0) + (stats.totalIndexSize ?? 0),\n dataSize: stats.size,\n count: stats.count,\n avgObjSize: stats.avgObjSize ?? 0,\n storageSize: stats.storageSize ?? 0,\n capped: stats.capped,\n nIndexes: stats.nindexes,\n totalIndexSize: stats.totalIndexSize ?? 0,\n indexSizes: stats.indexSizes,\n indexes\n };\n}\nasync function extractNodesFromConnectionString(connectionString) {\n const url = new URL(connectionString);\n if (url.protocol === \"mongodb+srv:\") {\n const hostname = url.hostname;\n const srvRecords = await resolveSrv(`_mongodb._tcp.${hostname}`);\n return srvRecords.sort((a, b) => a.priority - b.priority || b.weight - a.weight).map((record) => `${record.name}:${record.port}`).sort();\n }\n if (url.protocol === \"mongodb:\") {\n const hostsString = url.host;\n if (!hostsString) {\n throw new Error(\"No hosts found in connection string\");\n }\n return hostsString.split(\",\").map((host) => host.trim()).filter((host) => host.length > 0).sort();\n }\n throw new TypeError(`Unsupported protocol: ${url.protocol}`);\n}\nclass MongoClientWithMappings extends MongoClient {\n url;\n mappings = {};\n indexes = {};\n _id;\n name;\n constructor(url, _id, name, readPreference) {\n super(url, readPreference ? { readPreference } : {});\n this.url = url;\n this._id = _id;\n this.name = name;\n }\n async getMappings(dbName, collectionName, opts) {\n if (opts?.forceRefresh || !this.mappings[dbName]?.[collectionName]) {\n const mappings = await this.db(dbName).collection(\"mongoku.mappings\").findOne({ _id: collectionName });\n this.mappings[dbName] ??= {};\n this.mappings[dbName][collectionName] = mappings?.mappings ?? {};\n }\n return this.mappings[dbName][collectionName];\n }\n clearMappingsCache(dbName, collectionName) {\n delete this.mappings[dbName][collectionName];\n }\n async getIndexes(dbName, collectionName, opts) {\n if (opts?.forceRefresh || !this.indexes[dbName]?.[collectionName]) {\n const indexList = await this.db(dbName).collection(collectionName).listIndexes().toArray();\n this.indexes[dbName] ??= {};\n this.indexes[dbName][collectionName] = indexList.map((index) => ({\n name: index.name,\n key: index.key\n }));\n }\n return this.indexes[dbName][collectionName];\n }\n setIndexes(dbName, collectionName, indexes) {\n this.indexes[dbName] ??= {};\n this.indexes[dbName][collectionName] = indexes;\n }\n clearIndexesCache(dbName, collectionName) {\n delete this.indexes[dbName]?.[collectionName];\n }\n /**\n * Check if a field has an index (as the first key in the index)\n */\n async hasIndexOnField(dbName, collectionName, field) {\n const indexes = await this.getIndexes(dbName, collectionName);\n return indexes.some((index) => {\n const keys = Object.keys(index.key);\n return keys[0] === field;\n });\n }\n}\nclass MongoConnections {\n /**\n * Todo: better system where we can have mutiple servers with same hostname, and labels for each server that\n * would be displayed in the UI instead of the hostname.\n */\n clients = /* @__PURE__ */ new Map();\n // _id -> MongoClientWithMappings\n clientIds = /* @__PURE__ */ new Map();\n // hostname -> _id\n hostsManager;\n countTimeout = parseInt(private_env.MONGOKU_COUNT_TIMEOUT, 10) || 3e4;\n queryTimeout = private_env.MONGOKU_QUERY_TIMEOUT ? parseInt(private_env.MONGOKU_QUERY_TIMEOUT, 10) : void 0;\n excludedDatabases;\n readPreference;\n constructor() {\n this.hostsManager = new HostsManager();\n const excludeEnv = private_env.MONGOKU_EXCLUDE_DATABASES || \"\";\n this.excludedDatabases = new Set(\n excludeEnv.split(\",\").map((db) => db.trim()).filter((db) => db.length > 0)\n );\n const readPrefMode = private_env.MONGOKU_READ_PREFERENCE;\n if (readPrefMode) {\n let tags;\n if (private_env.MONGOKU_READ_PREFERENCE_TAGS) {\n try {\n tags = JSON.parse(private_env.MONGOKU_READ_PREFERENCE_TAGS);\n } catch (err) {\n logger.error(\"Failed to parse MONGOKU_READ_PREFERENCE_TAGS:\", err);\n }\n }\n this.readPreference = tags ? new ReadPreference(readPrefMode, tags) : new ReadPreference(readPrefMode);\n logger.log(`Read preference configured: ${readPrefMode}${tags ? ` with tags ${JSON.stringify(tags)}` : \"\"}`);\n }\n }\n async initialize() {\n await this.hostsManager.load();\n const hosts = await this.hostsManager.getHosts();\n for (const host of hosts) {\n const urlStr = host.path.startsWith(\"mongodb\") ? host.path : `mongodb://${host.path}`;\n try {\n const url = new URL(urlStr);\n const hostname = url.host || host.path;\n if (!this.clients.has(hostname)) {\n const client = new MongoClientWithMappings(urlStr, host._id, hostname, this.readPreference);\n this.clients.set(host._id, client);\n this.clientIds.set(hostname, host._id);\n }\n } catch (err) {\n logger.error(`Failed to parse URL for host ${host.path}:`, err);\n }\n }\n }\n getClient(name) {\n const clientId = this.clientIds.get(name) || this.clientIds.get(`${name}:27017`);\n if (!clientId) {\n throw new Error(`Client not found: ${name}`);\n }\n const client = this.clients.get(clientId);\n if (!client) {\n throw new Error(`Client not found: ${name}`);\n }\n return client;\n }\n listClients() {\n return Array.from(this.clients.values()).map((client) => ({\n name: client.name,\n _id: client._id,\n client\n }));\n }\n getCountTimeout() {\n return this.countTimeout;\n }\n getQueryTimeout() {\n return this.queryTimeout;\n }\n filterDatabases(databases) {\n if (this.excludedDatabases.size === 0) {\n return databases;\n }\n return databases.filter((db) => !this.excludedDatabases.has(db.name));\n }\n async addServer(hostPath) {\n const id = await this.hostsManager.add(hostPath);\n const urlStr = hostPath.startsWith(\"mongodb\") ? hostPath : `mongodb://${hostPath}`;\n try {\n const url = new URL(urlStr);\n const hostname = url.host || hostPath;\n if (!this.clients.has(hostname)) {\n const client = new MongoClientWithMappings(urlStr, id, hostname, this.readPreference);\n this.clients.set(id, client);\n this.clientIds.set(hostname, id);\n }\n } catch (err) {\n logger.error(`Failed to parse URL for host ${hostPath}:`, err);\n throw err;\n }\n }\n async removeServer(name) {\n const clientKey = this.clientIds.has(name) ? name : `${name}:27017`;\n const clientId = this.clientIds.get(clientKey);\n if (!clientId) {\n throw new Error(`Server not found: ${name}`);\n }\n await this.hostsManager.removeById(clientId);\n this.clients.get(clientId)?.close().catch((err) => logger.error(`Error closing client ${name}:`, err));\n this.clients.delete(clientId);\n this.clientIds.delete(clientKey);\n }\n async reconnectClient(id) {\n const oldClient = this.clients.get(id);\n if (!oldClient) {\n throw new Error(`Client not found: ${id}`);\n }\n oldClient.close().catch((err) => logger.error(`Error closing old client ${id}:`, err));\n const newClient = new MongoClientWithMappings(oldClient.url, id, oldClient.name, this.readPreference);\n this.clients.set(id, newClient);\n await newClient.connect();\n }\n /**\n * Get the list of nodes from a server's connection string\n */\n async getServerNodes(serverId) {\n const client = this.getClient(serverId);\n return extractNodesFromConnectionString(client.url);\n }\n /**\n * Fetch index stats from a specific node using directConnection\n */\n async getIndexStatsFromNode(serverId, node, database, collection) {\n const client = this.getClient(serverId);\n const url = new URL(client.url);\n const directUrl = new URL(url.toString());\n directUrl.protocol = \"mongodb:\";\n directUrl.host = node;\n directUrl.searchParams.set(\"directConnection\", \"true\");\n if (url.searchParams.has(\"tls\") || url.searchParams.has(\"ssl\") || url.protocol === \"mongodb+srv:\") {\n directUrl.searchParams.set(\"tls\", \"true\");\n }\n let nodeClient = null;\n try {\n nodeClient = new MongoClient(directUrl.toString());\n await nodeClient.connect();\n const coll = nodeClient.db(database).collection(collection);\n const statsResult = await coll.aggregate([{ $indexStats: {} }]).toArray();\n const indexStats = Object.fromEntries(\n statsResult.map((stat) => [\n stat.name,\n {\n ops: stat.accesses?.ops || 0,\n since: stat.accesses?.since || /* @__PURE__ */ new Date(),\n host: stat.host || node\n }\n ])\n );\n return indexStats;\n } finally {\n if (nodeClient) {\n await nodeClient.close();\n }\n }\n }\n}\nlet mongoConnections = null;\nlet initPromise = null;\nasync function getMongo() {\n if (!mongoConnections) {\n if (!initPromise) {\n initPromise = (async () => {\n mongoConnections = new MongoConnections();\n await mongoConnections.initialize();\n return mongoConnections;\n })();\n }\n return initPromise;\n }\n return mongoConnections;\n}\nexport {\n getCollectionJson as a,\n getMongo as g\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,178 @@
1
+ import { b as base } from './server-Crjo4w1q.js';
2
+ import './url-hmE1zcJ6.js';
3
+ import { p as private_env } from './shared-server-BmU87nph.js';
4
+ import { createHmac, timingSafeEqual, randomBytes, createHash } from 'node:crypto';
5
+
6
+ const DEFAULT_SESSION_DURATION = 86400;
7
+ const OAUTH_CIMD_CLIENT_ID = "__CIMD__";
8
+ let cachedConfig;
9
+ function parseSessionDuration(rawDuration) {
10
+ if (!rawDuration) {
11
+ return DEFAULT_SESSION_DURATION;
12
+ }
13
+ const parsed = Number(rawDuration);
14
+ if (!Number.isInteger(parsed) || parsed <= 0) {
15
+ return DEFAULT_SESSION_DURATION;
16
+ }
17
+ return parsed;
18
+ }
19
+ async function fetchOpenIDConfiguration(issuerUrl) {
20
+ const wellKnown = issuerUrl.replace(/\/+$/, "") + "/.well-known/openid-configuration";
21
+ const response = await fetch(wellKnown);
22
+ if (!response.ok) {
23
+ throw new Error(`Failed to fetch OpenID configuration from ${wellKnown} (${response.status})`);
24
+ }
25
+ const config = await response.json();
26
+ if (!config.authorization_endpoint || !config.token_endpoint) {
27
+ throw new Error(`OpenID configuration at ${wellKnown} is missing required endpoints`);
28
+ }
29
+ return config;
30
+ }
31
+ async function getOAuthConfig() {
32
+ if (cachedConfig !== void 0) {
33
+ return cachedConfig;
34
+ }
35
+ const clientId = private_env.MONGOKU_OAUTH_CLIENT_ID;
36
+ if (!clientId) {
37
+ cachedConfig = null;
38
+ return null;
39
+ }
40
+ const issuerUrl = private_env.MONGOKU_OAUTH_ISSUER_URL;
41
+ const sessionSecret = private_env.MONGOKU_OAUTH_SESSION_SECRET;
42
+ if (!issuerUrl || !sessionSecret) {
43
+ throw new Error(
44
+ "OAuth is partially configured. When MONGOKU_OAUTH_CLIENT_ID is set, MONGOKU_OAUTH_ISSUER_URL and MONGOKU_OAUTH_SESSION_SECRET are also required."
45
+ );
46
+ }
47
+ const oidc = await fetchOpenIDConfiguration(issuerUrl);
48
+ const allowedSubsRaw = private_env.MONGOKU_OAUTH_ALLOWED_SUBS;
49
+ const allowedSubs = allowedSubsRaw ? new Set(
50
+ allowedSubsRaw.split(",").map((s) => s.trim()).filter(Boolean)
51
+ ) : void 0;
52
+ cachedConfig = {
53
+ clientId,
54
+ issuerUrl,
55
+ authorizationUrl: oidc.authorization_endpoint,
56
+ tokenUrl: oidc.token_endpoint,
57
+ scopes: private_env.MONGOKU_OAUTH_SCOPES ?? "openid profile email",
58
+ sessionSecret,
59
+ sessionDuration: parseSessionDuration(private_env.MONGOKU_OAUTH_SESSION_DURATION),
60
+ allowedSubs
61
+ };
62
+ return cachedConfig;
63
+ }
64
+ function resolveOAuthClientId(config, origin) {
65
+ if (config.clientId !== OAUTH_CIMD_CLIENT_ID) {
66
+ return config.clientId;
67
+ }
68
+ return new URL(`${base}/.well-known/cimd.json`, origin).toString();
69
+ }
70
+ function base64url(buffer) {
71
+ return buffer.toString("base64url");
72
+ }
73
+ function generateCodeVerifier() {
74
+ return base64url(randomBytes(64));
75
+ }
76
+ function generateCodeChallenge(verifier) {
77
+ return base64url(createHash("sha256").update(verifier).digest());
78
+ }
79
+ function generateState() {
80
+ return base64url(randomBytes(32));
81
+ }
82
+ function buildAuthorizationUrl(config, origin, callbackUrl, codeChallenge, state) {
83
+ const url = new URL(config.authorizationUrl);
84
+ url.searchParams.set("client_id", resolveOAuthClientId(config, origin));
85
+ url.searchParams.set("response_type", "code");
86
+ url.searchParams.set("redirect_uri", callbackUrl);
87
+ url.searchParams.set("scope", config.scopes);
88
+ url.searchParams.set("state", state);
89
+ url.searchParams.set("code_challenge", codeChallenge);
90
+ url.searchParams.set("code_challenge_method", "S256");
91
+ return url.toString();
92
+ }
93
+ async function exchangeCode(config, origin, code, codeVerifier, callbackUrl) {
94
+ const body = new URLSearchParams({
95
+ grant_type: "authorization_code",
96
+ code,
97
+ redirect_uri: callbackUrl,
98
+ client_id: resolveOAuthClientId(config, origin),
99
+ code_verifier: codeVerifier
100
+ });
101
+ const response = await fetch(config.tokenUrl, {
102
+ method: "POST",
103
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
104
+ body: body.toString()
105
+ });
106
+ if (!response.ok) {
107
+ const text = await response.text();
108
+ throw new Error(`Token exchange failed (${response.status}): ${text}`);
109
+ }
110
+ return response.json();
111
+ }
112
+ function extractUserFromIdToken(idToken) {
113
+ try {
114
+ const parts = idToken.split(".");
115
+ if (parts.length !== 3) {
116
+ return {};
117
+ }
118
+ const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
119
+ return {
120
+ sub: payload.sub,
121
+ name: payload.name || payload.preferred_username,
122
+ email: payload.email
123
+ };
124
+ } catch {
125
+ return {};
126
+ }
127
+ }
128
+ function createSessionCookie(config, user) {
129
+ const sessionDuration = Number.isInteger(config.sessionDuration) && config.sessionDuration > 0 ? config.sessionDuration : DEFAULT_SESSION_DURATION;
130
+ const payload = {
131
+ ...user,
132
+ exp: Math.floor(Date.now() / 1e3) + sessionDuration
133
+ };
134
+ const payloadStr = Buffer.from(JSON.stringify(payload)).toString("base64url");
135
+ const signature = createHmac("sha256", config.sessionSecret).update(payloadStr).digest("base64url");
136
+ return `${payloadStr}.${signature}`;
137
+ }
138
+ function verifySession(config, cookie) {
139
+ const dotIndex = cookie.lastIndexOf(".");
140
+ if (dotIndex === -1) {
141
+ return null;
142
+ }
143
+ const payloadStr = cookie.slice(0, dotIndex);
144
+ const signature = cookie.slice(dotIndex + 1);
145
+ const expectedSignature = createHmac("sha256", config.sessionSecret).update(payloadStr).digest("base64url");
146
+ const a = Buffer.from(signature);
147
+ const b = Buffer.from(expectedSignature);
148
+ if (a.length !== b.length || !timingSafeEqual(a, b)) {
149
+ return null;
150
+ }
151
+ try {
152
+ const payload = JSON.parse(Buffer.from(payloadStr, "base64url").toString());
153
+ if (!Number.isFinite(payload.exp)) {
154
+ return null;
155
+ }
156
+ if (payload.exp < Math.floor(Date.now() / 1e3)) {
157
+ return null;
158
+ }
159
+ return payload;
160
+ } catch {
161
+ return null;
162
+ }
163
+ }
164
+ function getCallbackUrl(origin) {
165
+ return `${origin}${base}/auth/callback`;
166
+ }
167
+ function cookieOptions(url, maxAge) {
168
+ return {
169
+ httpOnly: true,
170
+ secure: url.protocol === "https:",
171
+ sameSite: "lax",
172
+ path: base || "/",
173
+ ...maxAge !== void 0 && { maxAge }
174
+ };
175
+ }
176
+
177
+ export { OAUTH_CIMD_CLIENT_ID as O, getCallbackUrl as a, extractUserFromIdToken as b, cookieOptions as c, createSessionCookie as d, exchangeCode as e, generateCodeVerifier as f, getOAuthConfig as g, generateCodeChallenge as h, generateState as i, buildAuthorizationUrl as j, verifySession as v };
178
+ //# sourceMappingURL=oauth-BfIECOev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-BfIECOev.js","sources":["../../../.svelte-kit/adapter-node/chunks/oauth.js"],"sourcesContent":["import { b as base } from \"./server.js\";\nimport \"./url.js\";\nimport \"@sveltejs/kit/internal/server\";\nimport \"./root.js\";\nimport { b as private_env } from \"./shared-server.js\";\nimport { createHmac, randomBytes, createHash, timingSafeEqual } from \"node:crypto\";\nconst DEFAULT_SESSION_DURATION = 86400;\nconst OAUTH_CIMD_CLIENT_ID = \"__CIMD__\";\nlet cachedConfig;\nfunction parseSessionDuration(rawDuration) {\n if (!rawDuration) {\n return DEFAULT_SESSION_DURATION;\n }\n const parsed = Number(rawDuration);\n if (!Number.isInteger(parsed) || parsed <= 0) {\n return DEFAULT_SESSION_DURATION;\n }\n return parsed;\n}\nasync function fetchOpenIDConfiguration(issuerUrl) {\n const wellKnown = issuerUrl.replace(/\\/+$/, \"\") + \"/.well-known/openid-configuration\";\n const response = await fetch(wellKnown);\n if (!response.ok) {\n throw new Error(`Failed to fetch OpenID configuration from ${wellKnown} (${response.status})`);\n }\n const config = await response.json();\n if (!config.authorization_endpoint || !config.token_endpoint) {\n throw new Error(`OpenID configuration at ${wellKnown} is missing required endpoints`);\n }\n return config;\n}\nasync function getOAuthConfig() {\n if (cachedConfig !== void 0) {\n return cachedConfig;\n }\n const clientId = private_env.MONGOKU_OAUTH_CLIENT_ID;\n if (!clientId) {\n cachedConfig = null;\n return null;\n }\n const issuerUrl = private_env.MONGOKU_OAUTH_ISSUER_URL;\n const sessionSecret = private_env.MONGOKU_OAUTH_SESSION_SECRET;\n if (!issuerUrl || !sessionSecret) {\n throw new Error(\n \"OAuth is partially configured. When MONGOKU_OAUTH_CLIENT_ID is set, MONGOKU_OAUTH_ISSUER_URL and MONGOKU_OAUTH_SESSION_SECRET are also required.\"\n );\n }\n const oidc = await fetchOpenIDConfiguration(issuerUrl);\n const allowedSubsRaw = private_env.MONGOKU_OAUTH_ALLOWED_SUBS;\n const allowedSubs = allowedSubsRaw ? new Set(\n allowedSubsRaw.split(\",\").map((s) => s.trim()).filter(Boolean)\n ) : void 0;\n cachedConfig = {\n clientId,\n issuerUrl,\n authorizationUrl: oidc.authorization_endpoint,\n tokenUrl: oidc.token_endpoint,\n scopes: private_env.MONGOKU_OAUTH_SCOPES ?? \"openid profile email\",\n sessionSecret,\n sessionDuration: parseSessionDuration(private_env.MONGOKU_OAUTH_SESSION_DURATION),\n allowedSubs\n };\n return cachedConfig;\n}\nfunction resolveOAuthClientId(config, origin) {\n if (config.clientId !== OAUTH_CIMD_CLIENT_ID) {\n return config.clientId;\n }\n return new URL(`${base}/.well-known/cimd.json`, origin).toString();\n}\nfunction base64url(buffer) {\n return buffer.toString(\"base64url\");\n}\nfunction generateCodeVerifier() {\n return base64url(randomBytes(64));\n}\nfunction generateCodeChallenge(verifier) {\n return base64url(createHash(\"sha256\").update(verifier).digest());\n}\nfunction generateState() {\n return base64url(randomBytes(32));\n}\nfunction buildAuthorizationUrl(config, origin, callbackUrl, codeChallenge, state) {\n const url = new URL(config.authorizationUrl);\n url.searchParams.set(\"client_id\", resolveOAuthClientId(config, origin));\n url.searchParams.set(\"response_type\", \"code\");\n url.searchParams.set(\"redirect_uri\", callbackUrl);\n url.searchParams.set(\"scope\", config.scopes);\n url.searchParams.set(\"state\", state);\n url.searchParams.set(\"code_challenge\", codeChallenge);\n url.searchParams.set(\"code_challenge_method\", \"S256\");\n return url.toString();\n}\nasync function exchangeCode(config, origin, code, codeVerifier, callbackUrl) {\n const body = new URLSearchParams({\n grant_type: \"authorization_code\",\n code,\n redirect_uri: callbackUrl,\n client_id: resolveOAuthClientId(config, origin),\n code_verifier: codeVerifier\n });\n const response = await fetch(config.tokenUrl, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: body.toString()\n });\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Token exchange failed (${response.status}): ${text}`);\n }\n return response.json();\n}\nfunction extractUserFromIdToken(idToken) {\n try {\n const parts = idToken.split(\".\");\n if (parts.length !== 3) {\n return {};\n }\n const payload = JSON.parse(Buffer.from(parts[1], \"base64url\").toString());\n return {\n sub: payload.sub,\n name: payload.name || payload.preferred_username,\n email: payload.email\n };\n } catch {\n return {};\n }\n}\nfunction createSessionCookie(config, user) {\n const sessionDuration = Number.isInteger(config.sessionDuration) && config.sessionDuration > 0 ? config.sessionDuration : DEFAULT_SESSION_DURATION;\n const payload = {\n ...user,\n exp: Math.floor(Date.now() / 1e3) + sessionDuration\n };\n const payloadStr = Buffer.from(JSON.stringify(payload)).toString(\"base64url\");\n const signature = createHmac(\"sha256\", config.sessionSecret).update(payloadStr).digest(\"base64url\");\n return `${payloadStr}.${signature}`;\n}\nfunction verifySession(config, cookie) {\n const dotIndex = cookie.lastIndexOf(\".\");\n if (dotIndex === -1) {\n return null;\n }\n const payloadStr = cookie.slice(0, dotIndex);\n const signature = cookie.slice(dotIndex + 1);\n const expectedSignature = createHmac(\"sha256\", config.sessionSecret).update(payloadStr).digest(\"base64url\");\n const a = Buffer.from(signature);\n const b = Buffer.from(expectedSignature);\n if (a.length !== b.length || !timingSafeEqual(a, b)) {\n return null;\n }\n try {\n const payload = JSON.parse(Buffer.from(payloadStr, \"base64url\").toString());\n if (!Number.isFinite(payload.exp)) {\n return null;\n }\n if (payload.exp < Math.floor(Date.now() / 1e3)) {\n return null;\n }\n return payload;\n } catch {\n return null;\n }\n}\nfunction getCallbackUrl(origin) {\n return `${origin}${base}/auth/callback`;\n}\nfunction cookieOptions(url, maxAge) {\n return {\n httpOnly: true,\n secure: url.protocol === \"https:\",\n sameSite: \"lax\",\n path: base || \"/\",\n ...maxAge !== void 0 && { maxAge }\n };\n}\nexport {\n OAUTH_CIMD_CLIENT_ID as O,\n getCallbackUrl as a,\n extractUserFromIdToken as b,\n cookieOptions as c,\n createSessionCookie as d,\n exchangeCode as e,\n generateCodeVerifier as f,\n getOAuthConfig as g,\n generateCodeChallenge as h,\n generateState as i,\n buildAuthorizationUrl as j,\n verifySession as v\n};\n"],"names":[],"mappings":";;;;;AAMA,MAAM,wBAAwB,GAAG,KAAK;AACjC,MAAC,oBAAoB,GAAG;AAC7B,IAAI,YAAY;AAChB,SAAS,oBAAoB,CAAC,WAAW,EAAE;AAC3C,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO,wBAAwB;AACnC,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;AACpC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;AAChD,IAAI,OAAO,wBAAwB;AACnC,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,eAAe,wBAAwB,CAAC,SAAS,EAAE;AACnD,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,mCAAmC;AACvF,EAAE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;AACzC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,0CAA0C,EAAE,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClG,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACtC,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;AAChE,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,wBAAwB,EAAE,SAAS,CAAC,8BAA8B,CAAC,CAAC;AACzF,EAAE;AACF,EAAE,OAAO,MAAM;AACf;AACA,eAAe,cAAc,GAAG;AAChC,EAAE,IAAI,YAAY,KAAK,MAAM,EAAE;AAC/B,IAAI,OAAO,YAAY;AACvB,EAAE;AACF,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,uBAAuB;AACtD,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,YAAY,GAAG,IAAI;AACvB,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,MAAM,SAAS,GAAG,WAAW,CAAC,wBAAwB;AACxD,EAAE,MAAM,aAAa,GAAG,WAAW,CAAC,4BAA4B;AAChE,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE;AACpC,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM;AACN,KAAK;AACL,EAAE;AACF,EAAE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC;AACxD,EAAE,MAAM,cAAc,GAAG,WAAW,CAAC,0BAA0B;AAC/D,EAAE,MAAM,WAAW,GAAG,cAAc,GAAG,IAAI,GAAG;AAC9C,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;AACjE,GAAG,GAAG,MAAM;AACZ,EAAE,YAAY,GAAG;AACjB,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,gBAAgB,EAAE,IAAI,CAAC,sBAAsB;AACjD,IAAI,QAAQ,EAAE,IAAI,CAAC,cAAc;AACjC,IAAI,MAAM,EAAE,WAAW,CAAC,oBAAoB,IAAI,sBAAsB;AACtE,IAAI,aAAa;AACjB,IAAI,eAAe,EAAE,oBAAoB,CAAC,WAAW,CAAC,8BAA8B,CAAC;AACrF,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,YAAY;AACrB;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE;AAC9C,EAAE,IAAI,MAAM,CAAC,QAAQ,KAAK,oBAAoB,EAAE;AAChD,IAAI,OAAO,MAAM,CAAC,QAAQ;AAC1B,EAAE;AACF,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE;AACpE;AACA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;AACrC;AACA,SAAS,oBAAoB,GAAG;AAChC,EAAE,OAAO,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACnC;AACA,SAAS,qBAAqB,CAAC,QAAQ,EAAE;AACzC,EAAE,OAAO,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAClE;AACA,SAAS,aAAa,GAAG;AACzB,EAAE,OAAO,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACnC;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE;AAClF,EAAE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC9C,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACzE,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC;AAC/C,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC;AACnD,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;AAC9C,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;AACtC,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,EAAE,aAAa,CAAC;AACvD,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC;AACvD,EAAE,OAAO,GAAG,CAAC,QAAQ,EAAE;AACvB;AACA,eAAe,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE;AAC7E,EAAE,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;AACnC,IAAI,UAAU,EAAE,oBAAoB;AACpC,IAAI,IAAI;AACR,IAAI,YAAY,EAAE,WAAW;AAC7B,IAAI,SAAS,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC;AACnD,IAAI,aAAa,EAAE;AACnB,GAAG,CAAC;AACJ,EAAE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE;AAChD,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;AACpE,IAAI,IAAI,EAAE,IAAI,CAAC,QAAQ;AACvB,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AACpB,IAAI,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AACtC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1E,EAAE;AACF,EAAE,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB;AACA,SAAS,sBAAsB,CAAC,OAAO,EAAE;AACzC,EAAE,IAAI;AACN,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACpC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC7E,IAAI,OAAO;AACX,MAAM,GAAG,EAAE,OAAO,CAAC,GAAG;AACtB,MAAM,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,kBAAkB;AACtD,MAAM,KAAK,EAAE,OAAO,CAAC;AACrB,KAAK;AACL,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,EAAE;AACb,EAAE;AACF;AACA,SAAS,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE;AAC3C,EAAE,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,eAAe,GAAG,wBAAwB;AACpJ,EAAE,MAAM,OAAO,GAAG;AAClB,IAAI,GAAG,IAAI;AACX,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG;AACxC,GAAG;AACH,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;AAC/E,EAAE,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AACrG,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACrC;AACA,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;AACvC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;AAC1C,EAAE,IAAI,QAAQ,KAAK,EAAE,EAAE;AACvB,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;AAC9C,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC9C,EAAE,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAC7G,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;AAClC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAC1C,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACvD,IAAI,OAAO,IAAI;AACf,EAAE;AACF,EAAE,IAAI;AACN,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACvC,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE;AACpD,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,OAAO,OAAO;AAClB,EAAE,CAAC,CAAC,MAAM;AACV,IAAI,OAAO,IAAI;AACf,EAAE;AACF;AACA,SAAS,cAAc,CAAC,MAAM,EAAE;AAChC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC;AACzC;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE;AACpC,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,QAAQ;AACrC,IAAI,QAAQ,EAAE,KAAK;AACnB,IAAI,IAAI,EAAE,IAAI,IAAI,GAAG;AACrB,IAAI,GAAG,MAAM,KAAK,MAAM,IAAI,EAAE,MAAM;AACpC,GAAG;AACH;;;;"}
@@ -0,0 +1,22 @@
1
+ export { m as default } from './servers.remote-BhpVo4Zs.js';
2
+ import './url-hmE1zcJ6.js';
3
+ import './async-lVJA8xJZ.js';
4
+ import './shared-server-BmU87nph.js';
5
+ import './utils2-kjxf7BZO.js';
6
+ import './shared-BqTYMAzZ.js';
7
+ import './index-wpIsICWW.js';
8
+ import './jsonParser-C3QUcODD.js';
9
+ import 'esprima';
10
+ import './JsonEncoder-B8eJRYZ4.js';
11
+ import 'mongodb';
12
+ import './logger-PfH_grbh.js';
13
+ import 'async_hooks';
14
+ import 'node:util';
15
+ import './mongo-B92d7zNj.js';
16
+ import 'dns/promises';
17
+ import 'url';
18
+ import 'node:fs';
19
+ import 'node:os';
20
+ import 'node:path';
21
+ import 'zod';
22
+ //# sourceMappingURL=remote-xxtqbu-D0yn6nhQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-xxtqbu-D0yn6nhQ.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -1,3 +1,5 @@
1
+ import { u as decode_params } from './url-hmE1zcJ6.js';
2
+
1
3
  function affects_path(segment) {
2
4
  return segment !== "" && !/^\([^)]+\)$/.test(segment);
3
5
  }
@@ -17,8 +19,11 @@ function exec(match, params, matchers) {
17
19
  buffered = 0;
18
20
  }
19
21
  if (value === void 0) {
20
- if (param.rest) result[param.name] = "";
21
- continue;
22
+ if (param.rest) {
23
+ value = "";
24
+ } else {
25
+ continue;
26
+ }
22
27
  }
23
28
  if (!param.matcher || matchers[param.matcher](value)) {
24
29
  result[param.name] = value;
@@ -61,6 +66,20 @@ function resolve_route(id, params) {
61
66
  })
62
67
  ).filter(Boolean).join("/") + (has_id_trailing_slash ? "/" : "");
63
68
  }
69
+ function find_route(path, routes, matchers) {
70
+ for (const route of routes) {
71
+ const match = route.pattern.exec(path);
72
+ if (!match) continue;
73
+ const matched = exec(match, route.params, matchers);
74
+ if (matched) {
75
+ return {
76
+ route,
77
+ params: decode_params(matched)
78
+ };
79
+ }
80
+ }
81
+ return null;
82
+ }
64
83
 
65
- export { exec as e, resolve_route as r };
66
- //# sourceMappingURL=routing-BdGCua8Q.js.map
84
+ export { find_route as f, resolve_route as r };
85
+ //# sourceMappingURL=routing-CYknP78v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing-CYknP78v.js","sources":["../../../.svelte-kit/adapter-node/chunks/routing.js"],"sourcesContent":["import { b as decode_params } from \"./url.js\";\nfunction affects_path(segment) {\n return segment !== \"\" && !/^\\([^)]+\\)$/.test(segment);\n}\nfunction get_route_segments(route) {\n return route.slice(1).split(\"/\").filter(affects_path);\n}\nfunction exec(match, params, matchers) {\n const result = {};\n const values = match.slice(1);\n const values_needing_match = values.filter((value) => value !== void 0);\n let buffered = 0;\n for (let i = 0; i < params.length; i += 1) {\n const param = params[i];\n let value = values[i - buffered];\n if (param.chained && param.rest && buffered) {\n value = values.slice(i - buffered, i + 1).filter((s) => s).join(\"/\");\n buffered = 0;\n }\n if (value === void 0) {\n if (param.rest) {\n value = \"\";\n } else {\n continue;\n }\n }\n if (!param.matcher || matchers[param.matcher](value)) {\n result[param.name] = value;\n const next_param = params[i + 1];\n const next_value = values[i + 1];\n if (next_param && !next_param.rest && next_param.optional && next_value && param.chained) {\n buffered = 0;\n }\n if (!next_param && !next_value && Object.keys(result).length === values_needing_match.length) {\n buffered = 0;\n }\n continue;\n }\n if (param.optional && param.chained) {\n buffered++;\n continue;\n }\n return;\n }\n if (buffered) return;\n return result;\n}\nconst basic_param_pattern = /\\[(\\[)?(\\.\\.\\.)?(\\w+?)(?:=(\\w+))?\\]\\]?/g;\nfunction resolve_route(id, params) {\n const segments = get_route_segments(id);\n const has_id_trailing_slash = id != \"/\" && id.endsWith(\"/\");\n return \"/\" + segments.map(\n (segment) => segment.replace(basic_param_pattern, (_, optional, rest, name) => {\n const param_value = params[name];\n if (!param_value) {\n if (optional) return \"\";\n if (rest && param_value !== void 0) return \"\";\n throw new Error(`Missing parameter '${name}' in route ${id}`);\n }\n if (param_value.startsWith(\"/\") || param_value.endsWith(\"/\"))\n throw new Error(\n `Parameter '${name}' in route ${id} cannot start or end with a slash -- this would cause an invalid route like foo//bar`\n );\n return param_value;\n })\n ).filter(Boolean).join(\"/\") + (has_id_trailing_slash ? \"/\" : \"\");\n}\nfunction find_route(path, routes, matchers) {\n for (const route of routes) {\n const match = route.pattern.exec(path);\n if (!match) continue;\n const matched = exec(match, route.params, matchers);\n if (matched) {\n return {\n route,\n params: decode_params(matched)\n };\n }\n }\n return null;\n}\nexport {\n find_route as f,\n resolve_route as r\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { i as initial_base, b as base } from './server-Crjo4w1q.js';
2
- import { r as resolve_route } from './routing-BdGCua8Q.js';
3
- import { t as try_get_request_store } from './event-DVH-6ISX.js';
2
+ import { r as resolve_route } from './routing-CYknP78v.js';
3
+ import { x as try_get_request_store } from './url-hmE1zcJ6.js';
4
4
 
5
5
  function resolve(id, params) {
6
6
  const resolved = resolve_route(
@@ -21,4 +21,4 @@ function resolve(id, params) {
21
21
  }
22
22
 
23
23
  export { resolve as r };
24
- //# sourceMappingURL=server2-CkPmd3Rb.js.map
24
+ //# sourceMappingURL=server2-uigtM6st.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server2-uigtM6st.js","sources":["../../../.svelte-kit/adapter-node/chunks/server2.js"],"sourcesContent":["import { i as initial_base, b as base } from \"./server.js\";\nimport { r as resolve_route } from \"./routing.js\";\nimport \"./url.js\";\nimport { try_get_request_store } from \"@sveltejs/kit/internal/server\";\nimport \"./root.js\";\nfunction resolve(id, params) {\n const resolved = resolve_route(\n id,\n /** @type {Record<string, string>} */\n params\n );\n {\n const store = try_get_request_store();\n if (store && !store.state.prerendering?.fallback) {\n const after_base = store.event.url.pathname.slice(initial_base.length);\n const segments = after_base.split(\"/\").slice(2);\n const prefix = segments.map(() => \"..\").join(\"/\") || \".\";\n return prefix + resolved;\n }\n }\n return base + resolved;\n}\nexport {\n resolve as r\n};\n"],"names":[],"mappings":";;;;AAKA,SAAS,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE;AAC7B,EAAE,MAAM,QAAQ,GAAG,aAAa;AAChC,IAAI,EAAE;AACN;AACA,IAAI;AACJ,GAAG;AACH,EAAE;AACF,IAAI,MAAM,KAAK,GAAG,qBAAqB,EAAE;AACzC,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,EAAE;AACtD,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;AAC5E,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG;AAC9D,MAAM,OAAO,MAAM,GAAG,QAAQ;AAC9B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,IAAI,GAAG,QAAQ;AACxB;;;;"}