@kozou/svelte-ui 1.21.0 → 1.21.1

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 (236) hide show
  1. package/build/client/_app/immutable/assets/{0.BFw6nhto.css → 0.D0QQ9_9s.css} +1 -1
  2. package/build/client/_app/immutable/assets/0.D0QQ9_9s.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.D0QQ9_9s.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/BPmV12Pr.js +3 -0
  5. package/build/client/_app/immutable/chunks/BPmV12Pr.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BPmV12Pr.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/CzvdUerA.js +1 -0
  8. package/build/client/_app/immutable/chunks/CzvdUerA.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/CzvdUerA.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/DM1WDXNi.js +2 -0
  11. package/build/client/_app/immutable/chunks/DM1WDXNi.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/DM1WDXNi.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/DRLNDRGd.js +1 -0
  14. package/build/client/_app/immutable/chunks/DRLNDRGd.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/DRLNDRGd.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/Tpr6dUXs.js +1 -0
  17. package/build/client/_app/immutable/chunks/Tpr6dUXs.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/Tpr6dUXs.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/ng5ew0-V.js +2 -0
  20. package/build/client/_app/immutable/chunks/ng5ew0-V.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/ng5ew0-V.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/app.IRpLXiYT.js +2 -0
  23. package/build/client/_app/immutable/entry/app.IRpLXiYT.js.br +0 -0
  24. package/build/client/_app/immutable/entry/app.IRpLXiYT.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/start.DHyiZRvR.js +1 -0
  26. package/build/client/_app/immutable/entry/start.DHyiZRvR.js.br +1 -0
  27. package/build/client/_app/immutable/entry/start.DHyiZRvR.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/0.CzDt86DM.js +1 -0
  29. package/build/client/_app/immutable/nodes/0.CzDt86DM.js.br +2 -0
  30. package/build/client/_app/immutable/nodes/0.CzDt86DM.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/1.Ds1FrfOA.js +1 -0
  32. package/build/client/_app/immutable/nodes/1.Ds1FrfOA.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/1.Ds1FrfOA.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/2.BJIHarag.js +2 -0
  35. package/build/client/_app/immutable/nodes/2.BJIHarag.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/2.BJIHarag.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/3.vV9B4dJJ.js +1 -0
  38. package/build/client/_app/immutable/nodes/3.vV9B4dJJ.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/3.vV9B4dJJ.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{4.DP1YMUE5.js → 4.Dspxez47.js} +2 -2
  41. package/build/client/_app/immutable/nodes/4.Dspxez47.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/4.Dspxez47.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/5.Bv_PVEBh.js +1 -0
  44. package/build/client/_app/immutable/nodes/5.Bv_PVEBh.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/5.Bv_PVEBh.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/6.DozLeltI.js +1 -0
  47. package/build/client/_app/immutable/nodes/6.DozLeltI.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/6.DozLeltI.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/7.OrbBRjxz.js +1 -0
  50. package/build/client/_app/immutable/nodes/7.OrbBRjxz.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/7.OrbBRjxz.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/8.BwzzPDZH.js +1 -0
  53. package/build/client/_app/immutable/nodes/8.BwzzPDZH.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/8.BwzzPDZH.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{9.ByJ3R-gj.js → 9.DcN_pzX4.js} +1 -1
  56. package/build/client/_app/immutable/nodes/9.DcN_pzX4.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/9.DcN_pzX4.js.gz +0 -0
  58. package/build/client/_app/version.json +1 -1
  59. package/build/client/_app/version.json.br +0 -0
  60. package/build/client/_app/version.json.gz +0 -0
  61. package/build/server/chunks/{0-QvKVS1pE.js → 0-D3Od9Nns.js} +6 -6
  62. package/build/server/chunks/0-D3Od9Nns.js.map +1 -0
  63. package/build/server/chunks/1-DixDdLll.js +9 -0
  64. package/build/server/chunks/{1-D1C-sDZX.js.map → 1-DixDdLll.js.map} +1 -1
  65. package/build/server/chunks/{2-DGOJW-s_.js → 2-CZzPkcAH.js} +6 -7
  66. package/build/server/chunks/2-CZzPkcAH.js.map +1 -0
  67. package/build/server/chunks/{3-CQQukqb6.js → 3-BN6KhH_S.js} +15 -15
  68. package/build/server/chunks/3-BN6KhH_S.js.map +1 -0
  69. package/build/server/chunks/{4-OlSudnzY.js → 4-DnqMYPCR.js} +7 -6
  70. package/build/server/chunks/4-DnqMYPCR.js.map +1 -0
  71. package/build/server/chunks/{5-D-48ExuO.js → 5-DcH4FkmM.js} +8 -7
  72. package/build/server/chunks/5-DcH4FkmM.js.map +1 -0
  73. package/build/server/chunks/{6-38Syf-d0.js → 6-DAv9kX20.js} +8 -9
  74. package/build/server/chunks/6-DAv9kX20.js.map +1 -0
  75. package/build/server/chunks/{7-ekRzgLQW.js → 7-BjYWuqqT.js} +14 -14
  76. package/build/server/chunks/7-BjYWuqqT.js.map +1 -0
  77. package/build/server/chunks/{8-Bg8l4V-v.js → 8-0yg0evpN.js} +14 -14
  78. package/build/server/chunks/8-0yg0evpN.js.map +1 -0
  79. package/build/server/chunks/{9-DRxhju5a.js → 9-D4RQ11kF.js} +9 -9
  80. package/build/server/chunks/9-D4RQ11kF.js.map +1 -0
  81. package/build/server/chunks/{ListTable-D8OnEdye.js → ListTable-BAC5xf0U.js} +5 -6
  82. package/build/server/chunks/ListTable-BAC5xf0U.js.map +1 -0
  83. package/build/server/chunks/{_layout.svelte-CouhggA0.js → _layout.svelte-BTiJ5oei.js} +3 -3
  84. package/build/server/chunks/_layout.svelte-BTiJ5oei.js.map +1 -0
  85. package/build/server/chunks/{_page.svelte-U3NAUHjD.js → _page.svelte-28WIAb-A.js} +10 -10
  86. package/build/server/chunks/_page.svelte-28WIAb-A.js.map +1 -0
  87. package/build/server/chunks/{_page.svelte-D8nYMywt.js → _page.svelte-BE0Fm43g.js} +5 -5
  88. package/build/server/chunks/_page.svelte-BE0Fm43g.js.map +1 -0
  89. package/build/server/chunks/{_page.svelte-CF5G5_Qj.js → _page.svelte-BN_4l_X_.js} +9 -9
  90. package/build/server/chunks/_page.svelte-BN_4l_X_.js.map +1 -0
  91. package/build/server/chunks/{_page.svelte-BHW_BBcE.js → _page.svelte-C2VLDSXv.js} +5 -5
  92. package/build/server/chunks/_page.svelte-C2VLDSXv.js.map +1 -0
  93. package/build/server/chunks/{_page.svelte-Bf0wrvsv.js → _page.svelte-CYtHpl1s.js} +3 -3
  94. package/build/server/chunks/_page.svelte-CYtHpl1s.js.map +1 -0
  95. package/build/server/chunks/{_page.svelte-DT767_JP.js → _page.svelte-CmOUnClb.js} +10 -10
  96. package/build/server/chunks/_page.svelte-CmOUnClb.js.map +1 -0
  97. package/build/server/chunks/{_page.svelte-DeVGBJ28.js → _page.svelte-DhUxTzmV.js} +3 -3
  98. package/build/server/chunks/_page.svelte-DhUxTzmV.js.map +1 -0
  99. package/build/server/chunks/{_page.svelte-Bflq2ZC_.js → _page.svelte-uvkEYlC-.js} +6 -7
  100. package/build/server/chunks/_page.svelte-uvkEYlC-.js.map +1 -0
  101. package/build/server/chunks/_server.ts-BwAtICwe.js +20 -0
  102. package/build/server/chunks/_server.ts-BwAtICwe.js.map +1 -0
  103. package/build/server/chunks/{adapter-DVhZVTjg.js → adapter-DNuW0qB7.js} +7 -10
  104. package/build/server/chunks/adapter-DNuW0qB7.js.map +1 -0
  105. package/build/server/chunks/{adapter-error-yHvEGaY7.js → adapter-error-ChkgLg4H.js} +3 -3
  106. package/build/server/chunks/adapter-error-ChkgLg4H.js.map +1 -0
  107. package/build/server/chunks/app-SwLi37Vg.js +12 -0
  108. package/build/server/chunks/app-SwLi37Vg.js.map +1 -0
  109. package/build/server/chunks/{client-Cw4UuVj7.js → client-DVDsL8PQ.js} +4 -5
  110. package/build/server/chunks/client-DVDsL8PQ.js.map +1 -0
  111. package/build/server/chunks/{composite-form-CknLQw1V.js → composite-form-WDDlaUQo.js} +96 -112
  112. package/build/server/chunks/composite-form-WDDlaUQo.js.map +1 -0
  113. package/build/server/chunks/{error.svelte-D5apgNs3.js → error.svelte-CAqyybBm.js} +7 -10
  114. package/build/server/chunks/error.svelte-CAqyybBm.js.map +1 -0
  115. package/build/server/chunks/{hooks.server-DdKpHWZs.js → hooks.server-CU_-pzVZ.js} +312 -363
  116. package/build/server/chunks/hooks.server-CU_-pzVZ.js.map +1 -0
  117. package/build/server/chunks/index-CVekYGHP.js.map +1 -1
  118. package/build/server/chunks/index-DBqjc0Yf.js.map +1 -1
  119. package/build/server/chunks/{internal2-FDPpgj8I.js → internal2-Dgkl_mbK.js} +340 -227
  120. package/build/server/chunks/internal2-Dgkl_mbK.js.map +1 -0
  121. package/build/server/chunks/{list-params-DiCLPOBj.js → list-params-Dz_BNoxl.js} +3 -3
  122. package/build/server/chunks/list-params-Dz_BNoxl.js.map +1 -0
  123. package/build/server/chunks/{mcp-connection-JeveuASs.js → mcp-connection-CoIXpCQy.js} +2 -2
  124. package/build/server/chunks/mcp-connection-CoIXpCQy.js.map +1 -0
  125. package/build/server/chunks/{privilege-readonly-CK4k2aYO.js → privilege-readonly-CoCKf_KX.js} +2 -2
  126. package/build/server/chunks/privilege-readonly-CoCKf_KX.js.map +1 -0
  127. package/build/server/chunks/{relation-options-jz3t9Tvk.js → relation-options-DTOgED4q.js} +2 -2
  128. package/build/server/chunks/{relation-options-jz3t9Tvk.js.map → relation-options-DTOgED4q.js.map} +1 -1
  129. package/build/server/chunks/{relation-select-composite-field-C7hhr0Rv.js → relation-select-composite-field-CqIRP5Rd.js} +6 -6
  130. package/build/server/chunks/relation-select-composite-field-CqIRP5Rd.js.map +1 -0
  131. package/build/server/chunks/{resource-id-CFSW_3aR.js → resource-id-vFoEgiDD.js} +2 -2
  132. package/build/server/chunks/resource-id-vFoEgiDD.js.map +1 -0
  133. package/build/server/chunks/{server-1sE9LKAu.js → server-CiEA6lY_.js} +222 -143
  134. package/build/server/chunks/server-CiEA6lY_.js.map +1 -0
  135. package/build/server/chunks/{widget-registry-D4uP1dwJ.js → widget-registry-Dhgkh66t.js} +18 -32
  136. package/build/server/chunks/widget-registry-Dhgkh66t.js.map +1 -0
  137. package/build/server/index.js +138 -153
  138. package/build/server/index.js.map +1 -1
  139. package/build/server/manifest.js +12 -12
  140. package/build/server/manifest.js.map +1 -1
  141. package/package.json +8 -8
  142. package/build/client/_app/immutable/assets/0.BFw6nhto.css.br +0 -0
  143. package/build/client/_app/immutable/assets/0.BFw6nhto.css.gz +0 -0
  144. package/build/client/_app/immutable/chunks/5rwK4lPQ.js +0 -214
  145. package/build/client/_app/immutable/chunks/5rwK4lPQ.js.br +0 -0
  146. package/build/client/_app/immutable/chunks/5rwK4lPQ.js.gz +0 -0
  147. package/build/client/_app/immutable/chunks/BCyhxqkf.js +0 -3
  148. package/build/client/_app/immutable/chunks/BCyhxqkf.js.br +0 -0
  149. package/build/client/_app/immutable/chunks/BCyhxqkf.js.gz +0 -0
  150. package/build/client/_app/immutable/chunks/CfACBkhZ.js +0 -1
  151. package/build/client/_app/immutable/chunks/CfACBkhZ.js.br +0 -0
  152. package/build/client/_app/immutable/chunks/CfACBkhZ.js.gz +0 -0
  153. package/build/client/_app/immutable/chunks/ClT4djUO.js +0 -2
  154. package/build/client/_app/immutable/chunks/ClT4djUO.js.br +0 -0
  155. package/build/client/_app/immutable/chunks/ClT4djUO.js.gz +0 -0
  156. package/build/client/_app/immutable/chunks/JXJVpBsY.js +0 -1
  157. package/build/client/_app/immutable/chunks/JXJVpBsY.js.br +0 -0
  158. package/build/client/_app/immutable/chunks/JXJVpBsY.js.gz +0 -0
  159. package/build/client/_app/immutable/chunks/PuplGS2B.js +0 -1
  160. package/build/client/_app/immutable/chunks/PuplGS2B.js.br +0 -0
  161. package/build/client/_app/immutable/chunks/PuplGS2B.js.gz +0 -0
  162. package/build/client/_app/immutable/chunks/kNaey6uv.js +0 -1
  163. package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
  164. package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
  165. package/build/client/_app/immutable/entry/app.PGoACTEG.js +0 -2
  166. package/build/client/_app/immutable/entry/app.PGoACTEG.js.br +0 -0
  167. package/build/client/_app/immutable/entry/app.PGoACTEG.js.gz +0 -0
  168. package/build/client/_app/immutable/entry/start.DAjSqUp-.js +0 -1
  169. package/build/client/_app/immutable/entry/start.DAjSqUp-.js.br +0 -0
  170. package/build/client/_app/immutable/entry/start.DAjSqUp-.js.gz +0 -0
  171. package/build/client/_app/immutable/nodes/0.ifyNoaZz.js +0 -1
  172. package/build/client/_app/immutable/nodes/0.ifyNoaZz.js.br +0 -0
  173. package/build/client/_app/immutable/nodes/0.ifyNoaZz.js.gz +0 -0
  174. package/build/client/_app/immutable/nodes/1.B_v1dtms.js +0 -1
  175. package/build/client/_app/immutable/nodes/1.B_v1dtms.js.br +0 -0
  176. package/build/client/_app/immutable/nodes/1.B_v1dtms.js.gz +0 -0
  177. package/build/client/_app/immutable/nodes/2.D_d90ZDd.js +0 -2
  178. package/build/client/_app/immutable/nodes/2.D_d90ZDd.js.br +0 -0
  179. package/build/client/_app/immutable/nodes/2.D_d90ZDd.js.gz +0 -0
  180. package/build/client/_app/immutable/nodes/3.Pus3Xsis.js +0 -1
  181. package/build/client/_app/immutable/nodes/3.Pus3Xsis.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/3.Pus3Xsis.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/4.DP1YMUE5.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/4.DP1YMUE5.js.gz +0 -0
  185. package/build/client/_app/immutable/nodes/5.CyMRYzSq.js +0 -1
  186. package/build/client/_app/immutable/nodes/5.CyMRYzSq.js.br +0 -0
  187. package/build/client/_app/immutable/nodes/5.CyMRYzSq.js.gz +0 -0
  188. package/build/client/_app/immutable/nodes/6.C2ZlP-Nf.js +0 -1
  189. package/build/client/_app/immutable/nodes/6.C2ZlP-Nf.js.br +0 -0
  190. package/build/client/_app/immutable/nodes/6.C2ZlP-Nf.js.gz +0 -0
  191. package/build/client/_app/immutable/nodes/7.CjC4cmk5.js +0 -1
  192. package/build/client/_app/immutable/nodes/7.CjC4cmk5.js.br +0 -0
  193. package/build/client/_app/immutable/nodes/7.CjC4cmk5.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/8.tYl-mxpR.js +0 -1
  195. package/build/client/_app/immutable/nodes/8.tYl-mxpR.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/8.tYl-mxpR.js.gz +0 -0
  197. package/build/client/_app/immutable/nodes/9.ByJ3R-gj.js.br +0 -2
  198. package/build/client/_app/immutable/nodes/9.ByJ3R-gj.js.gz +0 -0
  199. package/build/server/chunks/0-QvKVS1pE.js.map +0 -1
  200. package/build/server/chunks/1-D1C-sDZX.js +0 -9
  201. package/build/server/chunks/2-DGOJW-s_.js.map +0 -1
  202. package/build/server/chunks/3-CQQukqb6.js.map +0 -1
  203. package/build/server/chunks/4-OlSudnzY.js.map +0 -1
  204. package/build/server/chunks/5-D-48ExuO.js.map +0 -1
  205. package/build/server/chunks/6-38Syf-d0.js.map +0 -1
  206. package/build/server/chunks/7-ekRzgLQW.js.map +0 -1
  207. package/build/server/chunks/8-Bg8l4V-v.js.map +0 -1
  208. package/build/server/chunks/9-DRxhju5a.js.map +0 -1
  209. package/build/server/chunks/ListTable-D8OnEdye.js.map +0 -1
  210. package/build/server/chunks/_layout.svelte-CouhggA0.js.map +0 -1
  211. package/build/server/chunks/_page.svelte-BHW_BBcE.js.map +0 -1
  212. package/build/server/chunks/_page.svelte-Bf0wrvsv.js.map +0 -1
  213. package/build/server/chunks/_page.svelte-Bflq2ZC_.js.map +0 -1
  214. package/build/server/chunks/_page.svelte-CF5G5_Qj.js.map +0 -1
  215. package/build/server/chunks/_page.svelte-D8nYMywt.js.map +0 -1
  216. package/build/server/chunks/_page.svelte-DT767_JP.js.map +0 -1
  217. package/build/server/chunks/_page.svelte-DeVGBJ28.js.map +0 -1
  218. package/build/server/chunks/_page.svelte-U3NAUHjD.js.map +0 -1
  219. package/build/server/chunks/_server.ts-CUXOXc9X.js +0 -19
  220. package/build/server/chunks/_server.ts-CUXOXc9X.js.map +0 -1
  221. package/build/server/chunks/adapter-DVhZVTjg.js.map +0 -1
  222. package/build/server/chunks/adapter-error-yHvEGaY7.js.map +0 -1
  223. package/build/server/chunks/app-CYD2rz7t.js +0 -12
  224. package/build/server/chunks/app-CYD2rz7t.js.map +0 -1
  225. package/build/server/chunks/client-Cw4UuVj7.js.map +0 -1
  226. package/build/server/chunks/composite-form-CknLQw1V.js.map +0 -1
  227. package/build/server/chunks/error.svelte-D5apgNs3.js.map +0 -1
  228. package/build/server/chunks/hooks.server-DdKpHWZs.js.map +0 -1
  229. package/build/server/chunks/internal2-FDPpgj8I.js.map +0 -1
  230. package/build/server/chunks/list-params-DiCLPOBj.js.map +0 -1
  231. package/build/server/chunks/mcp-connection-JeveuASs.js.map +0 -1
  232. package/build/server/chunks/privilege-readonly-CK4k2aYO.js.map +0 -1
  233. package/build/server/chunks/relation-select-composite-field-C7hhr0Rv.js.map +0 -1
  234. package/build/server/chunks/resource-id-CFSW_3aR.js.map +0 -1
  235. package/build/server/chunks/server-1sE9LKAu.js.map +0 -1
  236. package/build/server/chunks/widget-registry-D4uP1dwJ.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import{$ as e,L as t,N as n,Q as r,R as i,S as a,nt as o,rt as s,w as c,x as l,z as u}from"../chunks/ClT4djUO.js";import"../chunks/xihTtKlq.js";var d=c(`<a href="/" class="mb-4 inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground"><span aria-hidden="true">←</span> Dashboard</a> <h1 class="mb-1 text-2xl font-semibold">Connect an AI agent</h1> <p class="mb-8 max-w-3xl text-sm text-muted-foreground">Point an AI agent — Claude Desktop, Cursor, or Claude Code — at this database
1
+ import"../chunks/xihTtKlq.js";import{I as e,L as t,M as n,Q as r,R as i,S as a,Z as o,nt as s,tt as c,w as l,x as u}from"../chunks/DM1WDXNi.js";var d=l(`<a href="/" class="mb-4 inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground"><span aria-hidden="true">←</span> Dashboard</a> <h1 class="mb-1 text-2xl font-semibold">Connect an AI agent</h1> <p class="mb-8 max-w-3xl text-sm text-muted-foreground">Point an AI agent — Claude Desktop, Cursor, or Claude Code — at this database
2
2
  over <a href="https://modelcontextprotocol.io/" class="text-primary underline" target="_blank" rel="noreferrer">MCP</a>. It can then read what your tables, views, and columns <em>mean</em> — the descriptions you wrote in <code class="font-mono">COMMENT</code> — through <strong>read-only</strong> tools. There is no data access and no
3
3
  write path on this surface.</p> <section class="mb-8 max-w-3xl"><h2 class="mb-2 text-lg font-semibold">Endpoint</h2> <p class="mb-2 text-sm text-muted-foreground"><code class="font-mono">kozou dev</code> already serves the MCP endpoint here
4
4
  — no extra command to run:</p> <pre class="overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm"> </pre></section> <section class="mb-8 max-w-3xl"><h2 class="mb-2 text-lg font-semibold">Claude Desktop &amp; Cursor</h2> <p class="mb-2 text-sm text-muted-foreground">Add this under <code class="font-mono">mcpServers</code> in the client's MCP
5
5
  config, then fully quit and reopen the app. No secret is needed — the server
6
6
  already holds the database connection.</p> <pre class="overflow-x-auto rounded-md bg-muted p-3 font-mono text-xs"> </pre></section> <section class="mb-8 max-w-3xl"><h2 class="mb-2 text-lg font-semibold">Claude Code (CLI)</h2> <p class="mb-2 text-sm text-muted-foreground">Run this once in your project:</p> <pre class="overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm"> </pre></section> <section class="mb-8 max-w-3xl rounded-md border border-border p-4"><h2 class="mb-1 text-sm font-semibold">Good to know</h2> <ul class="list-disc space-y-1 pl-5 text-sm text-muted-foreground"><li>The tools are <strong>read-only</strong>: an agent can read your schema's
7
7
  meaning, never mutate data, through this surface.</li> <li> </li> <li> </li> <li>Full setup, the stdio transport, troubleshooting, and what each tool
8
- returns are in the <a href="https://kozou.org/guides/connect-mcp/" class="text-primary underline" target="_blank" rel="noreferrer">Connect an AI agent guide</a>.</li></ul></section>`,1);function f(c,f){e(f,!0);var p=d(),m=u(i(p),6),h=u(t(m),4),g=t(h,!0);s(h),s(m);var _=u(m,2),v=u(t(_),4),y=t(v,!0);s(v),s(_);var b=u(_,2),x=u(t(b),4),S=t(x,!0);s(x),s(b);var C=u(b,2),w=u(t(C),2),T=u(t(w),2),E=t(T,!0);s(T);var D=u(T,2),O=t(D,!0);s(D),o(2),s(w),s(C),n(()=>{l(g,f.data.connection.httpUrl),l(y,f.data.connection.jsonConfig),l(S,f.data.connection.claudeCodeCommand),l(E,f.data.connection.authNote),l(O,f.data.connection.addressNote)}),a(c,p),r()}export{f as component};
8
+ returns are in the <a href="https://kozou.org/guides/connect-mcp/" class="text-primary underline" target="_blank" rel="noreferrer">Connect an AI agent guide</a>.</li></ul></section>`,1);function f(l,f){r(f,!0);var p=d(),m=i(t(p),6),h=i(e(m),4),g=e(h,!0);s(h),s(m);var _=i(m,2),v=i(e(_),4),y=e(v,!0);s(v),s(_);var b=i(_,2),x=i(e(b),4),S=e(x,!0);s(x),s(b);var C=i(b,2),w=i(e(C),2),T=i(e(w),2),E=e(T,!0);s(T);var D=i(T,2),O=e(D,!0);s(D),c(2),s(w),s(C),n(()=>{u(g,f.data.connection.httpUrl),u(y,f.data.connection.jsonConfig),u(S,f.data.connection.claudeCodeCommand),u(E,f.data.connection.authNote),u(O,f.data.connection.addressNote)}),a(l,p),o()}export{f as component};
@@ -0,0 +1 @@
1
+ import"../chunks/xihTtKlq.js";import{H as e,O as t,Q as n,Z as r}from"../chunks/DM1WDXNi.js";import{t as i}from"../chunks/DRLNDRGd.js";function a(a,o){n(o,!0);{let n=e(()=>`/tables/${o.data.table.qualifiedName}`);i(a,{get title(){return o.data.table.label},get qualifiedName(){return o.data.table.qualifiedName},get columns(){return o.data.table.columns},get rows(){return o.data.list.rows},get total(){return o.data.list.total},get listParams(){return o.data.listParams},get basePath(){return t(n)},get primaryKey(){return o.data.table.primaryKey}})}r()}export{a as component};
@@ -0,0 +1 @@
1
+ import"../chunks/xihTtKlq.js";import{H as e,I as t,L as n,M as r,O as i,Q as a,R as o,S as s,T as c,Z as l,b as u,h as d,nt as f,u as p,v as m,w as h,x as g}from"../chunks/DM1WDXNi.js";import{n as _}from"../chunks/Tpr6dUXs.js";function v(e){let{value:t,widget:n}=e;if(t==null)return``;switch(n){case`boolean`:return t?`Yes`:`No`;case`date`:return y(t);case`datetime`:return b(t);case`json`:if(typeof t==`object`)try{return JSON.stringify(t,null,2)}catch{return String(t)}return String(t);default:if(typeof t==`object`)try{return JSON.stringify(t)}catch{return String(t)}return String(t)}}function y(e){let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toISOString().slice(0,10)}function b(e){let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toISOString().replace(`T`,` `).slice(0,19)}var x=h(`<pre class="overflow-x-auto rounded-md bg-muted p-2 font-mono text-xs"> </pre>`),S=h(`<img class="max-h-48 rounded-md border border-border object-contain" loading="lazy"/>`),C=h(`<span class="text-muted-foreground">—</span>`),w=h(`<a class="text-primary underline"> </a> <span class="ml-1 text-xs text-muted-foreground"> </span>`,1),T=h(`<div><dt class="text-sm font-medium text-muted-foreground"> </dt> <dd class="mt-1 text-sm"><!></dd></div>`),E=h(`<p role="alert" class="mt-8 rounded-md border border-destructive bg-destructive/10 px-3 py-2 text-sm text-destructive"> </p>`),D=h(`<form method="POST" action="?/delete"><button type="submit" class="rounded-md border border-destructive px-4 py-2 text-sm font-medium text-destructive">Delete</button></form>`),O=h(`<a class="mb-4 inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground"><span aria-hidden="true">←</span> </a> <h1 class="mb-1 text-2xl font-semibold"> </h1> <p class="mb-6 text-sm text-muted-foreground"> </p> <dl class="space-y-4"></dl> <!> <div class="mt-8 flex flex-wrap gap-3"><a class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground">Edit</a> <!> <a class="rounded-md border border-border px-4 py-2 text-sm font-medium">Back</a></div>`,1);function k(h,y){a(y,!0);var b=O(),k=n(b),A=o(t(k));f(k);var j=o(k,2),M=t(j,!0);f(j);var N=o(j,2),P=t(N);f(N);var F=o(N,2);m(F,21,()=>y.data.table.columns,e=>e.name,(a,l)=>{let d=e(()=>y.data.row[i(l).name]),m=e(()=>y.data.fkLabels[i(l).name]);var h=T(),_=t(h),b=t(_,!0);f(_);var E=o(_,2),D=t(E),O=e=>{var n=x(),a=t(n,!0);f(n),r(e=>g(a,e),[()=>v({value:i(d),widget:i(l).widget})]),s(e,n)},k=e=>{var t=S();r(e=>{p(t,`src`,e),p(t,`alt`,i(l).label)},[()=>String(i(d))]),s(e,t)},A=e=>{var t=C();s(e,t)},j=e=>{var a=w(),c=n(a),u=t(c,!0);f(c);var h=o(c,2),_=t(h);f(h),r(e=>{p(c,`href`,`/tables/${i(m).referencedQualifiedName}/${i(m).value}`),g(u,i(m).label),g(_,`(${e??``})`)},[()=>v({value:i(d),widget:i(l).widget})]),s(e,a)},M=e=>{var t=c();r(e=>g(t,e),[()=>v({value:i(d),widget:i(l).widget})]),s(e,t)};u(D,e=>{i(l).widget===`json`?e(O):i(l).widget===`image-url`&&i(d)?e(k,1):i(d)===null||i(d)===void 0?e(A,2):i(m)!==void 0&&i(m).label!==null?e(j,3):e(M,-1)}),f(E),f(h),r(()=>g(b,i(l).label)),s(a,h)}),f(F);var I=o(F,2),L=e=>{var n=E(),i=t(n,!0);f(n),r(()=>g(i,y.form.message)),s(e,n)};u(I,e=>{y.form?.message&&e(L)});var R=o(I,2),z=t(R),B=o(z,2),V=e=>{var t=D();d(t,e=>_?.(e)),s(e,t)};u(B,e=>{y.data.table.canDelete&&e(V)});var H=o(B,2);f(R),r(()=>{p(k,`href`,`/tables/${y.data.table.qualifiedName}`),g(A,` ${y.data.table.label??``}`),g(M,y.data.table.label),g(P,`${y.data.table.qualifiedName??``} / ${y.data.id??``}`),p(z,`href`,`/tables/${y.data.table.qualifiedName}/${y.data.id}/edit`),p(H,`href`,`/tables/${y.data.table.qualifiedName}`)}),s(h,b),l()}export{k as component};
@@ -0,0 +1 @@
1
+ import"../chunks/xihTtKlq.js";import{C as e,G as t,H as n,I as r,L as i,M as a,O as o,Q as s,R as c,S as l,U as u,W as d,Z as f,b as p,d as ee,g as m,h,j as g,l as te,nt as _,u as v,v as y,w as b,x,y as S}from"../chunks/DM1WDXNi.js";import{a as C,n as ne,t as w}from"../chunks/ng5ew0-V.js";import{t as re}from"../chunks/CzvdUerA.js";var T=b(`<p role="alert" class="rounded-md border border-destructive bg-destructive/10 px-3 py-2 text-sm text-destructive"> </p>`),E=b(`<input type="hidden"/>`),D=b(`<p class="mt-1 text-sm text-destructive"> </p>`),O=b(`<!> <!> <!>`,1),k=b(`<p class="mt-1 text-sm text-destructive"> </p>`),ie=b(`<div><!> <!></div>`),A=b(`<a class="mb-4 inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground"><span aria-hidden="true">←</span> </a> <h1 class="mb-1 text-2xl font-semibold"> </h1> <p class="mb-6 text-sm text-muted-foreground"> </p> <form method="POST" class="space-y-4"><!> <!> <div class="flex gap-3"><button type="submit" class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50"> </button> <a class="rounded-md border border-border px-4 py-2 text-sm font-medium">Cancel</a></div></form>`,1);function j(b,j){s(j,!0);let M=()=>d(oe,`$message`,L),N=()=>d(W,`$relationForm`,L),P=()=>d(H,`$errors`,L),F=()=>d(V,`$form`,L),I=()=>d(ae,`$submitting`,L),[L,R]=u(),z=n(()=>new Map(j.data.relations.filter(e=>(e.fields??[e.field]).length===1).map(e=>[e.field,e]))),B=n(()=>{let e=new Map,t=new Set;for(let n of j.data.relations){let r=n.fields??[n.field];if(r.length<2)continue;let i=new Set(r),a=j.data.table.columns.filter(e=>i.has(e.name)).map(e=>e.name);if(a.length===r.length){e.set(a[0],n);for(let e of a.slice(1))t.add(e)}}return{hostByField:e,memberFields:t}}),{form:V,errors:H,enhance:U,submitting:ae,message:oe}=C(j.data.form,{dataType:`json`}),W=V;function se(e){let t=new Set(e.fields??[e.field]);return j.data.table.columns.filter(e=>t.has(e.name))}function ce(e,t){let n=e.keyFields??[e.field];W.update(e=>{let r={...e};return n.forEach((e,n)=>{r[e]=t===null?``:t[n]}),r})}var G=A(),K=i(G),le=c(r(K));_(K);var q=c(K,2),ue=r(q);_(q);var J=c(q,2),de=r(J);_(J);var Y=c(J,2),X=r(Y),fe=e=>{var t=T(),n=r(t,!0);_(t),a(()=>x(n,M())),l(e,t)};p(X,e=>{M()&&e(fe)});var Z=c(X,2);y(Z,17,()=>j.data.table.columns,e=>e.name,(s,u)=>{let d=n(()=>!o(u).nullable&&!o(u).readonly&&!o(u).isPrimaryKey),f=n(()=>o(z).get(o(u).name)),h=n(()=>o(B).hostByField.get(o(u).name));var b=ie(),C=r(b),T=e=>{},A=n(()=>o(B).memberFields.has(o(u).name)),M=t=>{let s=n(()=>se(o(h))),u=n(()=>o(s).some(e=>!e.nullable&&!e.readonly&&!e.isPrimaryKey)),d=n(()=>o(s).some(e=>e.readonly));var f=O(),m=i(f);S(m,()=>`${o(h).resource}|${o(h).labelField}|${o(h).searchFields.join(`,`)}|${j.data.id}`,e=>{{let t=n(()=>o(s).map(e=>e.label).join(`, `)),r=n(()=>j.data.initialOptions[o(h).field]??[]),i=n(()=>(o(h).keyFields??[o(h).field]).map(e=>N()[e]));re(e,{get name(){return o(h).field},get label(){return o(t)},get resource(){return o(h).resource},get labelField(){return o(h).labelField},get searchFields(){return o(h).searchFields},get initialOptions(){return o(r)},get values(){return o(i)},onpick:e=>ce(o(h),e),get required(){return o(u)},get readonly(){return o(d)}})}});var g=c(m,2);y(g,17,()=>o(s),e=>e.name,(e,t)=>{var n=E();te(n),a(e=>{v(n,`name`,o(t).name),ee(n,e)},[()=>N()[o(t).name]===null||N()[o(t).name]===void 0?``:String(N()[o(t).name])]),l(e,n)});var b=c(g,2);y(b,17,()=>o(s),e=>e.name,(t,n)=>{var s=e(),c=i(s),u=e=>{var t=D(),i=r(t);_(t),a(()=>x(i,`${o(n).label??``}: ${P()[o(n).name]??``}`)),l(e,t)};p(c,e=>{P()[o(n).name]&&e(u)}),l(t,s)}),l(t,f)},I=r=>{var a=e(),s=i(a);S(s,()=>`${o(f).resource}|${o(f).labelField}|${o(f).searchFields.join(`,`)}|${j.data.id}`,e=>{{let r=n(()=>j.data.initialOptions[o(u).name]??[]);ne(e,{get name(){return o(u).name},get label(){return o(u).label},get resource(){return o(f).resource},get labelField(){return o(f).labelField},get searchFields(){return o(f).searchFields},get initialOptions(){return o(r)},get required(){return o(d)},get readonly(){return o(u).readonly},get value(){return N()[o(u).name]},set value(e){t(W,g(N)[o(u).name]=e,g(N))}})}}),l(r,a)},L=r=>{let a=n(()=>w(o(u).widget));var s=e(),c=i(s);m(c,()=>o(a),(e,n)=>{n(e,{get name(){return o(u).name},get label(){return o(u).label},get options(){return o(u).enumValues},get required(){return o(d)},get readonly(){return o(u).readonly},get value(){return F()[o(u).name]},set value(e){t(V,g(F)[o(u).name]=e,g(F))}})}),l(r,s)};p(C,e=>{o(A)?e(T):o(h)?e(M,1):o(u).widget===`relation-select`&&o(f)?e(I,2):e(L,-1)});var R=c(C,2),H=e=>{var t=k(),n=r(t,!0);_(t),a(()=>x(n,P()[o(u).name])),l(e,t)},U=n(()=>!o(h)&&!o(B).memberFields.has(o(u).name)&&P()[o(u).name]);p(R,e=>{o(U)&&e(H)}),_(b),l(s,b)});var Q=c(Z,2),$=r(Q),pe=r($,!0);_($);var me=c($,2);_(Q),_(Y),h(Y,e=>U?.(e)),a(()=>{v(K,`href`,`/tables/${j.data.table.qualifiedName}`),x(le,` ${j.data.table.label??``}`),x(ue,`Edit ${j.data.table.label??``}`),x(de,`${j.data.table.qualifiedName??``} / ${j.data.id??``}`),$.disabled=I(),x(pe,I()?`Saving…`:`Save`),v(me,`href`,`/tables/${j.data.table.qualifiedName}/${j.data.id}`)}),l(b,G),f(),R()}export{j as component};
@@ -0,0 +1 @@
1
+ import"../chunks/xihTtKlq.js";import{C as e,G as t,H as n,I as r,L as i,M as a,O as o,Q as s,R as c,S as l,U as u,W as d,Z as f,b as p,d as ee,g as m,h,j as g,l as te,nt as _,u as v,v as y,w as b,x,y as S}from"../chunks/DM1WDXNi.js";import{a as C,n as ne,t as w}from"../chunks/ng5ew0-V.js";import{t as re}from"../chunks/CzvdUerA.js";var T=b(`<p role="alert" class="rounded-md border border-destructive bg-destructive/10 px-3 py-2 text-sm text-destructive"> </p>`),E=b(`<input type="hidden"/>`),D=b(`<p class="mt-1 text-sm text-destructive"> </p>`),O=b(`<!> <!> <!>`,1),k=b(`<p class="mt-1 text-sm text-destructive"> </p>`),ie=b(`<div><!> <!></div>`),A=b(`<a class="mb-4 inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground"><span aria-hidden="true">←</span> </a> <h1 class="mb-1 text-2xl font-semibold"> </h1> <p class="mb-6 text-sm text-muted-foreground"> </p> <form method="POST" class="space-y-4"><!> <!> <div class="flex gap-3"><button type="submit" class="rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground disabled:opacity-50"> </button> <a class="rounded-md border border-border px-4 py-2 text-sm font-medium">Cancel</a></div></form>`,1);function j(b,j){s(j,!0);let M=()=>d(oe,`$message`,L),N=()=>d(W,`$relationForm`,L),P=()=>d(H,`$errors`,L),F=()=>d(V,`$form`,L),I=()=>d(ae,`$submitting`,L),[L,R]=u(),z=n(()=>new Map(j.data.relations.filter(e=>(e.fields??[e.field]).length===1).map(e=>[e.field,e]))),B=n(()=>{let e=new Map,t=new Set;for(let n of j.data.relations){let r=n.fields??[n.field];if(r.length<2)continue;let i=new Set(r),a=j.data.table.columns.filter(e=>i.has(e.name)).map(e=>e.name);if(a.length===r.length){e.set(a[0],n);for(let e of a.slice(1))t.add(e)}}return{hostByField:e,memberFields:t}}),{form:V,errors:H,enhance:U,submitting:ae,message:oe}=C(j.data.form,{dataType:`json`}),W=V;function se(e){let t=new Set(e.fields??[e.field]);return j.data.table.columns.filter(e=>t.has(e.name))}function ce(e,t){let n=e.keyFields??[e.field];W.update(e=>{let r={...e};return n.forEach((e,n)=>{r[e]=t===null?``:t[n]}),r})}var G=A(),K=i(G),le=c(r(K));_(K);var q=c(K,2),ue=r(q);_(q);var J=c(q,2),de=r(J,!0);_(J);var Y=c(J,2),X=r(Y),fe=e=>{var t=T(),n=r(t,!0);_(t),a(()=>x(n,M())),l(e,t)};p(X,e=>{M()&&e(fe)});var Z=c(X,2);y(Z,17,()=>j.data.table.columns,e=>e.name,(s,u)=>{let d=n(()=>!o(u).nullable&&!o(u).readonly&&!o(u).isPrimaryKey&&!o(u).dbCanSupply),f=n(()=>o(z).get(o(u).name)),h=n(()=>o(B).hostByField.get(o(u).name));var b=ie(),C=r(b),T=e=>{},A=n(()=>o(B).memberFields.has(o(u).name)),M=t=>{let s=n(()=>se(o(h))),u=n(()=>o(s).some(e=>!e.nullable&&!e.readonly&&!e.isPrimaryKey)),d=n(()=>o(s).some(e=>e.readonly));var f=O(),m=i(f);S(m,()=>`${o(h).resource}|${o(h).labelField}|${o(h).searchFields.join(`,`)}`,e=>{{let t=n(()=>o(s).map(e=>e.label).join(`, `)),r=n(()=>j.data.initialOptions[o(h).field]??[]),i=n(()=>(o(h).keyFields??[o(h).field]).map(e=>N()[e]));re(e,{get name(){return o(h).field},get label(){return o(t)},get resource(){return o(h).resource},get labelField(){return o(h).labelField},get searchFields(){return o(h).searchFields},get initialOptions(){return o(r)},get values(){return o(i)},onpick:e=>ce(o(h),e),get required(){return o(u)},get readonly(){return o(d)}})}});var g=c(m,2);y(g,17,()=>o(s),e=>e.name,(e,t)=>{var n=E();te(n),a(e=>{v(n,`name`,o(t).name),ee(n,e)},[()=>N()[o(t).name]===null||N()[o(t).name]===void 0?``:String(N()[o(t).name])]),l(e,n)});var b=c(g,2);y(b,17,()=>o(s),e=>e.name,(t,n)=>{var s=e(),c=i(s),u=e=>{var t=D(),i=r(t);_(t),a(()=>x(i,`${o(n).label??``}: ${P()[o(n).name]??``}`)),l(e,t)};p(c,e=>{P()[o(n).name]&&e(u)}),l(t,s)}),l(t,f)},I=r=>{var a=e(),s=i(a);S(s,()=>`${o(f).resource}|${o(f).labelField}|${o(f).searchFields.join(`,`)}`,e=>{{let r=n(()=>j.data.initialOptions[o(u).name]??[]);ne(e,{get name(){return o(u).name},get label(){return o(u).label},get resource(){return o(f).resource},get labelField(){return o(f).labelField},get searchFields(){return o(f).searchFields},get initialOptions(){return o(r)},get required(){return o(d)},get readonly(){return o(u).readonly},get value(){return N()[o(u).name]},set value(e){t(W,g(N)[o(u).name]=e,g(N))}})}}),l(r,a)},L=r=>{let a=n(()=>w(o(u).widget));var s=e(),c=i(s);m(c,()=>o(a),(e,n)=>{n(e,{get name(){return o(u).name},get label(){return o(u).label},get options(){return o(u).enumValues},get required(){return o(d)},get readonly(){return o(u).readonly},get value(){return F()[o(u).name]},set value(e){t(V,g(F)[o(u).name]=e,g(F))}})}),l(r,s)};p(C,e=>{o(A)?e(T):o(h)?e(M,1):o(u).widget===`relation-select`&&o(f)?e(I,2):e(L,-1)});var R=c(C,2),H=e=>{var t=k(),n=r(t,!0);_(t),a(()=>x(n,P()[o(u).name])),l(e,t)},U=n(()=>!o(h)&&!o(B).memberFields.has(o(u).name)&&P()[o(u).name]);p(R,e=>{o(U)&&e(H)}),_(b),l(s,b)});var Q=c(Z,2),$=r(Q),pe=r($,!0);_($);var me=c($,2);_(Q),_(Y),h(Y,e=>U?.(e)),a(()=>{v(K,`href`,`/tables/${j.data.table.qualifiedName}`),x(le,` ${j.data.table.label??``}`),x(ue,`New ${j.data.table.label??``}`),x(de,j.data.table.qualifiedName),$.disabled=I(),x(pe,I()?`Saving…`:`Save`),v(me,`href`,`/tables/${j.data.table.qualifiedName}`)}),l(b,G),f(),R()}export{j as component};
@@ -1 +1 @@
1
- import{$ as e,Q as t}from"../chunks/ClT4djUO.js";import"../chunks/xihTtKlq.js";import{t as n}from"../chunks/CfACBkhZ.js";function r(r,i){e(i,!0),n(r,{get title(){return i.data.view.label},get qualifiedName(){return i.data.view.qualifiedName},get columns(){return i.data.view.columns},get rows(){return i.data.list.rows},get total(){return i.data.list.total},get listParams(){return i.data.listParams},readonly:!0}),t()}export{r as component};
1
+ import"../chunks/xihTtKlq.js";import{Q as e,Z as t}from"../chunks/DM1WDXNi.js";import{t as n}from"../chunks/DRLNDRGd.js";function r(r,i){e(i,!0),n(r,{get title(){return i.data.view.label},get qualifiedName(){return i.data.view.qualifiedName},get columns(){return i.data.view.columns},get rows(){return i.data.list.rows},get total(){return i.data.list.total},get listParams(){return i.data.listParams},readonly:!0}),t()}export{r as component};
@@ -1 +1 @@
1
- {"version":"1792407515023"}
1
+ {"version":"1793967786427"}
Binary file
Binary file
@@ -1,6 +1,6 @@
1
- import { a as resolveMcpPosture } from './mcp-connection-JeveuASs.js';
1
+ import { a as resolveMcpPosture } from './mcp-connection-CoIXpCQy.js';
2
2
 
3
- //#region src/routes/+layout.server.ts
3
+ // src/routes/+layout.server.ts
4
4
  var load = ({ locals }) => {
5
5
  return {
6
6
  appName: "Kozou",
@@ -17,11 +17,11 @@ var _layout_server_ts = /*#__PURE__*/Object.freeze({
17
17
 
18
18
  const index = 0;
19
19
  let component_cache;
20
- const component = async () => component_cache ??= (await import('./_layout.svelte-CouhggA0.js')).default;
20
+ const component = async () => component_cache ??= (await import('./_layout.svelte-BTiJ5oei.js')).default;
21
21
  const server_id = "src/routes/+layout.server.ts";
22
- const imports = ["_app/immutable/nodes/0.ifyNoaZz.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/xihTtKlq.js"];
23
- const stylesheets = ["_app/immutable/assets/0.BFw6nhto.css"];
22
+ const imports = ["_app/immutable/nodes/0.CzDt86DM.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js"];
23
+ const stylesheets = ["_app/immutable/assets/0.D0QQ9_9s.css"];
24
24
  const fonts = [];
25
25
 
26
26
  export { component, fonts, imports, index, _layout_server_ts as server, server_id, stylesheets };
27
- //# sourceMappingURL=0-QvKVS1pE.js.map
27
+ //# sourceMappingURL=0-D3Od9Nns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0-D3Od9Nns.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import { r as resolveMcpPosture } from \"../../chunks/mcp-connection.js\";\n// src/routes/+layout.server.ts\nvar load = ({ locals }) => {\n\treturn {\n\t\tappName: \"Kozou\",\n\t\ttableCount: locals.schema.tables.length,\n\t\tviewCount: locals.schema.views.length,\n\t\tmcpEnabled: resolveMcpPosture(process.env.KOZOU_UI_MCP_POSTURE) !== \"off\"\n\t};\n};\nexport { load };\n","import * as server from '../entries/pages/_layout.server.ts.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/0.CzDt86DM.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.D0QQ9_9s.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK;AAC3B,CAAC,OAAO;AACR,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;AACzC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;AACvC,EAAE,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK;AACtE,EAAE;AACF,CAAC;;;;;;;ACPW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAElG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,9 @@
1
+ const index = 1;
2
+ let component_cache;
3
+ const component = async () => component_cache ??= (await import('./error.svelte-CAqyybBm.js')).default;
4
+ const imports = ["_app/immutable/nodes/1.Ds1FrfOA.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js","_app/immutable/chunks/BPmV12Pr.js"];
5
+ const stylesheets = [];
6
+ const fonts = [];
7
+
8
+ export { component, fonts, imports, index, stylesheets };
9
+ //# sourceMappingURL=1-DixDdLll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1-D1C-sDZX.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.B_v1dtms.js\",\"_app/immutable/chunks/ClT4djUO.js\",\"_app/immutable/chunks/BCyhxqkf.js\",\"_app/immutable/chunks/xihTtKlq.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5J,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1-DixDdLll.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.Ds1FrfOA.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\",\"_app/immutable/chunks/BPmV12Pr.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5J,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,6 +1,6 @@
1
- import { g as getAdapter } from './adapter-DVhZVTjg.js';
1
+ import { g as getAdapter } from './adapter-DNuW0qB7.js';
2
2
 
3
- //#region src/lib/dashboard/group.ts
3
+ // src/lib/dashboard/group.ts
4
4
  function groupForDashboard(schema) {
5
5
  return {
6
6
  tables: schema.tables.map(toDashboardItem).sort((a, b) => a.label.localeCompare(b.label)),
@@ -22,8 +22,7 @@ function toDashboardItem(item) {
22
22
  description: item.description
23
23
  };
24
24
  }
25
- //#endregion
26
- //#region src/routes/+page.server.ts
25
+ // src/routes/+page.server.ts
27
26
  var load = ({ locals }) => {
28
27
  const actionsEnabled = typeof getAdapter(locals.schema).callFunction === "function";
29
28
  return {
@@ -39,11 +38,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
39
38
 
40
39
  const index = 2;
41
40
  let component_cache;
42
- const component = async () => component_cache ??= (await import('./_page.svelte-DeVGBJ28.js')).default;
41
+ const component = async () => component_cache ??= (await import('./_page.svelte-DhUxTzmV.js')).default;
43
42
  const server_id = "src/routes/+page.server.ts";
44
- const imports = ["_app/immutable/nodes/2.D_d90ZDd.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/xihTtKlq.js"];
43
+ const imports = ["_app/immutable/nodes/2.BJIHarag.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js"];
45
44
  const stylesheets = [];
46
45
  const fonts = [];
47
46
 
48
47
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
49
- //# sourceMappingURL=2-DGOJW-s_.js.map
48
+ //# sourceMappingURL=2-CZzPkcAH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"2-CZzPkcAH.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["import { t as getAdapter } from \"../../chunks/adapter.js\";\n// src/lib/dashboard/group.ts\nfunction groupForDashboard(schema) {\n\treturn {\n\t\ttables: schema.tables.map(toDashboardItem).sort((a, b) => a.label.localeCompare(b.label)),\n\t\tviews: schema.views.map(toDashboardItem).sort((a, b) => a.label.localeCompare(b.label)),\n\t\tfunctions: (schema.functions ?? []).map(toFunctionItem).sort((a, b) => a.label.localeCompare(b.label))\n\t};\n}\nfunction toFunctionItem(fn) {\n\treturn {\n\t\tqualifiedName: fn.qualifiedName,\n\t\tlabel: fn.label,\n\t\tdescription: fn.description ? fn.description.split(\"\\n\")[0] ?? null : null\n\t};\n}\nfunction toDashboardItem(item) {\n\treturn {\n\t\tqualifiedName: item.qualifiedName,\n\t\tlabel: item.label,\n\t\tdescription: item.description\n\t};\n}\n// src/routes/+page.server.ts\nvar load = ({ locals }) => {\n\tconst actionsEnabled = typeof getAdapter(locals.schema).callFunction === \"function\";\n\treturn {\n\t\tdashboard: groupForDashboard(locals.schema),\n\t\tactionsEnabled\n\t};\n};\nexport { load };\n","import * as server from '../entries/pages/_page.server.ts.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/2.BJIHarag.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA;AACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;AACnC,CAAC,OAAO;AACR,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC3F,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACzF,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;AACvG,EAAE;AACF;AACA,SAAS,cAAc,CAAC,EAAE,EAAE;AAC5B,CAAC,OAAO;AACR,EAAE,aAAa,EAAE,EAAE,CAAC,aAAa;AACjC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK;AACjB,EAAE,WAAW,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG;AACxE,EAAE;AACF;AACA,SAAS,eAAe,CAAC,IAAI,EAAE;AAC/B,CAAC,OAAO;AACR,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa;AACnC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;AACnB,EAAE,WAAW,EAAE,IAAI,CAAC;AACpB,EAAE;AACF;AACA;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK;AAC3B,CAAC,MAAM,cAAc,GAAG,OAAO,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,KAAK,UAAU;AACpF,CAAC,OAAO;AACR,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,EAAE;AACF,EAAE;AACF,CAAC;;;;;;;AC5BW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE;AAEhG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,19 +1,19 @@
1
- import { g as getAdapter } from './adapter-DVhZVTjg.js';
2
- import { l as loadInitialRelationOptions } from './relation-options-jz3t9Tvk.js';
3
- import { j as superValidate, z as zod, k as zodFromTable, r as readActionFormSubmission, a as buildMutationPayload, b as buildArgRelationConfig, s as scalarWidgetForDataType } from './composite-form-CknLQw1V.js';
1
+ import { r as readActionFormSubmission, j as superValidate, z as zod, k as zodFromTable, a as buildMutationPayload, b as buildArgRelationConfig, s as scalarWidgetForDataType } from './composite-form-WDDlaUQo.js';
2
+ import { g as getAdapter } from './adapter-DNuW0qB7.js';
3
+ import { l as loadInitialRelationOptions } from './relation-options-DTOgED4q.js';
4
4
  import { f as fail, e as error } from './index-CVekYGHP.js';
5
- import './resource-id-CFSW_3aR.js';
6
- import './internal2-FDPpgj8I.js';
7
- import './server-1sE9LKAu.js';
5
+ import './internal2-Dgkl_mbK.js';
6
+ import './server-CiEA6lY_.js';
8
7
  import 'clsx';
9
8
  import './index-DBqjc0Yf.js';
10
9
  import 'node:module';
11
- import './client-Cw4UuVj7.js';
12
- import './app-CYD2rz7t.js';
10
+ import './client-DVDsL8PQ.js';
11
+ import './app-SwLi37Vg.js';
13
12
  import 'zod/v4/core';
14
13
  import 'zod';
14
+ import './resource-id-vFoEgiDD.js';
15
15
 
16
- //#region src/lib/form/action-form.ts
16
+ // src/lib/form/action-form.ts
17
17
  /** Sentinel `defaultExpr` so `dbCanSupplyColumn` reports an argument with a
18
18
  * DEFAULT as DB-suppliable (optional). Never used as a value — the payload
19
19
  * drops the empty submission and PostgreSQL supplies the real default. */
@@ -72,8 +72,7 @@ function buildActionForm(fn, schema) {
72
72
  }
73
73
  };
74
74
  }
75
- //#endregion
76
- //#region src/routes/actions/[fn]/+page.server.ts
75
+ // src/routes/actions/[fn]/+page.server.ts
77
76
  /** Resolve the exposed function, 404ing both when it is absent and when the
78
77
  * backend cannot invoke it (no enumeration channel, and no dead form). */
79
78
  function resolveExposedFunction(functions, slug, canCall) {
@@ -98,7 +97,8 @@ var actions = { default: async ({ request, params, locals }) => {
98
97
  const adapter = getAdapter(locals.schema);
99
98
  const fn = resolveExposedFunction(locals.schema.functions, params.fn, typeof adapter.callFunction === "function");
100
99
  const action = buildActionForm(fn, locals.schema);
101
- const form = await superValidate(await readActionFormSubmission(request), zod(zodFromTable({ columns: action.columns })));
100
+ const submission = await readActionFormSubmission(request);
101
+ const form = await superValidate(submission, zod(zodFromTable({ columns: action.columns })));
102
102
  if (!form.valid) return fail(400, { form });
103
103
  const args = buildMutationPayload({ columns: action.columns }, form.data);
104
104
  try {
@@ -134,11 +134,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
134
134
 
135
135
  const index = 3;
136
136
  let component_cache;
137
- const component = async () => component_cache ??= (await import('./_page.svelte-CF5G5_Qj.js')).default;
137
+ const component = async () => component_cache ??= (await import('./_page.svelte-BN_4l_X_.js')).default;
138
138
  const server_id = "src/routes/actions/[fn]/+page.server.ts";
139
- const imports = ["_app/immutable/nodes/3.Pus3Xsis.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/5rwK4lPQ.js","_app/immutable/chunks/BCyhxqkf.js","_app/immutable/chunks/PuplGS2B.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D5sfkRNZ.js"];
139
+ const imports = ["_app/immutable/nodes/3.vV9B4dJJ.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js","_app/immutable/chunks/ng5ew0-V.js","_app/immutable/chunks/BPmV12Pr.js","_app/immutable/chunks/Tpr6dUXs.js","_app/immutable/chunks/D5sfkRNZ.js"];
140
140
  const stylesheets = [];
141
141
  const fonts = [];
142
142
 
143
143
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
144
- //# sourceMappingURL=3-CQQukqb6.js.map
144
+ //# sourceMappingURL=3-BN6KhH_S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3-BN6KhH_S.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/actions/_fn_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { t as superValidate } from \"../../../../chunks/dist.js\";\nimport { i as buildMutationPayload, o as zod, r as zodFromTable, t as readActionFormSubmission } from \"../../../../chunks/composite-form.js\";\nimport { c as scalarWidgetForDataType, n as buildArgRelationConfig } from \"../../../../chunks/relation-field-config.js\";\nimport { t as getAdapter } from \"../../../../chunks/adapter.js\";\nimport { n as loadInitialRelationOptions } from \"../../../../chunks/relation-options.js\";\nimport { error, fail } from \"@sveltejs/kit\";\n// src/lib/form/action-form.ts\n/** Sentinel `defaultExpr` so `dbCanSupplyColumn` reports an argument with a\n* DEFAULT as DB-suppliable (optional). Never used as a value — the payload\n* drops the empty submission and PostgreSQL supplies the real default. */\nvar ARG_DEFAULT_SENTINEL = \"__rpc_arg_default__\";\n/** Title-case a snake_case argument name for the field label (mirrors core's\n* deriveLabel). */\nfunction deriveLabel(name) {\n\treturn name.replace(/_/g, \" \").replace(/\\b\\w/g, (c) => c.toUpperCase());\n}\nfunction buildActionForm(fn, schema) {\n\tconst relations = [];\n\tconst columns = [];\n\tconst argViews = [];\n\tfor (const arg of fn.args) {\n\t\tlet widget = arg.widget;\n\t\tif (arg.widget === \"relation-select\") {\n\t\t\tconst config = arg.relation ? buildArgRelationConfig(arg.name, arg.relation, schema) : null;\n\t\t\tif (config !== null) relations.push(config);\n\t\t\telse widget = scalarWidgetForDataType(arg.typeName);\n\t\t}\n\t\tconst enumValues = arg.enumValues ?? null;\n\t\tcolumns.push({\n\t\t\tname: arg.name,\n\t\t\tdataType: arg.typeName,\n\t\t\tnullable: false,\n\t\t\tdefaultExpr: arg.hasDefault ? ARG_DEFAULT_SENTINEL : null,\n\t\t\tisPrimaryKey: false,\n\t\t\tisForeignKey: arg.widget === \"relation-select\",\n\t\t\tlabel: deriveLabel(arg.name),\n\t\t\tdescription: null,\n\t\t\taiDescription: null,\n\t\t\twidget,\n\t\t\tenumValues,\n\t\t\treadonly: false\n\t\t});\n\t\targViews.push({\n\t\t\tname: arg.name,\n\t\t\tlabel: deriveLabel(arg.name),\n\t\t\twidget,\n\t\t\tenumValues: enumValues ?? [],\n\t\t\trequired: !arg.hasDefault\n\t\t});\n\t}\n\treturn {\n\t\tcolumns,\n\t\trelations,\n\t\tview: {\n\t\t\tqualifiedName: fn.qualifiedName,\n\t\t\tlabel: fn.label,\n\t\t\tdescription: fn.description,\n\t\t\taiDescription: fn.aiDescription,\n\t\t\tpolicy: fn.policy ?? [],\n\t\t\tsecurity: fn.security,\n\t\t\tvolatility: fn.volatility,\n\t\t\targs: argViews\n\t\t}\n\t};\n}\n// src/routes/actions/[fn]/+page.server.ts\n/** Resolve the exposed function, 404ing both when it is absent and when the\n* backend cannot invoke it (no enumeration channel, and no dead form). */\nfunction resolveExposedFunction(functions, slug, canCall) {\n\tif (!canCall) throw error(404, \"RPC actions are not available on this backend.\");\n\tconst fn = (functions ?? []).find((f) => f.qualifiedName === slug);\n\tif (fn === void 0) throw error(404, `Unknown action: ${slug}`);\n\treturn fn;\n}\nvar load = async ({ params, locals }) => {\n\tconst adapter = getAdapter(locals.schema);\n\tconst action = buildActionForm(resolveExposedFunction(locals.schema.functions, params.fn, typeof adapter.callFunction === \"function\"), locals.schema);\n\tconst form = await superValidate(zod(zodFromTable({ columns: action.columns })));\n\tconst initialOptions = await loadInitialRelationOptions(adapter, action.relations);\n\treturn {\n\t\taction: action.view,\n\t\tform,\n\t\trelations: action.relations,\n\t\tinitialOptions\n\t};\n};\nvar actions = { default: async ({ request, params, locals }) => {\n\tconst adapter = getAdapter(locals.schema);\n\tconst fn = resolveExposedFunction(locals.schema.functions, params.fn, typeof adapter.callFunction === \"function\");\n\tconst action = buildActionForm(fn, locals.schema);\n\tconst submission = await readActionFormSubmission(request);\n\tconst form = await superValidate(submission, zod(zodFromTable({ columns: action.columns })));\n\tif (!form.valid) return fail(400, { form });\n\tconst args = buildMutationPayload({ columns: action.columns }, form.data);\n\ttry {\n\t\treturn {\n\t\t\tform,\n\t\t\trpcOk: true,\n\t\t\trpcResult: await adapter.callFunction(fn.qualifiedName, args) ?? null\n\t\t};\n\t} catch (err) {\n\t\tconst raw = err.status;\n\t\tconst status = typeof raw === \"number\" && raw >= 400 && raw < 600 ? raw : 500;\n\t\treturn fail(status, {\n\t\t\tform,\n\t\t\trpcError: rpcErrorMessage(status)\n\t\t});\n\t}\n} };\nfunction rpcErrorMessage(status) {\n\tswitch (status) {\n\t\tcase 400: return \"The action rejected the supplied arguments.\";\n\t\tcase 403: return \"You do not have permission to run this action.\";\n\t\tcase 404: return \"The action no longer exists.\";\n\t\tcase 409: return \"The action conflicted with the current data (a constraint was violated).\";\n\t\tdefault: return \"The action failed. See the server logs for details.\";\n\t}\n}\nexport { actions, load };\n","import * as server from '../entries/pages/actions/_fn_/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/actions/_fn_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/actions/[fn]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.vV9B4dJJ.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\",\"_app/immutable/chunks/ng5ew0-V.js\",\"_app/immutable/chunks/BPmV12Pr.js\",\"_app/immutable/chunks/Tpr6dUXs.js\",\"_app/immutable/chunks/D5sfkRNZ.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAMA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG,qBAAqB;AAChD;AACA;AACA,SAAS,WAAW,CAAC,IAAI,EAAE;AAC3B,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACxE;AACA,SAAS,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE;AACrC,CAAC,MAAM,SAAS,GAAG,EAAE;AACrB,CAAC,MAAM,OAAO,GAAG,EAAE;AACnB,CAAC,MAAM,QAAQ,GAAG,EAAE;AACpB,CAAC,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE;AAC5B,EAAE,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM;AACzB,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,iBAAiB,EAAE;AACxC,GAAG,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI;AAC9F,GAAG,IAAI,MAAM,KAAK,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9C,QAAQ,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtD,EAAE;AACF,EAAE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,IAAI;AAC3C,EAAE,OAAO,CAAC,IAAI,CAAC;AACf,GAAG,IAAI,EAAE,GAAG,CAAC,IAAI;AACjB,GAAG,QAAQ,EAAE,GAAG,CAAC,QAAQ;AACzB,GAAG,QAAQ,EAAE,KAAK;AAClB,GAAG,WAAW,EAAE,GAAG,CAAC,UAAU,GAAG,oBAAoB,GAAG,IAAI;AAC5D,GAAG,YAAY,EAAE,KAAK;AACtB,GAAG,YAAY,EAAE,GAAG,CAAC,MAAM,KAAK,iBAAiB;AACjD,GAAG,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,GAAG,WAAW,EAAE,IAAI;AACpB,GAAG,aAAa,EAAE,IAAI;AACtB,GAAG,MAAM;AACT,GAAG,UAAU;AACb,GAAG,QAAQ,EAAE;AACb,GAAG,CAAC;AACJ,EAAE,QAAQ,CAAC,IAAI,CAAC;AAChB,GAAG,IAAI,EAAE,GAAG,CAAC,IAAI;AACjB,GAAG,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,GAAG,MAAM;AACT,GAAG,UAAU,EAAE,UAAU,IAAI,EAAE;AAC/B,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC;AAClB,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,OAAO;AACR,EAAE,OAAO;AACT,EAAE,SAAS;AACX,EAAE,IAAI,EAAE;AACR,GAAG,aAAa,EAAE,EAAE,CAAC,aAAa;AAClC,GAAG,KAAK,EAAE,EAAE,CAAC,KAAK;AAClB,GAAG,WAAW,EAAE,EAAE,CAAC,WAAW;AAC9B,GAAG,aAAa,EAAE,EAAE,CAAC,aAAa;AAClC,GAAG,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,EAAE;AAC1B,GAAG,QAAQ,EAAE,EAAE,CAAC,QAAQ;AACxB,GAAG,UAAU,EAAE,EAAE,CAAC,UAAU;AAC5B,GAAG,IAAI,EAAE;AACT;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;AAC1D,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,gDAAgD,CAAC;AACjF,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC;AACnE,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC,OAAO,EAAE;AACV;AACA,IAAI,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AACzC,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;AACtJ,CAAC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC;AACnF,CAAC,OAAO;AACR,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI;AACrB,EAAE,IAAI;AACN,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS;AAC7B,EAAE;AACF,EAAE;AACF,CAAC;AACD,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;AAChE,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,CAAC,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,CAAC;AAClH,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;AAClD,CAAC,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC;AAC3D,CAAC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC,MAAM,IAAI,GAAG,oBAAoB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;AAC1E,CAAC,IAAI;AACL,EAAE,OAAO;AACT,GAAG,IAAI;AACP,GAAG,KAAK,EAAE,IAAI;AACd,GAAG,SAAS,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI;AACpE,GAAG;AACH,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM;AACxB,EAAE,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AAC/E,EAAE,OAAO,IAAI,CAAC,MAAM,EAAE;AACtB,GAAG,IAAI;AACP,GAAG,QAAQ,EAAE,eAAe,CAAC,MAAM;AACnC,GAAG,CAAC;AACJ,CAAC;AACD,CAAC,EAAE;AACH,SAAS,eAAe,CAAC,MAAM,EAAE;AACjC,CAAC,QAAQ,MAAM;AACf,EAAE,KAAK,GAAG,EAAE,OAAO,6CAA6C;AAChE,EAAE,KAAK,GAAG,EAAE,OAAO,gDAAgD;AACnE,EAAE,KAAK,GAAG,EAAE,OAAO,8BAA8B;AACjD,EAAE,KAAK,GAAG,EAAE,OAAO,0EAA0E;AAC7F,EAAE,SAAS,OAAO,qDAAqD;AACvE;AACA;;;;;;;;ACnHY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAE7G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,14 +1,15 @@
1
- import { a as resolveMcpPosture, b as buildMcpConnectionInfo, r as resolveMcpHttpPort } from './mcp-connection-JeveuASs.js';
1
+ import { a as resolveMcpPosture, r as resolveMcpHttpPort, b as buildMcpConnectionInfo } from './mcp-connection-CoIXpCQy.js';
2
2
  import { e as error } from './index-CVekYGHP.js';
3
3
  import './index-DBqjc0Yf.js';
4
4
 
5
- //#region src/routes/connect/+page.server.ts
5
+ // src/routes/connect/+page.server.ts
6
6
  var load = ({ url }) => {
7
7
  const posture = resolveMcpPosture(process.env.KOZOU_UI_MCP_POSTURE);
8
8
  if (posture === "off") error(404, "The MCP HTTP endpoint is turned off for this runtime (server.mcp.http.enabled: false), so there is nothing to connect an agent to.");
9
+ const mcpPort = resolveMcpHttpPort(process.env.KOZOU_MCP_HTTP_PORT);
9
10
  return { connection: buildMcpConnectionInfo({
10
11
  requestUrl: url,
11
- mcpPort: resolveMcpHttpPort(process.env.KOZOU_MCP_HTTP_PORT),
12
+ mcpPort,
12
13
  posture,
13
14
  resourceUrl: process.env.KOZOU_UI_MCP_RESOURCE,
14
15
  advertisedUrl: process.env.KOZOU_UI_MCP_ADVERTISED_URL
@@ -22,11 +23,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
22
23
 
23
24
  const index = 4;
24
25
  let component_cache;
25
- const component = async () => component_cache ??= (await import('./_page.svelte-Bf0wrvsv.js')).default;
26
+ const component = async () => component_cache ??= (await import('./_page.svelte-CYtHpl1s.js')).default;
26
27
  const server_id = "src/routes/connect/+page.server.ts";
27
- const imports = ["_app/immutable/nodes/4.DP1YMUE5.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/xihTtKlq.js"];
28
+ const imports = ["_app/immutable/nodes/4.Dspxez47.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js"];
28
29
  const stylesheets = [];
29
30
  const fonts = [];
30
31
 
31
32
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
32
- //# sourceMappingURL=4-OlSudnzY.js.map
33
+ //# sourceMappingURL=4-DnqMYPCR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"4-DnqMYPCR.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/connect/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["import { n as resolveMcpHttpPort, r as resolveMcpPosture, t as buildMcpConnectionInfo } from \"../../../chunks/mcp-connection.js\";\nimport { error } from \"@sveltejs/kit\";\n// src/routes/connect/+page.server.ts\nvar load = ({ url }) => {\n\tconst posture = resolveMcpPosture(process.env.KOZOU_UI_MCP_POSTURE);\n\tif (posture === \"off\") error(404, \"The MCP HTTP endpoint is turned off for this runtime (server.mcp.http.enabled: false), so there is nothing to connect an agent to.\");\n\tconst mcpPort = resolveMcpHttpPort(process.env.KOZOU_MCP_HTTP_PORT);\n\treturn { connection: buildMcpConnectionInfo({\n\t\trequestUrl: url,\n\t\tmcpPort,\n\t\tposture,\n\t\tresourceUrl: process.env.KOZOU_UI_MCP_RESOURCE,\n\t\tadvertisedUrl: process.env.KOZOU_UI_MCP_ADVERTISED_URL\n\t}) };\n};\nexport { load };\n","import * as server from '../entries/pages/connect/_page.server.ts.js';\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/connect/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/connect/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/4.Dspxez47.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;AAEA;AACA,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK;AACxB,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACpE,CAAC,IAAI,OAAO,KAAK,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,oIAAoI,CAAC;AACxK,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AACpE,CAAC,OAAO,EAAE,UAAU,EAAE,sBAAsB,CAAC;AAC7C,EAAE,UAAU,EAAE,GAAG;AACjB,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;AAChD,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7B,EAAE,CAAC,EAAE;AACL,CAAC;;;;;;;ACZW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA0C,CAAC,EAAE;AAExG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC;AACxH,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
- import { g as getAdapter } from './adapter-DVhZVTjg.js';
2
- import { p as parseListParamsFromUrl } from './list-params-DiCLPOBj.js';
1
+ import { g as getAdapter } from './adapter-DNuW0qB7.js';
2
+ import { p as parseListParamsFromUrl } from './list-params-Dz_BNoxl.js';
3
3
  import { e as error } from './index-CVekYGHP.js';
4
4
  import './index-DBqjc0Yf.js';
5
5
 
6
- //#region src/routes/tables/[table]/+page.server.ts
6
+ // src/routes/tables/[table]/+page.server.ts
7
7
  var DISPLAY_COLUMN_LIMIT = 5;
8
8
  var TEXT_LIKE_TYPE_PREFIXES = [
9
9
  "text",
@@ -16,9 +16,10 @@ var load = async ({ params, locals, url }) => {
16
16
  const table = locals.schema.tables.find((t) => t.qualifiedName === params.table);
17
17
  if (!table) throw error(404, `Unknown table: ${params.table}`);
18
18
  const displayColumns = pickDisplayColumns(table);
19
+ const searchFields = pickSearchFields(table);
19
20
  const listParams = parseListParamsFromUrl({
20
21
  url,
21
- searchFields: pickSearchFields(table)
22
+ searchFields
22
23
  });
23
24
  const result = await getAdapter(locals.schema).list(table.qualifiedName, listParams);
24
25
  return {
@@ -60,11 +61,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
60
61
 
61
62
  const index = 5;
62
63
  let component_cache;
63
- const component = async () => component_cache ??= (await import('./_page.svelte-BHW_BBcE.js')).default;
64
+ const component = async () => component_cache ??= (await import('./_page.svelte-C2VLDSXv.js')).default;
64
65
  const server_id = "src/routes/tables/[table]/+page.server.ts";
65
- const imports = ["_app/immutable/nodes/5.CyMRYzSq.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/CfACBkhZ.js","_app/immutable/chunks/D5sfkRNZ.js"];
66
+ const imports = ["_app/immutable/nodes/5.Bv_PVEBh.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js","_app/immutable/chunks/DRLNDRGd.js","_app/immutable/chunks/D5sfkRNZ.js"];
66
67
  const stylesheets = [];
67
68
  const fonts = [];
68
69
 
69
70
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
70
- //# sourceMappingURL=5-D-48ExuO.js.map
71
+ //# sourceMappingURL=5-DcH4FkmM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"5-DcH4FkmM.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/5.js"],"sourcesContent":["import { t as getAdapter } from \"../../../../chunks/adapter.js\";\nimport { t as parseListParamsFromUrl } from \"../../../../chunks/list-params.js\";\nimport { error } from \"@sveltejs/kit\";\n// src/routes/tables/[table]/+page.server.ts\nvar DISPLAY_COLUMN_LIMIT = 5;\nvar TEXT_LIKE_TYPE_PREFIXES = [\n\t\"text\",\n\t\"character\",\n\t\"varchar\",\n\t\"citext\",\n\t\"name\"\n];\nvar load = async ({ params, locals, url }) => {\n\tconst table = locals.schema.tables.find((t) => t.qualifiedName === params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst displayColumns = pickDisplayColumns(table);\n\tconst searchFields = pickSearchFields(table);\n\tconst listParams = parseListParamsFromUrl({\n\t\turl,\n\t\tsearchFields\n\t});\n\tconst result = await getAdapter(locals.schema).list(table.qualifiedName, listParams);\n\treturn {\n\t\ttable: {\n\t\t\tqualifiedName: table.qualifiedName,\n\t\t\tlabel: table.label,\n\t\t\tprimaryKey: table.primaryKey,\n\t\t\tdisplayField: table.displayField,\n\t\t\tcolumns: displayColumns.map((c) => ({\n\t\t\t\tname: c.name,\n\t\t\t\tlabel: c.label\n\t\t\t}))\n\t\t},\n\t\tlist: result,\n\t\tlistParams: {\n\t\t\tsearch: listParams.search,\n\t\t\tsort: listParams.sort,\n\t\t\tpage: listParams.page,\n\t\t\tpageSize: listParams.pageSize\n\t\t}\n\t};\n};\nfunction pickDisplayColumns(table) {\n\tconst display = table.displayField;\n\treturn [...table.columns].sort((a, b) => {\n\t\tif (a.name === display && b.name !== display) return -1;\n\t\tif (b.name === display && a.name !== display) return 1;\n\t\treturn 0;\n\t}).slice(0, DISPLAY_COLUMN_LIMIT);\n}\nfunction pickSearchFields(table) {\n\treturn table.columns.filter((c) => TEXT_LIKE_TYPE_PREFIXES.some((prefix) => c.dataType.toLowerCase().startsWith(prefix))).map((c) => c.name);\n}\nexport { load };\n","import * as server from '../entries/pages/tables/_table_/_page.server.ts.js';\n\nexport const index = 5;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/5.Bv_PVEBh.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\",\"_app/immutable/chunks/DRLNDRGd.js\",\"_app/immutable/chunks/D5sfkRNZ.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;AAGA;AACA,IAAI,oBAAoB,GAAG,CAAC;AAC5B,IAAI,uBAAuB,GAAG;AAC9B,CAAC,MAAM;AACP,CAAC,WAAW;AACZ,CAAC,SAAS;AACV,CAAC,QAAQ;AACT,CAAC;AACD,CAAC;AACD,IAAI,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK;AAC9C,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,KAAK,CAAC;AACjF,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACjD,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAC7C,CAAC,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC3C,EAAE,GAAG;AACL,EAAE;AACF,EAAE,CAAC;AACH,CAAC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,UAAU,CAAC;AACrF,CAAC,OAAO;AACR,EAAE,KAAK,EAAE;AACT,GAAG,aAAa,EAAE,KAAK,CAAC,aAAa;AACrC,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK;AACrB,GAAG,UAAU,EAAE,KAAK,CAAC,UAAU;AAC/B,GAAG,YAAY,EAAE,KAAK,CAAC,YAAY;AACnC,GAAG,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACvC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI;AAChB,IAAI,KAAK,EAAE,CAAC,CAAC;AACb,IAAI,CAAC;AACL,GAAG;AACH,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,UAAU,EAAE;AACd,GAAG,MAAM,EAAE,UAAU,CAAC,MAAM;AAC5B,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,IAAI,EAAE,UAAU,CAAC,IAAI;AACxB,GAAG,QAAQ,EAAE,UAAU,CAAC;AACxB;AACA,EAAE;AACF,CAAC;AACD,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACnC,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY;AACnC,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AAC1C,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,EAAE;AACzD,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,CAAC;AACxD,EAAE,OAAO,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;AAClC;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAC7I;;;;;;;AClDY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAE/G,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChM,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -1,10 +1,10 @@
1
- import { g as getAdapter } from './adapter-DVhZVTjg.js';
2
- import { p as parseResourceId, e as encodeResourceId } from './resource-id-CFSW_3aR.js';
3
- import { a as adapterErrorToFailure } from './adapter-error-yHvEGaY7.js';
1
+ import { p as parseResourceId, e as encodeResourceId } from './resource-id-vFoEgiDD.js';
2
+ import { a as adapterErrorToFailure } from './adapter-error-ChkgLg4H.js';
3
+ import { g as getAdapter } from './adapter-DNuW0qB7.js';
4
4
  import { e as error, f as fail, r as redirect } from './index-CVekYGHP.js';
5
5
  import './index-DBqjc0Yf.js';
6
6
 
7
- //#region ../ui-core/dist/detail/resolve-fk-labels.js
7
+ // ../ui-core/dist/detail/resolve-fk-labels.js
8
8
  async function resolveFkLabels(args) {
9
9
  const { table, row, schema, loadRow } = args;
10
10
  const out = {};
@@ -86,8 +86,7 @@ function projectLabel(referencedTable, targetRow) {
86
86
  if (value === null || value === void 0) return null;
87
87
  return String(value);
88
88
  }
89
- //#endregion
90
- //#region src/routes/tables/[table]/[id]/+page.server.ts
89
+ // src/routes/tables/[table]/[id]/+page.server.ts
91
90
  function findTable(tables, slug) {
92
91
  return tables.find((t) => t.qualifiedName === slug) ?? null;
93
92
  }
@@ -147,11 +146,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
147
146
 
148
147
  const index = 6;
149
148
  let component_cache;
150
- const component = async () => component_cache ??= (await import('./_page.svelte-Bflq2ZC_.js')).default;
149
+ const component = async () => component_cache ??= (await import('./_page.svelte-uvkEYlC-.js')).default;
151
150
  const server_id = "src/routes/tables/[table]/[id]/+page.server.ts";
152
- const imports = ["_app/immutable/nodes/6.C2ZlP-Nf.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/PuplGS2B.js","_app/immutable/chunks/BCyhxqkf.js","_app/immutable/chunks/xihTtKlq.js"];
151
+ const imports = ["_app/immutable/nodes/6.DozLeltI.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js","_app/immutable/chunks/Tpr6dUXs.js","_app/immutable/chunks/BPmV12Pr.js"];
153
152
  const stylesheets = [];
154
153
  const fonts = [];
155
154
 
156
155
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
157
- //# sourceMappingURL=6-38Syf-d0.js.map
156
+ //# sourceMappingURL=6-DAv9kX20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6-DAv9kX20.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["import { n as parseResourceId, t as encodeResourceId } from \"../../../../../chunks/resource-id.js\";\nimport { t as adapterErrorToFailure } from \"../../../../../chunks/adapter-error.js\";\nimport { t as getAdapter } from \"../../../../../chunks/adapter.js\";\nimport { error, fail, redirect } from \"@sveltejs/kit\";\n// ../ui-core/dist/detail/resolve-fk-labels.js\nasync function resolveFkLabels(args) {\n\tconst { table, row, schema, loadRow } = args;\n\tconst out = {};\n\tconst lookups = [];\n\tconst claims = /* @__PURE__ */ new Map();\n\tfor (const relation of table.relations) {\n\t\tconst first = (relation.fields ?? [relation.field])[0];\n\t\tclaims.set(first, (claims.get(first) ?? 0) + 1);\n\t}\n\tfor (const relation of table.relations) {\n\t\tconst fields = relation.fields ?? [relation.field];\n\t\tif (fields.length > 1) {\n\t\t\tif ((claims.get(fields[0]) ?? 0) > 1) continue;\n\t\t\tconst lookup = compositeLookup(fields, relation, row, schema, loadRow, out);\n\t\t\tif (lookup !== null) lookups.push(lookup);\n\t\t\tcontinue;\n\t\t}\n\t\tconst rawValue = row[relation.field];\n\t\tif (rawValue === null || rawValue === void 0) continue;\n\t\tif (typeof rawValue !== \"string\" && typeof rawValue !== \"number\") continue;\n\t\tconst value = rawValue;\n\t\tconst referencedQualifiedName = `${relation.references.schema}.${relation.references.table}`;\n\t\tconst referencedTable = schema.tables.find((t) => t.qualifiedName === referencedQualifiedName);\n\t\tif (referencedTable === void 0) {\n\t\t\tout[relation.field] = {\n\t\t\t\tvalue,\n\t\t\t\tlabel: null,\n\t\t\t\treferencedQualifiedName\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\tlookups.push(loadRow(referencedQualifiedName, value).then((targetRow) => {\n\t\t\tconst label = projectLabel(referencedTable, targetRow);\n\t\t\tout[relation.field] = {\n\t\t\t\tvalue,\n\t\t\t\tlabel,\n\t\t\t\treferencedQualifiedName\n\t\t\t};\n\t\t}));\n\t}\n\tawait Promise.all(lookups);\n\treturn out;\n}\n/** Build the lookup for a composite relation, or return `null` when it\n* cannot be resolved (the raw values then render as-is). The target row is\n* fetched by primary key, so the relation must reference the target's full\n* primary key (in any column order) and every component must be present.\n* The resolved entry is keyed by the relation's first column. */\nfunction compositeLookup(fields, relation, row, schema, loadRow, out) {\n\tconst referencedQualifiedName = `${relation.references.schema}.${relation.references.table}`;\n\tconst referencedTable = schema.tables.find((t) => t.qualifiedName === referencedQualifiedName);\n\tif (referencedTable === void 0) return null;\n\tconst refColumns = relation.references.columns ?? [relation.references.column];\n\tif (refColumns.length !== fields.length) return null;\n\tconst primaryKey = referencedTable.primaryKey;\n\tif (primaryKey.length !== refColumns.length || !primaryKey.every((column) => refColumns.includes(column))) return null;\n\tconst components = [];\n\tfor (const keyColumn of primaryKey) {\n\t\tconst raw = row[fields[refColumns.indexOf(keyColumn)]];\n\t\tif (raw === null || raw === void 0) return null;\n\t\tif (typeof raw !== \"string\" && typeof raw !== \"number\") return null;\n\t\tcomponents.push(raw);\n\t}\n\tconst value = encodeResourceId(components);\n\treturn loadRow(referencedQualifiedName, components).then((targetRow) => {\n\t\tconst label = projectLabel(referencedTable, targetRow);\n\t\tout[fields[0]] = {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t\treferencedQualifiedName\n\t\t};\n\t});\n}\nfunction projectLabel(referencedTable, targetRow) {\n\tif (targetRow === null) return null;\n\tconst display = referencedTable.displayField;\n\tif (display === null) return null;\n\tconst value = targetRow[display];\n\tif (value === null || value === void 0) return null;\n\treturn String(value);\n}\n// src/routes/tables/[table]/[id]/+page.server.ts\nfunction findTable(tables, slug) {\n\treturn tables.find((t) => t.qualifiedName === slug) ?? null;\n}\nfunction tableViewModel(table) {\n\treturn {\n\t\tqualifiedName: table.qualifiedName,\n\t\tlabel: table.label,\n\t\tcanDelete: table.rawTable.privileges?.delete !== false,\n\t\tcolumns: table.columns.map((c) => ({\n\t\t\tname: c.name,\n\t\t\tlabel: c.label,\n\t\t\twidget: c.widget,\n\t\t\tisPrimaryKey: c.isPrimaryKey,\n\t\t\tisForeignKey: c.isForeignKey\n\t\t}))\n\t};\n}\nvar load = async ({ params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tconst adapter = getAdapter(locals.schema);\n\tconst id = parseResourceId(params.id, table.primaryKey);\n\tconst row = await adapter.get(table.qualifiedName, id);\n\tconst fkLabels = await resolveFkLabels({\n\t\ttable,\n\t\trow,\n\t\tschema: locals.schema,\n\t\tloadRow: (qualifiedName, id) => locals.fkRowCache.get(qualifiedName, id, (qn, identifier) => adapter.get(qn, identifier).catch(() => null))\n\t});\n\treturn {\n\t\ttable: tableViewModel(table),\n\t\trow,\n\t\tfkLabels,\n\t\tid: encodeResourceId(id)\n\t};\n};\nvar actions = { delete: async ({ params, locals }) => {\n\tconst table = findTable(locals.schema.tables, params.table);\n\tif (!table) throw error(404, `Unknown table: ${params.table}`);\n\tif (table.rawTable.privileges?.delete === false) throw error(403, `The configured role may not delete from ${table.qualifiedName}.`);\n\tconst id = parseResourceId(params.id, table.primaryKey);\n\ttry {\n\t\tawait getAdapter(locals.schema).delete(table.qualifiedName, id);\n\t} catch (err) {\n\t\tconst failure = adapterErrorToFailure(err);\n\t\tif (failure !== null) return fail(failure.status, { message: failure.message });\n\t\tthrow err;\n\t}\n\tthrow redirect(303, `/tables/${table.qualifiedName}`);\n} };\nexport { actions, load };\n","import * as server from '../entries/pages/tables/_table_/_id_/_page.server.ts.js';\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/_id_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/[id]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/6.DozLeltI.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\",\"_app/immutable/chunks/Tpr6dUXs.js\",\"_app/immutable/chunks/BPmV12Pr.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- import { g as getAdapter } from './adapter-DVhZVTjg.js';
2
- import { p as parseResourceId, e as encodeResourceId } from './resource-id-CFSW_3aR.js';
3
- import { l as loadInitialRelationOptions, e as ensureSelectedOptions } from './relation-options-jz3t9Tvk.js';
4
- import { g as relationFieldConfigs, p as promoteCompositeMemberWidgets, e as demoteUnpickableRelations, f as readFormWithCompositePicks, j as superValidate, z as zod, k as zodFromTable, a as buildMutationPayload } from './composite-form-CknLQw1V.js';
5
- import { a as adapterErrorToFailure } from './adapter-error-yHvEGaY7.js';
6
- import { a as applyPrivilegeReadonly } from './privilege-readonly-CK4k2aYO.js';
1
+ import { g as relationFieldConfigs, p as promoteCompositeMemberWidgets, e as demoteUnpickableRelations, f as readFormWithCompositePicks, j as superValidate, z as zod, k as zodFromTable, a as buildMutationPayload } from './composite-form-WDDlaUQo.js';
2
+ import { a as applyPrivilegeReadonly } from './privilege-readonly-CoCKf_KX.js';
3
+ import { p as parseResourceId, e as encodeResourceId } from './resource-id-vFoEgiDD.js';
4
+ import { a as adapterErrorToFailure } from './adapter-error-ChkgLg4H.js';
5
+ import { g as getAdapter } from './adapter-DNuW0qB7.js';
6
+ import { l as loadInitialRelationOptions, e as ensureSelectedOptions } from './relation-options-DTOgED4q.js';
7
7
  import { e as error, f as fail, r as redirect } from './index-CVekYGHP.js';
8
- import './internal2-FDPpgj8I.js';
9
- import './server-1sE9LKAu.js';
8
+ import './internal2-Dgkl_mbK.js';
9
+ import './server-CiEA6lY_.js';
10
10
  import 'clsx';
11
11
  import './index-DBqjc0Yf.js';
12
12
  import 'node:module';
13
- import './client-Cw4UuVj7.js';
14
- import './app-CYD2rz7t.js';
13
+ import './client-DVDsL8PQ.js';
14
+ import './app-SwLi37Vg.js';
15
15
  import 'zod/v4/core';
16
16
  import 'zod';
17
17
 
18
- //#region src/routes/tables/[table]/[id]/edit/+page.server.ts
18
+ // src/routes/tables/[table]/[id]/edit/+page.server.ts
19
19
  function findTable(tables, slug) {
20
20
  return tables.find((t) => t.qualifiedName === slug) ?? null;
21
21
  }
@@ -89,11 +89,11 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
89
89
 
90
90
  const index = 7;
91
91
  let component_cache;
92
- const component = async () => component_cache ??= (await import('./_page.svelte-DT767_JP.js')).default;
92
+ const component = async () => component_cache ??= (await import('./_page.svelte-CmOUnClb.js')).default;
93
93
  const server_id = "src/routes/tables/[table]/[id]/edit/+page.server.ts";
94
- const imports = ["_app/immutable/nodes/7.CjC4cmk5.js","_app/immutable/chunks/ClT4djUO.js","_app/immutable/chunks/5rwK4lPQ.js","_app/immutable/chunks/BCyhxqkf.js","_app/immutable/chunks/PuplGS2B.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D5sfkRNZ.js","_app/immutable/chunks/JXJVpBsY.js"];
94
+ const imports = ["_app/immutable/nodes/7.OrbBRjxz.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DM1WDXNi.js","_app/immutable/chunks/ng5ew0-V.js","_app/immutable/chunks/BPmV12Pr.js","_app/immutable/chunks/Tpr6dUXs.js","_app/immutable/chunks/D5sfkRNZ.js","_app/immutable/chunks/CzvdUerA.js"];
95
95
  const stylesheets = [];
96
96
  const fonts = [];
97
97
 
98
98
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
99
- //# sourceMappingURL=7-ekRzgLQW.js.map
99
+ //# sourceMappingURL=7-BjYWuqqT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"7-BjYWuqqT.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tables/_table_/_id_/edit/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["import { t as superValidate } from \"../../../../../../chunks/dist.js\";\nimport { i as buildMutationPayload, n as readFormWithCompositePicks, o as zod, r as zodFromTable } from \"../../../../../../chunks/composite-form.js\";\nimport { i as demoteUnpickableRelations, o as promoteCompositeMemberWidgets, s as relationFieldConfigs } from \"../../../../../../chunks/relation-field-config.js\";\nimport { t as applyPrivilegeReadonly } from \"../../../../../../chunks/privilege-readonly.js\";\nimport { n as parseResourceId, t as encodeResourceId } from \"../../../../../../chunks/resource-id.js\";\nimport { t as adapterErrorToFailure } from \"../../../../../../chunks/adapter-error.js\";\nimport { t as getAdapter } from \"../../../../../../chunks/adapter.js\";\nimport { n as loadInitialRelationOptions, t as ensureSelectedOptions } from \"../../../../../../chunks/relation-options.js\";\nimport { error, fail, redirect } from \"@sveltejs/kit\";\n// src/routes/tables/[table]/[id]/edit/+page.server.ts\nfunction findTable(tables, slug) {\n\treturn tables.find((t) => t.qualifiedName === slug) ?? null;\n}\nfunction tableViewModel(table) {\n\treturn {\n\t\tqualifiedName: table.qualifiedName,\n\t\tlabel: table.label,\n\t\tprimaryKey: table.primaryKey,\n\t\tcolumns: table.columns.map((c) => ({\n\t\t\tname: c.name,\n\t\t\tlabel: c.label,\n\t\t\twidget: c.widget,\n\t\t\tenumValues: c.enumValues ?? [],\n\t\t\tnullable: c.nullable,\n\t\t\treadonly: c.readonly || c.isPrimaryKey,\n\t\t\tisPrimaryKey: c.isPrimaryKey\n\t\t}))\n\t};\n}\nvar load = async ({ params, locals }) => {\n\tconst found = findTable(locals.schema.tables, params.table);\n\tif (!found) throw error(404, `Unknown table: ${params.table}`);\n\tconst table = applyPrivilegeReadonly(found, \"update\");\n\tconst adapter = getAdapter(locals.schema);\n\tconst id = parseResourceId(params.id, table.primaryKey);\n\tconst row = await adapter.get(table.qualifiedName, id);\n\tconst relations = relationFieldConfigs(table, locals.schema);\n\tconst formTable = promoteCompositeMemberWidgets(demoteUnpickableRelations(table, relations), relations);\n\tconst form = await superValidate(row, zod(zodFromTable(formTable)));\n\tconst initialOptions = await loadInitialRelationOptions(adapter, relations);\n\tawait ensureSelectedOptions(adapter, relations, row, initialOptions);\n\treturn {\n\t\ttable: tableViewModel(formTable),\n\t\tform,\n\t\tid: encodeResourceId(id),\n\t\trelations,\n\t\tinitialOptions\n\t};\n};\nvar actions = { default: async ({ request, params, locals }) => {\n\tconst found = findTable(locals.schema.tables, params.table);\n\tif (!found) throw error(404, `Unknown table: ${params.table}`);\n\tconst table = applyPrivilegeReadonly(found, \"update\");\n\tconst relations = relationFieldConfigs(table, locals.schema);\n\tconst formTable = promoteCompositeMemberWidgets(demoteUnpickableRelations(table, relations), relations);\n\tconst submission = await readFormWithCompositePicks(request, relations);\n\tif (submission === null) return fail(400, { form: await superValidate(zod(zodFromTable(formTable))) });\n\tconst form = await superValidate(submission, zod(zodFromTable(formTable)));\n\tif (!form.valid) return fail(400, { form });\n\tconst payload = buildMutationPayload(formTable, form.data, \"update\");\n\tconst id = parseResourceId(params.id, table.primaryKey);\n\ttry {\n\t\tawait getAdapter(locals.schema).update(table.qualifiedName, id, payload);\n\t} catch (err) {\n\t\tconst failure = adapterErrorToFailure(err);\n\t\tif (failure !== null) {\n\t\t\tform.valid = false;\n\t\t\tform.message = failure.message;\n\t\t\treturn fail(failure.status, { form });\n\t\t}\n\t\tthrow err;\n\t}\n\tthrow redirect(303, `/tables/${table.qualifiedName}/${encodeResourceId(id)}`);\n} };\nexport { actions, load };\n","import * as server from '../entries/pages/tables/_table_/_id_/edit/_page.server.ts.js';\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/tables/_table_/_id_/edit/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/tables/[table]/[id]/edit/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/7.OrbBRjxz.js\",\"_app/immutable/chunks/xihTtKlq.js\",\"_app/immutable/chunks/DM1WDXNi.js\",\"_app/immutable/chunks/ng5ew0-V.js\",\"_app/immutable/chunks/BPmV12Pr.js\",\"_app/immutable/chunks/Tpr6dUXs.js\",\"_app/immutable/chunks/D5sfkRNZ.js\",\"_app/immutable/chunks/CzvdUerA.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"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"}