@malloy-publisher/server 0.0.114 → 0.0.116

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 (305) hide show
  1. package/dist/app/api-doc.yaml +634 -362
  2. package/dist/app/assets/{Chip-DpRfGWL9.js → Chip-BlLPwrfU.js} +1 -1
  3. package/dist/app/assets/{Container-pCaIjpH5.js → Container-DSVPh3gE.js} +1 -1
  4. package/dist/app/assets/{DialogTitle-Df6dToBj.js → DialogTitle-bD8VuT8c.js} +1 -1
  5. package/dist/app/assets/{Edit-Do7LZWER.js → Edit-_LnCy6KM.js} +1 -1
  6. package/dist/app/assets/FormControlContext-DignhH4k.js +1 -0
  7. package/dist/app/assets/{HomePage-pfv0GYQd.js → HomePage-LX1tISWU.js} +1 -1
  8. package/dist/app/assets/{MainPage-1RQ43yX6.js → MainPage-IcOw9T0o.js} +1 -1
  9. package/dist/app/assets/{MenuItem-BWMnNgqP.js → MenuItem-BdqihbmU.js} +1 -1
  10. package/dist/app/assets/{Modal-BbVeNLvO.js → Modal-D0aofeJ-.js} +1 -1
  11. package/dist/app/assets/{ModelPage-BFSBWoUi.js → ModelPage-Cmj_3prB.js} +1 -1
  12. package/dist/app/assets/{MoreVert-Dh8A2FDF.js → MoreVert-YhnXQ3v5.js} +1 -1
  13. package/dist/app/assets/{PackagePage-Dbb4lm1F.js → PackagePage-CA_3_grb.js} +2 -2
  14. package/dist/app/assets/{ProjectPage-Ccyp5m5h.js → ProjectPage-CTEKaYN6.js} +1 -1
  15. package/dist/app/assets/{RouteError-soNErEMV.js → RouteError-DBjBbJQ4.js} +1 -1
  16. package/dist/app/assets/{WorkbookPage-D_yrMjqR.js → WorkbookPage-BQqJ6KAQ.js} +1 -1
  17. package/dist/app/assets/{index-BS_9W4Tt.js → index-BAfm35bA.js} +60 -60
  18. package/dist/app/assets/{index-B_Z1qGAK.js → index-Bxv0Yt4A.js} +1 -1
  19. package/dist/app/assets/{index-CZpA8zwK.js → index-CvMj3zFy.js} +1 -1
  20. package/dist/app/assets/{index.es20-DzH7kq4S.js → index.es20-DX-qKVln.js} +1 -1
  21. package/dist/app/assets/{index.es23-C-bQftBc.js → index.es23-MhA_BS7D.js} +2 -2
  22. package/dist/app/assets/{index.es287-BsK0ZRDU.js → index.es309-BadtNHpe.js} +1 -1
  23. package/dist/app/assets/{index.es288-pwa92z63.js → index.es310-CxNQu9Er.js} +1 -1
  24. package/dist/app/assets/{index.es291-LYy-CnOC.js → index.es313-CDQEwRNq.js} +1 -1
  25. package/dist/app/assets/{index.es296-BxlxlVr1.js → index.es318-BEizWri7.js} +1 -1
  26. package/dist/app/assets/{index.es304-jV2gZBYS.js → index.es326-DRDRxpfM.js} +1 -1
  27. package/dist/app/assets/{index.es305-DrF4mmwj.js → index.es327-Beb6eJic.js} +1 -1
  28. package/dist/app/assets/{index.es308-CZZGZfCL.js → index.es330-CwuXg3fJ.js} +1 -1
  29. package/dist/app/assets/{index.es312-CM4OW1Tu.js → index.es334-Dm2bZsvo.js} +1 -1
  30. package/dist/app/assets/{index.es315-CSNCJz_t.js → index.es337-BRS6prNj.js} +1 -1
  31. package/dist/app/assets/{index.es318-BnlIqKdP.js → index.es340-CpGpgGPq.js} +1 -1
  32. package/dist/app/assets/{index.es319-BqfPxZyn.js → index.es341-CzpxUkrh.js} +1 -1
  33. package/dist/app/assets/{index.es333-DrlQlC9C.js → index.es355-Cw1hwz7b.js} +1 -1
  34. package/dist/app/assets/{index.es334-CrN25jeJ.js → index.es356-Lf8oNwCV.js} +1 -1
  35. package/dist/app/assets/{index.es335-BMF1iNAk.js → index.es357-BSyhsBZc.js} +1 -1
  36. package/dist/app/assets/{index.es337-DddOBpwk.js → index.es359-DlQPvmEf.js} +1 -1
  37. package/dist/app/assets/{index.es342-5MyjXhLR.js → index.es364-BdLXGlNW.js} +1 -1
  38. package/dist/app/assets/{index.es344-BpzCATdh.js → index.es366-CeOBTy3D.js} +1 -1
  39. package/dist/app/assets/{index.es345-CcT82qyg.js → index.es367-BTU6dC7H.js} +1 -1
  40. package/dist/app/assets/{index.es350-DT_CVHOb.js → index.es372-CAP3LJB5.js} +1 -1
  41. package/dist/app/assets/{index.es351-IRimHV8f.js → index.es373-Bn0SN4Qr.js} +1 -1
  42. package/dist/app/assets/{index.es353-e0DSyH1F.js → index.es375-DHsDDgUb.js} +1 -1
  43. package/dist/app/assets/{index.es354-DvXzIB3B.js → index.es376-DiakK4K7.js} +1 -1
  44. package/dist/app/assets/{index.es355-BpinPwMf.js → index.es377-BVmV6Pw5.js} +1 -1
  45. package/dist/app/assets/{index.es358-B2FwChKl.js → index.es380-DWVjI1nw.js} +1 -1
  46. package/dist/app/assets/{index.es360-B11Uptoy.js → index.es382-DZZkqdlU.js} +1 -1
  47. package/dist/app/assets/{index.es361-CqPSZKxw.js → index.es383-DrYUPMBY.js} +1 -1
  48. package/dist/app/assets/{index.es362-kID_QP2b.js → index.es384-O2h4x2O1.js} +1 -1
  49. package/dist/app/assets/{index.es368-DEU47Nmo.js → index.es390-CENsXSpU.js} +1 -1
  50. package/dist/app/assets/{index.es369-BAVwPVpH.js → index.es391-DGinr4O5.js} +1 -1
  51. package/dist/app/assets/{index.es370-CQSqpEY2.js → index.es392-B96aw5eg.js} +1 -1
  52. package/dist/app/assets/{index.es371-DSPIJ8l-.js → index.es393-BB41wM4d.js} +1 -1
  53. package/dist/app/assets/{index.es373-CTLjf8LZ.js → index.es395-CyeA1Xjk.js} +1 -1
  54. package/dist/app/assets/{index.es377-BFPElb8k.js → index.es399-Bsi68PlA.js} +1 -1
  55. package/dist/app/assets/{index.es378-Bi8-8y3Z.js → index.es400-BAaaKxaT.js} +1 -1
  56. package/dist/app/assets/{index.es386-BRbfYhrv.js → index.es408-Cox8sqBq.js} +1 -1
  57. package/dist/app/assets/{index.es389-SMY2M5Dd.js → index.es411-BIcB0nnx.js} +1 -1
  58. package/dist/app/assets/{index.es392-fGYxK-uk.js → index.es414-NSiQAL9E.js} +1 -1
  59. package/dist/app/assets/{index.es395--SrhnzjM.js → index.es417-CJHHUEgP.js} +1 -1
  60. package/dist/app/assets/{index.es399-BP5VLghY.js → index.es421-DlzZ1edh.js} +1 -1
  61. package/dist/app/assets/{index.es401-CopVMHFF.js → index.es423-Blu2B8df.js} +1 -1
  62. package/dist/app/assets/{index.es409-C0EaxmtL.js → index.es431-BcO6TXny.js} +1 -1
  63. package/dist/app/assets/{index.es410-B2INzLoQ.js → index.es432-DR7oVH16.js} +1 -1
  64. package/dist/app/assets/{index.es417-B6GOQZs3.js → index.es439-D-FInR6T.js} +1 -1
  65. package/dist/app/assets/{index.es418-Dt4O9kPw.js → index.es440-C8xLRtnr.js} +1 -1
  66. package/dist/app/assets/{index.es428-BGqtBs8m.js → index.es450-BWJL1ivC.js} +1 -1
  67. package/dist/app/assets/{index.es432-BzFuvoyF.js → index.es454-B4gLruiC.js} +1 -1
  68. package/dist/app/assets/{index.es438-DvNyQZ9B.js → index.es460-Dk4iQbdz.js} +1 -1
  69. package/dist/app/assets/{index.es443-DC0KqCTi.js → index.es465-DPM1K1vX.js} +1 -1
  70. package/dist/app/assets/{index.es444-CTooryRZ.js → index.es466-Cz5i94Jb.js} +1 -1
  71. package/dist/app/assets/{index.es446-DGMBZ3_7.js → index.es468-CEal6hHe.js} +1 -1
  72. package/dist/app/assets/{index.es450-BCWIDv3j.js → index.es472-Dn7NJgh3.js} +1 -1
  73. package/dist/app/assets/{index.es452-B8WGaHgy.js → index.es474-DmO_iZ7H.js} +1 -1
  74. package/dist/app/assets/{index.es454-Cp0AvzKu.js → index.es476-AEEjznls.js} +1 -1
  75. package/dist/app/assets/{index.es457-C87oaIOo.js → index.es479-CVK23V1l.js} +1 -1
  76. package/dist/app/assets/{index.es458-CBexwHfM.js → index.es480-Dg2zCIZf.js} +1 -1
  77. package/dist/app/assets/{index.es462-DGwyl90J.js → index.es484-B8fRb4PI.js} +1 -1
  78. package/dist/app/assets/{index.es464-Dzf6WDCJ.js → index.es486-DugRqL_s.js} +1 -1
  79. package/dist/app/assets/{index.es471-BOZxaHLN.js → index.es493-Cq9aUzhz.js} +1 -1
  80. package/dist/app/assets/{index.es473-C4VYB3vo.js → index.es495-DHLZUspl.js} +1 -1
  81. package/dist/app/assets/{index.es475-OnXMAP7q.js → index.es497-BvzzhJTZ.js} +1 -1
  82. package/dist/app/assets/{index.es479-H38Vf5YC.js → index.es501-BjGaL-C6.js} +1 -1
  83. package/dist/app/assets/{index.es489-Cm4BEHNL.js → index.es511-DRqxYg4O.js} +1 -1
  84. package/dist/app/assets/{index.es490-DtqPpdnf.js → index.es512-B0vqeVAK.js} +1 -1
  85. package/dist/app/assets/{index.es497-BvZ-y4_B.js → index.es519-3ouX9M5g.js} +1 -1
  86. package/dist/app/assets/{index.es498-DeJOiud8.js → index.es520-BWdPHKc-.js} +1 -1
  87. package/dist/app/assets/{index.es7-Lspe9b-6.js → index.es7-BnSyqMUG.js} +1 -1
  88. package/dist/app/assets/{index.modern-J74LOUay.js → index.modern-BNyuNLQP.js} +1 -1
  89. package/dist/app/assets/{index.umd-iTdVE6k1.js → index.umd-DjRNKlAu.js} +1 -1
  90. package/dist/app/assets/{listItemTextClasses-D0rI_qhy.js → listItemTextClasses-BZy8G2qL.js} +1 -1
  91. package/dist/app/index.html +1 -1
  92. package/dist/server.js +3477 -31
  93. package/package.json +2 -1
  94. package/src/service/connection.ts +89 -17
  95. package/src/service/db_utils.ts +61 -0
  96. package/src/service/model.ts +1 -0
  97. package/dist/app/assets/FormControlContext-Ccuzn_SP.js +0 -1
  98. /package/dist/app/assets/{index.es276-CG6Dc4jp.js → index.es298-CG6Dc4jp.js} +0 -0
  99. /package/dist/app/assets/{index.es284-DsBKuouk.js → index.es306-DsBKuouk.js} +0 -0
  100. /package/dist/app/assets/{index.es285-D_z4Izcz.js → index.es307-D_z4Izcz.js} +0 -0
  101. /package/dist/app/assets/{index.es286-727ZlQH0.js → index.es308-727ZlQH0.js} +0 -0
  102. /package/dist/app/assets/{index.es289-Dn00JSTd.js → index.es311-Dn00JSTd.js} +0 -0
  103. /package/dist/app/assets/{index.es290-COJ4H7py.js → index.es312-COJ4H7py.js} +0 -0
  104. /package/dist/app/assets/{index.es292-Bu5BbsvL.js → index.es314-Bu5BbsvL.js} +0 -0
  105. /package/dist/app/assets/{index.es293-7O62HKoU.js → index.es315-7O62HKoU.js} +0 -0
  106. /package/dist/app/assets/{index.es294-BPT9niGB.js → index.es316-BPT9niGB.js} +0 -0
  107. /package/dist/app/assets/{index.es295-Dhn9LcZ4.js → index.es317-Dhn9LcZ4.js} +0 -0
  108. /package/dist/app/assets/{index.es297-eg146-Ew.js → index.es319-eg146-Ew.js} +0 -0
  109. /package/dist/app/assets/{index.es298-Du268qiB.js → index.es320-Du268qiB.js} +0 -0
  110. /package/dist/app/assets/{index.es299-fje9CFhw.js → index.es321-fje9CFhw.js} +0 -0
  111. /package/dist/app/assets/{index.es300-BwXTMy5W.js → index.es322-BwXTMy5W.js} +0 -0
  112. /package/dist/app/assets/{index.es301-3xVqZejG.js → index.es323-3xVqZejG.js} +0 -0
  113. /package/dist/app/assets/{index.es302-xW4inM5L.js → index.es324-xW4inM5L.js} +0 -0
  114. /package/dist/app/assets/{index.es303-DHo0CJ0O.js → index.es325-DHo0CJ0O.js} +0 -0
  115. /package/dist/app/assets/{index.es306-C3t2pwGQ.js → index.es328-C3t2pwGQ.js} +0 -0
  116. /package/dist/app/assets/{index.es307-DNquZEk8.js → index.es329-DNquZEk8.js} +0 -0
  117. /package/dist/app/assets/{index.es309-BHOwM8T6.js → index.es331-BHOwM8T6.js} +0 -0
  118. /package/dist/app/assets/{index.es310-DxSadP1t.js → index.es332-DxSadP1t.js} +0 -0
  119. /package/dist/app/assets/{index.es311-DbXoA79R.js → index.es333-DbXoA79R.js} +0 -0
  120. /package/dist/app/assets/{index.es313-Bp6g37R7.js → index.es335-Bp6g37R7.js} +0 -0
  121. /package/dist/app/assets/{index.es314-sacFqUAJ.js → index.es336-sacFqUAJ.js} +0 -0
  122. /package/dist/app/assets/{index.es316-C7gG9l05.js → index.es338-C7gG9l05.js} +0 -0
  123. /package/dist/app/assets/{index.es317-Dsg_Bt_b.js → index.es339-Dsg_Bt_b.js} +0 -0
  124. /package/dist/app/assets/{index.es320-D9R-vmeu.js → index.es342-D9R-vmeu.js} +0 -0
  125. /package/dist/app/assets/{index.es321-BPhBrDlE.js → index.es343-BPhBrDlE.js} +0 -0
  126. /package/dist/app/assets/{index.es322-C-TU5hQ_.js → index.es344-C-TU5hQ_.js} +0 -0
  127. /package/dist/app/assets/{index.es323-DtFQj3wx.js → index.es345-DtFQj3wx.js} +0 -0
  128. /package/dist/app/assets/{index.es324-m2LEI-9-.js → index.es346-m2LEI-9-.js} +0 -0
  129. /package/dist/app/assets/{index.es325-BoXegm-a.js → index.es347-BoXegm-a.js} +0 -0
  130. /package/dist/app/assets/{index.es326-B9wLZaAG.js → index.es348-B9wLZaAG.js} +0 -0
  131. /package/dist/app/assets/{index.es327-ClGRhx96.js → index.es349-ClGRhx96.js} +0 -0
  132. /package/dist/app/assets/{index.es328-DEIpsLCJ.js → index.es350-DEIpsLCJ.js} +0 -0
  133. /package/dist/app/assets/{index.es329-BgYniUM_.js → index.es351-BgYniUM_.js} +0 -0
  134. /package/dist/app/assets/{index.es330-COcR7UxN.js → index.es352-COcR7UxN.js} +0 -0
  135. /package/dist/app/assets/{index.es331-BjQB5zDj.js → index.es353-BjQB5zDj.js} +0 -0
  136. /package/dist/app/assets/{index.es332-C-nORZOA.js → index.es354-C-nORZOA.js} +0 -0
  137. /package/dist/app/assets/{index.es336-BX77sIaO.js → index.es358-BX77sIaO.js} +0 -0
  138. /package/dist/app/assets/{index.es338-B-DoSBHF.js → index.es360-B-DoSBHF.js} +0 -0
  139. /package/dist/app/assets/{index.es339-bCA53EVm.js → index.es361-bCA53EVm.js} +0 -0
  140. /package/dist/app/assets/{index.es340-w-ucz2PV.js → index.es362-w-ucz2PV.js} +0 -0
  141. /package/dist/app/assets/{index.es341-Dayu4EKP.js → index.es363-Dayu4EKP.js} +0 -0
  142. /package/dist/app/assets/{index.es343-DKXYxT9g.js → index.es365-DKXYxT9g.js} +0 -0
  143. /package/dist/app/assets/{index.es346-DfxzS6Rs.js → index.es368-DfxzS6Rs.js} +0 -0
  144. /package/dist/app/assets/{index.es347-SKMF96pI.js → index.es369-SKMF96pI.js} +0 -0
  145. /package/dist/app/assets/{index.es348-ajMbGru0.js → index.es370-ajMbGru0.js} +0 -0
  146. /package/dist/app/assets/{index.es349--30QC5Em.js → index.es371--30QC5Em.js} +0 -0
  147. /package/dist/app/assets/{index.es352-B430Bg39.js → index.es374-B430Bg39.js} +0 -0
  148. /package/dist/app/assets/{index.es356-CM8KxXT1.js → index.es378-CM8KxXT1.js} +0 -0
  149. /package/dist/app/assets/{index.es357-B1SYOhNW.js → index.es379-B1SYOhNW.js} +0 -0
  150. /package/dist/app/assets/{index.es359-DkBy-JyN.js → index.es381-DkBy-JyN.js} +0 -0
  151. /package/dist/app/assets/{index.es363-BILxekzW.js → index.es385-BILxekzW.js} +0 -0
  152. /package/dist/app/assets/{index.es364-C5wWYbrZ.js → index.es386-C5wWYbrZ.js} +0 -0
  153. /package/dist/app/assets/{index.es365-HzYwdGDm.js → index.es387-HzYwdGDm.js} +0 -0
  154. /package/dist/app/assets/{index.es366-T-Tgc4AT.js → index.es388-T-Tgc4AT.js} +0 -0
  155. /package/dist/app/assets/{index.es367-ifBTmRxC.js → index.es389-ifBTmRxC.js} +0 -0
  156. /package/dist/app/assets/{index.es372-BMj5Y0dO.js → index.es394-BMj5Y0dO.js} +0 -0
  157. /package/dist/app/assets/{index.es374-BjABl1g7.js → index.es396-BjABl1g7.js} +0 -0
  158. /package/dist/app/assets/{index.es375-xI-RfyKK.js → index.es397-xI-RfyKK.js} +0 -0
  159. /package/dist/app/assets/{index.es376-ySlJ1b_l.js → index.es398-ySlJ1b_l.js} +0 -0
  160. /package/dist/app/assets/{index.es379-BQoSv7ci.js → index.es401-BQoSv7ci.js} +0 -0
  161. /package/dist/app/assets/{index.es380-w8dY5SsB.js → index.es402-w8dY5SsB.js} +0 -0
  162. /package/dist/app/assets/{index.es381-TU54ms6u.js → index.es403-TU54ms6u.js} +0 -0
  163. /package/dist/app/assets/{index.es382-DREVFZK8.js → index.es404-DREVFZK8.js} +0 -0
  164. /package/dist/app/assets/{index.es383-BfivnA6A.js → index.es405-BfivnA6A.js} +0 -0
  165. /package/dist/app/assets/{index.es384-P4WzXJd0.js → index.es406-P4WzXJd0.js} +0 -0
  166. /package/dist/app/assets/{index.es385-BAng5TT0.js → index.es407-BAng5TT0.js} +0 -0
  167. /package/dist/app/assets/{index.es387-B5lbUyaz.js → index.es409-B5lbUyaz.js} +0 -0
  168. /package/dist/app/assets/{index.es388-mebxcVVE.js → index.es410-mebxcVVE.js} +0 -0
  169. /package/dist/app/assets/{index.es390-XBlWyCtg.js → index.es412-XBlWyCtg.js} +0 -0
  170. /package/dist/app/assets/{index.es391-BfCpw3nA.js → index.es413-BfCpw3nA.js} +0 -0
  171. /package/dist/app/assets/{index.es393-Cc5clBb7.js → index.es415-Cc5clBb7.js} +0 -0
  172. /package/dist/app/assets/{index.es394-IuBKFhSY.js → index.es416-IuBKFhSY.js} +0 -0
  173. /package/dist/app/assets/{index.es396-Du5NY7AG.js → index.es418-Du5NY7AG.js} +0 -0
  174. /package/dist/app/assets/{index.es397-Bvotw-X0.js → index.es419-Bvotw-X0.js} +0 -0
  175. /package/dist/app/assets/{index.es398-UIAJJxZW.js → index.es420-UIAJJxZW.js} +0 -0
  176. /package/dist/app/assets/{index.es400-D9-PGadD.js → index.es422-D9-PGadD.js} +0 -0
  177. /package/dist/app/assets/{index.es402-sdHcTMYB.js → index.es424-sdHcTMYB.js} +0 -0
  178. /package/dist/app/assets/{index.es403-Ci6OQyBP.js → index.es425-Ci6OQyBP.js} +0 -0
  179. /package/dist/app/assets/{index.es404-BC5c_5Pe.js → index.es426-BC5c_5Pe.js} +0 -0
  180. /package/dist/app/assets/{index.es405-Tz6hzZYG.js → index.es427-Tz6hzZYG.js} +0 -0
  181. /package/dist/app/assets/{index.es406-DB_GagMm.js → index.es428-DB_GagMm.js} +0 -0
  182. /package/dist/app/assets/{index.es407-DLbgOhZU.js → index.es429-DLbgOhZU.js} +0 -0
  183. /package/dist/app/assets/{index.es408-B0XVJmRM.js → index.es430-B0XVJmRM.js} +0 -0
  184. /package/dist/app/assets/{index.es411-shcSOmrb.js → index.es433-shcSOmrb.js} +0 -0
  185. /package/dist/app/assets/{index.es412-D4Tzg5kh.js → index.es434-D4Tzg5kh.js} +0 -0
  186. /package/dist/app/assets/{index.es413-Deuh7S70.js → index.es435-Deuh7S70.js} +0 -0
  187. /package/dist/app/assets/{index.es414-BUEGK8hf.js → index.es436-BUEGK8hf.js} +0 -0
  188. /package/dist/app/assets/{index.es415-BNioltXt.js → index.es437-BNioltXt.js} +0 -0
  189. /package/dist/app/assets/{index.es416-JqZropPD.js → index.es438-JqZropPD.js} +0 -0
  190. /package/dist/app/assets/{index.es419-LKU2TuZ1.js → index.es441-LKU2TuZ1.js} +0 -0
  191. /package/dist/app/assets/{index.es420-BFLt1xDp.js → index.es442-BFLt1xDp.js} +0 -0
  192. /package/dist/app/assets/{index.es421-DKykz6zU.js → index.es443-DKykz6zU.js} +0 -0
  193. /package/dist/app/assets/{index.es422-B3ZDOciz.js → index.es444-B3ZDOciz.js} +0 -0
  194. /package/dist/app/assets/{index.es423-CSHBycmS.js → index.es445-CSHBycmS.js} +0 -0
  195. /package/dist/app/assets/{index.es424-BIEUsx6d.js → index.es446-BIEUsx6d.js} +0 -0
  196. /package/dist/app/assets/{index.es425-B48N-Iqd.js → index.es447-B48N-Iqd.js} +0 -0
  197. /package/dist/app/assets/{index.es426-BY-TUvya.js → index.es448-BY-TUvya.js} +0 -0
  198. /package/dist/app/assets/{index.es427-zocC4JxJ.js → index.es449-zocC4JxJ.js} +0 -0
  199. /package/dist/app/assets/{index.es429-Cza_XSSt.js → index.es451-Cza_XSSt.js} +0 -0
  200. /package/dist/app/assets/{index.es430-Bg-kzb6g.js → index.es452-Bg-kzb6g.js} +0 -0
  201. /package/dist/app/assets/{index.es431-DhUJRlN_.js → index.es453-DhUJRlN_.js} +0 -0
  202. /package/dist/app/assets/{index.es433-C8lEn-DE.js → index.es455-C8lEn-DE.js} +0 -0
  203. /package/dist/app/assets/{index.es434-DhMKtDLN.js → index.es456-DhMKtDLN.js} +0 -0
  204. /package/dist/app/assets/{index.es435-CwjWoCRV.js → index.es457-CwjWoCRV.js} +0 -0
  205. /package/dist/app/assets/{index.es436-CzouJOBO.js → index.es458-CzouJOBO.js} +0 -0
  206. /package/dist/app/assets/{index.es437-B1bQXN8T.js → index.es459-B1bQXN8T.js} +0 -0
  207. /package/dist/app/assets/{index.es439-5LuOXUq_.js → index.es461-5LuOXUq_.js} +0 -0
  208. /package/dist/app/assets/{index.es440-DWJ3fJO_.js → index.es462-DWJ3fJO_.js} +0 -0
  209. /package/dist/app/assets/{index.es441-DJlmqQ1C.js → index.es463-DJlmqQ1C.js} +0 -0
  210. /package/dist/app/assets/{index.es442-QhoSD0DR.js → index.es464-QhoSD0DR.js} +0 -0
  211. /package/dist/app/assets/{index.es445-Be6lgOlo.js → index.es467-Be6lgOlo.js} +0 -0
  212. /package/dist/app/assets/{index.es447-BJ4Li9vH.js → index.es469-BJ4Li9vH.js} +0 -0
  213. /package/dist/app/assets/{index.es448-DQVVAn-B.js → index.es470-DQVVAn-B.js} +0 -0
  214. /package/dist/app/assets/{index.es449-BJGe-b2p.js → index.es471-BJGe-b2p.js} +0 -0
  215. /package/dist/app/assets/{index.es451-BLhTXw86.js → index.es473-BLhTXw86.js} +0 -0
  216. /package/dist/app/assets/{index.es453-atvbtKCR.js → index.es475-atvbtKCR.js} +0 -0
  217. /package/dist/app/assets/{index.es455-DkLiglaE.js → index.es477-DkLiglaE.js} +0 -0
  218. /package/dist/app/assets/{index.es456-C1w2a3ep.js → index.es478-C1w2a3ep.js} +0 -0
  219. /package/dist/app/assets/{index.es459-Cf8iN4DR.js → index.es481-Cf8iN4DR.js} +0 -0
  220. /package/dist/app/assets/{index.es460-COK4E0Yg.js → index.es482-COK4E0Yg.js} +0 -0
  221. /package/dist/app/assets/{index.es461-BknIz3MU.js → index.es483-BknIz3MU.js} +0 -0
  222. /package/dist/app/assets/{index.es463-BeQkCIfX.js → index.es485-BeQkCIfX.js} +0 -0
  223. /package/dist/app/assets/{index.es465-BSxZ-RaX.js → index.es487-BSxZ-RaX.js} +0 -0
  224. /package/dist/app/assets/{index.es466-C7L56vO4.js → index.es488-C7L56vO4.js} +0 -0
  225. /package/dist/app/assets/{index.es467-CUnW07Te.js → index.es489-CUnW07Te.js} +0 -0
  226. /package/dist/app/assets/{index.es468-C1XDQQGZ.js → index.es490-C1XDQQGZ.js} +0 -0
  227. /package/dist/app/assets/{index.es469-CQjiPCtT.js → index.es491-CQjiPCtT.js} +0 -0
  228. /package/dist/app/assets/{index.es470-DQ1-QYvQ.js → index.es492-DQ1-QYvQ.js} +0 -0
  229. /package/dist/app/assets/{index.es472-BbSNqyBO.js → index.es494-BbSNqyBO.js} +0 -0
  230. /package/dist/app/assets/{index.es474-CB2ApiWb.js → index.es496-CB2ApiWb.js} +0 -0
  231. /package/dist/app/assets/{index.es476-B_m7g4N7.js → index.es498-B_m7g4N7.js} +0 -0
  232. /package/dist/app/assets/{index.es477-B6W0miNI.js → index.es499-B6W0miNI.js} +0 -0
  233. /package/dist/app/assets/{index.es478-BMR_PYu6.js → index.es500-BMR_PYu6.js} +0 -0
  234. /package/dist/app/assets/{index.es480-Dj6nwHGl.js → index.es502-Dj6nwHGl.js} +0 -0
  235. /package/dist/app/assets/{index.es481-BpWG_bgh.js → index.es503-BpWG_bgh.js} +0 -0
  236. /package/dist/app/assets/{index.es482-BVUVsWT6.js → index.es504-BVUVsWT6.js} +0 -0
  237. /package/dist/app/assets/{index.es483-CAQ2eGtk.js → index.es505-CAQ2eGtk.js} +0 -0
  238. /package/dist/app/assets/{index.es484-BFOHcciG.js → index.es506-BFOHcciG.js} +0 -0
  239. /package/dist/app/assets/{index.es485-CdO5JTpU.js → index.es507-CdO5JTpU.js} +0 -0
  240. /package/dist/app/assets/{index.es486-CJaU5se_.js → index.es508-CJaU5se_.js} +0 -0
  241. /package/dist/app/assets/{index.es487-DYoNaHQp.js → index.es509-DYoNaHQp.js} +0 -0
  242. /package/dist/app/assets/{index.es488-m4uW47V2.js → index.es510-m4uW47V2.js} +0 -0
  243. /package/dist/app/assets/{index.es491-nyqBNV6O.js → index.es513-nyqBNV6O.js} +0 -0
  244. /package/dist/app/assets/{index.es492-C6j12Q_x.js → index.es514-C6j12Q_x.js} +0 -0
  245. /package/dist/app/assets/{index.es493-7A4Fjokl.js → index.es515-7A4Fjokl.js} +0 -0
  246. /package/dist/app/assets/{index.es494-CB0Krxn9.js → index.es516-CB0Krxn9.js} +0 -0
  247. /package/dist/app/assets/{index.es495-DCE3LsBG.js → index.es517-DCE3LsBG.js} +0 -0
  248. /package/dist/app/assets/{index.es496-C3FkfJm5.js → index.es518-C3FkfJm5.js} +0 -0
  249. /package/dist/app/assets/{index.es499-CVw76BM1.js → index.es521-CVw76BM1.js} +0 -0
  250. /package/dist/app/assets/{index.es500-HnGAYVZD.js → index.es522-HnGAYVZD.js} +0 -0
  251. /package/dist/app/assets/{index.es501-BVz_zdnA.js → index.es523-BVz_zdnA.js} +0 -0
  252. /package/dist/app/assets/{index.es502-C3khCPGq.js → index.es524-C3khCPGq.js} +0 -0
  253. /package/dist/app/assets/{index.es503-D-2ljcwZ.js → index.es525-D-2ljcwZ.js} +0 -0
  254. /package/dist/app/assets/{index.es504-Cv9koXgw.js → index.es526-Cv9koXgw.js} +0 -0
  255. /package/dist/app/assets/{index.es505-CD_QflpE.js → index.es527-CD_QflpE.js} +0 -0
  256. /package/dist/app/assets/{index.es506-DRW-0cLl.js → index.es528-DRW-0cLl.js} +0 -0
  257. /package/dist/app/assets/{index.es507-C-_shW-Y.js → index.es529-C-_shW-Y.js} +0 -0
  258. /package/dist/app/assets/{index.es508-LGGdnPYs.js → index.es530-LGGdnPYs.js} +0 -0
  259. /package/dist/app/assets/{index.es509-C3mMm8J8.js → index.es531-C3mMm8J8.js} +0 -0
  260. /package/dist/app/assets/{index.es510-BzJJZx-M.js → index.es532-BzJJZx-M.js} +0 -0
  261. /package/dist/app/assets/{index.es511-BXkSAIEj.js → index.es533-BXkSAIEj.js} +0 -0
  262. /package/dist/app/assets/{index.es512-BgDCqdQA.js → index.es534-BgDCqdQA.js} +0 -0
  263. /package/dist/app/assets/{index.es513-C8M2exoo.js → index.es535-C8M2exoo.js} +0 -0
  264. /package/dist/app/assets/{index.es514-DHJKELXO.js → index.es536-DHJKELXO.js} +0 -0
  265. /package/dist/app/assets/{index.es515-Cuk6v7N8.js → index.es537-Cuk6v7N8.js} +0 -0
  266. /package/dist/app/assets/{index.es516-DH5Ifo-i.js → index.es538-DH5Ifo-i.js} +0 -0
  267. /package/dist/app/assets/{index.es517-E3gJ1_iC.js → index.es539-E3gJ1_iC.js} +0 -0
  268. /package/dist/app/assets/{index.es518-DAi9KRSo.js → index.es540-DAi9KRSo.js} +0 -0
  269. /package/dist/app/assets/{index.es519-D7oLnXFd.js → index.es541-D7oLnXFd.js} +0 -0
  270. /package/dist/app/assets/{index.es520-BfjtVDDH.js → index.es542-BfjtVDDH.js} +0 -0
  271. /package/dist/app/assets/{index.es521-DnULxvSX.js → index.es543-DnULxvSX.js} +0 -0
  272. /package/dist/app/assets/{index.es522-CkXjmgJE.js → index.es544-CkXjmgJE.js} +0 -0
  273. /package/dist/app/assets/{index.es523-CfQXZHmo.js → index.es545-CfQXZHmo.js} +0 -0
  274. /package/dist/app/assets/{index.es524-DWedfzmr.js → index.es546-DWedfzmr.js} +0 -0
  275. /package/dist/app/assets/{index.es525-DUszq2jm.js → index.es547-DUszq2jm.js} +0 -0
  276. /package/dist/app/assets/{index.es526-B7mTdjB0.js → index.es548-B7mTdjB0.js} +0 -0
  277. /package/dist/app/assets/{index.es527-D5KoaKCx.js → index.es549-D5KoaKCx.js} +0 -0
  278. /package/dist/app/assets/{index.es528-BfHTSMKl.js → index.es550-BfHTSMKl.js} +0 -0
  279. /package/dist/app/assets/{index.es529-B0m2ddpp.js → index.es551-B0m2ddpp.js} +0 -0
  280. /package/dist/app/assets/{index.es530-CyktbL80.js → index.es552-CyktbL80.js} +0 -0
  281. /package/dist/app/assets/{index.es531-Csfq5Kiy.js → index.es553-Csfq5Kiy.js} +0 -0
  282. /package/dist/app/assets/{index.es532-CafNBF8u.js → index.es554-CafNBF8u.js} +0 -0
  283. /package/dist/app/assets/{index.es533-CTRr51gU.js → index.es555-CTRr51gU.js} +0 -0
  284. /package/dist/app/assets/{index.es534-D4h5O-jR.js → index.es556-D4h5O-jR.js} +0 -0
  285. /package/dist/app/assets/{index.es535-C39BiMTA.js → index.es557-C39BiMTA.js} +0 -0
  286. /package/dist/app/assets/{index.es536-Ddv68eIx.js → index.es558-Ddv68eIx.js} +0 -0
  287. /package/dist/app/assets/{index.es537-GBQ2dnAY.js → index.es559-GBQ2dnAY.js} +0 -0
  288. /package/dist/app/assets/{index.es538-PoHY5YXO.js → index.es560-PoHY5YXO.js} +0 -0
  289. /package/dist/app/assets/{index.es539-3e1v2bzS.js → index.es561-3e1v2bzS.js} +0 -0
  290. /package/dist/app/assets/{index.es540-CS3Unz2-.js → index.es562-CS3Unz2-.js} +0 -0
  291. /package/dist/app/assets/{index.es541-bN70gL4F.js → index.es563-bN70gL4F.js} +0 -0
  292. /package/dist/app/assets/{index.es542-CmCqftbK.js → index.es564-CmCqftbK.js} +0 -0
  293. /package/dist/app/assets/{index.es543-Ds-gbosJ.js → index.es565-Ds-gbosJ.js} +0 -0
  294. /package/dist/app/assets/{index.es544-CjDtw9vr.js → index.es566-CjDtw9vr.js} +0 -0
  295. /package/dist/app/assets/{index.es545-BthQWCQV.js → index.es567-BthQWCQV.js} +0 -0
  296. /package/dist/app/assets/{index.es546-DqwNpetd.js → index.es568-DqwNpetd.js} +0 -0
  297. /package/dist/app/assets/{index.es547-Bw305WKR.js → index.es569-Bw305WKR.js} +0 -0
  298. /package/dist/app/assets/{index.es548-DXbdFlpD.js → index.es570-DXbdFlpD.js} +0 -0
  299. /package/dist/app/assets/{index.es549-L9t79GZl.js → index.es571-L9t79GZl.js} +0 -0
  300. /package/dist/app/assets/{index.es550-CbfX1IO0.js → index.es572-CbfX1IO0.js} +0 -0
  301. /package/dist/app/assets/{index.es551-DBQeEorK.js → index.es573-DBQeEorK.js} +0 -0
  302. /package/dist/app/assets/{index.es552-BEBZ7ncR.js → index.es574-BEBZ7ncR.js} +0 -0
  303. /package/dist/app/assets/{index.es553-Bkuqu6BP.js → index.es575-Bkuqu6BP.js} +0 -0
  304. /package/dist/app/assets/{index.es554-D0r3Knsf.js → index.es576-D0r3Knsf.js} +0 -0
  305. /package/dist/app/assets/{index.es555-CVO1_9PV.js → index.es577-CVO1_9PV.js} +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@malloy-publisher/server",
3
3
  "description": "Malloy Publisher Server",
4
- "version": "0.0.114",
4
+ "version": "0.0.116",
5
5
  "main": "dist/server.js",
6
6
  "bin": {
7
7
  "malloy-publisher": "dist/server.js"
@@ -54,6 +54,7 @@
54
54
  "node-cron": "^3.0.3",
55
55
  "recursive-readdir": "^2.2.3",
56
56
  "simple-git": "^3.28.0",
57
+ "trino": "^1.1.1",
57
58
  "uuid": "^11.0.3"
58
59
  },
59
60
  "devDependencies": {
@@ -50,6 +50,40 @@ export async function readConnectionConfig(
50
50
  return convertConnectionsToApiConnections(connections);
51
51
  }
52
52
 
53
+ function validateAndBuildTrinoConfig(
54
+ trinoConfig: components["schemas"]["TrinoConnection"],
55
+ ) {
56
+ if (!trinoConfig.server?.includes(trinoConfig.port?.toString() || "")) {
57
+ trinoConfig.server = `${trinoConfig.server}:${trinoConfig.port}`;
58
+ }
59
+
60
+ if (trinoConfig.server?.startsWith("http://")) {
61
+ return {
62
+ server: trinoConfig.server,
63
+ port: trinoConfig.port,
64
+ catalog: trinoConfig.catalog,
65
+ schema: trinoConfig.schema,
66
+ user: trinoConfig.user,
67
+ };
68
+ } else if (
69
+ trinoConfig.server?.startsWith("https://") &&
70
+ trinoConfig.password
71
+ ) {
72
+ return {
73
+ server: trinoConfig.server,
74
+ port: trinoConfig.port,
75
+ catalog: trinoConfig.catalog,
76
+ schema: trinoConfig.schema,
77
+ user: trinoConfig.user,
78
+ password: trinoConfig.password,
79
+ };
80
+ } else {
81
+ throw new Error(
82
+ `Invalid Trino connection: expected "http://server:port" (no password) or "https://server:port" (with username and password).`,
83
+ );
84
+ }
85
+ }
86
+
53
87
  export async function createConnections(
54
88
  basePath: string,
55
89
  defaultConnections: ApiConnection[] = [],
@@ -201,6 +235,7 @@ export async function createConnections(
201
235
  warehouse: connection.snowflakeConnection.warehouse,
202
236
  database: connection.snowflakeConnection.database,
203
237
  schema: connection.snowflakeConnection.schema,
238
+ role: connection.snowflakeConnection.role,
204
239
  timeout:
205
240
  connection.snowflakeConnection.responseTimeoutMilliseconds,
206
241
  },
@@ -219,14 +254,10 @@ export async function createConnections(
219
254
  if (!connection.trinoConnection) {
220
255
  throw new Error("Trino connection configuration is missing.");
221
256
  }
222
- const trinoConnectionOptions = {
223
- server: connection.trinoConnection.server,
224
- port: connection.trinoConnection.port,
225
- catalog: connection.trinoConnection.catalog,
226
- schema: connection.trinoConnection.schema,
227
- user: connection.trinoConnection.user,
228
- password: connection.trinoConnection.password,
229
- };
257
+
258
+ const trinoConnectionOptions = validateAndBuildTrinoConfig(
259
+ connection.trinoConnection,
260
+ );
230
261
  const trinoConnection = new TrinoConnection(
231
262
  connection.name,
232
263
  {},
@@ -356,6 +387,7 @@ export async function testConnectionConfig(
356
387
  warehouse: snowflakeConfig.warehouse,
357
388
  database: snowflakeConfig.database,
358
389
  schema: snowflakeConfig.schema,
390
+ role: snowflakeConfig.role,
359
391
  timeout: snowflakeConfig.responseTimeoutMilliseconds,
360
392
  },
361
393
  };
@@ -460,18 +492,12 @@ export async function testConnectionConfig(
460
492
  !trinoConfig.user
461
493
  ) {
462
494
  throw new Error(
463
- "Trino connection requires: server, port, catalog, schema, and user",
495
+ "Trino connection requires server, port, catalog, schema, and user",
464
496
  );
465
497
  }
466
498
 
467
- const trinoConnectionOptions = {
468
- server: trinoConfig.server,
469
- port: trinoConfig.port,
470
- catalog: trinoConfig.catalog,
471
- schema: trinoConfig.schema,
472
- user: trinoConfig.user,
473
- password: trinoConfig.password,
474
- };
499
+ const trinoConnectionOptions =
500
+ validateAndBuildTrinoConfig(trinoConfig);
475
501
  const trinoConnection = new TrinoConnection(
476
502
  "testConnection",
477
503
  {},
@@ -495,6 +521,52 @@ export async function testConnectionConfig(
495
521
  break;
496
522
  }
497
523
 
524
+ case "mysql": {
525
+ if (!connectionConfig.mysqlConnection) {
526
+ throw new Error("MySQL connection configuration is missing.");
527
+ }
528
+
529
+ if (
530
+ !connectionConfig.mysqlConnection.host ||
531
+ !connectionConfig.mysqlConnection.port ||
532
+ !connectionConfig.mysqlConnection.user ||
533
+ !connectionConfig.mysqlConnection.password ||
534
+ !connectionConfig.mysqlConnection.database
535
+ ) {
536
+ throw new Error(
537
+ "MySQL connection requires: host, port, user, password, and database",
538
+ );
539
+ }
540
+
541
+ const mysqlConfig = connectionConfig.mysqlConnection;
542
+ const mysqlConnectionOptions = {
543
+ host: mysqlConfig.host,
544
+ port: mysqlConfig.port,
545
+ user: mysqlConfig.user,
546
+ password: mysqlConfig.password,
547
+ database: mysqlConfig.database,
548
+ };
549
+ const mysqlConnection = new MySQLConnection(
550
+ "testConnection",
551
+ mysqlConnectionOptions,
552
+ );
553
+ try {
554
+ await mysqlConnection.test();
555
+ testResult = { status: "ok" };
556
+ } catch (error) {
557
+ if (error instanceof AxiosError) {
558
+ logAxiosError(error);
559
+ } else {
560
+ logger.error(error);
561
+ }
562
+ testResult = {
563
+ status: "failed",
564
+ errorMessage: (error as Error).message,
565
+ };
566
+ }
567
+ break;
568
+ }
569
+
498
570
  default:
499
571
  throw new BadRequestError(
500
572
  `Unsupported connection type: ${connectionConfig.type}`,
@@ -13,8 +13,11 @@ import {
13
13
  MysqlConnection,
14
14
  PostgresConnection,
15
15
  SnowflakeConnection,
16
+ TrinoConnection,
16
17
  } from "./model";
17
18
 
19
+ import { BasicAuth, Trino } from "trino-client";
20
+
18
21
  type ApiSchemaName = components["schemas"]["SchemaName"];
19
22
 
20
23
  async function getPostgresConnection(
@@ -75,6 +78,7 @@ async function getSnowflakeConnection(
75
78
  password: apiSnowflakeConnection.password,
76
79
  database: apiSnowflakeConnection.database,
77
80
  warehouse: apiSnowflakeConnection.warehouse || undefined,
81
+ role: apiSnowflakeConnection.role || undefined,
78
82
  });
79
83
  connection.connect((err, conn) => {
80
84
  if (err) {
@@ -86,6 +90,24 @@ async function getSnowflakeConnection(
86
90
  });
87
91
  }
88
92
 
93
+ function getTrinoClient(trinoConn: TrinoConnection) {
94
+ let auth: BasicAuth;
95
+ if (trinoConn.server?.startsWith("https://")) {
96
+ // HTTPS allows password authentication
97
+ auth = new BasicAuth(trinoConn?.user || "", trinoConn?.password || "");
98
+ } else {
99
+ // HTTP only allows username, no password for security
100
+ auth = new BasicAuth(trinoConn?.user || "");
101
+ }
102
+
103
+ return Trino.create({
104
+ server: trinoConn.server,
105
+ catalog: trinoConn.catalog,
106
+ schema: trinoConn.schema,
107
+ auth,
108
+ });
109
+ }
110
+
89
111
  export async function getSchemasForConnection(
90
112
  connection: ApiConnection,
91
113
  ): Promise<ApiSchemaName[]> {
@@ -167,6 +189,27 @@ export async function getSchemasForConnection(
167
189
  }
168
190
  });
169
191
  }
192
+ } else if (connection.type === "trino") {
193
+ if (!connection.trinoConnection) {
194
+ throw new Error("Trino connection is required");
195
+ }
196
+ const client = getTrinoClient(connection.trinoConnection);
197
+ const result = await client.query(
198
+ `SHOW SCHEMAS FROM ${connection.trinoConnection.catalog}`,
199
+ );
200
+ const rows: string[] = [];
201
+ let next = await result.next();
202
+ while (!next.done) {
203
+ if (next.value.data) {
204
+ rows.push(...next.value.data.map((r: string[]) => r[0]));
205
+ }
206
+ next = await result.next();
207
+ }
208
+ return rows.map((r) => ({
209
+ name: r,
210
+ isHidden: false,
211
+ isDefault: r === connection.trinoConnection?.schema,
212
+ }));
170
213
  } else {
171
214
  throw new Error(`Unsupported connection type: ${connection.type}`);
172
215
  }
@@ -243,6 +286,24 @@ export async function getTablesForSchema(
243
286
  }
244
287
  });
245
288
  }
289
+ } else if (connection.type === "trino") {
290
+ if (!connection.trinoConnection) {
291
+ throw new Error("Trino connection is required");
292
+ }
293
+ const client = getTrinoClient(connection.trinoConnection);
294
+ const result = await client.query(
295
+ `SHOW TABLES FROM ${connection.trinoConnection.catalog}.${schemaName}`,
296
+ );
297
+
298
+ const rows: string[] = [];
299
+ let next = await result.next();
300
+ while (!next.done) {
301
+ if (next.value.data) {
302
+ rows.push(...next.value.data.map((r: string[]) => r[0]));
303
+ }
304
+ next = await result.next();
305
+ }
306
+ return rows;
246
307
  } else {
247
308
  // TODO(jjs) - implement
248
309
  return [];
@@ -50,6 +50,7 @@ export type ApiConnection = components["schemas"]["Connection"];
50
50
  export type SnowflakeConnection = components["schemas"]["SnowflakeConnection"];
51
51
  export type PostgresConnection = components["schemas"]["PostgresConnection"];
52
52
  export type BigqueryConnection = components["schemas"]["BigqueryConnection"];
53
+ export type TrinoConnection = components["schemas"]["TrinoConnection"];
53
54
 
54
55
  const MALLOY_VERSION = malloyPackage.version;
55
56
 
@@ -1 +0,0 @@
1
- import{r as o}from"./index-BS_9W4Tt.js";const r=o.createContext(void 0);export{r as F};