mongoku 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +19 -11
  2. package/build/client/_app/immutable/chunks/{CEvYYWlm.js → BdCk1gVw.js} +1 -1
  3. package/build/client/_app/immutable/chunks/BdCk1gVw.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BdCk1gVw.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{Dx86XS0G.js → Bsz507MG.js} +1 -1
  6. package/build/client/_app/immutable/chunks/Bsz507MG.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/Bsz507MG.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{4l_AWZos.js → C1XfxmRC.js} +1 -1
  9. package/build/client/_app/immutable/chunks/C1XfxmRC.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/C1XfxmRC.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/CKHNRODp.js +1 -0
  12. package/build/client/_app/immutable/chunks/CKHNRODp.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/CKHNRODp.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{lkkUcQuO.js → CM2Lsplc.js} +10 -10
  15. package/build/client/_app/immutable/chunks/CM2Lsplc.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/CM2Lsplc.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/{D64wQeYi.js → CRt_PE0j.js} +1 -1
  18. package/build/client/_app/immutable/chunks/CRt_PE0j.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/CRt_PE0j.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{nVJvgG3c.js → CnRtsGt8.js} +3 -3
  21. package/build/client/_app/immutable/chunks/CnRtsGt8.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/CnRtsGt8.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/{BjzB4NFq.js → D4QB_3_6.js} +1 -1
  24. package/build/client/_app/immutable/chunks/D4QB_3_6.js.br +0 -0
  25. package/build/client/_app/immutable/chunks/D4QB_3_6.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/{DVJuGan7.js → DKR4gtrs.js} +1 -1
  27. package/build/client/_app/immutable/chunks/DKR4gtrs.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/DKR4gtrs.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/{BtCOrwSt.js → lGcxg7CO.js} +1 -1
  30. package/build/client/_app/immutable/chunks/lGcxg7CO.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/lGcxg7CO.js.gz +0 -0
  32. package/build/client/_app/immutable/entry/{app.g5qLQ5x2.js → app.-1fKTnAu.js} +2 -2
  33. package/build/client/_app/immutable/entry/app.-1fKTnAu.js.br +0 -0
  34. package/build/client/_app/immutable/entry/app.-1fKTnAu.js.gz +0 -0
  35. package/build/client/_app/immutable/entry/start.BJmMjOs5.js +1 -0
  36. package/build/client/_app/immutable/entry/start.BJmMjOs5.js.br +2 -0
  37. package/build/client/_app/immutable/entry/start.BJmMjOs5.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{0.CD9yR-49.js → 0.Cd4lrshe.js} +1 -1
  39. package/build/client/_app/immutable/nodes/0.Cd4lrshe.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/0.Cd4lrshe.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/{1.DztuiMqq.js → 1.B4faIcO5.js} +1 -1
  42. package/build/client/_app/immutable/nodes/1.B4faIcO5.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/1.B4faIcO5.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/10.B1nM3dh3.js +2 -0
  45. package/build/client/_app/immutable/nodes/10.B1nM3dh3.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/10.B1nM3dh3.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/{11.-Y7Cu3Uv.js → 11.MJ6Rv19p.js} +1 -1
  48. package/build/client/_app/immutable/nodes/11.MJ6Rv19p.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/11.MJ6Rv19p.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/{12.wxif1TtN.js → 12.BMSZ742P.js} +1 -1
  51. package/build/client/_app/immutable/nodes/12.BMSZ742P.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/12.BMSZ742P.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/13.C5mOzCii.js +66 -0
  54. package/build/client/_app/immutable/nodes/13.C5mOzCii.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/13.C5mOzCii.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/{7.DoT-dNUk.js → 7.BV3eTGHn.js} +1 -1
  57. package/build/client/_app/immutable/nodes/7.BV3eTGHn.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/7.BV3eTGHn.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/{8.BFPkGTSl.js → 8.Dw_zZKYL.js} +1 -1
  60. package/build/client/_app/immutable/nodes/8.Dw_zZKYL.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/8.Dw_zZKYL.js.gz +0 -0
  62. package/build/client/_app/immutable/nodes/{9.Bk397TaK.js → 9.BA65fyAm.js} +1 -1
  63. package/build/client/_app/immutable/nodes/9.BA65fyAm.js.br +0 -0
  64. package/build/client/_app/immutable/nodes/9.BA65fyAm.js.gz +0 -0
  65. package/build/client/_app/version.json +1 -1
  66. package/build/client/_app/version.json.br +0 -0
  67. package/build/client/_app/version.json.gz +0 -0
  68. package/build/server/chunks/{0-hDOo8HzQ.js → 0-DhPAR6AN.js} +2 -2
  69. package/build/server/chunks/{0-hDOo8HzQ.js.map → 0-DhPAR6AN.js.map} +1 -1
  70. package/build/server/chunks/{1-Dsw_dVjH.js → 1-B5Roc8lW.js} +2 -2
  71. package/build/server/chunks/{1-Dsw_dVjH.js.map → 1-B5Roc8lW.js.map} +1 -1
  72. package/build/server/chunks/{10-Xy0rxLNm.js → 10-BRaPMv4v.js} +9 -7
  73. package/build/server/chunks/10-BRaPMv4v.js.map +1 -0
  74. package/build/server/chunks/{11-DBYsQ3ww.js → 11-D47Grqcs.js} +8 -6
  75. package/build/server/chunks/{11-DBYsQ3ww.js.map → 11-D47Grqcs.js.map} +1 -1
  76. package/build/server/chunks/{12-D4aSEhYN.js → 12-DYHC-SIK.js} +8 -6
  77. package/build/server/chunks/{12-D4aSEhYN.js.map → 12-DYHC-SIK.js.map} +1 -1
  78. package/build/server/chunks/{13-CNu_Hz8r.js → 13-6jJDktOb.js} +7 -5
  79. package/build/server/chunks/{13-CNu_Hz8r.js.map → 13-6jJDktOb.js.map} +1 -1
  80. package/build/server/chunks/{7-CJJMTAtJ.js → 7-CEa921n2.js} +7 -5
  81. package/build/server/chunks/7-CEa921n2.js.map +1 -0
  82. package/build/server/chunks/{8-jBgxYwFg.js → 8-BJXi_u8p.js} +6 -4
  83. package/build/server/chunks/8-BJXi_u8p.js.map +1 -0
  84. package/build/server/chunks/{9-U8SAVx43.js → 9-DaOfuWT8.js} +7 -5
  85. package/build/server/chunks/{9-U8SAVx43.js.map → 9-DaOfuWT8.js.map} +1 -1
  86. package/build/server/chunks/{JsonEncoder-jJ2OBaud.js → JsonEncoder-B8eJRYZ4.js} +12 -2
  87. package/build/server/chunks/JsonEncoder-B8eJRYZ4.js.map +1 -0
  88. package/build/server/chunks/{JsonValue-B5gcBFcA.js → JsonValue-ClBHqVOS.js} +59 -50
  89. package/build/server/chunks/JsonValue-ClBHqVOS.js.map +1 -0
  90. package/build/server/chunks/{PrettyJson-mXYQacEL.js → PrettyJson-4GQa7qAU.js} +3 -3
  91. package/build/server/chunks/{PrettyJson-mXYQacEL.js.map → PrettyJson-4GQa7qAU.js.map} +1 -1
  92. package/build/server/chunks/{_page.svelte-B-dLNs2Q.js → _page.svelte-C-13GpOe.js} +8 -6
  93. package/build/server/chunks/{_page.svelte-B-dLNs2Q.js.map → _page.svelte-C-13GpOe.js.map} +1 -1
  94. package/build/server/chunks/{_page.svelte-BBpDrOEz.js → _page.svelte-CCaM2a2k.js} +10 -8
  95. package/build/server/chunks/{_page.svelte-BBpDrOEz.js.map → _page.svelte-CCaM2a2k.js.map} +1 -1
  96. package/build/server/chunks/{_page.svelte-C9OCv4Hv.js → _page.svelte-CGvzbG1F.js} +9 -7
  97. package/build/server/chunks/{_page.svelte-C9OCv4Hv.js.map → _page.svelte-CGvzbG1F.js.map} +1 -1
  98. package/build/server/chunks/{_page.svelte-CvWJ35oO.js → _page.svelte-CKLhszFj.js} +8 -6
  99. package/build/server/chunks/{_page.svelte-CvWJ35oO.js.map → _page.svelte-CKLhszFj.js.map} +1 -1
  100. package/build/server/chunks/{_page.svelte-Ds1-yUh2.js → _page.svelte-CiFj0j1b.js} +8 -6
  101. package/build/server/chunks/{_page.svelte-Ds1-yUh2.js.map → _page.svelte-CiFj0j1b.js.map} +1 -1
  102. package/build/server/chunks/{_page.svelte-DYHUokXG.js → _page.svelte-DsOSf3up.js} +11 -9
  103. package/build/server/chunks/_page.svelte-DsOSf3up.js.map +1 -0
  104. package/build/server/chunks/hooks.server-DRPXFQlL.js +53 -0
  105. package/build/server/chunks/hooks.server-DRPXFQlL.js.map +1 -0
  106. package/build/server/chunks/{jsonParser-CraFXJs8.js → jsonParser-C3QUcODD.js} +10 -2
  107. package/build/server/chunks/jsonParser-C3QUcODD.js.map +1 -0
  108. package/build/server/chunks/logger-KF6KpVP6.js +150 -0
  109. package/build/server/chunks/logger-KF6KpVP6.js.map +1 -0
  110. package/build/server/chunks/{mongo-BogiTfnG.js → mongo-Db8Vgimy.js} +2 -2
  111. package/build/server/chunks/{mongo-BogiTfnG.js.map → mongo-Db8Vgimy.js.map} +1 -1
  112. package/build/server/chunks/remote-xxtqbu-AjxdDZZ_.js +19 -0
  113. package/build/server/chunks/remote-xxtqbu-AjxdDZZ_.js.map +1 -0
  114. package/build/server/chunks/{servers.remote-C2HuT43p.js → servers.remote-DrkuAWHP.js} +20 -7
  115. package/build/server/chunks/servers.remote-DrkuAWHP.js.map +1 -0
  116. package/build/server/index.js +2 -2
  117. package/build/server/index.js.map +1 -1
  118. package/build/server/manifest.js +11 -11
  119. package/build/server/manifest.js.map +1 -1
  120. package/package.json +1 -1
  121. package/src/api/servers.remote.ts +20 -3
  122. package/src/app.d.ts +3 -1
  123. package/src/hooks.server.ts +38 -16
  124. package/src/lib/components/JsonValue.svelte +8 -0
  125. package/src/lib/server/JsonEncoder.ts +11 -1
  126. package/src/lib/server/contextStore.ts +4 -0
  127. package/src/lib/server/logger.ts +184 -0
  128. package/src/lib/server/mongo.ts +1 -1
  129. package/src/lib/utils/jsonParser.ts +11 -1
  130. package/src/routes/servers/+page.server.ts +1 -1
  131. package/src/routes/servers/[server]/databases/+page.server.ts +1 -1
  132. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.server.ts +1 -1
  133. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/documents/+page.svelte +2 -3
  134. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/indexes/+page.server.ts +1 -1
  135. package/src/routes/servers/[server]/databases/[database]/collections/[collection]/mappings/+page.svelte +1 -2
  136. package/build/client/_app/immutable/chunks/4l_AWZos.js.br +0 -0
  137. package/build/client/_app/immutable/chunks/4l_AWZos.js.gz +0 -0
  138. package/build/client/_app/immutable/chunks/BjzB4NFq.js.br +0 -0
  139. package/build/client/_app/immutable/chunks/BjzB4NFq.js.gz +0 -0
  140. package/build/client/_app/immutable/chunks/BtCOrwSt.js.br +0 -0
  141. package/build/client/_app/immutable/chunks/BtCOrwSt.js.gz +0 -0
  142. package/build/client/_app/immutable/chunks/CEvYYWlm.js.br +0 -0
  143. package/build/client/_app/immutable/chunks/CEvYYWlm.js.gz +0 -0
  144. package/build/client/_app/immutable/chunks/CT5SFbzp.js +0 -1
  145. package/build/client/_app/immutable/chunks/CT5SFbzp.js.br +0 -0
  146. package/build/client/_app/immutable/chunks/CT5SFbzp.js.gz +0 -0
  147. package/build/client/_app/immutable/chunks/CcyPStn-.js +0 -1
  148. package/build/client/_app/immutable/chunks/CcyPStn-.js.br +0 -0
  149. package/build/client/_app/immutable/chunks/CcyPStn-.js.gz +0 -0
  150. package/build/client/_app/immutable/chunks/D64wQeYi.js.br +0 -0
  151. package/build/client/_app/immutable/chunks/D64wQeYi.js.gz +0 -0
  152. package/build/client/_app/immutable/chunks/DVJuGan7.js.br +0 -0
  153. package/build/client/_app/immutable/chunks/DVJuGan7.js.gz +0 -0
  154. package/build/client/_app/immutable/chunks/Dx86XS0G.js.br +0 -4
  155. package/build/client/_app/immutable/chunks/Dx86XS0G.js.gz +0 -0
  156. package/build/client/_app/immutable/chunks/lkkUcQuO.js.br +0 -0
  157. package/build/client/_app/immutable/chunks/lkkUcQuO.js.gz +0 -0
  158. package/build/client/_app/immutable/chunks/nVJvgG3c.js.br +0 -0
  159. package/build/client/_app/immutable/chunks/nVJvgG3c.js.gz +0 -0
  160. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.br +0 -0
  161. package/build/client/_app/immutable/entry/app.g5qLQ5x2.js.gz +0 -0
  162. package/build/client/_app/immutable/entry/start.C1uqw3sp.js +0 -1
  163. package/build/client/_app/immutable/entry/start.C1uqw3sp.js.br +0 -2
  164. package/build/client/_app/immutable/entry/start.C1uqw3sp.js.gz +0 -0
  165. package/build/client/_app/immutable/nodes/0.CD9yR-49.js.br +0 -0
  166. package/build/client/_app/immutable/nodes/0.CD9yR-49.js.gz +0 -0
  167. package/build/client/_app/immutable/nodes/1.DztuiMqq.js.br +0 -0
  168. package/build/client/_app/immutable/nodes/1.DztuiMqq.js.gz +0 -0
  169. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js +0 -2
  170. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.br +0 -0
  171. package/build/client/_app/immutable/nodes/10.CWMFKPcE.js.gz +0 -0
  172. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.br +0 -0
  173. package/build/client/_app/immutable/nodes/11.-Y7Cu3Uv.js.gz +0 -0
  174. package/build/client/_app/immutable/nodes/12.wxif1TtN.js.br +0 -0
  175. package/build/client/_app/immutable/nodes/12.wxif1TtN.js.gz +0 -0
  176. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js +0 -66
  177. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.br +0 -0
  178. package/build/client/_app/immutable/nodes/13.CpyTaRSN.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.br +0 -0
  180. package/build/client/_app/immutable/nodes/7.DoT-dNUk.js.gz +0 -0
  181. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/8.BFPkGTSl.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/9.Bk397TaK.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/9.Bk397TaK.js.gz +0 -0
  185. package/build/server/chunks/10-Xy0rxLNm.js.map +0 -1
  186. package/build/server/chunks/7-CJJMTAtJ.js.map +0 -1
  187. package/build/server/chunks/8-jBgxYwFg.js.map +0 -1
  188. package/build/server/chunks/JsonEncoder-jJ2OBaud.js.map +0 -1
  189. package/build/server/chunks/JsonValue-B5gcBFcA.js.map +0 -1
  190. package/build/server/chunks/_page.svelte-DYHUokXG.js.map +0 -1
  191. package/build/server/chunks/hooks.server-CagAPNr2.js +0 -40
  192. package/build/server/chunks/hooks.server-CagAPNr2.js.map +0 -1
  193. package/build/server/chunks/jsonParser-CraFXJs8.js.map +0 -1
  194. package/build/server/chunks/logger-D71iWOkl.js +0 -36
  195. package/build/server/chunks/logger-D71iWOkl.js.map +0 -1
  196. package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js +0 -17
  197. package/build/server/chunks/remote-xxtqbu-BJDSUh3k.js.map +0 -1
  198. package/build/server/chunks/servers.remote-C2HuT43p.js.map +0 -1
  199. package/src/lib/utils/logger.ts +0 -42
@@ -10,25 +10,25 @@ return {
10
10
  assets: new Set(["robots.txt"]),
11
11
  mimeTypes: {".txt":"text/plain"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.C1uqw3sp.js",app:"_app/immutable/entry/app.g5qLQ5x2.js",imports:["_app/immutable/entry/start.C1uqw3sp.js","_app/immutable/chunks/nVJvgG3c.js","_app/immutable/chunks/5nAxkTTP.js","_app/immutable/chunks/C82Rp5eQ.js","_app/immutable/chunks/3iRu_dUj.js","_app/immutable/chunks/4l_AWZos.js","_app/immutable/entry/app.g5qLQ5x2.js","_app/immutable/chunks/C82Rp5eQ.js","_app/immutable/chunks/3iRu_dUj.js","_app/immutable/chunks/BBg-V8FE.js","_app/immutable/chunks/5nAxkTTP.js","_app/immutable/chunks/D7E46CWw.js","_app/immutable/chunks/BE8UzJuY.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.BJmMjOs5.js",app:"_app/immutable/entry/app.-1fKTnAu.js",imports:["_app/immutable/entry/start.BJmMjOs5.js","_app/immutable/chunks/CnRtsGt8.js","_app/immutable/chunks/5nAxkTTP.js","_app/immutable/chunks/C82Rp5eQ.js","_app/immutable/chunks/3iRu_dUj.js","_app/immutable/chunks/C1XfxmRC.js","_app/immutable/entry/app.-1fKTnAu.js","_app/immutable/chunks/C82Rp5eQ.js","_app/immutable/chunks/3iRu_dUj.js","_app/immutable/chunks/BBg-V8FE.js","_app/immutable/chunks/5nAxkTTP.js","_app/immutable/chunks/D7E46CWw.js","_app/immutable/chunks/BE8UzJuY.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-hDOo8HzQ.js')),
16
- __memo(() => import('./chunks/1-Dsw_dVjH.js')),
15
+ __memo(() => import('./chunks/0-DhPAR6AN.js')),
16
+ __memo(() => import('./chunks/1-B5Roc8lW.js')),
17
17
  __memo(() => import('./chunks/2-ClkERMhY.js')),
18
18
  __memo(() => import('./chunks/3-CTpqmxdo.js')),
19
19
  __memo(() => import('./chunks/4-CUH4fZn8.js')),
20
20
  __memo(() => import('./chunks/5-BSEdxfut.js')),
21
21
  __memo(() => import('./chunks/6-ifXBeMPA.js')),
22
- __memo(() => import('./chunks/7-CJJMTAtJ.js')),
23
- __memo(() => import('./chunks/8-jBgxYwFg.js')),
24
- __memo(() => import('./chunks/9-U8SAVx43.js')),
25
- __memo(() => import('./chunks/10-Xy0rxLNm.js')),
26
- __memo(() => import('./chunks/11-DBYsQ3ww.js')),
27
- __memo(() => import('./chunks/12-D4aSEhYN.js')),
28
- __memo(() => import('./chunks/13-CNu_Hz8r.js'))
22
+ __memo(() => import('./chunks/7-CEa921n2.js')),
23
+ __memo(() => import('./chunks/8-BJXi_u8p.js')),
24
+ __memo(() => import('./chunks/9-DaOfuWT8.js')),
25
+ __memo(() => import('./chunks/10-BRaPMv4v.js')),
26
+ __memo(() => import('./chunks/11-D47Grqcs.js')),
27
+ __memo(() => import('./chunks/12-DYHC-SIK.js')),
28
+ __memo(() => import('./chunks/13-6jJDktOb.js'))
29
29
  ],
30
30
  remotes: {
31
- 'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-BJDSUh3k.js'))
31
+ 'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu-AjxdDZZ_.js'))
32
32
  },
33
33
  routes: [
34
34
  {
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.C1uqw3sp.js\",app:\"_app/immutable/entry/app.g5qLQ5x2.js\",imports:[\"_app/immutable/entry/start.C1uqw3sp.js\",\"_app/immutable/chunks/nVJvgG3c.js\",\"_app/immutable/chunks/5nAxkTTP.js\",\"_app/immutable/chunks/C82Rp5eQ.js\",\"_app/immutable/chunks/3iRu_dUj.js\",\"_app/immutable/chunks/4l_AWZos.js\",\"_app/immutable/entry/app.g5qLQ5x2.js\",\"_app/immutable/chunks/C82Rp5eQ.js\",\"_app/immutable/chunks/3iRu_dUj.js\",\"_app/immutable/chunks/BBg-V8FE.js\",\"_app/immutable/chunks/5nAxkTTP.js\",\"_app/immutable/chunks/D7E46CWw.js\",\"_app/immutable/chunks/BE8UzJuY.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu.js'))\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/favicon.ico\",\n\t\t\t\tpattern: /^\\/favicon\\.ico\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/favicon.ico/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers\",\n\t\t\t\tpattern: /^\\/servers\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,], errors: [1,,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents/[document]\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"document\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,5,], errors: [1,,,,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/indexes\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/indexes\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/mappings\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/mappings\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.BJmMjOs5.js\",app:\"_app/immutable/entry/app.-1fKTnAu.js\",imports:[\"_app/immutable/entry/start.BJmMjOs5.js\",\"_app/immutable/chunks/CnRtsGt8.js\",\"_app/immutable/chunks/5nAxkTTP.js\",\"_app/immutable/chunks/C82Rp5eQ.js\",\"_app/immutable/chunks/3iRu_dUj.js\",\"_app/immutable/chunks/C1XfxmRC.js\",\"_app/immutable/entry/app.-1fKTnAu.js\",\"_app/immutable/chunks/C82Rp5eQ.js\",\"_app/immutable/chunks/3iRu_dUj.js\",\"_app/immutable/chunks/BBg-V8FE.js\",\"_app/immutable/chunks/5nAxkTTP.js\",\"_app/immutable/chunks/D7E46CWw.js\",\"_app/immutable/chunks/BE8UzJuY.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t'xxtqbu': __memo(() => import('./chunks/remote-xxtqbu.js'))\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/favicon.ico\",\n\t\t\t\tpattern: /^\\/favicon\\.ico\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/favicon.ico/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers\",\n\t\t\t\tpattern: /^\\/servers\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,], errors: [1,,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/documents/[document]\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/documents\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"document\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,5,], errors: [1,,,,,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/indexes\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/indexes\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/servers/[server]/databases/[database]/collections/[collection]/mappings\",\n\t\t\t\tpattern: /^\\/servers\\/([^/]+?)\\/databases\\/([^/]+?)\\/collections\\/([^/]+?)\\/mappings\\/?$/,\n\t\t\t\tparams: [{\"name\":\"server\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"database\",\"optional\":false,\"rest\":false,\"chained\":false},{\"name\":\"collection\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,3,4,], errors: [1,,,,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;AAChC,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AACjC,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACjoB,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC,CAAC;AACxC,GAAG,MAAM,CAAC,MAAM,OAAO,yBAAe,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,EAAE;AACX,GAAG,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,oCAA2B,CAAC;AAC7D,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,6BAA6B;AACrC,IAAI,OAAO,EAAE,qCAAqC;AAClD,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC7E,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE;AACrD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,oDAAoD;AAC5D,IAAI,OAAO,EAAE,4DAA4D;AACzE,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/I,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACxD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,2EAA2E;AACnF,IAAI,OAAO,EAAE,iFAAiF;AAC9F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,sFAAsF;AAC9F,IAAI,OAAO,EAAE,2FAA2F;AACxG,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrR,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;AAC/D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,yEAAyE;AACjF,IAAI,OAAO,EAAE,+EAA+E;AAC5F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,0EAA0E;AAClF,IAAI,OAAO,EAAE,gFAAgF;AAC7F,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnN,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;AAC5D,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongoku",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
4
4
  "license": "MIT",
5
5
  "author": "Anthony Moi <m.anthony.moi@gmail.com>",
6
6
  "type": "module",
@@ -1,10 +1,10 @@
1
1
  import { command, query } from "$app/server";
2
2
  import { validateAggregationPipeline } from "$lib/server/aggregation";
3
3
  import JsonEncoder from "$lib/server/JsonEncoder";
4
+ import { logger } from "$lib/server/logger";
4
5
  import { getMongo } from "$lib/server/mongo";
5
6
  import { isEmptyObject } from "$lib/utils/isEmptyObject";
6
7
  import { parseJSON } from "$lib/utils/jsonParser";
7
- import { logger } from "$lib/utils/logger";
8
8
  import { error } from "@sveltejs/kit";
9
9
  import { ObjectId, type Document } from "mongodb";
10
10
  import { z } from "zod";
@@ -16,13 +16,28 @@ function checkReadOnly() {
16
16
  }
17
17
  }
18
18
 
19
+ // Sanitize MongoDB connection string by removing credentials
20
+ function sanitizeMongoUrl(url: string): string {
21
+ try {
22
+ const urlObj = new URL(url.startsWith("mongodb") ? url : `mongodb://${url}`);
23
+ if (urlObj.username || urlObj.password) {
24
+ urlObj.username = "***";
25
+ urlObj.password = "***";
26
+ }
27
+ return urlObj.toString();
28
+ } catch {
29
+ // If URL parsing fails, just mask the whole thing
30
+ return "***";
31
+ }
32
+ }
33
+
19
34
  // Add a new server
20
35
  export const addServer = command(
21
36
  z.object({
22
37
  url: z.string(),
23
38
  }),
24
39
  async ({ url }) => {
25
- logger.log("addServer called with payload:", { url });
40
+ logger.log("addServer called with payload:", { url: sanitizeMongoUrl(url) });
26
41
  const mongo = await getMongo();
27
42
  await mongo.addServer(url);
28
43
  return { ok: true };
@@ -141,11 +156,13 @@ export const deleteDocument = command(
141
156
  const mongo = await getMongo();
142
157
  const client = mongo.getClient(server);
143
158
 
159
+ const _id = /^[0-9a-fA-F]{24}$/.test(document) ? new ObjectId(document) : document;
160
+
144
161
  await client
145
162
  .db(database)
146
163
  .collection(collection)
147
164
  .deleteOne({
148
- _id: new ObjectId(document),
165
+ _id: _id as unknown as ObjectId,
149
166
  });
150
167
 
151
168
  if (collection === "mongoku.mappings") {
package/src/app.d.ts CHANGED
@@ -6,7 +6,9 @@ declare global {
6
6
  message: string;
7
7
  code?: number | string;
8
8
  }
9
- // interface Locals {}
9
+ interface Locals {
10
+ requestId: string;
11
+ }
10
12
  // interface PageData {}
11
13
  // interface PageState {}
12
14
  // interface Platform {}
@@ -1,4 +1,5 @@
1
- import { logger } from "$lib/utils/logger";
1
+ import { contextStore } from "$lib/server/contextStore";
2
+ import { logger } from "$lib/server/logger";
2
3
  import type { Handle, HandleServerError } from "@sveltejs/kit";
3
4
  import { MongoError } from "mongodb";
4
5
 
@@ -7,22 +8,43 @@ Error.stackTraceLimit = 100;
7
8
 
8
9
  export const handle: Handle = async ({ event, resolve }) => {
9
10
  const authBasic = process.env.MONGOKU_AUTH_BASIC;
10
- if (authBasic) {
11
- const [username, password] = authBasic.split(":");
12
- const basicAuth = event.request.headers.get("Authorization");
13
- if (
14
- !basicAuth?.toLowerCase().startsWith("basic ") ||
15
- basicAuth.slice("basic ".length) !== Buffer.from(`${username}:${password}`).toString("base64")
16
- ) {
17
- return new Response("Unauthorized", {
18
- status: 401,
19
- headers: {
20
- "WWW-Authenticate": "Basic",
21
- },
22
- });
11
+ event.locals.requestId = event.request.headers.get("X-Request-ID") || crypto.randomUUID();
12
+
13
+ event.setHeaders({
14
+ "X-Request-ID": event.locals.requestId,
15
+ });
16
+
17
+ return contextStore.run(event, async () => {
18
+ const startTime = performance.now();
19
+
20
+ if (authBasic) {
21
+ const [username, password] = authBasic.split(":");
22
+ const basicAuth = event.request.headers.get("Authorization");
23
+ if (
24
+ !basicAuth?.toLowerCase().startsWith("basic ") ||
25
+ basicAuth.slice("basic ".length) !== Buffer.from(`${username}:${password}`).toString("base64")
26
+ ) {
27
+ const response = new Response("Unauthorized", {
28
+ status: 401,
29
+ headers: {
30
+ "WWW-Authenticate": "Basic",
31
+ },
32
+ });
33
+
34
+ // Log unauthorized request
35
+ logger.logRequest(401, performance.now() - startTime);
36
+
37
+ return response;
38
+ }
23
39
  }
24
- }
25
- return resolve(event);
40
+
41
+ const response = await resolve(event);
42
+
43
+ // Log successful request
44
+ logger.logRequest(response.status, performance.now() - startTime);
45
+
46
+ return response;
47
+ });
26
48
  };
27
49
 
28
50
  export const handleError: HandleServerError = ({ error }) => {
@@ -108,6 +108,8 @@
108
108
  return "date";
109
109
  case "RegExp":
110
110
  return "regexp";
111
+ case "Binary":
112
+ return "binary";
111
113
  default:
112
114
  return "object";
113
115
  }
@@ -234,6 +236,12 @@
234
236
  <span class="call function">Date("<span class="string">{value.$value}</span>")</span>
235
237
  {:else if valueType === "regexp"}
236
238
  <span class="value regexp">/{value.$value.$pattern}/{value.$value.$flags}</span>
239
+ {:else if valueType === "binary"}
240
+ <span class="call function"
241
+ >BinData(<span class="number">{value.$subType}</span>, "<span class="string"
242
+ >{value.$value.length > 40 ? value.$value.substring(0, 40) + "..." : value.$value}</span
243
+ >")</span
244
+ >
237
245
  {:else if valueType === "array"}
238
246
  {#if isEmpty}
239
247
  <span class="value array">[]</span>
@@ -1,4 +1,4 @@
1
- import { ObjectId } from "mongodb";
1
+ import { Binary, ObjectId } from "mongodb";
2
2
 
3
3
  export default class JsonEncoder {
4
4
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -25,6 +25,13 @@ export default class JsonEncoder {
25
25
  },
26
26
  };
27
27
  }
28
+ if (obj instanceof Binary) {
29
+ return {
30
+ $type: "Binary",
31
+ $value: Buffer.from(obj.buffer).toString("base64"),
32
+ $subType: obj.sub_type,
33
+ };
34
+ }
28
35
  if (Array.isArray(obj)) {
29
36
  return [...obj.map(JsonEncoder.encode)];
30
37
  }
@@ -48,6 +55,9 @@ export default class JsonEncoder {
48
55
  if (obj && obj.$type === "RegExp") {
49
56
  return new RegExp(obj.$value.$pattern, obj.$value.$flags);
50
57
  }
58
+ if (obj && obj.$type === "Binary") {
59
+ return new Binary(Buffer.from(obj.$value, "base64"), obj.$subType);
60
+ }
51
61
  if (Array.isArray(obj)) {
52
62
  return [...obj.map(JsonEncoder.decode)];
53
63
  }
@@ -0,0 +1,4 @@
1
+ import type { RequestEvent } from "@sveltejs/kit";
2
+ import { AsyncLocalStorage } from "async_hooks";
3
+
4
+ export const contextStore = new AsyncLocalStorage<RequestEvent>();
@@ -0,0 +1,184 @@
1
+ import { contextStore } from "$lib/server/contextStore";
2
+ import { inspect } from "node:util";
3
+
4
+ type LogLevel = "debug" | "info" | "warn" | "error";
5
+
6
+ /**
7
+ * Logger class that wraps console methods for centralized logging
8
+ */
9
+ class Logger {
10
+ private structuredLogging: boolean;
11
+ private logHeaders: string[];
12
+
13
+ constructor() {
14
+ this.structuredLogging = process.env.MONGOKU_STRUCTURED_LOG === "true";
15
+ // Parse comma-delimited list of headers to log
16
+ this.logHeaders = process.env.MONGOKU_LOG_HEADERS
17
+ ? process.env.MONGOKU_LOG_HEADERS.split(",")
18
+ .map((h) => h.trim().toLowerCase())
19
+ .filter(Boolean)
20
+ : [];
21
+ }
22
+
23
+ /**
24
+ * Get request context information from the current request
25
+ */
26
+ private getRequestContext() {
27
+ const event = contextStore.getStore();
28
+ if (!event) {
29
+ return undefined;
30
+ }
31
+
32
+ const url = new URL(event.request.url);
33
+
34
+ const context: Record<string, unknown> = {
35
+ requestId: event.locals.requestId,
36
+ method: event.request.method,
37
+ url: url.pathname + url.search,
38
+ ip: event.getClientAddress(),
39
+ userAgent: event.request.headers.get("user-agent") || undefined,
40
+ };
41
+
42
+ // Add custom headers if configured
43
+ if (this.logHeaders.length > 0) {
44
+ const headers: Record<string, string> = {};
45
+ for (const headerName of this.logHeaders) {
46
+ const value = event.request.headers.get(headerName);
47
+ if (value) {
48
+ headers[headerName] = value;
49
+ }
50
+ }
51
+ if (Object.keys(headers).length > 0) {
52
+ context.headers = headers;
53
+ }
54
+ }
55
+
56
+ return context;
57
+ }
58
+
59
+ /**
60
+ * Format arguments for logging
61
+ */
62
+ private formatArgs(args: unknown[]): string {
63
+ return args
64
+ .map((arg) => {
65
+ if (arg instanceof Error) {
66
+ return (
67
+ (arg.stack ?? `${arg.name}: ${arg.message}`) +
68
+ (arg.cause instanceof Error
69
+ ? `\ncause: ${arg.cause.stack ?? `${arg.cause.name}: ${arg.cause.message}`}`
70
+ : "")
71
+ );
72
+ } else if (typeof arg === "string") {
73
+ return arg;
74
+ } else {
75
+ return inspect(arg, { depth: 20, colors: !this.structuredLogging });
76
+ }
77
+ })
78
+ .join(" ");
79
+ }
80
+
81
+ /**
82
+ * Internal log method that handles both structured and unstructured logging
83
+ */
84
+ private _log(level: LogLevel, args: unknown[]): void {
85
+ const message = this.formatArgs(args);
86
+
87
+ if (this.structuredLogging) {
88
+ const logEntry = {
89
+ level,
90
+ time: new Date().toISOString(),
91
+ message,
92
+ ...this.getRequestContext(),
93
+ };
94
+ console.log(JSON.stringify(logEntry));
95
+ } else {
96
+ // Use appropriate console method based on level
97
+ switch (level) {
98
+ case "error":
99
+ console.error(message);
100
+ break;
101
+ case "warn":
102
+ console.warn(message);
103
+ break;
104
+ case "debug":
105
+ console.debug(message);
106
+ break;
107
+ default:
108
+ console.log(message);
109
+ }
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Log an informational message
115
+ */
116
+ log(...args: unknown[]): void {
117
+ this._log("info", args);
118
+ }
119
+
120
+ /**
121
+ * Log an informational message (alias for log)
122
+ */
123
+ info(...args: unknown[]): void {
124
+ this._log("info", args);
125
+ }
126
+
127
+ /**
128
+ * Log an error message
129
+ */
130
+ error(...args: unknown[]): void {
131
+ this._log("error", args);
132
+ }
133
+
134
+ /**
135
+ * Log a warning message
136
+ */
137
+ warn(...args: unknown[]): void {
138
+ this._log("warn", args);
139
+ }
140
+
141
+ /**
142
+ * Log a debug message
143
+ */
144
+ debug(...args: unknown[]): void {
145
+ this._log("debug", args);
146
+ }
147
+
148
+ /**
149
+ * Log an HTTP request
150
+ */
151
+ logRequest(statusCode: number, durationMs: number): void {
152
+ const duration = Math.round(durationMs * 100) / 100; // Round to 2 decimal places
153
+
154
+ if (this.structuredLogging) {
155
+ const logEntry = {
156
+ level: "info" as LogLevel,
157
+ time: new Date().toISOString(),
158
+ type: "request",
159
+ statusCode,
160
+ duration,
161
+ ...this.getRequestContext(),
162
+ };
163
+
164
+ console.log(JSON.stringify(logEntry));
165
+ } else {
166
+ // Simple console log for non-structured mode
167
+ const event = contextStore.getStore();
168
+ if (event) {
169
+ const url = new URL(event.request.url);
170
+ const urlPath = url.pathname + url.search;
171
+ const method = event.request.method;
172
+ const message = `${statusCode} ${method} ${urlPath} ${duration}ms`;
173
+ if (statusCode >= 400) {
174
+ console.error(message);
175
+ } else {
176
+ console.log(message);
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+
183
+ // Export a singleton instance
184
+ export const logger = new Logger();
@@ -1,5 +1,5 @@
1
+ import { logger } from "$lib/server/logger";
1
2
  import type { CollectionJSON, CollectionMappings, Mappings } from "$lib/types";
2
- import { logger } from "$lib/utils/logger";
3
3
  import { MongoClient, type Collection } from "mongodb";
4
4
  import { URL } from "url";
5
5
  import { HostsManager } from "./HostsManager";
@@ -71,7 +71,7 @@ function buildObject(node: Node | Expression): unknown {
71
71
 
72
72
  case "NewExpression":
73
73
  case "CallExpression": {
74
- const authorizedCalls = ["ObjectId", "Date", "RegExp"];
74
+ const authorizedCalls = ["ObjectId", "Date", "RegExp", "BinData"];
75
75
  const callee = node.callee.type === "Identifier" ? node.callee.name : null;
76
76
  if (callee && authorizedCalls.includes(callee)) {
77
77
  if (callee === "RegExp") {
@@ -85,6 +85,16 @@ function buildObject(node: Node | Expression): unknown {
85
85
  };
86
86
  }
87
87
 
88
+ if (callee === "BinData") {
89
+ // BinData(subType, base64String)
90
+ const [subType, base64] = node.arguments.map((arg) => buildObject(arg));
91
+ return {
92
+ $type: "Binary",
93
+ $value: base64,
94
+ $subType: subType,
95
+ };
96
+ }
97
+
88
98
  return {
89
99
  $type: callee,
90
100
  $value: buildObject(node.arguments[0]),
@@ -1,6 +1,6 @@
1
+ import { logger } from "$lib/server/logger";
1
2
  import { getMongo } from "$lib/server/mongo";
2
3
  import type { DatabaseStats } from "$lib/types";
3
- import { logger } from "$lib/utils/logger";
4
4
  import type { PageServerLoad } from "./$types";
5
5
 
6
6
  export const load: PageServerLoad = async () => {
@@ -1,6 +1,6 @@
1
+ import { logger } from "$lib/server/logger";
1
2
  import { getCollectionJson, getMongo } from "$lib/server/mongo";
2
3
  import type { CollectionJSON, DatabaseStats } from "$lib/types";
3
- import { logger } from "$lib/utils/logger";
4
4
  import type { PageServerLoad } from "./$types";
5
5
 
6
6
  export const load: PageServerLoad = async ({ params }) => {
@@ -1,10 +1,10 @@
1
1
  import { validateAggregationPipeline } from "$lib/server/aggregation";
2
2
  import JsonEncoder from "$lib/server/JsonEncoder";
3
+ import { logger } from "$lib/server/logger";
3
4
  import { getMongo } from "$lib/server/mongo";
4
5
  import { type MongoDocument } from "$lib/types";
5
6
  import { isEmptyObject } from "$lib/utils/isEmptyObject";
6
7
  import { parseJSON } from "$lib/utils/jsonParser";
7
- import { logger } from "$lib/utils/logger";
8
8
  import type { Document } from "mongodb";
9
9
  import type { PageServerLoad } from "./$types";
10
10
 
@@ -14,7 +14,6 @@
14
14
  import { notificationStore } from "$lib/stores/notifications.svelte";
15
15
  import type { MongoDocument, SearchParams } from "$lib/types";
16
16
  import { formatNumber } from "$lib/utils/filters";
17
- import { logger } from "$lib/utils/logger";
18
17
  import { SvelteURLSearchParams } from "svelte/reactivity";
19
18
  import type { PageData } from "./$types";
20
19
 
@@ -104,7 +103,7 @@
104
103
  modifiedItems = items;
105
104
  }
106
105
  } catch (error) {
107
- logger.log(error);
106
+ console.error(error);
108
107
  notificationStore.notifyError(error, "Failed to update document");
109
108
  }
110
109
  }
@@ -196,7 +195,7 @@
196
195
  editMode = false;
197
196
  }
198
197
  } catch (error) {
199
- logger.error(error);
198
+ console.error(error);
200
199
  notificationStore.notifyError(error, "Failed to update documents");
201
200
  } finally {
202
201
  isUpdating = false;
@@ -1,6 +1,6 @@
1
1
  import JsonEncoder from "$lib/server/JsonEncoder";
2
+ import { logger } from "$lib/server/logger";
2
3
  import { getMongo } from "$lib/server/mongo";
3
- import { logger } from "$lib/utils/logger";
4
4
  import type { IndexDescription } from "mongodb";
5
5
  import type { PageServerLoad } from "./$types";
6
6
 
@@ -4,7 +4,6 @@
4
4
  import Panel from "$lib/components/Panel.svelte";
5
5
  import { notificationStore } from "$lib/stores/notifications.svelte";
6
6
  import type { MappingTarget } from "$lib/types";
7
- import { logger } from "$lib/utils/logger";
8
7
  import type { PageData } from "./$types";
9
8
  let { data }: { data: PageData } = $props();
10
9
  // Convert mappings to an editable array format
@@ -154,7 +153,7 @@ Please analyze the codebase and database, then generate the appropriate mappings
154
153
  });
155
154
  notificationStore.notifySuccess("Mappings saved successfully");
156
155
  } catch (error) {
157
- logger.error("Error saving mappings:", error);
156
+ console.error("Error saving mappings:", error);
158
157
  notificationStore.notifyError(error, "Failed to save mappings");
159
158
  }
160
159
  }
@@ -1 +0,0 @@
1
- class e{log(...o){console.log(...o)}info(...o){console.log(...o)}error(...o){console.error(...o)}warn(...o){console.warn(...o)}debug(...o){console.debug(...o)}}const r=new e;export{r as l};