@malloy-publisher/server 0.0.90 → 0.0.91

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 (286) hide show
  1. package/build.ts +9 -0
  2. package/dist/app/api-doc.yaml +3 -0
  3. package/dist/app/assets/{index-2BGzlUQa.js → index-CwH8v8Pf.js} +16 -16
  4. package/dist/app/assets/{index-D1X7Y0Ve.js → index-DJPvt7yu.js} +1 -1
  5. package/dist/app/assets/{index.es126-CKC26ttZ.js → index.es139-nr8meTUp.js} +1 -1
  6. package/dist/app/assets/{index.es127-CBKpWhIe.js → index.es140-f9ybcYUt.js} +1 -1
  7. package/dist/app/assets/{index.es130-5z_n6lm6.js → index.es143-BrmH4hWW.js} +1 -1
  8. package/dist/app/assets/{index.es135-aJw1Xr-9.js → index.es148-KJPSzIi5.js} +1 -1
  9. package/dist/app/assets/{index.es143-CAt8G2AV.js → index.es156-AslbYSUk.js} +1 -1
  10. package/dist/app/assets/{index.es144-CaWYrbVR.js → index.es157-CGx9vJCM.js} +1 -1
  11. package/dist/app/assets/{index.es147-B_4j3qbz.js → index.es160-B4514fRp.js} +1 -1
  12. package/dist/app/assets/{index.es151-Byg3j7QH.js → index.es164-BdfNgGb4.js} +1 -1
  13. package/dist/app/assets/{index.es154-D8PMiD5x.js → index.es167-Cytvwvs5.js} +1 -1
  14. package/dist/app/assets/{index.es157-qx6EMeW2.js → index.es170-BF0Mj3Dj.js} +1 -1
  15. package/dist/app/assets/{index.es158-CJWvYXRx.js → index.es171-bDBK09mk.js} +1 -1
  16. package/dist/app/assets/{index.es172-BamsV9CN.js → index.es185-BECCJjWR.js} +1 -1
  17. package/dist/app/assets/{index.es173-CXyGU58j.js → index.es186-DORBN8KQ.js} +1 -1
  18. package/dist/app/assets/{index.es174-C2o3B3o8.js → index.es187-C1QXB69O.js} +1 -1
  19. package/dist/app/assets/{index.es176-BB-1P5bb.js → index.es189-BxZOchW8.js} +1 -1
  20. package/dist/app/assets/{index.es181-2PlTGcYG.js → index.es194-AsRZMTWT.js} +1 -1
  21. package/dist/app/assets/{index.es183-DgoVwe-N.js → index.es196-x3jX2idz.js} +1 -1
  22. package/dist/app/assets/{index.es184-Cmc38osU.js → index.es197-Dtz8tRxv.js} +1 -1
  23. package/dist/app/assets/{index.es189-DuMu0KfI.js → index.es202-BMtZpqF-.js} +1 -1
  24. package/dist/app/assets/{index.es190-C117wYiK.js → index.es203-gWIQWffw.js} +1 -1
  25. package/dist/app/assets/{index.es192-Bm2ZoxNH.js → index.es205-D7Lk4BX7.js} +1 -1
  26. package/dist/app/assets/{index.es193-BBtnt1bZ.js → index.es206-BiJF4jj3.js} +1 -1
  27. package/dist/app/assets/{index.es194-CB2Nn3wg.js → index.es207-B-UJ_bzC.js} +1 -1
  28. package/dist/app/assets/{index.es197-D91osx4R.js → index.es210-Cuht9bXE.js} +1 -1
  29. package/dist/app/assets/{index.es199-BtpESJSS.js → index.es212-OHX8E5rN.js} +1 -1
  30. package/dist/app/assets/{index.es200-BeG9RRw_.js → index.es213-ZuPzTQ_g.js} +1 -1
  31. package/dist/app/assets/{index.es201-k2nuCC3B.js → index.es214-D803Db5p.js} +1 -1
  32. package/dist/app/assets/{index.es207-C2uQegug.js → index.es220-7QoCPP2j.js} +1 -1
  33. package/dist/app/assets/{index.es208-BTucFWqR.js → index.es221-XNqXVFFm.js} +1 -1
  34. package/dist/app/assets/{index.es209-4dK47W8o.js → index.es222-Cdb4luVg.js} +1 -1
  35. package/dist/app/assets/{index.es210-DO6X3-kz.js → index.es223-CORMGf1M.js} +1 -1
  36. package/dist/app/assets/{index.es212-CFG-vrrr.js → index.es225-Cq-kOlxp.js} +1 -1
  37. package/dist/app/assets/{index.es216-TWO3Mhor.js → index.es229-E5IGXk-q.js} +1 -1
  38. package/dist/app/assets/{index.es217-0tHVUThG.js → index.es230-Fc3aBcCM.js} +1 -1
  39. package/dist/app/assets/{index.es225-DHGKCs7a.js → index.es238-PSs3scPq.js} +1 -1
  40. package/dist/app/assets/{index.es228-Bz0ZvI5L.js → index.es241-CL-_GK9e.js} +1 -1
  41. package/dist/app/assets/{index.es231-D1HdFvsl.js → index.es244-DKPCX9xC.js} +1 -1
  42. package/dist/app/assets/{index.es234-1j9jt1V9.js → index.es247-BSAYNLHy.js} +1 -1
  43. package/dist/app/assets/{index.es238-DBm7c9HR.js → index.es251--0-h5QiV.js} +1 -1
  44. package/dist/app/assets/{index.es240-DCqDESzD.js → index.es253-BEn9NcoZ.js} +1 -1
  45. package/dist/app/assets/{index.es248-BEYN2dFo.js → index.es261-MjZ_rv4c.js} +1 -1
  46. package/dist/app/assets/{index.es249-DKdYiZA_.js → index.es262-HBJu6fHJ.js} +1 -1
  47. package/dist/app/assets/{index.es256-CgBAGaDx.js → index.es269-DLa2GgqN.js} +1 -1
  48. package/dist/app/assets/{index.es257-DMI3dJGJ.js → index.es270-CalwIzIq.js} +1 -1
  49. package/dist/app/assets/{index.es267-B5ei8o6D.js → index.es280-BmnnGhn2.js} +1 -1
  50. package/dist/app/assets/{index.es271-DDBsSlrj.js → index.es284-C2YEYS8h.js} +1 -1
  51. package/dist/app/assets/{index.es277-aI_iYBJv.js → index.es290-BHjEYaA_.js} +1 -1
  52. package/dist/app/assets/{index.es282-DZQyCurk.js → index.es295-CLE8Egbz.js} +1 -1
  53. package/dist/app/assets/{index.es283-DRQxI154.js → index.es296-Bsq8yJGD.js} +1 -1
  54. package/dist/app/assets/{index.es285-DrT3oe3D.js → index.es298-CTsw_aX6.js} +1 -1
  55. package/dist/app/assets/{index.es289-CKYiktdr.js → index.es302-BgJs_s58.js} +1 -1
  56. package/dist/app/assets/{index.es291-BRH8qn2R.js → index.es304-Y67tbm3o.js} +1 -1
  57. package/dist/app/assets/{index.es293-B_x7Y2b5.js → index.es306-Dsx0880i.js} +1 -1
  58. package/dist/app/assets/{index.es296-CMhur-CK.js → index.es309-COa7lSGF.js} +1 -1
  59. package/dist/app/assets/{index.es297-BY9kHC-p.js → index.es310-C11TmHug.js} +1 -1
  60. package/dist/app/assets/{index.es301-CmwjGLCv.js → index.es314-BExIez_V.js} +1 -1
  61. package/dist/app/assets/{index.es303-BOa5F89I.js → index.es316-DFqBRZWD.js} +1 -1
  62. package/dist/app/assets/{index.es310-BF6kc0UE.js → index.es323-BClNDw1H.js} +1 -1
  63. package/dist/app/assets/{index.es312-CoCT5fTV.js → index.es325-f5hVUVjI.js} +1 -1
  64. package/dist/app/assets/{index.es314-CMYE9lCS.js → index.es327-DsTyRd6E.js} +1 -1
  65. package/dist/app/assets/{index.es318-C2_Stmju.js → index.es331-BLhdwz0E.js} +1 -1
  66. package/dist/app/assets/{index.es328-DxiHjjdV.js → index.es341-oDRBDM86.js} +1 -1
  67. package/dist/app/assets/{index.es329-D4H4qJV5.js → index.es342-DialnTnH.js} +1 -1
  68. package/dist/app/assets/{index.es336-DMBcHb9l.js → index.es349-DrBCM5L2.js} +1 -1
  69. package/dist/app/assets/{index.es337-BOcmfyvS.js → index.es350-B1R-_5vW.js} +1 -1
  70. package/dist/app/assets/{index.es49-D9XPPIF9.js → index.es50-Dwe0S21o.js} +1 -1
  71. package/dist/app/assets/{mui-YektUyEU.js → mui-Bcj8oDBR.js} +1 -1
  72. package/dist/app/index.html +2 -2
  73. package/dist/server.js +15 -8
  74. package/package.json +1 -1
  75. package/src/server.ts +6 -2
  76. package/src/service/db_utils.ts +16 -9
  77. package/src/service/project.ts +1 -1
  78. package/src/service/project_store.ts +6 -3
  79. /package/dist/app/assets/{index.es115-CG6Dc4jp.js → index.es128-CG6Dc4jp.js} +0 -0
  80. /package/dist/app/assets/{index.es123-DsBKuouk.js → index.es136-DsBKuouk.js} +0 -0
  81. /package/dist/app/assets/{index.es124-D_z4Izcz.js → index.es137-D_z4Izcz.js} +0 -0
  82. /package/dist/app/assets/{index.es125-727ZlQH0.js → index.es138-727ZlQH0.js} +0 -0
  83. /package/dist/app/assets/{index.es128-Dn00JSTd.js → index.es141-Dn00JSTd.js} +0 -0
  84. /package/dist/app/assets/{index.es129-COJ4H7py.js → index.es142-COJ4H7py.js} +0 -0
  85. /package/dist/app/assets/{index.es131-Bu5BbsvL.js → index.es144-Bu5BbsvL.js} +0 -0
  86. /package/dist/app/assets/{index.es132-7O62HKoU.js → index.es145-7O62HKoU.js} +0 -0
  87. /package/dist/app/assets/{index.es133-BPT9niGB.js → index.es146-BPT9niGB.js} +0 -0
  88. /package/dist/app/assets/{index.es134-Dhn9LcZ4.js → index.es147-Dhn9LcZ4.js} +0 -0
  89. /package/dist/app/assets/{index.es136-eg146-Ew.js → index.es149-eg146-Ew.js} +0 -0
  90. /package/dist/app/assets/{index.es137-Du268qiB.js → index.es150-Du268qiB.js} +0 -0
  91. /package/dist/app/assets/{index.es138-fje9CFhw.js → index.es151-fje9CFhw.js} +0 -0
  92. /package/dist/app/assets/{index.es139-BwXTMy5W.js → index.es152-BwXTMy5W.js} +0 -0
  93. /package/dist/app/assets/{index.es140-3xVqZejG.js → index.es153-3xVqZejG.js} +0 -0
  94. /package/dist/app/assets/{index.es141-xW4inM5L.js → index.es154-xW4inM5L.js} +0 -0
  95. /package/dist/app/assets/{index.es142-DHo0CJ0O.js → index.es155-DHo0CJ0O.js} +0 -0
  96. /package/dist/app/assets/{index.es145-C3t2pwGQ.js → index.es158-C3t2pwGQ.js} +0 -0
  97. /package/dist/app/assets/{index.es146-DNquZEk8.js → index.es159-DNquZEk8.js} +0 -0
  98. /package/dist/app/assets/{index.es148-BHOwM8T6.js → index.es161-BHOwM8T6.js} +0 -0
  99. /package/dist/app/assets/{index.es149-DxSadP1t.js → index.es162-DxSadP1t.js} +0 -0
  100. /package/dist/app/assets/{index.es150-DbXoA79R.js → index.es163-DbXoA79R.js} +0 -0
  101. /package/dist/app/assets/{index.es152-Bp6g37R7.js → index.es165-Bp6g37R7.js} +0 -0
  102. /package/dist/app/assets/{index.es153-sacFqUAJ.js → index.es166-sacFqUAJ.js} +0 -0
  103. /package/dist/app/assets/{index.es155-C7gG9l05.js → index.es168-C7gG9l05.js} +0 -0
  104. /package/dist/app/assets/{index.es156-Dsg_Bt_b.js → index.es169-Dsg_Bt_b.js} +0 -0
  105. /package/dist/app/assets/{index.es159-D9R-vmeu.js → index.es172-D9R-vmeu.js} +0 -0
  106. /package/dist/app/assets/{index.es160-BPhBrDlE.js → index.es173-BPhBrDlE.js} +0 -0
  107. /package/dist/app/assets/{index.es161-C-TU5hQ_.js → index.es174-C-TU5hQ_.js} +0 -0
  108. /package/dist/app/assets/{index.es162-DtFQj3wx.js → index.es175-DtFQj3wx.js} +0 -0
  109. /package/dist/app/assets/{index.es163-m2LEI-9-.js → index.es176-m2LEI-9-.js} +0 -0
  110. /package/dist/app/assets/{index.es164-BoXegm-a.js → index.es177-BoXegm-a.js} +0 -0
  111. /package/dist/app/assets/{index.es165-B9wLZaAG.js → index.es178-B9wLZaAG.js} +0 -0
  112. /package/dist/app/assets/{index.es166-ClGRhx96.js → index.es179-ClGRhx96.js} +0 -0
  113. /package/dist/app/assets/{index.es167-DEIpsLCJ.js → index.es180-DEIpsLCJ.js} +0 -0
  114. /package/dist/app/assets/{index.es168-BgYniUM_.js → index.es181-BgYniUM_.js} +0 -0
  115. /package/dist/app/assets/{index.es169-COcR7UxN.js → index.es182-COcR7UxN.js} +0 -0
  116. /package/dist/app/assets/{index.es170-BjQB5zDj.js → index.es183-BjQB5zDj.js} +0 -0
  117. /package/dist/app/assets/{index.es171-C-nORZOA.js → index.es184-C-nORZOA.js} +0 -0
  118. /package/dist/app/assets/{index.es175-BX77sIaO.js → index.es188-BX77sIaO.js} +0 -0
  119. /package/dist/app/assets/{index.es177-B-DoSBHF.js → index.es190-B-DoSBHF.js} +0 -0
  120. /package/dist/app/assets/{index.es178-bCA53EVm.js → index.es191-bCA53EVm.js} +0 -0
  121. /package/dist/app/assets/{index.es179-w-ucz2PV.js → index.es192-w-ucz2PV.js} +0 -0
  122. /package/dist/app/assets/{index.es180-Dayu4EKP.js → index.es193-Dayu4EKP.js} +0 -0
  123. /package/dist/app/assets/{index.es182-DKXYxT9g.js → index.es195-DKXYxT9g.js} +0 -0
  124. /package/dist/app/assets/{index.es185-DfxzS6Rs.js → index.es198-DfxzS6Rs.js} +0 -0
  125. /package/dist/app/assets/{index.es186-SKMF96pI.js → index.es199-SKMF96pI.js} +0 -0
  126. /package/dist/app/assets/{index.es187-ajMbGru0.js → index.es200-ajMbGru0.js} +0 -0
  127. /package/dist/app/assets/{index.es188--30QC5Em.js → index.es201--30QC5Em.js} +0 -0
  128. /package/dist/app/assets/{index.es191-B430Bg39.js → index.es204-B430Bg39.js} +0 -0
  129. /package/dist/app/assets/{index.es195-CM8KxXT1.js → index.es208-CM8KxXT1.js} +0 -0
  130. /package/dist/app/assets/{index.es196-B1SYOhNW.js → index.es209-B1SYOhNW.js} +0 -0
  131. /package/dist/app/assets/{index.es198-DkBy-JyN.js → index.es211-DkBy-JyN.js} +0 -0
  132. /package/dist/app/assets/{index.es202-BILxekzW.js → index.es215-BILxekzW.js} +0 -0
  133. /package/dist/app/assets/{index.es203-C5wWYbrZ.js → index.es216-C5wWYbrZ.js} +0 -0
  134. /package/dist/app/assets/{index.es204-HzYwdGDm.js → index.es217-HzYwdGDm.js} +0 -0
  135. /package/dist/app/assets/{index.es205-T-Tgc4AT.js → index.es218-T-Tgc4AT.js} +0 -0
  136. /package/dist/app/assets/{index.es206-ifBTmRxC.js → index.es219-ifBTmRxC.js} +0 -0
  137. /package/dist/app/assets/{index.es211-BMj5Y0dO.js → index.es224-BMj5Y0dO.js} +0 -0
  138. /package/dist/app/assets/{index.es213-BjABl1g7.js → index.es226-BjABl1g7.js} +0 -0
  139. /package/dist/app/assets/{index.es214-xI-RfyKK.js → index.es227-xI-RfyKK.js} +0 -0
  140. /package/dist/app/assets/{index.es215-ySlJ1b_l.js → index.es228-ySlJ1b_l.js} +0 -0
  141. /package/dist/app/assets/{index.es218-BQoSv7ci.js → index.es231-BQoSv7ci.js} +0 -0
  142. /package/dist/app/assets/{index.es219-w8dY5SsB.js → index.es232-w8dY5SsB.js} +0 -0
  143. /package/dist/app/assets/{index.es220-TU54ms6u.js → index.es233-TU54ms6u.js} +0 -0
  144. /package/dist/app/assets/{index.es221-DREVFZK8.js → index.es234-DREVFZK8.js} +0 -0
  145. /package/dist/app/assets/{index.es222-BfivnA6A.js → index.es235-BfivnA6A.js} +0 -0
  146. /package/dist/app/assets/{index.es223-P4WzXJd0.js → index.es236-P4WzXJd0.js} +0 -0
  147. /package/dist/app/assets/{index.es224-BAng5TT0.js → index.es237-BAng5TT0.js} +0 -0
  148. /package/dist/app/assets/{index.es226-B5lbUyaz.js → index.es239-B5lbUyaz.js} +0 -0
  149. /package/dist/app/assets/{index.es227-mebxcVVE.js → index.es240-mebxcVVE.js} +0 -0
  150. /package/dist/app/assets/{index.es229-XBlWyCtg.js → index.es242-XBlWyCtg.js} +0 -0
  151. /package/dist/app/assets/{index.es230-BfCpw3nA.js → index.es243-BfCpw3nA.js} +0 -0
  152. /package/dist/app/assets/{index.es232-Cc5clBb7.js → index.es245-Cc5clBb7.js} +0 -0
  153. /package/dist/app/assets/{index.es233-IuBKFhSY.js → index.es246-IuBKFhSY.js} +0 -0
  154. /package/dist/app/assets/{index.es235-Du5NY7AG.js → index.es248-Du5NY7AG.js} +0 -0
  155. /package/dist/app/assets/{index.es236-Bvotw-X0.js → index.es249-Bvotw-X0.js} +0 -0
  156. /package/dist/app/assets/{index.es237-UIAJJxZW.js → index.es250-UIAJJxZW.js} +0 -0
  157. /package/dist/app/assets/{index.es239-D9-PGadD.js → index.es252-D9-PGadD.js} +0 -0
  158. /package/dist/app/assets/{index.es241-sdHcTMYB.js → index.es254-sdHcTMYB.js} +0 -0
  159. /package/dist/app/assets/{index.es242-Ci6OQyBP.js → index.es255-Ci6OQyBP.js} +0 -0
  160. /package/dist/app/assets/{index.es243-BC5c_5Pe.js → index.es256-BC5c_5Pe.js} +0 -0
  161. /package/dist/app/assets/{index.es244-Tz6hzZYG.js → index.es257-Tz6hzZYG.js} +0 -0
  162. /package/dist/app/assets/{index.es245-DB_GagMm.js → index.es258-DB_GagMm.js} +0 -0
  163. /package/dist/app/assets/{index.es246-DLbgOhZU.js → index.es259-DLbgOhZU.js} +0 -0
  164. /package/dist/app/assets/{index.es247-B0XVJmRM.js → index.es260-B0XVJmRM.js} +0 -0
  165. /package/dist/app/assets/{index.es250-shcSOmrb.js → index.es263-shcSOmrb.js} +0 -0
  166. /package/dist/app/assets/{index.es251-D4Tzg5kh.js → index.es264-D4Tzg5kh.js} +0 -0
  167. /package/dist/app/assets/{index.es252-Deuh7S70.js → index.es265-Deuh7S70.js} +0 -0
  168. /package/dist/app/assets/{index.es253-BUEGK8hf.js → index.es266-BUEGK8hf.js} +0 -0
  169. /package/dist/app/assets/{index.es254-BNioltXt.js → index.es267-BNioltXt.js} +0 -0
  170. /package/dist/app/assets/{index.es255-JqZropPD.js → index.es268-JqZropPD.js} +0 -0
  171. /package/dist/app/assets/{index.es258-LKU2TuZ1.js → index.es271-LKU2TuZ1.js} +0 -0
  172. /package/dist/app/assets/{index.es259-BFLt1xDp.js → index.es272-BFLt1xDp.js} +0 -0
  173. /package/dist/app/assets/{index.es260-DKykz6zU.js → index.es273-DKykz6zU.js} +0 -0
  174. /package/dist/app/assets/{index.es261-B3ZDOciz.js → index.es274-B3ZDOciz.js} +0 -0
  175. /package/dist/app/assets/{index.es262-CSHBycmS.js → index.es275-CSHBycmS.js} +0 -0
  176. /package/dist/app/assets/{index.es263-BIEUsx6d.js → index.es276-BIEUsx6d.js} +0 -0
  177. /package/dist/app/assets/{index.es264-B48N-Iqd.js → index.es277-B48N-Iqd.js} +0 -0
  178. /package/dist/app/assets/{index.es265-BY-TUvya.js → index.es278-BY-TUvya.js} +0 -0
  179. /package/dist/app/assets/{index.es266-zocC4JxJ.js → index.es279-zocC4JxJ.js} +0 -0
  180. /package/dist/app/assets/{index.es268-Cza_XSSt.js → index.es281-Cza_XSSt.js} +0 -0
  181. /package/dist/app/assets/{index.es269-Bg-kzb6g.js → index.es282-Bg-kzb6g.js} +0 -0
  182. /package/dist/app/assets/{index.es270-DhUJRlN_.js → index.es283-DhUJRlN_.js} +0 -0
  183. /package/dist/app/assets/{index.es272-C8lEn-DE.js → index.es285-C8lEn-DE.js} +0 -0
  184. /package/dist/app/assets/{index.es273-DhMKtDLN.js → index.es286-DhMKtDLN.js} +0 -0
  185. /package/dist/app/assets/{index.es274-CwjWoCRV.js → index.es287-CwjWoCRV.js} +0 -0
  186. /package/dist/app/assets/{index.es275-CzouJOBO.js → index.es288-CzouJOBO.js} +0 -0
  187. /package/dist/app/assets/{index.es276-B1bQXN8T.js → index.es289-B1bQXN8T.js} +0 -0
  188. /package/dist/app/assets/{index.es278-5LuOXUq_.js → index.es291-5LuOXUq_.js} +0 -0
  189. /package/dist/app/assets/{index.es279-DWJ3fJO_.js → index.es292-DWJ3fJO_.js} +0 -0
  190. /package/dist/app/assets/{index.es280-DJlmqQ1C.js → index.es293-DJlmqQ1C.js} +0 -0
  191. /package/dist/app/assets/{index.es281-QhoSD0DR.js → index.es294-QhoSD0DR.js} +0 -0
  192. /package/dist/app/assets/{index.es284-Be6lgOlo.js → index.es297-Be6lgOlo.js} +0 -0
  193. /package/dist/app/assets/{index.es286-BJ4Li9vH.js → index.es299-BJ4Li9vH.js} +0 -0
  194. /package/dist/app/assets/{index.es287-DQVVAn-B.js → index.es300-DQVVAn-B.js} +0 -0
  195. /package/dist/app/assets/{index.es288-BJGe-b2p.js → index.es301-BJGe-b2p.js} +0 -0
  196. /package/dist/app/assets/{index.es290-BLhTXw86.js → index.es303-BLhTXw86.js} +0 -0
  197. /package/dist/app/assets/{index.es292-atvbtKCR.js → index.es305-atvbtKCR.js} +0 -0
  198. /package/dist/app/assets/{index.es294-DkLiglaE.js → index.es307-DkLiglaE.js} +0 -0
  199. /package/dist/app/assets/{index.es295-C1w2a3ep.js → index.es308-C1w2a3ep.js} +0 -0
  200. /package/dist/app/assets/{index.es298-Cf8iN4DR.js → index.es311-Cf8iN4DR.js} +0 -0
  201. /package/dist/app/assets/{index.es299-COK4E0Yg.js → index.es312-COK4E0Yg.js} +0 -0
  202. /package/dist/app/assets/{index.es300-BknIz3MU.js → index.es313-BknIz3MU.js} +0 -0
  203. /package/dist/app/assets/{index.es302-BeQkCIfX.js → index.es315-BeQkCIfX.js} +0 -0
  204. /package/dist/app/assets/{index.es304-BSxZ-RaX.js → index.es317-BSxZ-RaX.js} +0 -0
  205. /package/dist/app/assets/{index.es305-C7L56vO4.js → index.es318-C7L56vO4.js} +0 -0
  206. /package/dist/app/assets/{index.es306-CUnW07Te.js → index.es319-CUnW07Te.js} +0 -0
  207. /package/dist/app/assets/{index.es307-C1XDQQGZ.js → index.es320-C1XDQQGZ.js} +0 -0
  208. /package/dist/app/assets/{index.es308-CQjiPCtT.js → index.es321-CQjiPCtT.js} +0 -0
  209. /package/dist/app/assets/{index.es309-DQ1-QYvQ.js → index.es322-DQ1-QYvQ.js} +0 -0
  210. /package/dist/app/assets/{index.es311-BbSNqyBO.js → index.es324-BbSNqyBO.js} +0 -0
  211. /package/dist/app/assets/{index.es313-CB2ApiWb.js → index.es326-CB2ApiWb.js} +0 -0
  212. /package/dist/app/assets/{index.es315-B_m7g4N7.js → index.es328-B_m7g4N7.js} +0 -0
  213. /package/dist/app/assets/{index.es316-B6W0miNI.js → index.es329-B6W0miNI.js} +0 -0
  214. /package/dist/app/assets/{index.es317-BMR_PYu6.js → index.es330-BMR_PYu6.js} +0 -0
  215. /package/dist/app/assets/{index.es319-Dj6nwHGl.js → index.es332-Dj6nwHGl.js} +0 -0
  216. /package/dist/app/assets/{index.es320-BpWG_bgh.js → index.es333-BpWG_bgh.js} +0 -0
  217. /package/dist/app/assets/{index.es321-BVUVsWT6.js → index.es334-BVUVsWT6.js} +0 -0
  218. /package/dist/app/assets/{index.es322-CAQ2eGtk.js → index.es335-CAQ2eGtk.js} +0 -0
  219. /package/dist/app/assets/{index.es323-BFOHcciG.js → index.es336-BFOHcciG.js} +0 -0
  220. /package/dist/app/assets/{index.es324-CdO5JTpU.js → index.es337-CdO5JTpU.js} +0 -0
  221. /package/dist/app/assets/{index.es325-CJaU5se_.js → index.es338-CJaU5se_.js} +0 -0
  222. /package/dist/app/assets/{index.es326-DYoNaHQp.js → index.es339-DYoNaHQp.js} +0 -0
  223. /package/dist/app/assets/{index.es327-m4uW47V2.js → index.es340-m4uW47V2.js} +0 -0
  224. /package/dist/app/assets/{index.es330-nyqBNV6O.js → index.es343-nyqBNV6O.js} +0 -0
  225. /package/dist/app/assets/{index.es331-C6j12Q_x.js → index.es344-C6j12Q_x.js} +0 -0
  226. /package/dist/app/assets/{index.es332-7A4Fjokl.js → index.es345-7A4Fjokl.js} +0 -0
  227. /package/dist/app/assets/{index.es333-CB0Krxn9.js → index.es346-CB0Krxn9.js} +0 -0
  228. /package/dist/app/assets/{index.es334-DCE3LsBG.js → index.es347-DCE3LsBG.js} +0 -0
  229. /package/dist/app/assets/{index.es335-C3FkfJm5.js → index.es348-C3FkfJm5.js} +0 -0
  230. /package/dist/app/assets/{index.es338-CVw76BM1.js → index.es351-CVw76BM1.js} +0 -0
  231. /package/dist/app/assets/{index.es339-HnGAYVZD.js → index.es352-HnGAYVZD.js} +0 -0
  232. /package/dist/app/assets/{index.es340-BVz_zdnA.js → index.es353-BVz_zdnA.js} +0 -0
  233. /package/dist/app/assets/{index.es341-C3khCPGq.js → index.es354-C3khCPGq.js} +0 -0
  234. /package/dist/app/assets/{index.es342-D-2ljcwZ.js → index.es355-D-2ljcwZ.js} +0 -0
  235. /package/dist/app/assets/{index.es343-Cv9koXgw.js → index.es356-Cv9koXgw.js} +0 -0
  236. /package/dist/app/assets/{index.es344-CD_QflpE.js → index.es357-CD_QflpE.js} +0 -0
  237. /package/dist/app/assets/{index.es345-DRW-0cLl.js → index.es358-DRW-0cLl.js} +0 -0
  238. /package/dist/app/assets/{index.es346-C-_shW-Y.js → index.es359-C-_shW-Y.js} +0 -0
  239. /package/dist/app/assets/{index.es347-LGGdnPYs.js → index.es360-LGGdnPYs.js} +0 -0
  240. /package/dist/app/assets/{index.es348-C3mMm8J8.js → index.es361-C3mMm8J8.js} +0 -0
  241. /package/dist/app/assets/{index.es349-BzJJZx-M.js → index.es362-BzJJZx-M.js} +0 -0
  242. /package/dist/app/assets/{index.es350-BXkSAIEj.js → index.es363-BXkSAIEj.js} +0 -0
  243. /package/dist/app/assets/{index.es351-BgDCqdQA.js → index.es364-BgDCqdQA.js} +0 -0
  244. /package/dist/app/assets/{index.es352-C8M2exoo.js → index.es365-C8M2exoo.js} +0 -0
  245. /package/dist/app/assets/{index.es353-DHJKELXO.js → index.es366-DHJKELXO.js} +0 -0
  246. /package/dist/app/assets/{index.es354-Cuk6v7N8.js → index.es367-Cuk6v7N8.js} +0 -0
  247. /package/dist/app/assets/{index.es355-DH5Ifo-i.js → index.es368-DH5Ifo-i.js} +0 -0
  248. /package/dist/app/assets/{index.es356-E3gJ1_iC.js → index.es369-E3gJ1_iC.js} +0 -0
  249. /package/dist/app/assets/{index.es357-DAi9KRSo.js → index.es370-DAi9KRSo.js} +0 -0
  250. /package/dist/app/assets/{index.es358-D7oLnXFd.js → index.es371-D7oLnXFd.js} +0 -0
  251. /package/dist/app/assets/{index.es359-BfjtVDDH.js → index.es372-BfjtVDDH.js} +0 -0
  252. /package/dist/app/assets/{index.es360-DnULxvSX.js → index.es373-DnULxvSX.js} +0 -0
  253. /package/dist/app/assets/{index.es361-CkXjmgJE.js → index.es374-CkXjmgJE.js} +0 -0
  254. /package/dist/app/assets/{index.es362-CfQXZHmo.js → index.es375-CfQXZHmo.js} +0 -0
  255. /package/dist/app/assets/{index.es363-DWedfzmr.js → index.es376-DWedfzmr.js} +0 -0
  256. /package/dist/app/assets/{index.es364-DUszq2jm.js → index.es377-DUszq2jm.js} +0 -0
  257. /package/dist/app/assets/{index.es365-B7mTdjB0.js → index.es378-B7mTdjB0.js} +0 -0
  258. /package/dist/app/assets/{index.es366-D5KoaKCx.js → index.es379-D5KoaKCx.js} +0 -0
  259. /package/dist/app/assets/{index.es367-BfHTSMKl.js → index.es380-BfHTSMKl.js} +0 -0
  260. /package/dist/app/assets/{index.es368-B0m2ddpp.js → index.es381-B0m2ddpp.js} +0 -0
  261. /package/dist/app/assets/{index.es369-CyktbL80.js → index.es382-CyktbL80.js} +0 -0
  262. /package/dist/app/assets/{index.es370-Csfq5Kiy.js → index.es383-Csfq5Kiy.js} +0 -0
  263. /package/dist/app/assets/{index.es371-CafNBF8u.js → index.es384-CafNBF8u.js} +0 -0
  264. /package/dist/app/assets/{index.es372-CTRr51gU.js → index.es385-CTRr51gU.js} +0 -0
  265. /package/dist/app/assets/{index.es373-D4h5O-jR.js → index.es386-D4h5O-jR.js} +0 -0
  266. /package/dist/app/assets/{index.es374-C39BiMTA.js → index.es387-C39BiMTA.js} +0 -0
  267. /package/dist/app/assets/{index.es375-Ddv68eIx.js → index.es388-Ddv68eIx.js} +0 -0
  268. /package/dist/app/assets/{index.es376-GBQ2dnAY.js → index.es389-GBQ2dnAY.js} +0 -0
  269. /package/dist/app/assets/{index.es377-PoHY5YXO.js → index.es390-PoHY5YXO.js} +0 -0
  270. /package/dist/app/assets/{index.es378-3e1v2bzS.js → index.es391-3e1v2bzS.js} +0 -0
  271. /package/dist/app/assets/{index.es379-CS3Unz2-.js → index.es392-CS3Unz2-.js} +0 -0
  272. /package/dist/app/assets/{index.es380-bN70gL4F.js → index.es393-bN70gL4F.js} +0 -0
  273. /package/dist/app/assets/{index.es381-CmCqftbK.js → index.es394-CmCqftbK.js} +0 -0
  274. /package/dist/app/assets/{index.es382-Ds-gbosJ.js → index.es395-Ds-gbosJ.js} +0 -0
  275. /package/dist/app/assets/{index.es383-CjDtw9vr.js → index.es396-CjDtw9vr.js} +0 -0
  276. /package/dist/app/assets/{index.es384-BthQWCQV.js → index.es397-BthQWCQV.js} +0 -0
  277. /package/dist/app/assets/{index.es385-DqwNpetd.js → index.es398-DqwNpetd.js} +0 -0
  278. /package/dist/app/assets/{index.es386-Bw305WKR.js → index.es399-Bw305WKR.js} +0 -0
  279. /package/dist/app/assets/{index.es387-DXbdFlpD.js → index.es400-DXbdFlpD.js} +0 -0
  280. /package/dist/app/assets/{index.es388-L9t79GZl.js → index.es401-L9t79GZl.js} +0 -0
  281. /package/dist/app/assets/{index.es389-CbfX1IO0.js → index.es402-CbfX1IO0.js} +0 -0
  282. /package/dist/app/assets/{index.es390-DBQeEorK.js → index.es403-DBQeEorK.js} +0 -0
  283. /package/dist/app/assets/{index.es391-BEBZ7ncR.js → index.es404-BEBZ7ncR.js} +0 -0
  284. /package/dist/app/assets/{index.es392-Bkuqu6BP.js → index.es405-Bkuqu6BP.js} +0 -0
  285. /package/dist/app/assets/{index.es393-D0r3Knsf.js → index.es406-D0r3Knsf.js} +0 -0
  286. /package/dist/app/assets/{index.es394-CVO1_9PV.js → index.es407-CVO1_9PV.js} +0 -0
@@ -12,9 +12,9 @@
12
12
  href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap"
13
13
  />
14
14
  <title>Malloy Publisher</title>
15
- <script type="module" crossorigin src="/assets/index-2BGzlUQa.js"></script>
15
+ <script type="module" crossorigin src="/assets/index-CwH8v8Pf.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="/assets/vendor-c5ypKtDW.js">
17
- <link rel="modulepreload" crossorigin href="/assets/mui-YektUyEU.js">
17
+ <link rel="modulepreload" crossorigin href="/assets/mui-Bcj8oDBR.js">
18
18
  <link rel="stylesheet" crossorigin href="/assets/index-CcIq0aEZ.css">
19
19
  </head>
20
20
  <body>
package/dist/server.js CHANGED
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env node
1
2
  var __create = Object.create;
2
3
  var __getProtoOf = Object.getPrototypeOf;
3
4
  var __defProp = Object.defineProperty;
@@ -231562,13 +231563,16 @@ async function getSchemasForConnection(connection) {
231562
231563
  const projectId = connection.bigqueryConnection.defaultProjectId;
231563
231564
  const options = projectId ? { projectId } : {};
231564
231565
  const [datasets] = await bigquery.getDatasets(options);
231565
- return datasets.filter((dataset) => dataset.id).map((dataset) => {
231566
+ const schemas = await Promise.all(datasets.filter((dataset) => dataset.id).map(async (dataset) => {
231567
+ const [metadata] = await dataset.getMetadata();
231566
231568
  return {
231567
231569
  name: dataset.id,
231568
231570
  isHidden: false,
231569
- isDefault: false
231571
+ isDefault: false,
231572
+ description: metadata?.description
231570
231573
  };
231571
- });
231574
+ }));
231575
+ return schemas;
231572
231576
  } catch (error) {
231573
231577
  console.error(`Error getting schemas for BigQuery connection ${connection.name}:`, error);
231574
231578
  throw new Error(`Failed to get schemas for BigQuery connection ${connection.name}: ${error.message}`);
@@ -238915,7 +238919,7 @@ class Project {
238915
238919
  async deletePackage(packageName) {
238916
238920
  const _package = this.packages.get(packageName);
238917
238921
  if (!_package) {
238918
- throw new PackageNotFoundError(`Package ${packageName} not found`);
238922
+ return;
238919
238923
  }
238920
238924
  await fs8.promises.rm(path6.join(this.projectPath, packageName), {
238921
238925
  recursive: true
@@ -239049,7 +239053,7 @@ class ProjectStore {
239049
239053
  }
239050
239054
  const project = this.projects.get(projectName);
239051
239055
  if (!project) {
239052
- throw new ProjectNotFoundError(`Project ${projectName} not found`);
239056
+ return;
239053
239057
  }
239054
239058
  this.projects.delete(projectName);
239055
239059
  return project;
@@ -239096,7 +239100,7 @@ class ProjectStore {
239096
239100
  }
239097
239101
  async loadProjectIntoDisk(projectName, projectPath) {
239098
239102
  const absoluteTargetPath = `${publisherPath}/${projectName}`;
239099
- if (projectPath.startsWith("/")) {
239103
+ if (projectPath.startsWith("/") || projectPath.startsWith("./")) {
239100
239104
  try {
239101
239105
  logger2.info(`Mounting local directory at "${projectPath}"`);
239102
239106
  await this.mountLocalDirectory(projectPath, absoluteTargetPath, projectName);
@@ -239142,11 +239146,14 @@ class ProjectStore {
239142
239146
  throw error;
239143
239147
  }
239144
239148
  }
239145
- const errorMsg = `Invalid project path: "${projectPath}". Must be an absolute mounted path or a GCS/S3/GitHub URI.`;
239149
+ const errorMsg = `Invalid project path: "${projectPath}". Paths must start with "/" or "./" or a GCS/S3/GitHub URI.`;
239146
239150
  logger2.error(errorMsg, { projectName, projectPath });
239147
239151
  throw new ProjectNotFoundError(errorMsg);
239148
239152
  }
239149
239153
  async mountLocalDirectory(projectPath, absoluteTargetPath, projectName) {
239154
+ if (projectPath.endsWith(".zip")) {
239155
+ projectPath = await this.unzipProject(projectPath);
239156
+ }
239150
239157
  const projectDirExists = (await fs9.promises.stat(projectPath)).isDirectory();
239151
239158
  if (projectDirExists) {
239152
239159
  await fs9.promises.rm(absoluteTargetPath, {
@@ -243315,7 +243322,7 @@ app.patch(`${API_PREFIX2}/projects/:projectName`, async (req, res) => {
243315
243322
  app.delete(`${API_PREFIX2}/projects/:projectName`, async (req, res) => {
243316
243323
  try {
243317
243324
  const project = await projectStore.deleteProject(req.params.projectName);
243318
- res.status(200).json(await project.serialize());
243325
+ res.status(200).json(await project?.serialize());
243319
243326
  } catch (error) {
243320
243327
  logger2.error(error);
243321
243328
  const { json: json2, status } = internalErrorToHttpError(error);
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.90",
4
+ "version": "0.0.91",
5
5
  "main": "dist/server.js",
6
6
  "bin": {
7
7
  "malloy-publisher": "dist/server.js"
package/src/server.ts CHANGED
@@ -13,7 +13,11 @@ import { PackageController } from "./controller/package.controller";
13
13
  import { QueryController } from "./controller/query.controller";
14
14
  import { ScheduleController } from "./controller/schedule.controller";
15
15
  import { WatchModeController } from "./controller/watch-mode.controller";
16
- import { internalErrorToHttpError, NotImplementedError } from "./errors";
16
+ import {
17
+ internalErrorToHttpError,
18
+ NotImplementedError,
19
+ PackageNotFoundError,
20
+ } from "./errors";
17
21
  import { logger, loggerMiddleware } from "./logger";
18
22
  import { initializeMcpServer } from "./mcp/server";
19
23
  import { ProjectStore } from "./service/project_store";
@@ -269,7 +273,7 @@ app.patch(`${API_PREFIX}/projects/:projectName`, async (req, res) => {
269
273
  app.delete(`${API_PREFIX}/projects/:projectName`, async (req, res) => {
270
274
  try {
271
275
  const project = await projectStore.deleteProject(req.params.projectName);
272
- res.status(200).json(await project.serialize());
276
+ res.status(200).json(await project?.serialize());
273
277
  } catch (error) {
274
278
  logger.error(error);
275
279
  const { json, status } = internalErrorToHttpError(error as Error);
@@ -96,15 +96,22 @@ export async function getSchemasForConnection(
96
96
  const projectId = connection.bigqueryConnection.defaultProjectId;
97
97
  const options = projectId ? { projectId } : {};
98
98
  const [datasets] = await bigquery.getDatasets(options);
99
- return datasets
100
- .filter((dataset) => dataset.id)
101
- .map((dataset) => {
102
- return {
103
- name: dataset.id,
104
- isHidden: false,
105
- isDefault: false,
106
- };
107
- });
99
+ const schemas = await Promise.all(
100
+ datasets
101
+ .filter((dataset) => dataset.id)
102
+ .map(async (dataset) => {
103
+ const [metadata] = await dataset.getMetadata();
104
+ return {
105
+ name: dataset.id,
106
+ isHidden: false,
107
+ isDefault: false,
108
+ // Include description from dataset metadata if available
109
+ description: (metadata as { description?: string })
110
+ ?.description,
111
+ };
112
+ }),
113
+ );
114
+ return schemas;
108
115
  } catch (error) {
109
116
  console.error(
110
117
  `Error getting schemas for BigQuery connection ${connection.name}:`,
@@ -295,7 +295,7 @@ export class Project {
295
295
  public async deletePackage(packageName: string) {
296
296
  const _package = this.packages.get(packageName);
297
297
  if (!_package) {
298
- throw new PackageNotFoundError(`Package ${packageName} not found`);
298
+ return;
299
299
  }
300
300
  await fs.promises.rm(path.join(this.projectPath, packageName), {
301
301
  recursive: true,
@@ -179,7 +179,7 @@ export class ProjectStore {
179
179
  }
180
180
  const project = this.projects.get(projectName);
181
181
  if (!project) {
182
- throw new ProjectNotFoundError(`Project ${projectName} not found`);
182
+ return;
183
183
  }
184
184
  this.projects.delete(projectName);
185
185
  return project;
@@ -237,7 +237,7 @@ export class ProjectStore {
237
237
  private async loadProjectIntoDisk(projectName: string, projectPath: string) {
238
238
  const absoluteTargetPath = `${publisherPath}/${projectName}`;
239
239
  // Handle absolute paths
240
- if (projectPath.startsWith("/")) {
240
+ if (projectPath.startsWith("/") || projectPath.startsWith("./")) {
241
241
  try {
242
242
  logger.info(`Mounting local directory at "${projectPath}"`);
243
243
  await this.mountLocalDirectory(
@@ -308,7 +308,7 @@ export class ProjectStore {
308
308
  }
309
309
  }
310
310
 
311
- const errorMsg = `Invalid project path: "${projectPath}". Must be an absolute mounted path or a GCS/S3/GitHub URI.`;
311
+ const errorMsg = `Invalid project path: "${projectPath}". Paths must start with "/" or "./" or a GCS/S3/GitHub URI.`;
312
312
  logger.error(errorMsg, { projectName, projectPath });
313
313
  throw new ProjectNotFoundError(errorMsg);
314
314
  }
@@ -318,6 +318,9 @@ export class ProjectStore {
318
318
  absoluteTargetPath: string,
319
319
  projectName: string,
320
320
  ) {
321
+ if (projectPath.endsWith(".zip")) {
322
+ projectPath = await this.unzipProject(projectPath);
323
+ }
321
324
  const projectDirExists = (
322
325
  await fs.promises.stat(projectPath)
323
326
  ).isDirectory();