@powerhousedao/connect 1.0.0 → 1.0.4

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 (289) hide show
  1. package/README.md +0 -1
  2. package/dist/.env +1 -1
  3. package/dist/assets/app-BdM_bCqD.js +842 -0
  4. package/dist/assets/app-BdM_bCqD.js.map +1 -0
  5. package/dist/assets/app-loader-B7xllAoS.js +3 -0
  6. package/dist/assets/app-loader-B7xllAoS.js.map +1 -0
  7. package/dist/assets/app-loader-D5wPX62N.css +1 -0
  8. package/dist/assets/browser-CwKAjz_f.js +43 -0
  9. package/dist/assets/browser-CwKAjz_f.js.map +1 -0
  10. package/dist/assets/{browser-BbIPlSaA.js → browser-Dmr6AWWk.js} +2 -2
  11. package/dist/assets/{browser-BbIPlSaA.js.map → browser-Dmr6AWWk.js.map} +1 -1
  12. package/dist/assets/ccip-BoVyVgwR.js +2 -0
  13. package/dist/assets/ccip-BoVyVgwR.js.map +1 -0
  14. package/dist/assets/content-BmCNR4Pw.js +6 -0
  15. package/dist/assets/content-BmCNR4Pw.js.map +1 -0
  16. package/dist/assets/editor-Cma-7Z7k.js +2 -0
  17. package/dist/assets/editor-Cma-7Z7k.js.map +1 -0
  18. package/dist/assets/editor-IMwm8pim.js +2 -0
  19. package/dist/assets/editor-IMwm8pim.js.map +1 -0
  20. package/dist/assets/editor-vgD9wEAH.js +2 -0
  21. package/dist/assets/editor-vgD9wEAH.js.map +1 -0
  22. package/dist/assets/editors-DQC0rqOg.js +347 -0
  23. package/dist/assets/editors-DQC0rqOg.js.map +1 -0
  24. package/dist/assets/index-BP2fj1j6.js +16 -0
  25. package/dist/assets/index-BP2fj1j6.js.map +1 -0
  26. package/dist/assets/index-SwNHx8hV.js +3 -0
  27. package/dist/assets/{index-Bg4jiu9P.js.map → index-SwNHx8hV.js.map} +1 -1
  28. package/dist/assets/index-T6Et30Eh-CdVwpIBO.js +12 -0
  29. package/dist/assets/index-T6Et30Eh-CdVwpIBO.js.map +1 -0
  30. package/dist/assets/{main.Bp4zjrbL.js → main.DQ-aV7Qq.js} +2 -2
  31. package/dist/assets/{main.Bp4zjrbL.js.map → main.DQ-aV7Qq.js.map} +1 -1
  32. package/dist/assets/root-BKJF0Yl6.js +12 -0
  33. package/dist/assets/root-BKJF0Yl6.js.map +1 -0
  34. package/dist/assets/router-Hd499Vrp.js +12 -0
  35. package/dist/assets/router-Hd499Vrp.js.map +1 -0
  36. package/dist/assets/useUiNodes-Ch-W4vsB.js +107 -0
  37. package/dist/assets/useUiNodes-Ch-W4vsB.js.map +1 -0
  38. package/dist/index.html +4 -4
  39. package/dist/service-worker.js +1 -1
  40. package/dist/studio/index.d.ts +1 -0
  41. package/dist/studio/index.js +243 -287
  42. package/dist/studio/server.d.ts +2 -2
  43. package/dist/studio/vite-plugin.d.ts +12 -0
  44. package/dist/swEnv.js +3 -3
  45. package/dist/vite-envs.sh +12 -12
  46. package/package.json +10 -13
  47. package/dist/assets/ArrowFilledRight-BXP1j8Cl.js +0 -2
  48. package/dist/assets/ArrowFilledRight-BXP1j8Cl.js.map +0 -1
  49. package/dist/assets/ArrowLeft-8ZR_YHAJ.js +0 -2
  50. package/dist/assets/ArrowLeft-8ZR_YHAJ.js.map +0 -1
  51. package/dist/assets/ArrowUp-E2jS6Wzt.js +0 -2
  52. package/dist/assets/ArrowUp-E2jS6Wzt.js.map +0 -1
  53. package/dist/assets/BarChart-C-E6t7dt.js +0 -2
  54. package/dist/assets/BarChart-C-E6t7dt.js.map +0 -1
  55. package/dist/assets/BaseArrowLeft-DtHrkTW4.js +0 -2
  56. package/dist/assets/BaseArrowLeft-DtHrkTW4.js.map +0 -1
  57. package/dist/assets/BaseArrowRight-BIwzFHnh.js +0 -2
  58. package/dist/assets/BaseArrowRight-BIwzFHnh.js.map +0 -1
  59. package/dist/assets/Braces-3LcexUsR.js +0 -2
  60. package/dist/assets/Braces-3LcexUsR.js.map +0 -1
  61. package/dist/assets/Branch-D0CssEh3.js +0 -2
  62. package/dist/assets/Branch-D0CssEh3.js.map +0 -1
  63. package/dist/assets/BrickGlobe-CdHw7ZVP.js +0 -2
  64. package/dist/assets/BrickGlobe-CdHw7ZVP.js.map +0 -1
  65. package/dist/assets/Briefcase-CV2bgnSj.js +0 -2
  66. package/dist/assets/Briefcase-CV2bgnSj.js.map +0 -1
  67. package/dist/assets/Calendar-DuXN-sPt.js +0 -2
  68. package/dist/assets/Calendar-DuXN-sPt.js.map +0 -1
  69. package/dist/assets/CalendarTime-Bhjzlgn_-BVlYgNLL.js +0 -2
  70. package/dist/assets/CalendarTime-Bhjzlgn_-BVlYgNLL.js.map +0 -1
  71. package/dist/assets/CalendarTime-BowYBiVM.js +0 -2
  72. package/dist/assets/CalendarTime-BowYBiVM.js.map +0 -1
  73. package/dist/assets/Caret-r16V7Hcs.js +0 -2
  74. package/dist/assets/Caret-r16V7Hcs.js.map +0 -1
  75. package/dist/assets/CaretDown-DljrBfIz.js +0 -2
  76. package/dist/assets/CaretDown-DljrBfIz.js.map +0 -1
  77. package/dist/assets/CaretLeft-B_Lzd_Rn.js +0 -2
  78. package/dist/assets/CaretLeft-B_Lzd_Rn.js.map +0 -1
  79. package/dist/assets/CaretLeft-Df3E-68c-wke5zKLt.js +0 -2
  80. package/dist/assets/CaretLeft-Df3E-68c-wke5zKLt.js.map +0 -1
  81. package/dist/assets/CaretRight-Bbz5nCpg.js +0 -2
  82. package/dist/assets/CaretRight-Bbz5nCpg.js.map +0 -1
  83. package/dist/assets/CaretRight-DSVWUSka-Cx0Mkcqa.js +0 -2
  84. package/dist/assets/CaretRight-DSVWUSka-Cx0Mkcqa.js.map +0 -1
  85. package/dist/assets/CaretSort-DSgBum1h.js +0 -2
  86. package/dist/assets/CaretSort-DSgBum1h.js.map +0 -1
  87. package/dist/assets/Check-CbV9BYHY.js +0 -2
  88. package/dist/assets/Check-CbV9BYHY.js.map +0 -1
  89. package/dist/assets/CheckCircle-CX2jIKoF.js +0 -2
  90. package/dist/assets/CheckCircle-CX2jIKoF.js.map +0 -1
  91. package/dist/assets/CheckCircleFill-DLK12sW5.js +0 -2
  92. package/dist/assets/CheckCircleFill-DLK12sW5.js.map +0 -1
  93. package/dist/assets/Checkmark-DBvUEZAd.js +0 -2
  94. package/dist/assets/Checkmark-DBvUEZAd.js.map +0 -1
  95. package/dist/assets/ChevronDown-eUsCPXcB.js +0 -2
  96. package/dist/assets/ChevronDown-eUsCPXcB.js.map +0 -1
  97. package/dist/assets/Circle-8dOehHQf.js +0 -2
  98. package/dist/assets/Circle-8dOehHQf.js.map +0 -1
  99. package/dist/assets/CircleInfo-D0ktZDko.js +0 -2
  100. package/dist/assets/CircleInfo-D0ktZDko.js.map +0 -1
  101. package/dist/assets/Clock-CudavWaE.js +0 -2
  102. package/dist/assets/Clock-CudavWaE.js.map +0 -1
  103. package/dist/assets/Clock-DF-XMxha-CudavWaE.js +0 -2
  104. package/dist/assets/Clock-DF-XMxha-CudavWaE.js.map +0 -1
  105. package/dist/assets/ClockFill-yWs52y_e.js +0 -2
  106. package/dist/assets/ClockFill-yWs52y_e.js.map +0 -1
  107. package/dist/assets/CloudSlash-D18Hl3VW.js +0 -2
  108. package/dist/assets/CloudSlash-D18Hl3VW.js.map +0 -1
  109. package/dist/assets/Collapse-BOxZH5-e.js +0 -2
  110. package/dist/assets/Collapse-BOxZH5-e.js.map +0 -1
  111. package/dist/assets/Connect-laqJZT3s.js +0 -2
  112. package/dist/assets/Connect-laqJZT3s.js.map +0 -1
  113. package/dist/assets/Copy-CkOtWZ6m.js +0 -2
  114. package/dist/assets/Copy-CkOtWZ6m.js.map +0 -1
  115. package/dist/assets/Copy-ms9-7m7Y-CkOtWZ6m.js +0 -2
  116. package/dist/assets/Copy-ms9-7m7Y-CkOtWZ6m.js.map +0 -1
  117. package/dist/assets/CrossCircle-B6ZawoOx-z5-kkOo3.js +0 -2
  118. package/dist/assets/CrossCircle-B6ZawoOx-z5-kkOo3.js.map +0 -1
  119. package/dist/assets/CrossCircle-Bp9diEe9.js +0 -2
  120. package/dist/assets/CrossCircle-Bp9diEe9.js.map +0 -1
  121. package/dist/assets/Danger-CLu7nxgz.js +0 -2
  122. package/dist/assets/Danger-CLu7nxgz.js.map +0 -1
  123. package/dist/assets/Danger-KM8BZjue-CLu7nxgz.js +0 -2
  124. package/dist/assets/Danger-KM8BZjue-CLu7nxgz.js.map +0 -1
  125. package/dist/assets/Discord-CcPWRT8g.js +0 -2
  126. package/dist/assets/Discord-CcPWRT8g.js.map +0 -1
  127. package/dist/assets/Drive-CzahDx9j.js +0 -2
  128. package/dist/assets/Drive-CzahDx9j.js.map +0 -1
  129. package/dist/assets/Edit-D9GlgGu8.js +0 -2
  130. package/dist/assets/Edit-D9GlgGu8.js.map +0 -1
  131. package/dist/assets/Edit-Dr-ZiMSE-D9GlgGu8.js +0 -2
  132. package/dist/assets/Edit-Dr-ZiMSE-D9GlgGu8.js.map +0 -1
  133. package/dist/assets/Ellipsis-DWNUJYUI.js +0 -2
  134. package/dist/assets/Ellipsis-DWNUJYUI.js.map +0 -1
  135. package/dist/assets/Error-FBAhqFT5.js +0 -2
  136. package/dist/assets/Error-FBAhqFT5.js.map +0 -1
  137. package/dist/assets/Exclamation-BGFGsVRw.js +0 -2
  138. package/dist/assets/Exclamation-BGFGsVRw.js.map +0 -1
  139. package/dist/assets/File-Ba7ClyaL-BU1g1wjO.js +0 -2
  140. package/dist/assets/File-Ba7ClyaL-BU1g1wjO.js.map +0 -1
  141. package/dist/assets/File-DWKl25DR.js +0 -2
  142. package/dist/assets/File-DWKl25DR.js.map +0 -1
  143. package/dist/assets/FilesEarmark-BTL53WSf.js +0 -2
  144. package/dist/assets/FilesEarmark-BTL53WSf.js.map +0 -1
  145. package/dist/assets/FolderClose-BVMKeKvW.js +0 -2
  146. package/dist/assets/FolderClose-BVMKeKvW.js.map +0 -1
  147. package/dist/assets/FolderOpen-DT55_X9N.js +0 -2
  148. package/dist/assets/FolderOpen-DT55_X9N.js.map +0 -1
  149. package/dist/assets/FolderPlus-C2G5PVs-.js +0 -2
  150. package/dist/assets/FolderPlus-C2G5PVs-.js.map +0 -1
  151. package/dist/assets/Forum-Cfgyizyn.js +0 -2
  152. package/dist/assets/Forum-Cfgyizyn.js.map +0 -1
  153. package/dist/assets/Gear-CoQ9O06k.js +0 -2
  154. package/dist/assets/Gear-CoQ9O06k.js.map +0 -1
  155. package/dist/assets/Github-CjkZIHCO.js +0 -2
  156. package/dist/assets/Github-CjkZIHCO.js.map +0 -1
  157. package/dist/assets/Globe-Dy2otZRk.js +0 -2
  158. package/dist/assets/Globe-Dy2otZRk.js.map +0 -1
  159. package/dist/assets/GlobeWww-Ci7aa5CE.js +0 -2
  160. package/dist/assets/GlobeWww-Ci7aa5CE.js.map +0 -1
  161. package/dist/assets/Hdd-CP-hFB7d.js +0 -2
  162. package/dist/assets/Hdd-CP-hFB7d.js.map +0 -1
  163. package/dist/assets/History-CmOiP5qa.js +0 -2
  164. package/dist/assets/History-CmOiP5qa.js.map +0 -1
  165. package/dist/assets/InfoSquare-DbYZrwmg.js +0 -2
  166. package/dist/assets/InfoSquare-DbYZrwmg.js.map +0 -1
  167. package/dist/assets/Link-CXIVQOz6.js +0 -2
  168. package/dist/assets/Link-CXIVQOz6.js.map +0 -1
  169. package/dist/assets/Linkedin-exhl1yGN.js +0 -2
  170. package/dist/assets/Linkedin-exhl1yGN.js.map +0 -1
  171. package/dist/assets/Lock-DWdDRi_O.js +0 -2
  172. package/dist/assets/Lock-DWdDRi_O.js.map +0 -1
  173. package/dist/assets/M-ByQIo8bX.js +0 -2
  174. package/dist/assets/M-ByQIo8bX.js.map +0 -1
  175. package/dist/assets/PackageManager-B-MUWliB-bW01ZQSP.js +0 -2
  176. package/dist/assets/PackageManager-B-MUWliB-bW01ZQSP.js.map +0 -1
  177. package/dist/assets/PackageManager-D6Ia8zHs.js +0 -2
  178. package/dist/assets/PackageManager-D6Ia8zHs.js.map +0 -1
  179. package/dist/assets/Pencil-D830iveq.js +0 -2
  180. package/dist/assets/Pencil-D830iveq.js.map +0 -1
  181. package/dist/assets/People-B1tewG8c.js +0 -2
  182. package/dist/assets/People-B1tewG8c.js.map +0 -1
  183. package/dist/assets/Person-BPRmm67U.js +0 -2
  184. package/dist/assets/Person-BPRmm67U.js.map +0 -1
  185. package/dist/assets/Pin-D53eCMAz.js +0 -2
  186. package/dist/assets/Pin-D53eCMAz.js.map +0 -1
  187. package/dist/assets/Pin-DF70btCU-D53eCMAz.js +0 -2
  188. package/dist/assets/Pin-DF70btCU-D53eCMAz.js.map +0 -1
  189. package/dist/assets/PinFilled-CMXfFW67.js +0 -2
  190. package/dist/assets/PinFilled-CMXfFW67.js.map +0 -1
  191. package/dist/assets/PinFilled-vImzS0do-CMXfFW67.js +0 -2
  192. package/dist/assets/PinFilled-vImzS0do-CMXfFW67.js.map +0 -1
  193. package/dist/assets/Plus-XUIm1wNw.js +0 -2
  194. package/dist/assets/Plus-XUIm1wNw.js.map +0 -1
  195. package/dist/assets/PlusCircle-D1IRYULb.js +0 -2
  196. package/dist/assets/PlusCircle-D1IRYULb.js.map +0 -1
  197. package/dist/assets/PowerhouseLogoSmall-DF1uUwIC.js +0 -2
  198. package/dist/assets/PowerhouseLogoSmall-DF1uUwIC.js.map +0 -1
  199. package/dist/assets/Project-EsBam9d0.js +0 -2
  200. package/dist/assets/Project-EsBam9d0.js.map +0 -1
  201. package/dist/assets/QuestionSquare-B6O9Le7r-CDaw1i6L.js +0 -2
  202. package/dist/assets/QuestionSquare-B6O9Le7r-CDaw1i6L.js.map +0 -1
  203. package/dist/assets/QuestionSquare-CDaw1i6L.js +0 -2
  204. package/dist/assets/QuestionSquare-CDaw1i6L.js.map +0 -1
  205. package/dist/assets/RedoArrow-DM-fqhEP.js +0 -2
  206. package/dist/assets/RedoArrow-DM-fqhEP.js.map +0 -1
  207. package/dist/assets/Reload-6C2CYgrl-DPZbA7yl.js +0 -2
  208. package/dist/assets/Reload-6C2CYgrl-DPZbA7yl.js.map +0 -1
  209. package/dist/assets/Reload-DPZbA7yl.js +0 -2
  210. package/dist/assets/Reload-DPZbA7yl.js.map +0 -1
  211. package/dist/assets/Renown-CItksi2j.js +0 -2
  212. package/dist/assets/Renown-CItksi2j.js.map +0 -1
  213. package/dist/assets/RenownHover-cYQgnwQW.js +0 -2
  214. package/dist/assets/RenownHover-cYQgnwQW.js.map +0 -1
  215. package/dist/assets/Ring-BivnmVc5.js +0 -2
  216. package/dist/assets/Ring-BivnmVc5.js.map +0 -1
  217. package/dist/assets/Save-BWCZPY82.js +0 -2
  218. package/dist/assets/Save-BWCZPY82.js.map +0 -1
  219. package/dist/assets/Search-BiEcSbcf.js +0 -2
  220. package/dist/assets/Search-BiEcSbcf.js.map +0 -1
  221. package/dist/assets/Server-cAzmNxsS.js +0 -2
  222. package/dist/assets/Server-cAzmNxsS.js.map +0 -1
  223. package/dist/assets/Settings-Cca-sV-_.js +0 -2
  224. package/dist/assets/Settings-Cca-sV-_.js.map +0 -1
  225. package/dist/assets/Synced-CjieGKOk.js +0 -2
  226. package/dist/assets/Synced-CjieGKOk.js.map +0 -1
  227. package/dist/assets/Syncing-KnDBLSYe.js +0 -2
  228. package/dist/assets/Syncing-KnDBLSYe.js.map +0 -1
  229. package/dist/assets/Trash-DIHOD5wQ.js +0 -2
  230. package/dist/assets/Trash-DIHOD5wQ.js.map +0 -1
  231. package/dist/assets/TrashFill-CG3humXp.js +0 -2
  232. package/dist/assets/TrashFill-CG3humXp.js.map +0 -1
  233. package/dist/assets/TreeViewSlash-BywCsx5o-CUTTXZi-.js +0 -2
  234. package/dist/assets/TreeViewSlash-BywCsx5o-CUTTXZi-.js.map +0 -1
  235. package/dist/assets/TreeViewSlash-CKJADIpa.js +0 -2
  236. package/dist/assets/TreeViewSlash-CKJADIpa.js.map +0 -1
  237. package/dist/assets/TriangleDown-Boh-WZzH.js +0 -2
  238. package/dist/assets/TriangleDown-Boh-WZzH.js.map +0 -1
  239. package/dist/assets/TriangleDown-eCXwUfu8-F-V79AL3.js +0 -2
  240. package/dist/assets/TriangleDown-eCXwUfu8-F-V79AL3.js.map +0 -1
  241. package/dist/assets/VariantArrowLeft-Dl1-3L5q.js +0 -2
  242. package/dist/assets/VariantArrowLeft-Dl1-3L5q.js.map +0 -1
  243. package/dist/assets/VerticalDots-CCZxgZM8.js +0 -2
  244. package/dist/assets/VerticalDots-CCZxgZM8.js.map +0 -1
  245. package/dist/assets/WarningFill-CRRaW3Oz.js +0 -2
  246. package/dist/assets/WarningFill-CRRaW3Oz.js.map +0 -1
  247. package/dist/assets/XTwitter-CW6IaHUb.js +0 -2
  248. package/dist/assets/XTwitter-CW6IaHUb.js.map +0 -1
  249. package/dist/assets/Xmark-CZ3t0Fap.js +0 -2
  250. package/dist/assets/Xmark-CZ3t0Fap.js.map +0 -1
  251. package/dist/assets/XmarkLight-BkhBFy51.js +0 -2
  252. package/dist/assets/XmarkLight-BkhBFy51.js.map +0 -1
  253. package/dist/assets/Youtube-h-Dc9pri.js +0 -2
  254. package/dist/assets/Youtube-h-Dc9pri.js.map +0 -1
  255. package/dist/assets/app-DKrzRA2f.js +0 -449
  256. package/dist/assets/app-DKrzRA2f.js.map +0 -1
  257. package/dist/assets/app-loader-DH_VGIVv.css +0 -1
  258. package/dist/assets/app-loader-mj_poB3V.js +0 -3
  259. package/dist/assets/app-loader-mj_poB3V.js.map +0 -1
  260. package/dist/assets/browser-DtMtdCgJ.js +0 -7
  261. package/dist/assets/browser-DtMtdCgJ.js.map +0 -1
  262. package/dist/assets/ccip-DUUHdwDo.js +0 -2
  263. package/dist/assets/ccip-DUUHdwDo.js.map +0 -1
  264. package/dist/assets/content-DFQJzB7I.js +0 -7
  265. package/dist/assets/content-DFQJzB7I.js.map +0 -1
  266. package/dist/assets/editor-Dms2goxJ.js +0 -346
  267. package/dist/assets/editor-Dms2goxJ.js.map +0 -1
  268. package/dist/assets/getEnsName-DoyRgFOP.js +0 -35
  269. package/dist/assets/getEnsName-DoyRgFOP.js.map +0 -1
  270. package/dist/assets/index-Bg4jiu9P.js +0 -3
  271. package/dist/assets/index-CLu1C_is-jUM7ckQa.js +0 -12
  272. package/dist/assets/index-CLu1C_is-jUM7ckQa.js.map +0 -1
  273. package/dist/assets/index-q_KV5Ymp.js +0 -16
  274. package/dist/assets/index-q_KV5Ymp.js.map +0 -1
  275. package/dist/assets/isAddressEqual-H3jvLfD0.js +0 -2
  276. package/dist/assets/isAddressEqual-H3jvLfD0.js.map +0 -1
  277. package/dist/assets/json-m8fnOd5g.js +0 -3
  278. package/dist/assets/json-m8fnOd5g.js.map +0 -1
  279. package/dist/assets/root-R8rJ5_ai.js +0 -17
  280. package/dist/assets/root-R8rJ5_ai.js.map +0 -1
  281. package/dist/assets/router-DX6s3TD2.js +0 -12
  282. package/dist/assets/router-DX6s3TD2.js.map +0 -1
  283. package/dist/assets/useUiNodes-BqBkjrKn.js +0 -107
  284. package/dist/assets/useUiNodes-BqBkjrKn.js.map +0 -1
  285. package/dist/studio/hmr.js +0 -10
  286. package/dist/studio/vite-plugins/base.d.ts +0 -14
  287. package/dist/studio/vite-plugins/external-packages.d.ts +0 -5
  288. package/dist/studio/vite-plugins/hmr.d.ts +0 -2
  289. package/dist/studio/vite-plugins/studio.d.ts +0 -3
@@ -1,14 +1,14 @@
1
1
  // studio/index.ts
2
2
  import { Command } from "commander";
3
- import fs5 from "node:fs";
4
- import { dirname as dirname3, isAbsolute, join as join5, resolve } from "node:path";
3
+ import fs4 from "node:fs";
4
+ import { dirname, isAbsolute, join as join3, resolve } from "node:path";
5
5
 
6
6
  // studio/server.ts
7
7
  import basicSsl from "@vitejs/plugin-basic-ssl";
8
- import { exec as exec2 } from "node:child_process";
9
- import fs4 from "node:fs";
10
- import { join as join4 } from "node:path";
11
- import { fileURLToPath as fileURLToPath3 } from "node:url";
8
+ import { exec } from "node:child_process";
9
+ import fs3 from "node:fs";
10
+ import { join as join2 } from "node:path";
11
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
12
12
  import { createLogger, createServer } from "vite";
13
13
  import { viteEnvs } from "vite-envs";
14
14
 
@@ -50,19 +50,14 @@ function removeBase64EnvValues() {
50
50
  });
51
51
  }
52
52
 
53
- // studio/vite-plugins/base.ts
54
- import MagicString from "magic-string";
53
+ // studio/vite-plugin.ts
54
+ import fs2 from "node:fs";
55
55
  import path from "node:path";
56
- import { normalizePath } from "vite";
57
- var externalIds = /^react(-dom)?(\/.*)?$/;
56
+ import {
57
+ normalizePath
58
+ } from "vite";
58
59
  var LOCAL_DOCUMENT_MODELS_IMPORT = "LOCAL_DOCUMENT_MODELS";
59
60
  var LOCAL_DOCUMENT_EDITORS_IMPORT = "LOCAL_DOCUMENT_EDITORS";
60
- var HMR_MODULE_IMPORT = "PH:HMR_MODULE";
61
- var STUDIO_IMPORTS = [
62
- LOCAL_DOCUMENT_MODELS_IMPORT,
63
- LOCAL_DOCUMENT_EDITORS_IMPORT,
64
- HMR_MODULE_IMPORT
65
- ];
66
61
  function getStudioConfig(env) {
67
62
  const config = {};
68
63
  const LOCAL_DOCUMENT_MODELS = process.env.LOCAL_DOCUMENT_MODELS ?? env?.LOCAL_DOCUMENT_MODELS;
@@ -79,233 +74,8 @@ function getStudioConfig(env) {
79
74
  LOCAL_DOCUMENT_EDITORS_PATH
80
75
  );
81
76
  }
82
- if (typeof process.env.LOAD_EXTERNAL_PACKAGES !== "undefined") {
83
- config.LOAD_EXTERNAL_PACKAGES = process.env.LOAD_EXTERNAL_PACKAGES;
84
- }
85
77
  return config;
86
78
  }
87
- function viteIgnoreStaticImport(_importKeys) {
88
- const importKeys = _importKeys.filter(
89
- (key) => typeof key === "string" || key instanceof RegExp
90
- );
91
- return {
92
- name: "vite-plugin-ignore-static-import",
93
- enforce: "pre",
94
- // vite will still append /@id/ to an external import
95
- // so this will rewrite the 'vite:import-analysis' prefix
96
- configResolved(resolvedConfig) {
97
- const values = importKeys.map(
98
- (key) => typeof key === "string" ? key : key.source
99
- );
100
- const reg = new RegExp(
101
- `("|')\\/@id\\/(${values.join("|")})(\\/[^"'\\\\]*)?\\1`,
102
- "g"
103
- );
104
- resolvedConfig.plugins.push({
105
- name: "vite-plugin-ignore-static-import-replace-idprefix",
106
- transform: (code) => {
107
- const s = new MagicString(code);
108
- const matches = code.matchAll(reg);
109
- let modified = false;
110
- for (const match of matches) {
111
- s.overwrite(
112
- match.index,
113
- match.index + match[0].length,
114
- match[0].replace("/@id/", "")
115
- );
116
- modified = true;
117
- }
118
- if (!modified) return null;
119
- return {
120
- code: s.toString(),
121
- map: s.generateMap({ hires: true })
122
- // Generate an accurate source map
123
- };
124
- }
125
- });
126
- },
127
- // prevents the external import from being transformed to 'node_modules/...'
128
- resolveId: (id) => {
129
- if (importKeys.some(
130
- (key) => typeof key === "string" ? key === id : key.test(id)
131
- )) {
132
- return { id, external: true };
133
- }
134
- },
135
- // returns empty string to prevent "Pre-transform error: Failed to load url"
136
- load(id) {
137
- if (importKeys.some(
138
- (key) => typeof key === "string" ? key === id : key.test(id)
139
- )) {
140
- return "";
141
- }
142
- }
143
- };
144
- }
145
- function viteReplaceImports(imports) {
146
- const importKeys = Object.keys(imports);
147
- return {
148
- name: "vite-plugin-connect-replace-imports",
149
- enforce: "pre",
150
- config(config) {
151
- const resolve2 = config.resolve ?? {};
152
- const alias = resolve2.alias;
153
- let resolvedAlias;
154
- if (Array.isArray(alias)) {
155
- const arrayAlias = [...alias];
156
- arrayAlias.push(
157
- ...Object.entries(imports).map(([find, replacement]) => ({
158
- find,
159
- replacement
160
- }))
161
- );
162
- resolvedAlias = arrayAlias;
163
- } else if (typeof alias === "object") {
164
- resolvedAlias = {
165
- ...alias,
166
- ...imports
167
- };
168
- } else if (typeof alias === "undefined") {
169
- resolvedAlias = { ...imports };
170
- } else {
171
- console.error("resolve.alias was not recognized");
172
- }
173
- if (resolvedAlias) {
174
- resolve2.alias = resolvedAlias;
175
- config.resolve = resolve2;
176
- }
177
- },
178
- resolveId: (id) => {
179
- if (importKeys.includes(id)) {
180
- return {
181
- id,
182
- external: true
183
- };
184
- }
185
- }
186
- };
187
- }
188
-
189
- // studio/vite-plugins/external-packages.ts
190
- import { getConfig } from "@powerhousedao/config/powerhouse";
191
- import fs2 from "node:fs";
192
- import { dirname, join as join2 } from "node:path";
193
- import { normalizePath as normalizePath2 } from "vite";
194
- var __dirname = join2(process.cwd(), ".ph/");
195
- var EXTERNAL_PACKAGES_IMPORT = "PH:EXTERNAL_PACKAGES";
196
- var IMPORT_SCRIPT_FILE = normalizePath2(
197
- join2(__dirname, "external-packages.js")
198
- );
199
- function generateImportScript(packages) {
200
- const targetDir = dirname(IMPORT_SCRIPT_FILE);
201
- if (!fs2.existsSync(targetDir)) {
202
- fs2.mkdirSync(targetDir, { recursive: true });
203
- }
204
- const imports = [];
205
- const moduleNames = [];
206
- let counter = 0;
207
- for (const packageName of packages) {
208
- const moduleName = `module${counter}`;
209
- moduleNames.push(moduleName);
210
- imports.push(`import * as ${moduleName} from '${packageName}';`);
211
- counter++;
212
- }
213
- const exportStatement = `export default [${moduleNames.join(", ")}];`;
214
- const fileContent = `${imports.join("\n")}
215
-
216
- ${exportStatement}`;
217
- fs2.writeFileSync(IMPORT_SCRIPT_FILE, fileContent);
218
- return IMPORT_SCRIPT_FILE;
219
- }
220
- var viteLoadExternalPackages = (packages, hmr = false) => {
221
- if (!packages?.length && !hmr) {
222
- return viteIgnoreStaticImport([EXTERNAL_PACKAGES_IMPORT]);
223
- }
224
- generateImportScript(packages ?? []);
225
- process.env.LOAD_EXTERNAL_PACKAGES = "true";
226
- return [
227
- viteReplaceImports({ [EXTERNAL_PACKAGES_IMPORT]: IMPORT_SCRIPT_FILE }),
228
- hmr && {
229
- name: "vite-plugin-studio-external-packages",
230
- handleHotUpdate({ file, server, modules }) {
231
- if (file.endsWith("powerhouse.config.json")) {
232
- console.log("External packages file changed, reloading...");
233
- const config = getConfig();
234
- generateImportScript(
235
- config.packages?.map((p) => p.packageName) ?? []
236
- );
237
- const module = server.moduleGraph.getModuleById(IMPORT_SCRIPT_FILE);
238
- if (module) {
239
- server.moduleGraph.invalidateModule(module);
240
- return [module].concat(...module.importers.values());
241
- }
242
- } else if (file === IMPORT_SCRIPT_FILE) {
243
- modules.filter((module) => module.id === IMPORT_SCRIPT_FILE).forEach((module) => {
244
- server.ws.send("studio:external-packages-updated", {
245
- url: module.url,
246
- timestamp: module.lastHMRTimestamp
247
- });
248
- });
249
- return modules;
250
- }
251
- return modules;
252
- }
253
- }
254
- ];
255
- };
256
-
257
- // studio/vite-plugins/studio.ts
258
- import fs3 from "node:fs";
259
-
260
- // studio/vite-plugins/hmr.ts
261
- import { exec } from "node:child_process";
262
- import { dirname as dirname2, join as join3 } from "node:path";
263
- import { fileURLToPath as fileURLToPath2 } from "node:url";
264
- import { normalizePath as normalizePath3 } from "vite";
265
- var __dirname2 = import.meta.dirname || dirname2(fileURLToPath2(import.meta.url));
266
- var viteLoadHMRModule = () => {
267
- return [
268
- viteReplaceImports({
269
- [HMR_MODULE_IMPORT]: normalizePath3(join3(__dirname2, "hmr.js"))
270
- }),
271
- {
272
- name: "vite-plugin-studio-hmr-module",
273
- configureServer(server) {
274
- handleExternalPackageEvents(server);
275
- }
276
- }
277
- ];
278
- };
279
- var handleExternalPackageEvents = (server) => {
280
- server.ws.on("studio:add-external-package", (data, client) => {
281
- const { name } = data;
282
- const installProcess = exec(
283
- `ph install ${name}`,
284
- {
285
- cwd: process.cwd()
286
- },
287
- (error) => {
288
- if (error) {
289
- console.error(` [${name}]: ${error.message}`);
290
- } else {
291
- server.ws.send("studio:external-package-added", {
292
- name
293
- });
294
- }
295
- }
296
- );
297
- installProcess.stdout?.on("data", (data2) => {
298
- console.log(` [${name}]: ${data2.toString().trim()}`);
299
- });
300
- console.log("Installing external package:", name);
301
- });
302
- server.ws.on("studio:remove-external-package", (data, client) => {
303
- const { name } = data;
304
- console.log("Removing external package", name);
305
- });
306
- };
307
-
308
- // studio/vite-plugins/studio.ts
309
79
  function watchLocalFiles(server, documentModelsPath, editorsPath) {
310
80
  const debounce = (callback, delay = 100) => {
311
81
  let timeout;
@@ -335,7 +105,7 @@ function watchLocalFiles(server, documentModelsPath, editorsPath) {
335
105
  `Watching local document models at '${documentModelsPath}'...`
336
106
  );
337
107
  try {
338
- fs3.watch(
108
+ fs2.watch(
339
109
  documentModelsPath,
340
110
  {
341
111
  recursive: true
@@ -351,7 +121,7 @@ function watchLocalFiles(server, documentModelsPath, editorsPath) {
351
121
  if (editorsPath) {
352
122
  console.log(`Watching local document editors at '${editorsPath}'...`);
353
123
  try {
354
- fs3.watch(
124
+ fs2.watch(
355
125
  editorsPath,
356
126
  {
357
127
  recursive: true
@@ -365,8 +135,58 @@ function watchLocalFiles(server, documentModelsPath, editorsPath) {
365
135
  }
366
136
  }
367
137
  }
138
+ function viteIgnoreStaticImport(importKeys) {
139
+ return {
140
+ name: "vite-plugin-ignore-static-import",
141
+ enforce: "pre",
142
+ // vite will still append /@id/ to an external import
143
+ // so this will rewrite the 'vite:import-analysis' prefix
144
+ configResolved(resolvedConfig) {
145
+ const values = importKeys.map(
146
+ (key) => typeof key === "string" ? key : key.source
147
+ );
148
+ const reg = new RegExp(
149
+ `("|')\\/@id\\/(${values.join("|")})(\\/[^"'\\\\]*)?\\1`,
150
+ "g"
151
+ );
152
+ resolvedConfig.plugins.push({
153
+ name: "vite-plugin-ignore-static-import-replace-idprefix",
154
+ transform: (code) => {
155
+ const matches = code.matchAll(reg);
156
+ for (const match of matches) {
157
+ code = code.replaceAll(
158
+ match[0],
159
+ match[0].replace("/@id/", "")
160
+ );
161
+ }
162
+ return code;
163
+ }
164
+ });
165
+ },
166
+ // prevents the external import from being transformed to 'node_modules/...'
167
+ resolveId: (id) => {
168
+ if (importKeys.some(
169
+ (key) => typeof key === "string" ? key === id : key.test(id)
170
+ )) {
171
+ return { id, external: true };
172
+ }
173
+ },
174
+ // returns empty string to prevent "Pre-transform error: Failed to load url"
175
+ load(id) {
176
+ if (importKeys.some(
177
+ (key) => typeof key === "string" ? key === id : key.test(id)
178
+ )) {
179
+ return "";
180
+ }
181
+ }
182
+ };
183
+ }
368
184
  function viteConnectDevStudioPlugin(enabled = false, env) {
369
185
  const studioConfig = getStudioConfig(env);
186
+ const importKeys = [
187
+ LOCAL_DOCUMENT_MODELS_IMPORT,
188
+ LOCAL_DOCUMENT_EDITORS_IMPORT
189
+ ];
370
190
  const localDocumentModelsPath = studioConfig[LOCAL_DOCUMENT_MODELS_IMPORT];
371
191
  const localDocumentEditorsPath = studioConfig[LOCAL_DOCUMENT_EDITORS_IMPORT];
372
192
  return [
@@ -376,36 +196,42 @@ function viteConnectDevStudioPlugin(enabled = false, env) {
376
196
  "@powerhousedao/scalars",
377
197
  "@powerhousedao/design-system"
378
198
  ]),
379
- localDocumentModelsPath ? viteReplaceImports({
380
- [LOCAL_DOCUMENT_MODELS_IMPORT]: localDocumentModelsPath
381
- }) : viteIgnoreStaticImport([LOCAL_DOCUMENT_MODELS_IMPORT]),
382
- localDocumentEditorsPath ? viteReplaceImports({
383
- [LOCAL_DOCUMENT_EDITORS_IMPORT]: localDocumentEditorsPath
384
- }) : viteIgnoreStaticImport([LOCAL_DOCUMENT_EDITORS_IMPORT]),
385
- enabled ? viteLoadHMRModule() : viteIgnoreStaticImport([HMR_MODULE_IMPORT]),
386
199
  {
387
200
  name: "vite-plugin-connect-dev-studio",
388
201
  enforce: "pre",
389
202
  config(config) {
390
- if (!config.build) {
391
- config.build = {};
203
+ if (!localDocumentModelsPath && !localDocumentEditorsPath) {
204
+ return;
392
205
  }
393
- if (!config.build.rollupOptions) {
394
- config.build.rollupOptions = {};
206
+ const resolve2 = config.resolve ?? {};
207
+ const alias = resolve2.alias;
208
+ let resolvedAlias;
209
+ if (Array.isArray(alias)) {
210
+ const arrayAlias = [...alias];
211
+ if (localDocumentModelsPath) {
212
+ arrayAlias.push({
213
+ find: LOCAL_DOCUMENT_MODELS_IMPORT,
214
+ replacement: localDocumentModelsPath
215
+ });
216
+ }
217
+ if (localDocumentEditorsPath) {
218
+ arrayAlias.push({
219
+ find: LOCAL_DOCUMENT_EDITORS_IMPORT,
220
+ replacement: localDocumentEditorsPath
221
+ });
222
+ }
223
+ resolvedAlias = arrayAlias;
224
+ } else if (typeof alias === "object") {
225
+ resolvedAlias = { ...alias, ...studioConfig };
226
+ } else if (typeof alias === "undefined") {
227
+ resolvedAlias = { ...studioConfig };
228
+ } else {
229
+ console.error("resolve.alias was not recognized");
395
230
  }
396
- if (!Array.isArray(config.build.rollupOptions.external)) {
397
- config.build.rollupOptions.external = [];
231
+ if (resolvedAlias) {
232
+ resolve2.alias = resolvedAlias;
233
+ config.resolve = resolve2;
398
234
  }
399
- const buildStudioExternals = enabled ? [
400
- externalIds,
401
- ...STUDIO_IMPORTS,
402
- "@powerhousedao/studio",
403
- "@powerhousedao/design-system",
404
- "document-model-libs"
405
- ] : [externalIds, ...STUDIO_IMPORTS];
406
- config.build.rollupOptions.external.push(
407
- ...buildStudioExternals
408
- );
409
235
  },
410
236
  configureServer(server) {
411
237
  watchLocalFiles(
@@ -413,15 +239,73 @@ function viteConnectDevStudioPlugin(enabled = false, env) {
413
239
  localDocumentModelsPath,
414
240
  localDocumentEditorsPath
415
241
  );
242
+ },
243
+ resolveId: (id) => {
244
+ if (importKeys.includes(id)) {
245
+ return {
246
+ id,
247
+ external: true
248
+ };
249
+ }
416
250
  }
417
251
  }
418
252
  ];
419
253
  }
254
+ var viteLoadExternalProjects = (enabled = false, _projectsImportPath) => {
255
+ const moduleName = "EXTERNAL_PROJECTS";
256
+ const importKeys = [moduleName];
257
+ const projectsImportPath = normalizePath(_projectsImportPath || "");
258
+ return [
259
+ {
260
+ name: "vite-load-projects",
261
+ enforce: "pre",
262
+ config(config) {
263
+ if (!enabled) return;
264
+ if (!projectsImportPath || projectsImportPath === "") {
265
+ return;
266
+ }
267
+ const resolve2 = config.resolve ?? {};
268
+ const alias = resolve2.alias;
269
+ let resolvedAlias;
270
+ if (Array.isArray(alias)) {
271
+ const arrayAlias = [...alias];
272
+ arrayAlias.push({
273
+ find: moduleName,
274
+ replacement: projectsImportPath
275
+ });
276
+ resolvedAlias = arrayAlias;
277
+ } else if (typeof alias === "object") {
278
+ resolvedAlias = {
279
+ ...alias,
280
+ [moduleName]: projectsImportPath
281
+ };
282
+ } else if (typeof alias === "undefined") {
283
+ resolvedAlias = { [moduleName]: projectsImportPath };
284
+ } else {
285
+ console.error("resolve.alias was not recognized");
286
+ }
287
+ if (resolvedAlias) {
288
+ resolve2.alias = resolvedAlias;
289
+ config.resolve = resolve2;
290
+ }
291
+ console.log("resolvedAlias", config.resolve?.alias);
292
+ },
293
+ resolveId: (id) => {
294
+ if (importKeys.includes(id)) {
295
+ return {
296
+ id,
297
+ external: true
298
+ };
299
+ }
300
+ }
301
+ }
302
+ ];
303
+ };
420
304
 
421
305
  // studio/server.ts
422
- var studioDirname2 = fileURLToPath3(new URL(".", import.meta.url));
423
- var appPath2 = join4(studioDirname2, "..");
424
- var viteEnvsScript = join4(appPath2, "vite-envs.sh");
306
+ var studioDirname2 = fileURLToPath2(new URL(".", import.meta.url));
307
+ var appPath2 = join2(studioDirname2, "..");
308
+ var viteEnvsScript = join2(appPath2, "vite-envs.sh");
425
309
  var projectRoot = process.cwd();
426
310
  var logger = createLogger();
427
311
  var loggerWarn = logger.warn;
@@ -447,8 +331,8 @@ function runShellScriptPlugin(scriptPath) {
447
331
  return {
448
332
  name: "vite-plugin-run-shell-script",
449
333
  buildStart() {
450
- if (fs4.existsSync(scriptPath)) {
451
- exec2(`sh ${scriptPath}`, (error, stdout, stderr) => {
334
+ if (fs3.existsSync(scriptPath)) {
335
+ exec(`sh ${scriptPath}`, (error, stdout, stderr) => {
452
336
  if (error) {
453
337
  console.error(
454
338
  `Error executing the script: ${error.message}`
@@ -465,14 +349,15 @@ function runShellScriptPlugin(scriptPath) {
465
349
  };
466
350
  }
467
351
  async function startServer(options = {}) {
352
+ const { enableExternalProjects = true } = options;
468
353
  ensureNodeVersion();
469
354
  backupIndexHtml(true);
470
355
  const PORT = process.env.PORT ? parseInt(process.env.PORT) : 3e3;
471
356
  const HOST = process.env.HOST ? process.env.HOST : "0.0.0.0";
472
357
  const OPEN_BROWSER = typeof process.env.OPEN_BROWSER === "string" ? process.env.OPEN_BROWSER === "true" : false;
473
358
  const studioConfig = getStudioConfig();
474
- if (!fs4.existsSync(join4(appPath2, "src"))) {
475
- fs4.mkdirSync(join4(appPath2, "src"));
359
+ if (!fs3.existsSync(join2(appPath2, "src"))) {
360
+ fs3.mkdirSync(join2(appPath2, "src"));
476
361
  }
477
362
  process.env.PH_CONNECT_STUDIO_MODE = "true";
478
363
  const config = {
@@ -488,7 +373,7 @@ async function startServer(options = {}) {
488
373
  alias: {
489
374
  jszip: "jszip/dist/jszip.min.js",
490
375
  // Resolve to the node_modules in the project root
491
- "@powerhousedao/design-system/scalars": join4(
376
+ "@powerhousedao/design-system/scalars": join2(
492
377
  projectRoot,
493
378
  "node_modules",
494
379
  "@powerhousedao",
@@ -496,32 +381,35 @@ async function startServer(options = {}) {
496
381
  "dist",
497
382
  "scalars"
498
383
  ),
499
- "@powerhousedao/design-system": join4(
384
+ "@powerhousedao/design-system": join2(
500
385
  projectRoot,
501
386
  "node_modules",
502
387
  "@powerhousedao",
503
388
  "design-system"
504
389
  ),
505
- "@powerhousedao/scalars": join4(
390
+ "@powerhousedao/scalars": join2(
506
391
  projectRoot,
507
392
  "node_modules",
508
393
  "@powerhousedao",
509
394
  "scalars"
510
395
  ),
511
- "document-model-libs": join4(
396
+ "document-model-libs": join2(
512
397
  projectRoot,
513
398
  "node_modules",
514
399
  "document-model-libs"
515
400
  ),
516
- react: join4(projectRoot, "node_modules", "react"),
517
- "react-dom": join4(projectRoot, "node_modules", "react-dom")
401
+ react: join2(projectRoot, "node_modules", "react"),
402
+ "react-dom": join2(projectRoot, "node_modules", "react-dom")
518
403
  }
519
404
  },
520
405
  plugins: [
521
406
  viteConnectDevStudioPlugin(true),
522
- viteLoadExternalPackages(options.packages, true),
407
+ viteLoadExternalProjects(
408
+ enableExternalProjects,
409
+ options.projectsImportPath
410
+ ),
523
411
  viteEnvs({
524
- declarationFile: join4(studioDirname2, "../.env"),
412
+ declarationFile: join2(studioDirname2, "../.env"),
525
413
  computedEnv: studioConfig
526
414
  }),
527
415
  runShellScriptPlugin(viteEnvsScript),
@@ -542,16 +430,63 @@ async function startServer(options = {}) {
542
430
  }
543
431
 
544
432
  // studio/index.ts
433
+ var IMPORT_SCRIPT_FILE = "projects-import.js";
434
+ var projectRoot2 = process.cwd();
545
435
  var readJsonFile = (filePath) => {
546
436
  try {
547
437
  const absolutePath = resolve(filePath);
548
- const fileContents = fs5.readFileSync(absolutePath, "utf-8");
438
+ const fileContents = fs4.readFileSync(absolutePath, "utf-8");
549
439
  return JSON.parse(fileContents);
550
440
  } catch (error) {
551
441
  console.error(`Error reading file: ${filePath}`);
552
442
  return null;
553
443
  }
554
444
  };
445
+ function mapProjects(packages) {
446
+ if (!packages) {
447
+ return [];
448
+ }
449
+ return packages.map((pkg) => ({
450
+ name: pkg.packageName,
451
+ path: join3(
452
+ projectRoot2,
453
+ "node_modules",
454
+ pkg.packageName,
455
+ "dist",
456
+ "es",
457
+ "index.js"
458
+ )
459
+ }));
460
+ }
461
+ function generateImportSctipt(outputPath, projects) {
462
+ const importScriptFilePath = join3(outputPath, IMPORT_SCRIPT_FILE);
463
+ if (!fs4.existsSync(outputPath)) {
464
+ fs4.mkdirSync(outputPath, { recursive: true });
465
+ }
466
+ if (!fs4.existsSync(importScriptFilePath)) {
467
+ fs4.writeFileSync(importScriptFilePath, "");
468
+ }
469
+ const imports = [];
470
+ const moduleNames = [];
471
+ let counter = 0;
472
+ for (const project of projects) {
473
+ if (fs4.existsSync(project.path)) {
474
+ const moduleName = `module${counter}`;
475
+ moduleNames.push(moduleName);
476
+ imports.push(`import * as ${moduleName} from '${project.path}';`);
477
+ counter++;
478
+ } else {
479
+ console.error(
480
+ `Can not import project: ${project.name}, file not found: ${project.path}. Did you build the project or install it?`
481
+ );
482
+ }
483
+ }
484
+ const exportStatement = `export default [${moduleNames.join(", ")}];`;
485
+ const fileContent = `${imports.join("\n")}
486
+
487
+ ${exportStatement}`;
488
+ fs4.writeFileSync(importScriptFilePath, fileContent);
489
+ }
555
490
  function startConnectStudio(options) {
556
491
  const serverOptions = {};
557
492
  if (options.port) {
@@ -566,17 +501,27 @@ function startConnectStudio(options) {
566
501
  if (options.configFile) {
567
502
  const config = readJsonFile(options.configFile);
568
503
  if (!config) return;
569
- const configFileDir = dirname3(options.configFile);
504
+ const configFileDir = dirname(options.configFile);
570
505
  if (config.packages && config.packages.length > 0) {
571
- serverOptions.packages = config.packages.map((p) => p.packageName);
506
+ const packages = mapProjects(config.packages);
507
+ generateImportSctipt(configFileDir, packages);
508
+ process.env.LOAD_EXTERNAL_PROJECTS = "true";
509
+ serverOptions.enableExternalProjects = true;
510
+ serverOptions.projectsImportPath = resolve(
511
+ configFileDir,
512
+ IMPORT_SCRIPT_FILE
513
+ );
514
+ } else {
515
+ process.env.LOAD_EXTERNAL_PROJECTS = "false";
516
+ serverOptions.enableExternalProjects = false;
572
517
  }
573
518
  if (config.documentModelsDir) {
574
519
  process.env.LOCAL_DOCUMENT_MODELS = isAbsolute(
575
520
  config.documentModelsDir
576
- ) ? config.documentModelsDir : join5(configFileDir, config.documentModelsDir);
521
+ ) ? config.documentModelsDir : join3(configFileDir, config.documentModelsDir);
577
522
  }
578
523
  if (config.editorsDir) {
579
- process.env.LOCAL_DOCUMENT_EDITORS = isAbsolute(config.editorsDir) ? config.editorsDir : join5(configFileDir, config.editorsDir);
524
+ process.env.LOCAL_DOCUMENT_EDITORS = isAbsolute(config.editorsDir) ? config.editorsDir : join3(configFileDir, config.editorsDir);
580
525
  }
581
526
  if (config.studio?.port) {
582
527
  process.env.PORT = config.studio.port.toString();
@@ -587,9 +532,19 @@ function startConnectStudio(options) {
587
532
  if (config.studio?.host) {
588
533
  process.env.HOST = config.studio.host;
589
534
  }
535
+ } else {
536
+ process.env.LOAD_EXTERNAL_PROJECTS = "false";
537
+ serverOptions.enableExternalProjects = false;
590
538
  }
591
539
  if (options.packages && options.packages.length > 0) {
592
- serverOptions.packages = options.packages.map((p) => p.packageName);
540
+ const packages = mapProjects(options.packages);
541
+ generateImportSctipt(projectRoot2, packages);
542
+ process.env.LOAD_EXTERNAL_PROJECTS = "true";
543
+ serverOptions.enableExternalProjects = true;
544
+ serverOptions.projectsImportPath = resolve(
545
+ projectRoot2,
546
+ IMPORT_SCRIPT_FILE
547
+ );
593
548
  }
594
549
  if (options.localEditors) {
595
550
  process.env.LOCAL_DOCUMENT_EDITORS = options.localEditors;
@@ -619,6 +574,7 @@ program.command("help").description("Display help information").action(() => {
619
574
  program.help();
620
575
  });
621
576
  export {
577
+ generateImportSctipt,
622
578
  program,
623
579
  startConnectStudio
624
580
  };