@dxos/app-framework 0.8.4-main.b97322e → 0.8.4-main.bcb3aa67d6

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 (505) hide show
  1. package/.storybook/main.mts +9 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  4. package/dist/lib/browser/capability-4NSF2SOO.mjs +38 -0
  5. package/dist/lib/browser/capability-4NSF2SOO.mjs.map +7 -0
  6. package/dist/lib/browser/capability-EB3UKSKA.mjs +35 -0
  7. package/dist/lib/browser/capability-EB3UKSKA.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-27FZETIA.mjs +950 -0
  9. package/dist/lib/browser/chunk-27FZETIA.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-CV7I2AAB.mjs +80 -0
  11. package/dist/lib/browser/chunk-CV7I2AAB.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-FL2XTEJH.mjs +76 -0
  13. package/dist/lib/browser/chunk-FL2XTEJH.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-H7OMDDGW.mjs +42 -0
  15. package/dist/lib/browser/chunk-H7OMDDGW.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-HDQXX5DC.mjs +157 -0
  17. package/dist/lib/browser/chunk-HDQXX5DC.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-I34GF4NG.mjs +34 -0
  19. package/dist/lib/browser/chunk-I34GF4NG.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  21. package/dist/lib/browser/chunk-KNBRTZVK.mjs +892 -0
  22. package/dist/lib/browser/chunk-KNBRTZVK.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-NO7R7QHA.mjs +167 -0
  24. package/dist/lib/browser/chunk-NO7R7QHA.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-P2E7VMRF.mjs +148 -0
  26. package/dist/lib/browser/chunk-P2E7VMRF.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-QSXYHXCE.mjs +48 -0
  28. package/dist/lib/browser/chunk-QSXYHXCE.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-RFSO3JRG.mjs +1 -0
  30. package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
  31. package/dist/lib/browser/chunk-TGX63LTL.mjs.map +7 -0
  32. package/dist/lib/browser/cli/index.mjs +90 -0
  33. package/dist/lib/browser/cli/index.mjs.map +7 -0
  34. package/dist/lib/browser/common/activation-events.mjs +24 -0
  35. package/dist/lib/browser/common/capabilities.mjs +46 -0
  36. package/dist/lib/browser/core/activation-event.mjs +20 -0
  37. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  38. package/dist/lib/browser/core/capability.mjs +28 -0
  39. package/dist/lib/browser/core/capability.mjs.map +7 -0
  40. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  41. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  42. package/dist/lib/browser/core/plugin.mjs +29 -0
  43. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  44. package/dist/lib/browser/core/url-loader.mjs +12 -0
  45. package/dist/lib/browser/core/url-loader.mjs.map +7 -0
  46. package/dist/lib/browser/index.mjs +91 -156
  47. package/dist/lib/browser/index.mjs.map +4 -4
  48. package/dist/lib/browser/invoker-capability-P7KPBTP3.mjs +43 -0
  49. package/dist/lib/browser/invoker-capability-P7KPBTP3.mjs.map +7 -0
  50. package/dist/lib/browser/meta.json +1 -1
  51. package/dist/lib/browser/testing/index.mjs +115 -51
  52. package/dist/lib/browser/testing/index.mjs.map +4 -4
  53. package/dist/lib/browser/ui/index.mjs +44 -0
  54. package/dist/lib/browser/ui/index.mjs.map +7 -0
  55. package/dist/lib/node-esm/capability-CB3MNEI3.mjs +39 -0
  56. package/dist/lib/node-esm/capability-CB3MNEI3.mjs.map +7 -0
  57. package/dist/lib/node-esm/capability-CMROGK7R.mjs +36 -0
  58. package/dist/lib/node-esm/capability-CMROGK7R.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-37NG7SIN.mjs +77 -0
  60. package/dist/lib/node-esm/chunk-37NG7SIN.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-7JPKC7OM.mjs +893 -0
  62. package/dist/lib/node-esm/chunk-7JPKC7OM.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-7PPVTBYR.mjs +81 -0
  64. package/dist/lib/node-esm/chunk-7PPVTBYR.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-BQ56U4QX.mjs +43 -0
  66. package/dist/lib/node-esm/chunk-BQ56U4QX.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-CG6UBBZZ.mjs +149 -0
  68. package/dist/lib/node-esm/chunk-CG6UBBZZ.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs +2 -0
  70. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-EXYTXQ47.mjs +168 -0
  72. package/dist/lib/node-esm/chunk-EXYTXQ47.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs +10 -0
  74. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  76. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-OXXXRCQX.mjs +158 -0
  78. package/dist/lib/node-esm/chunk-OXXXRCQX.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs +35 -0
  80. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-YH44RHP6.mjs +951 -0
  82. package/dist/lib/node-esm/chunk-YH44RHP6.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs +49 -0
  84. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs.map +7 -0
  85. package/dist/lib/node-esm/cli/index.mjs +91 -0
  86. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  87. package/dist/lib/node-esm/common/activation-events.mjs +25 -0
  88. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  89. package/dist/lib/node-esm/common/capabilities.mjs +47 -0
  90. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  91. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  92. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  93. package/dist/lib/node-esm/core/capability.mjs +29 -0
  94. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  95. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  96. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  97. package/dist/lib/node-esm/core/plugin.mjs +30 -0
  98. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  99. package/dist/lib/node-esm/core/url-loader.mjs +13 -0
  100. package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
  101. package/dist/lib/node-esm/index.mjs +91 -156
  102. package/dist/lib/node-esm/index.mjs.map +4 -4
  103. package/dist/lib/node-esm/invoker-capability-3C5H46ZY.mjs +44 -0
  104. package/dist/lib/node-esm/invoker-capability-3C5H46ZY.mjs.map +7 -0
  105. package/dist/lib/node-esm/meta.json +1 -1
  106. package/dist/lib/node-esm/testing/index.mjs +115 -51
  107. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  108. package/dist/lib/node-esm/ui/index.mjs +45 -0
  109. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  110. package/dist/plugin/node-esm/index.mjs +384 -0
  111. package/dist/plugin/node-esm/index.mjs.map +7 -0
  112. package/dist/plugin/node-esm/meta.json +1 -0
  113. package/dist/types/src/cli/cli.d.ts +39 -0
  114. package/dist/types/src/cli/cli.d.ts.map +1 -0
  115. package/dist/types/src/cli/index.d.ts +2 -0
  116. package/dist/types/src/cli/index.d.ts.map +1 -0
  117. package/dist/types/src/common/activation-events.d.ts +27 -0
  118. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  119. package/dist/types/src/common/capabilities.d.ts +109 -123
  120. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  121. package/dist/types/src/common/index.d.ts +4 -8
  122. package/dist/types/src/common/index.d.ts.map +1 -1
  123. package/dist/types/src/common/operations.d.ts +19 -0
  124. package/dist/types/src/common/operations.d.ts.map +1 -0
  125. package/dist/types/src/common/translations.d.ts +8 -8
  126. package/dist/types/src/common/translations.d.ts.map +1 -1
  127. package/dist/types/src/context.d.ts +5 -0
  128. package/dist/types/src/context.d.ts.map +1 -0
  129. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +7 -7
  130. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  131. package/dist/types/src/core/capability-manager.d.ts +43 -0
  132. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  133. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  134. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  135. package/dist/types/src/core/capability.d.ts +150 -0
  136. package/dist/types/src/core/capability.d.ts.map +1 -0
  137. package/dist/types/src/core/index.d.ts +6 -4
  138. package/dist/types/src/core/index.d.ts.map +1 -1
  139. package/dist/types/src/core/plugin-manager.d.ts +73 -0
  140. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  141. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  142. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  143. package/dist/types/src/core/plugin.d.ts +103 -33
  144. package/dist/types/src/core/plugin.d.ts.map +1 -1
  145. package/dist/types/src/core/url-loader.d.ts +25 -0
  146. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  147. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  148. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  149. package/dist/types/src/index.d.ts +3 -4
  150. package/dist/types/src/index.d.ts.map +1 -1
  151. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  152. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  153. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  154. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  155. package/dist/types/src/plugin-operation/history/errors.d.ts +32 -0
  156. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  157. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  158. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  159. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  160. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  162. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  163. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  164. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  165. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  166. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  167. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  168. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  169. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  170. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  171. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  172. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  173. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  174. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  175. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  176. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  177. package/dist/types/src/plugin-operation/testing.d.ts +58 -0
  178. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  179. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  180. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  181. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  182. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  183. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  184. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  185. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  186. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  187. package/dist/types/src/testing/index.d.ts +1 -0
  188. package/dist/types/src/testing/index.d.ts.map +1 -1
  189. package/dist/types/src/testing/service.d.ts +8 -0
  190. package/dist/types/src/testing/service.d.ts.map +1 -0
  191. package/dist/types/src/testing/withPluginManager.d.ts +11 -10
  192. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  193. package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
  194. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  195. package/dist/types/src/ui/components/App/App.d.ts +9 -0
  196. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  197. package/dist/types/src/ui/components/App/App.stories.d.ts +19 -0
  198. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  199. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  200. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  201. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts +13 -0
  202. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  203. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
  204. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  205. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  206. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  207. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
  208. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  209. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts +14 -0
  210. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  211. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
  212. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  213. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  214. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  215. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  216. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  217. package/dist/types/src/ui/components/Surface/index.d.ts +26 -0
  218. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  219. package/dist/types/src/ui/components/Surface/types.d.ts +96 -0
  220. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  221. package/dist/types/src/ui/components/index.d.ts +4 -0
  222. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  223. package/dist/types/src/ui/hooks/index.d.ts +6 -0
  224. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  225. package/dist/types/src/ui/hooks/useApp.d.ts +62 -0
  226. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  227. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  228. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  229. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  230. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  231. package/dist/types/src/ui/hooks/useLoading.d.ts +18 -0
  232. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  233. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  234. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  235. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  236. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  237. package/dist/types/src/ui/index.d.ts +3 -0
  238. package/dist/types/src/ui/index.d.ts.map +1 -0
  239. package/dist/types/src/vite-plugin/composer-plugin.d.ts +18 -0
  240. package/dist/types/src/vite-plugin/composer-plugin.d.ts.map +1 -0
  241. package/dist/types/src/vite-plugin/import-map-plugin.d.ts +16 -0
  242. package/dist/types/src/vite-plugin/import-map-plugin.d.ts.map +1 -0
  243. package/dist/types/src/vite-plugin/index.d.ts +3 -0
  244. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  245. package/dist/types/src/vite-plugin/packages.d.ts +7 -0
  246. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  247. package/dist/types/tsconfig.tsbuildinfo +1 -1
  248. package/moon.yml +25 -3
  249. package/package.json +132 -44
  250. package/src/cli/cli.ts +107 -0
  251. package/src/{playground/layout → cli}/index.ts +1 -1
  252. package/src/common/activation-events.ts +44 -0
  253. package/src/common/capabilities.ts +168 -114
  254. package/src/common/index.ts +4 -8
  255. package/src/common/operations.ts +36 -0
  256. package/src/common/translations.ts +18 -10
  257. package/src/context.ts +9 -0
  258. package/src/core/{events.ts → activation-event.ts} +10 -7
  259. package/src/core/capability-manager.test.ts +151 -0
  260. package/src/core/capability-manager.ts +171 -0
  261. package/src/core/capability.ts +237 -0
  262. package/src/core/index.ts +6 -4
  263. package/src/core/plugin-manager.test.ts +1114 -0
  264. package/src/core/plugin-manager.ts +883 -0
  265. package/src/core/plugin.ts +238 -37
  266. package/src/core/url-loader.test.ts +79 -0
  267. package/src/core/url-loader.ts +148 -0
  268. package/src/helpers.test.ts +1 -1
  269. package/src/index.ts +3 -4
  270. package/src/plugin-operation/OperationPlugin.ts +25 -0
  271. package/src/plugin-operation/history/capability.ts +37 -0
  272. package/src/plugin-operation/history/errors.ts +7 -0
  273. package/src/plugin-operation/history/history-tracker.test.ts +374 -0
  274. package/src/plugin-operation/history/history-tracker.ts +129 -0
  275. package/src/plugin-operation/history/index.ts +9 -0
  276. package/src/plugin-operation/history/types.ts +17 -0
  277. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  278. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  279. package/src/plugin-operation/history/undo-registry.ts +54 -0
  280. package/src/plugin-operation/index.ts +6 -0
  281. package/src/plugin-operation/invoker-capability.ts +54 -0
  282. package/src/plugin-operation/meta.ts +11 -0
  283. package/src/plugin-operation/testing.ts +154 -0
  284. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  285. package/src/plugin-runtime/capability.ts +53 -0
  286. package/src/{playground/debug → plugin-runtime}/index.ts +1 -1
  287. package/src/plugin-runtime/meta.ts +11 -0
  288. package/src/testing/index.ts +1 -0
  289. package/src/testing/service.ts +52 -0
  290. package/src/testing/withPluginManager.stories.tsx +15 -11
  291. package/src/testing/withPluginManager.tsx +80 -54
  292. package/src/ui/components/App/App.stories.tsx +92 -0
  293. package/src/ui/components/App/App.tsx +58 -0
  294. package/src/{playground/logger → ui/components/App}/index.ts +1 -1
  295. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +183 -0
  296. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
  297. package/src/ui/components/PluginManager/index.ts +5 -0
  298. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +145 -0
  299. package/src/ui/components/Surface/SurfaceComponent.tsx +257 -0
  300. package/src/ui/components/Surface/SurfaceInfo.tsx +107 -0
  301. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  302. package/src/ui/components/Surface/context.ts +12 -0
  303. package/src/ui/components/Surface/index.ts +35 -0
  304. package/src/ui/components/Surface/types.ts +117 -0
  305. package/src/ui/components/index.ts +7 -0
  306. package/src/ui/hooks/index.ts +9 -0
  307. package/src/ui/hooks/useApp.test.tsx +159 -0
  308. package/src/ui/hooks/useApp.tsx +289 -0
  309. package/src/ui/hooks/useCapabilities.ts +67 -0
  310. package/src/ui/hooks/useLoading.tsx +68 -0
  311. package/src/ui/hooks/useSettingsState.ts +26 -0
  312. package/src/ui/hooks/useSurface.ts +13 -0
  313. package/src/ui/index.ts +6 -0
  314. package/src/vite-plugin/composer-plugin.ts +128 -0
  315. package/src/vite-plugin/import-map-plugin.ts +315 -0
  316. package/src/vite-plugin/index.ts +6 -0
  317. package/src/vite-plugin/packages.ts +29 -0
  318. package/tsconfig.json +15 -28
  319. package/tsconfig.node.json +2 -4
  320. package/typedoc.json +2 -4
  321. package/vitest.config.ts +8 -6
  322. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  323. package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
  324. package/dist/lib/browser/app-graph-builder-LYF7EKNN.mjs +0 -137
  325. package/dist/lib/browser/app-graph-builder-LYF7EKNN.mjs.map +0 -7
  326. package/dist/lib/browser/chunk-FMN65HSW.mjs +0 -1519
  327. package/dist/lib/browser/chunk-FMN65HSW.mjs.map +0 -7
  328. package/dist/lib/browser/chunk-FO2PH7M3.mjs +0 -415
  329. package/dist/lib/browser/chunk-FO2PH7M3.mjs.map +0 -7
  330. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  331. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  332. package/dist/lib/browser/intent-dispatcher-LSYQZSEB.mjs +0 -11
  333. package/dist/lib/browser/intent-resolver-ZTNOSO3A.mjs +0 -39
  334. package/dist/lib/browser/intent-resolver-ZTNOSO3A.mjs.map +0 -7
  335. package/dist/lib/browser/store-KML2R4IE.mjs +0 -30
  336. package/dist/lib/browser/store-KML2R4IE.mjs.map +0 -7
  337. package/dist/lib/browser/worker.mjs +0 -79
  338. package/dist/lib/node-esm/app-graph-builder-SAOWGJDK.mjs +0 -138
  339. package/dist/lib/node-esm/app-graph-builder-SAOWGJDK.mjs.map +0 -7
  340. package/dist/lib/node-esm/chunk-73HGSHKE.mjs +0 -416
  341. package/dist/lib/node-esm/chunk-73HGSHKE.mjs.map +0 -7
  342. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  343. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  344. package/dist/lib/node-esm/chunk-ZEZ4FVEU.mjs +0 -1521
  345. package/dist/lib/node-esm/chunk-ZEZ4FVEU.mjs.map +0 -7
  346. package/dist/lib/node-esm/intent-dispatcher-6CYNGPSW.mjs +0 -12
  347. package/dist/lib/node-esm/intent-resolver-W7Z7WFFM.mjs +0 -40
  348. package/dist/lib/node-esm/intent-resolver-W7Z7WFFM.mjs.map +0 -7
  349. package/dist/lib/node-esm/store-QEXGXLWZ.mjs +0 -31
  350. package/dist/lib/node-esm/store-QEXGXLWZ.mjs.map +0 -7
  351. package/dist/lib/node-esm/worker.mjs +0 -80
  352. package/dist/types/src/App.d.ts +0 -43
  353. package/dist/types/src/App.d.ts.map +0 -1
  354. package/dist/types/src/common/collaboration.d.ts +0 -19
  355. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  356. package/dist/types/src/common/events.d.ts +0 -52
  357. package/dist/types/src/common/events.d.ts.map +0 -1
  358. package/dist/types/src/common/file.d.ts +0 -14
  359. package/dist/types/src/common/file.d.ts.map +0 -1
  360. package/dist/types/src/common/graph.d.ts +0 -21
  361. package/dist/types/src/common/graph.d.ts.map +0 -1
  362. package/dist/types/src/common/layout.d.ts +0 -281
  363. package/dist/types/src/common/layout.d.ts.map +0 -1
  364. package/dist/types/src/common/surface.d.ts +0 -65
  365. package/dist/types/src/common/surface.d.ts.map +0 -1
  366. package/dist/types/src/core/capabilities.d.ts +0 -114
  367. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  368. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  369. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  370. package/dist/types/src/core/events.d.ts.map +0 -1
  371. package/dist/types/src/core/manager.d.ts +0 -122
  372. package/dist/types/src/core/manager.d.ts.map +0 -1
  373. package/dist/types/src/core/manager.test.d.ts +0 -2
  374. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  375. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  376. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  377. package/dist/types/src/playground/debug/index.d.ts +0 -2
  378. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  379. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  380. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  381. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  382. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  383. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  384. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  385. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  386. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  387. package/dist/types/src/playground/generator/index.d.ts +0 -3
  388. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  389. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  390. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  391. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  392. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  393. package/dist/types/src/playground/layout/index.d.ts +0 -2
  394. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  395. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  396. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  397. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  398. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  399. package/dist/types/src/playground/logger/index.d.ts +0 -2
  400. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  401. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  402. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  403. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  404. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  405. package/dist/types/src/playground/playground.stories.d.ts +0 -10
  406. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  407. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  408. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  409. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  410. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  411. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  412. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  413. package/dist/types/src/plugin-intent/index.d.ts +0 -5
  414. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  415. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  416. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  417. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  418. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  419. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  420. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  421. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  422. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  423. package/dist/types/src/plugin-settings/actions.d.ts +0 -27
  424. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  425. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  426. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  427. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  428. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  429. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  430. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  431. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  432. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  433. package/dist/types/src/plugin-settings/translations.d.ts +0 -10
  434. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  435. package/dist/types/src/react/ErrorBoundary.d.ts +0 -31
  436. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  437. package/dist/types/src/react/IntentContext.d.ts +0 -8
  438. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  439. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  440. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  441. package/dist/types/src/react/Surface.d.ts +0 -12
  442. package/dist/types/src/react/Surface.d.ts.map +0 -1
  443. package/dist/types/src/react/Surface.stories.d.ts +0 -16
  444. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  445. package/dist/types/src/react/common.d.ts +0 -13
  446. package/dist/types/src/react/common.d.ts.map +0 -1
  447. package/dist/types/src/react/index.d.ts +0 -7
  448. package/dist/types/src/react/index.d.ts.map +0 -1
  449. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  450. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  451. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  452. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  453. package/dist/types/src/worker.d.ts +0 -4
  454. package/dist/types/src/worker.d.ts.map +0 -1
  455. package/src/App.tsx +0 -276
  456. package/src/common/collaboration.ts +0 -21
  457. package/src/common/events.ts +0 -77
  458. package/src/common/file.ts +0 -22
  459. package/src/common/graph.ts +0 -30
  460. package/src/common/layout.ts +0 -278
  461. package/src/common/surface.ts +0 -86
  462. package/src/core/capabilities.test.ts +0 -136
  463. package/src/core/capabilities.ts +0 -254
  464. package/src/core/manager.test.ts +0 -515
  465. package/src/core/manager.ts +0 -519
  466. package/src/playground/debug/Debug.tsx +0 -39
  467. package/src/playground/debug/plugin.ts +0 -17
  468. package/src/playground/generator/Main.tsx +0 -71
  469. package/src/playground/generator/Toolbar.tsx +0 -46
  470. package/src/playground/generator/generator.ts +0 -48
  471. package/src/playground/generator/index.ts +0 -6
  472. package/src/playground/generator/plugin.ts +0 -23
  473. package/src/playground/layout/Layout.tsx +0 -33
  474. package/src/playground/layout/plugin.ts +0 -17
  475. package/src/playground/logger/Toolbar.tsx +0 -29
  476. package/src/playground/logger/plugin.ts +0 -36
  477. package/src/playground/logger/schema.ts +0 -12
  478. package/src/playground/playground.stories.tsx +0 -42
  479. package/src/plugin-intent/IntentPlugin.ts +0 -20
  480. package/src/plugin-intent/actions.ts +0 -33
  481. package/src/plugin-intent/errors.ts +0 -39
  482. package/src/plugin-intent/index.ts +0 -8
  483. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  484. package/src/plugin-intent/intent-dispatcher.ts +0 -333
  485. package/src/plugin-intent/intent.ts +0 -154
  486. package/src/plugin-settings/SettingsPlugin.ts +0 -35
  487. package/src/plugin-settings/actions.ts +0 -29
  488. package/src/plugin-settings/app-graph-builder.ts +0 -157
  489. package/src/plugin-settings/index.ts +0 -6
  490. package/src/plugin-settings/intent-resolver.ts +0 -34
  491. package/src/plugin-settings/store.ts +0 -33
  492. package/src/plugin-settings/translations.ts +0 -19
  493. package/src/react/ErrorBoundary.tsx +0 -45
  494. package/src/react/IntentContext.tsx +0 -34
  495. package/src/react/Surface.stories.tsx +0 -96
  496. package/src/react/Surface.tsx +0 -77
  497. package/src/react/common.ts +0 -12
  498. package/src/react/index.ts +0 -10
  499. package/src/react/useCapabilities.ts +0 -30
  500. package/src/react/useIntentResolver.ts +0 -22
  501. package/src/worker.ts +0 -11
  502. /package/dist/lib/browser/{intent-dispatcher-LSYQZSEB.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  503. /package/dist/lib/browser/{worker.mjs.map → chunk-RFSO3JRG.mjs.map} +0 -0
  504. /package/dist/lib/{node-esm/intent-dispatcher-6CYNGPSW.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  505. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
@@ -0,0 +1,315 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import { init as initCjsLexer, parse as parseCjs } from 'cjs-module-lexer';
6
+ import { existsSync, readFileSync } from 'node:fs';
7
+ import { createRequire as nodeCreateRequire } from 'node:module';
8
+ import path from 'node:path';
9
+
10
+ import { type Plugin } from 'vite';
11
+
12
+ import { DEFAULT_PACKAGES } from './packages';
13
+
14
+ const require = nodeCreateRequire(import.meta.url);
15
+
16
+ //
17
+ // Import map helpers.
18
+ // These utilities support `importMapPlugin` by resolving package entrypoints,
19
+ // detecting module formats (ESM vs CJS), and extracting named exports from CJS bundles.
20
+ //
21
+
22
+ /** Strips vite query strings (e.g. `?v=123`) from resolved module IDs. */
23
+ const trimQueryString = (id: string) => id.replace(/\?.*$/, '');
24
+
25
+ /**
26
+ * Determines whether a resolved file is an ESM module by checking file extension
27
+ * first (.mjs/.cjs), then walking up to the nearest package.json for `"type": "module"`.
28
+ */
29
+ const resolvedIdIsEsmModule = (resolvedId: string): boolean => {
30
+ const file = trimQueryString(resolvedId);
31
+ if (file.endsWith('.mjs') || file.endsWith('.mts')) {
32
+ return true;
33
+ }
34
+ if (file.endsWith('.cjs') || file.endsWith('.cts')) {
35
+ return false;
36
+ }
37
+
38
+ let directory = path.dirname(file);
39
+ while (directory !== path.dirname(directory)) {
40
+ const packageJsonPath = path.join(directory, 'package.json');
41
+ if (existsSync(packageJsonPath)) {
42
+ try {
43
+ const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf8')) as { type?: string };
44
+ return pkg.type === 'module';
45
+ } catch {
46
+ return false;
47
+ }
48
+ }
49
+ directory = path.dirname(directory);
50
+ }
51
+
52
+ return false;
53
+ };
54
+
55
+ /**
56
+ * Walks up from a resolved file path to find the package.json whose `"name"` matches
57
+ * the given package name. Returns the path to that package.json, or undefined.
58
+ */
59
+ const findPackageJsonPath = (resolvedId: string, packageName: string): string | undefined => {
60
+ let directory = path.dirname(trimQueryString(resolvedId));
61
+
62
+ while (directory !== path.dirname(directory)) {
63
+ const packageJsonPath = path.join(directory, 'package.json');
64
+ if (existsSync(packageJsonPath)) {
65
+ try {
66
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')) as { name?: string };
67
+ if (packageJson.name === packageName) {
68
+ return packageJsonPath;
69
+ }
70
+ } catch {}
71
+ }
72
+
73
+ directory = path.dirname(directory);
74
+ }
75
+
76
+ return undefined;
77
+ };
78
+
79
+ /** Resolves a package name to its package.json path using Node's require.resolve. */
80
+ const resolvePackageJsonPath = (packageName: string): string | undefined => {
81
+ try {
82
+ return findPackageJsonPath(require.resolve(packageName), packageName);
83
+ } catch {
84
+ return undefined;
85
+ }
86
+ };
87
+
88
+ /**
89
+ * Subpath exports that should be excluded from the import map.
90
+ * These are node-only entrypoints (vite plugins, native addons) that shouldn't be pre-bundled for the browser.
91
+ */
92
+ const importMapExcludedSubpaths: Readonly<Record<string, ReadonlySet<string>>> = {
93
+ '@dxos/app-framework': new Set(['vite-plugin']),
94
+ '@dxos/ui-theme': new Set(['plugin']),
95
+ };
96
+
97
+ /**
98
+ * Reads a package's `exports` field and returns all JS subpath entrypoints as bare specifiers
99
+ * (e.g. `@dxos/client`, `@dxos/client/echo`). Skips wildcard patterns, non-JS assets,
100
+ * and excluded subpaths. Falls back to just the package name if exports is absent or simple.
101
+ */
102
+ const getPackageEntrypoints = (packageName: string, packageJsonPath: string): string[] => {
103
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')) as {
104
+ exports?: Record<string, unknown> | string | string[];
105
+ };
106
+ const exportsField = packageJson.exports;
107
+
108
+ if (!exportsField || typeof exportsField === 'string' || Array.isArray(exportsField)) {
109
+ return [packageName];
110
+ }
111
+
112
+ const exportKeys = Object.keys(exportsField);
113
+ if (!exportKeys.some((key) => key.startsWith('.'))) {
114
+ return [packageName];
115
+ }
116
+
117
+ const excluded = importMapExcludedSubpaths[packageName];
118
+ const modules = exportKeys.flatMap((key) => {
119
+ if (key === '.') {
120
+ return [packageName];
121
+ }
122
+
123
+ if (!key.startsWith('./') || key === './package.json' || key.includes('*')) {
124
+ return [];
125
+ }
126
+
127
+ const subpath = key.slice(2);
128
+ if (excluded?.has(subpath)) {
129
+ return [];
130
+ }
131
+
132
+ if (/\.(css|pcss|scss|less|json|node|wasm|html|svg|png|jpg)$/.test(subpath)) {
133
+ return [];
134
+ }
135
+
136
+ return [`${packageName}/${subpath}`];
137
+ });
138
+
139
+ return modules.length > 0 ? modules : [packageName];
140
+ };
141
+
142
+ /**
143
+ * Statically analyzes a CJS file to extract named exports using cjs-module-lexer.
144
+ * Follows re-exports (e.g. react's index.js re-exports from cjs/react.development.js)
145
+ * and deduplicates. Filters out `default` and `__esModule` pseudo-exports.
146
+ */
147
+ const getCjsNamedExports = (filePath: string, seen = new Set<string>()): string[] => {
148
+ const normalized = trimQueryString(filePath);
149
+ if (seen.has(normalized)) {
150
+ return [];
151
+ }
152
+ seen.add(normalized);
153
+
154
+ try {
155
+ const source = readFileSync(normalized, 'utf8');
156
+ const { exports: directExports, reexports } = parseCjs(source);
157
+
158
+ const reexportedNames = reexports.flatMap((reexport) => {
159
+ const resolved = path.resolve(path.dirname(normalized), reexport);
160
+ const candidates = [resolved, `${resolved}.js`, `${resolved}.cjs`];
161
+ const found = candidates.find((candidate) => existsSync(candidate));
162
+ return found ? getCjsNamedExports(found, seen) : [];
163
+ });
164
+
165
+ return [...new Set([...directExports, ...reexportedNames])].filter(
166
+ (name) => name !== 'default' && name !== '__esModule',
167
+ );
168
+ } catch {
169
+ return [];
170
+ }
171
+ };
172
+
173
+ /**
174
+ * Vite plugin for the **host app** (Composer). Generates a browser import map so that
175
+ * shared packages are loaded once and reused by both the host and any remote plugins.
176
+ *
177
+ * In dev mode, maps bare specifiers directly to resolved file paths.
178
+ * In production, emits a dedicated chunk per specifier via virtual wrapper modules,
179
+ * then injects a `<script type="importmap">` tag into the HTML with the chunk URLs.
180
+ *
181
+ * Virtual wrappers are needed because directly emitting chunks for CJS packages loses
182
+ * their named exports due to Rollup's interop. The wrapper re-exports them explicitly.
183
+ */
184
+ export const importMapPlugin = (options?: { packages?: string[] }): Plugin[] => {
185
+ const packages = options?.packages ?? DEFAULT_PACKAGES;
186
+ const WRAPPER_PREFIX = '\0import-map:';
187
+ const chunkRefIds: Record<string, string> = {};
188
+ const resolvedIds: Record<string, string> = {};
189
+ let imports: Record<string, string> = {};
190
+ let modules: string[] = [];
191
+ let importMapIsDev = false;
192
+ let base = '/';
193
+
194
+ return [
195
+ // Phase 1: Resolve all package entrypoints and emit chunks (or record dev paths).
196
+ {
197
+ name: 'import-map:get-chunk-ref-ids',
198
+ configResolved(config) {
199
+ base = config.base ?? '/';
200
+ },
201
+ async buildStart() {
202
+ importMapIsDev = this.environment.mode === 'dev';
203
+ await initCjsLexer();
204
+
205
+ // Expand each package name into its full set of subpath entrypoints
206
+ // (e.g. '@dxos/client' -> ['@dxos/client', '@dxos/client/echo', ...]).
207
+ modules = [
208
+ ...new Set(
209
+ (
210
+ await Promise.all(
211
+ packages.map(async (packageName) => {
212
+ const packageJsonPath = resolvePackageJsonPath(packageName);
213
+ if (!packageJsonPath) {
214
+ this.warn(`Unable to locate package.json for import map package: ${packageName}`);
215
+ return [packageName];
216
+ }
217
+
218
+ return getPackageEntrypoints(packageName, packageJsonPath);
219
+ }),
220
+ )
221
+ ).flat(),
222
+ ),
223
+ ];
224
+
225
+ for (const specifier of modules) {
226
+ const resolved = await this.resolve(specifier);
227
+ if (!resolved) {
228
+ this.warn(`Import map: unable to resolve "${specifier}"; omitting from import map.`);
229
+ continue;
230
+ }
231
+
232
+ if (importMapIsDev) {
233
+ // Dev: map bare specifier directly to the resolved file path.
234
+ imports[specifier] = trimQueryString(resolved.id);
235
+ } else {
236
+ // Prod: emit a virtual wrapper chunk that re-exports from the real module.
237
+ resolvedIds[specifier] = resolved.id;
238
+ chunkRefIds[specifier] = this.emitFile({
239
+ type: 'chunk',
240
+ id: `${WRAPPER_PREFIX}${specifier}`,
241
+ preserveSignature: 'strict',
242
+ });
243
+ }
244
+ }
245
+ },
246
+
247
+ // Intercept virtual wrapper IDs so Rollup doesn't try to resolve them as files.
248
+ resolveId(id) {
249
+ if (id.startsWith(WRAPPER_PREFIX)) {
250
+ return id;
251
+ }
252
+ },
253
+
254
+ // Generate the source for each virtual wrapper module.
255
+ // For CJS packages, explicitly re-export named exports (discovered via static analysis)
256
+ // because Rollup's `export *` interop doesn't preserve them for CJS.
257
+ load(id) {
258
+ if (!id.startsWith(WRAPPER_PREFIX)) {
259
+ return;
260
+ }
261
+ const specifier = id.slice(WRAPPER_PREFIX.length);
262
+ const resolvedId = resolvedIds[specifier];
263
+ if (!resolvedId) {
264
+ return `export * from ${JSON.stringify(specifier)};\n`;
265
+ }
266
+
267
+ const filePath = trimQueryString(resolvedId);
268
+ const isCjs = filePath.endsWith('.cjs') || (!filePath.endsWith('.mjs') && !resolvedIdIsEsmModule(filePath));
269
+
270
+ if (isCjs) {
271
+ const named = getCjsNamedExports(filePath);
272
+ if (named.length > 0) {
273
+ return `export { default, ${named.join(', ')} } from ${JSON.stringify(specifier)};\n`;
274
+ }
275
+ }
276
+ return `export * from ${JSON.stringify(specifier)};\n`;
277
+ },
278
+
279
+ // After bundling, map each specifier to the URL of its emitted chunk.
280
+ generateBundle() {
281
+ if (importMapIsDev) {
282
+ return;
283
+ }
284
+
285
+ imports = Object.fromEntries(
286
+ modules
287
+ .filter((specifier) => chunkRefIds[specifier] !== undefined)
288
+ .map((specifier) => [specifier, `${base}${this.getFileName(chunkRefIds[specifier])}`]),
289
+ );
290
+ },
291
+ },
292
+
293
+ // Phase 2: Inject the import map into the HTML as a <script type="importmap"> tag.
294
+ {
295
+ name: 'import-map:transform-index-html',
296
+ enforce: 'post',
297
+ transformIndexHtml(html: string) {
298
+ const tags = [
299
+ {
300
+ tag: 'script',
301
+ attrs: {
302
+ type: 'importmap',
303
+ },
304
+ children: JSON.stringify({ imports }, null, 2),
305
+ },
306
+ ];
307
+
308
+ return {
309
+ html,
310
+ tags,
311
+ };
312
+ },
313
+ },
314
+ ];
315
+ };
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ export * from './composer-plugin';
6
+ export * from './import-map-plugin';
@@ -0,0 +1,29 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ /**
6
+ * Packages shared between the Composer host app and remote plugins.
7
+ * The host provides these via import map so plugins don't bundle their own copies.
8
+ * Used as the default list for both `importMapPlugin` (host) and `composerPlugin` (plugin).
9
+ */
10
+ export const DEFAULT_PACKAGES = [
11
+ '@dxos/app-framework',
12
+ '@dxos/app-graph',
13
+ '@dxos/app-toolkit',
14
+ '@dxos/client',
15
+ '@dxos/client-protocol',
16
+ '@dxos/client-services',
17
+ '@dxos/config',
18
+ '@dxos/echo',
19
+ '@dxos/lit-ui',
20
+ '@dxos/react-client',
21
+ '@dxos/react-ui',
22
+ '@dxos/schema',
23
+ '@dxos/ui-theme',
24
+ '@effect/platform',
25
+ 'effect',
26
+ 'lit',
27
+ 'react',
28
+ 'react-dom',
29
+ ];
package/tsconfig.json CHANGED
@@ -15,13 +15,13 @@
15
15
  "path": "../../common/debug"
16
16
  },
17
17
  {
18
- "path": "../../common/invariant"
18
+ "path": "../../common/effect"
19
19
  },
20
20
  {
21
- "path": "../../common/keys"
21
+ "path": "../../common/errors"
22
22
  },
23
23
  {
24
- "path": "../../common/local-storage"
24
+ "path": "../../common/invariant"
25
25
  },
26
26
  {
27
27
  "path": "../../common/log"
@@ -33,50 +33,37 @@
33
33
  "path": "../../common/storybook-utils"
34
34
  },
35
35
  {
36
- "path": "../../common/util"
37
- },
38
- {
39
- "path": "../../core/ai"
40
- },
41
- {
42
- "path": "../../core/blueprints"
36
+ "path": "../../common/test-utils"
43
37
  },
44
38
  {
45
- "path": "../../core/echo/echo-schema"
39
+ "path": "../../common/util"
46
40
  },
47
41
  {
48
- "path": "../../core/echo/echo-signals"
42
+ "path": "../../common/web-context"
49
43
  },
50
44
  {
51
- "path": "../../core/echo/live-object"
45
+ "path": "../../common/web-context-react"
52
46
  },
53
47
  {
54
- "path": "../../core/functions"
48
+ "path": "../../core/echo/echo"
55
49
  },
56
50
  {
57
- "path": "../../ui/primitives/react-hooks"
51
+ "path": "../../core/echo/echo-db"
58
52
  },
59
53
  {
60
- "path": "../../ui/react-ui"
54
+ "path": "../../core/operation"
61
55
  },
62
56
  {
63
- "path": "../../ui/react-ui-syntax-highlighter"
57
+ "path": "../../ui/react-primitives/react-error-boundary"
64
58
  },
65
59
  {
66
- "path": "../app-graph"
60
+ "path": "../../ui/react-primitives/react-hooks"
67
61
  },
68
62
  {
69
- "path": "../client-protocol"
63
+ "path": "../../ui/react-ui"
70
64
  },
71
65
  {
72
- "path": "../schema"
66
+ "path": "../../ui/ui-theme"
73
67
  }
74
- ],
75
- "ts-node": {
76
- "compilerOptions": {
77
- "module": "CommonJS"
78
- },
79
- "files": true,
80
- "transpileOnly": true
81
- }
68
+ ]
82
69
  }
@@ -2,10 +2,8 @@
2
2
  "compilerOptions": {
3
3
  "composite": true,
4
4
  "module": "ESNext",
5
- "moduleResolution": "Node",
5
+ "moduleResolution": "Bundler",
6
6
  "allowSyntheticDefaultImports": true
7
7
  },
8
- "include": [
9
- "vite.config.ts"
10
- ]
8
+ "include": ["vite.config.ts"]
11
9
  }
package/typedoc.json CHANGED
@@ -1,7 +1,5 @@
1
1
  {
2
2
  "$schema": "https://typedoc.org/schema.json",
3
3
  "includeVersion": true,
4
- "entryPoints": [
5
- "src/index.ts"
6
- ]
7
- }
4
+ "entryPoints": ["src/index.ts"]
5
+ }
package/vitest.config.ts CHANGED
@@ -2,11 +2,13 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import { defineConfig, mergeConfig } from 'vitest/config';
5
+ import path from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
6
7
 
7
- import { baseConfig } from '../../../vitest.base.config';
8
+ import { createConfig } from '../../../vitest.base.config';
8
9
 
9
- export default mergeConfig(
10
- baseConfig({ cwd: __dirname }),
11
- defineConfig({}),
12
- );
10
+ export default createConfig({
11
+ dirname: typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url)),
12
+ node: { environment: 'jsdom' },
13
+ storybook: true,
14
+ });
@@ -1,137 +0,0 @@
1
- import {
2
- SETTINGS_ID,
3
- SETTINGS_KEY,
4
- SETTINGS_PLUGIN,
5
- SettingsAction
6
- } from "./chunk-ORWHM7CO.mjs";
7
- import {
8
- Capabilities,
9
- contributes,
10
- createIntent
11
- } from "./chunk-FMN65HSW.mjs";
12
-
13
- // src/plugin-settings/app-graph-builder.ts
14
- import { Rx } from "@effect-rx/rx-react";
15
- import { Option, pipe } from "effect";
16
- import { createExtension, ROOT_ID } from "@dxos/app-graph";
17
- import { isNonNullable } from "@dxos/util";
18
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
19
- createExtension({
20
- id: `${SETTINGS_PLUGIN}/action`,
21
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
22
- {
23
- id: SETTINGS_PLUGIN,
24
- data: async () => {
25
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
26
- await dispatch(createIntent(SettingsAction.Open));
27
- },
28
- properties: {
29
- label: [
30
- "open settings label",
31
- {
32
- ns: SETTINGS_PLUGIN
33
- }
34
- ],
35
- icon: "ph--gear--regular",
36
- disposition: "menu",
37
- keyBinding: {
38
- macos: "meta+,",
39
- windows: "alt+,"
40
- }
41
- }
42
- }
43
- ]), Option.getOrElse(() => [])))
44
- }),
45
- createExtension({
46
- id: `${SETTINGS_PLUGIN}/core`,
47
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
48
- {
49
- id: SETTINGS_ID,
50
- type: SETTINGS_PLUGIN,
51
- properties: {
52
- label: [
53
- "app settings label",
54
- {
55
- ns: SETTINGS_PLUGIN
56
- }
57
- ],
58
- icon: "ph--gear--regular",
59
- disposition: "pin-end",
60
- position: "hoist",
61
- testId: "treeView.appSettings"
62
- }
63
- }
64
- ]), Option.getOrElse(() => [])))
65
- }),
66
- createExtension({
67
- id: `${SETTINGS_PLUGIN}/core-plugins`,
68
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id !== SETTINGS_ID ? Option.none() : Option.some(node2)), Option.map(() => {
69
- const manager = get(context.capability(Capabilities.PluginManager));
70
- const [settingsStore] = get(context.capabilities(Capabilities.SettingsStore));
71
- return [
72
- ...manager.plugins.filter((plugin) => manager.core.includes(plugin.meta.id)).map((plugin) => {
73
- const settings = settingsStore?.getStore(plugin.meta.id);
74
- if (!settings) {
75
- return null;
76
- }
77
- return [
78
- plugin.meta,
79
- settings
80
- ];
81
- }).filter(isNonNullable).map(([meta, settings]) => ({
82
- id: `${SETTINGS_KEY}:${meta.id.replaceAll("/", ":")}`,
83
- type: "category",
84
- data: settings,
85
- properties: {
86
- label: meta.name ?? meta.id,
87
- icon: meta.icon ?? "ph--circle--regular"
88
- }
89
- })),
90
- {
91
- id: `${SETTINGS_KEY}:custom-plugins`,
92
- type: "category",
93
- properties: {
94
- label: [
95
- "custom plugins label",
96
- {
97
- ns: SETTINGS_PLUGIN
98
- }
99
- ],
100
- icon: "ph--squares-four--regular",
101
- role: "branch",
102
- disposition: "collection"
103
- }
104
- }
105
- ];
106
- }), Option.getOrElse(() => [])))
107
- }),
108
- createExtension({
109
- id: `${SETTINGS_PLUGIN}/custom-plugins`,
110
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id !== `${SETTINGS_KEY}:custom-plugins` ? Option.none() : Option.some(node2)), Option.map(() => {
111
- const manager = get(context.capability(Capabilities.PluginManager));
112
- const [settingsStore] = get(context.capabilities(Capabilities.SettingsStore));
113
- return manager.plugins.filter((plugin) => !manager.core.includes(plugin.meta.id)).map((plugin) => {
114
- const settings = settingsStore?.getStore(plugin.meta.id);
115
- if (!settings) {
116
- return null;
117
- }
118
- return [
119
- plugin.meta,
120
- settings
121
- ];
122
- }).filter(isNonNullable).map(([meta, settings]) => ({
123
- id: `${SETTINGS_KEY}:${meta.id.replaceAll("/", ":")}`,
124
- type: "category",
125
- data: settings,
126
- properties: {
127
- label: meta.name ?? meta.id,
128
- icon: meta.icon ?? "ph--circle--regular"
129
- }
130
- }));
131
- }), Option.getOrElse(() => [])))
132
- })
133
- ]);
134
- export {
135
- app_graph_builder_default as default
136
- };
137
- //# sourceMappingURL=app-graph-builder-LYF7EKNN.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/plugin-settings/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { createExtension, ROOT_ID } from '@dxos/app-graph';\nimport { type SettingsStore, type SettingsValue } from '@dxos/local-storage';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SETTINGS_ID, SETTINGS_KEY, SETTINGS_PLUGIN, SettingsAction } from './actions';\nimport { Capabilities } from '../common';\nimport { contributes, type PluginMeta, type PluginContext } from '../core';\nimport { createIntent } from '../plugin-intent';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${SETTINGS_PLUGIN}/action`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: SETTINGS_PLUGIN,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SettingsAction.Open));\n },\n properties: {\n label: ['open settings label', { ns: SETTINGS_PLUGIN }],\n icon: 'ph--gear--regular',\n disposition: 'menu',\n keyBinding: {\n macos: 'meta+,',\n windows: 'alt+,',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${SETTINGS_PLUGIN}/core`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: SETTINGS_ID,\n type: SETTINGS_PLUGIN,\n properties: {\n label: ['app settings label', { ns: SETTINGS_PLUGIN }],\n icon: 'ph--gear--regular',\n disposition: 'pin-end',\n position: 'hoist',\n testId: 'treeView.appSettings',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${SETTINGS_PLUGIN}/core-plugins`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id !== SETTINGS_ID ? Option.none() : Option.some(node))),\n Option.map(() => {\n const manager = get(context.capability(Capabilities.PluginManager));\n const [settingsStore] = get(context.capabilities(Capabilities.SettingsStore));\n return [\n ...manager.plugins\n .filter((plugin) => manager.core.includes(plugin.meta.id))\n .map((plugin): [PluginMeta, SettingsStore<SettingsValue>] | null => {\n const settings = settingsStore?.getStore(plugin.meta.id);\n if (!settings) {\n return null;\n }\n\n return [plugin.meta, settings];\n })\n .filter(isNonNullable)\n .map(([meta, settings]) => ({\n id: `${SETTINGS_KEY}:${meta.id.replaceAll('/', ':')}`,\n type: 'category',\n data: settings,\n properties: {\n label: meta.name ?? meta.id,\n icon: meta.icon ?? 'ph--circle--regular',\n },\n })),\n\n {\n id: `${SETTINGS_KEY}:custom-plugins`,\n type: 'category',\n properties: {\n label: ['custom plugins label', { ns: SETTINGS_PLUGIN }],\n icon: 'ph--squares-four--regular',\n role: 'branch',\n disposition: 'collection',\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n createExtension({\n id: `${SETTINGS_PLUGIN}/custom-plugins`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.id !== `${SETTINGS_KEY}:custom-plugins` ? Option.none() : Option.some(node),\n ),\n Option.map(() => {\n const manager = get(context.capability(Capabilities.PluginManager));\n const [settingsStore] = get(context.capabilities(Capabilities.SettingsStore));\n return manager.plugins\n .filter((plugin) => !manager.core.includes(plugin.meta.id))\n .map((plugin): [PluginMeta, SettingsStore<SettingsValue>] | null => {\n const settings = settingsStore?.getStore(plugin.meta.id);\n if (!settings) {\n return null;\n }\n\n return [plugin.meta, settings];\n })\n .filter(isNonNullable)\n .map(([meta, settings]) => ({\n id: `${SETTINGS_KEY}:${meta.id.replaceAll('/', ':')}`,\n type: 'category',\n data: settings,\n properties: {\n label: meta.name ?? meta.id,\n icon: meta.icon ?? 'ph--circle--regular',\n },\n }));\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,iBAAiBC,eAAe;AAEzC,SAASC,qBAAqB;AAO9B,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAI,GAAGC,eAAAA;IACPC,SAAS,CAACC,SACRC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,IAAI,MAAM;MACf;QACEb,IAAIC;QACJa,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKrB,QAAQsB,cAAcpB,aAAaqB,gBAAgB;AACzF,gBAAMF,SAASG,aAAaC,eAAeC,IAAI,CAAA;QACjD;QACAC,YAAY;UACVC,OAAO;YAAC;YAAuB;cAAEC,IAAIvB;YAAgB;;UACrDwB,MAAM;UACNC,aAAa;UACbC,YAAY;YACVC,OAAO;YACPC,SAAS;UACX;QACF;MACF;KACD,GACDrB,OAAOsB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA/B,gBAAgB;IACdC,IAAI,GAAGC,eAAAA;IACP8B,WAAW,CAAC5B,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,IAAI,MAAM;MACf;QACEb,IAAIgC;QACJC,MAAMhC;QACNqB,YAAY;UACVC,OAAO;YAAC;YAAsB;cAAEC,IAAIvB;YAAgB;;UACpDwB,MAAM;UACNC,aAAa;UACbQ,UAAU;UACVC,QAAQ;QACV;MACF;KACD,GACD3B,OAAOsB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA/B,gBAAgB;IACdC,IAAI,GAAGC,eAAAA;IACP8B,WAAW,CAAC5B,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOgC,cAAcxB,OAAOI,KAAI,IAAKJ,OAAOG,KAAKR,KAAAA,CAAAA,GAChFK,OAAOK,IAAI,MAAA;AACT,YAAMuB,UAAU9B,IAAIX,QAAQ0C,WAAWxC,aAAayC,aAAa,CAAA;AACjE,YAAM,CAACC,aAAAA,IAAiBjC,IAAIX,QAAQ6C,aAAa3C,aAAa4C,aAAa,CAAA;AAC3E,aAAO;WACFL,QAAQM,QACRC,OAAO,CAACC,WAAWR,QAAQS,KAAKC,SAASF,OAAOG,KAAK/C,EAAE,CAAA,EACvDa,IAAI,CAAC+B,WAAAA;AACJ,gBAAMI,WAAWT,eAAeU,SAASL,OAAOG,KAAK/C,EAAE;AACvD,cAAI,CAACgD,UAAU;AACb,mBAAO;UACT;AAEA,iBAAO;YAACJ,OAAOG;YAAMC;;QACvB,CAAA,EACCL,OAAOO,aAAAA,EACPrC,IAAI,CAAC,CAACkC,MAAMC,QAAAA,OAAe;UAC1BhD,IAAI,GAAGmD,YAAAA,IAAgBJ,KAAK/C,GAAGoD,WAAW,KAAK,GAAA,CAAA;UAC/CnB,MAAM;UACNnB,MAAMkC;UACN1B,YAAY;YACVC,OAAOwB,KAAKM,QAAQN,KAAK/C;YACzByB,MAAMsB,KAAKtB,QAAQ;UACrB;QACF,EAAA;QAEF;UACEzB,IAAI,GAAGmD,YAAAA;UACPlB,MAAM;UACNX,YAAY;YACVC,OAAO;cAAC;cAAwB;gBAAEC,IAAIvB;cAAgB;;YACtDwB,MAAM;YACN6B,MAAM;YACN5B,aAAa;UACf;QACF;;IAEJ,CAAA,GACAlB,OAAOsB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;EACA/B,gBAAgB;IACdC,IAAI,GAAGC,eAAAA;IACP8B,WAAW,CAAC5B,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UACdA,MAAKH,OAAO,GAAGmD,YAAAA,oBAAgC3C,OAAOI,KAAI,IAAKJ,OAAOG,KAAKR,KAAAA,CAAAA,GAE7EK,OAAOK,IAAI,MAAA;AACT,YAAMuB,UAAU9B,IAAIX,QAAQ0C,WAAWxC,aAAayC,aAAa,CAAA;AACjE,YAAM,CAACC,aAAAA,IAAiBjC,IAAIX,QAAQ6C,aAAa3C,aAAa4C,aAAa,CAAA;AAC3E,aAAOL,QAAQM,QACZC,OAAO,CAACC,WAAW,CAACR,QAAQS,KAAKC,SAASF,OAAOG,KAAK/C,EAAE,CAAA,EACxDa,IAAI,CAAC+B,WAAAA;AACJ,cAAMI,WAAWT,eAAeU,SAASL,OAAOG,KAAK/C,EAAE;AACvD,YAAI,CAACgD,UAAU;AACb,iBAAO;QACT;AAEA,eAAO;UAACJ,OAAOG;UAAMC;;MACvB,CAAA,EACCL,OAAOO,aAAAA,EACPrC,IAAI,CAAC,CAACkC,MAAMC,QAAAA,OAAe;QAC1BhD,IAAI,GAAGmD,YAAAA,IAAgBJ,KAAK/C,GAAGoD,WAAW,KAAK,GAAA,CAAA;QAC/CnB,MAAM;QACNnB,MAAMkC;QACN1B,YAAY;UACVC,OAAOwB,KAAKM,QAAQN,KAAK/C;UACzByB,MAAMsB,KAAKtB,QAAQ;QACrB;MACF,EAAA;IACJ,CAAA,GACAjB,OAAOsB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAGjC,CAAA;CACD;",
6
- "names": ["Rx", "Option", "pipe", "createExtension", "ROOT_ID", "isNonNullable", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "SETTINGS_PLUGIN", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "createIntent", "SettingsAction", "Open", "properties", "label", "ns", "icon", "disposition", "keyBinding", "macos", "windows", "getOrElse", "connector", "SETTINGS_ID", "type", "position", "testId", "manager", "capability", "PluginManager", "settingsStore", "capabilities", "SettingsStore", "plugins", "filter", "plugin", "core", "includes", "meta", "settings", "getStore", "isNonNullable", "SETTINGS_KEY", "replaceAll", "name", "role"]
7
- }