@dxos/app-framework 0.8.4-main.f9ba587 → 0.8.4-main.fcfe5033a5

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 (701) 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-EYY7KYU5.mjs +35 -0
  5. package/dist/lib/browser/capability-EYY7KYU5.mjs.map +7 -0
  6. package/dist/lib/browser/capability-W7NPZR6A.mjs +38 -0
  7. package/dist/lib/browser/capability-W7NPZR6A.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-2CKCJ6PN.mjs +79 -0
  9. package/dist/lib/browser/chunk-2CKCJ6PN.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-4D6YAWLP.mjs +393 -0
  11. package/dist/lib/browser/chunk-4D6YAWLP.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-56CEL32L.mjs +963 -0
  13. package/dist/lib/browser/chunk-56CEL32L.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-F7FW2RK2.mjs +167 -0
  15. package/dist/lib/browser/chunk-F7FW2RK2.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-I34GF4NG.mjs +34 -0
  17. package/dist/lib/browser/chunk-I34GF4NG.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  19. package/dist/lib/browser/chunk-JKWMHZP6.mjs +80 -0
  20. package/dist/lib/browser/chunk-JKWMHZP6.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-QRTB4Q3U.mjs +594 -0
  22. package/dist/lib/browser/chunk-QRTB4Q3U.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-QSXYHXCE.mjs +48 -0
  24. package/dist/lib/browser/chunk-QSXYHXCE.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-RFSO3JRG.mjs +1 -0
  26. package/dist/lib/browser/chunk-RHQGPRWN.mjs +174 -0
  27. package/dist/lib/browser/chunk-RHQGPRWN.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-T3Y4AEKX.mjs +42 -0
  29. package/dist/lib/browser/chunk-T3Y4AEKX.mjs.map +7 -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/chunk-ZBA6IH6L.mjs +148 -0
  33. package/dist/lib/browser/chunk-ZBA6IH6L.mjs.map +7 -0
  34. package/dist/lib/browser/cli/index.mjs +90 -0
  35. package/dist/lib/browser/cli/index.mjs.map +7 -0
  36. package/dist/lib/browser/common/activation-events.mjs +24 -0
  37. package/dist/lib/browser/common/capabilities.mjs +46 -0
  38. package/dist/lib/browser/core/activation-event.mjs +20 -0
  39. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  40. package/dist/lib/browser/core/capability.mjs +30 -0
  41. package/dist/lib/browser/core/capability.mjs.map +7 -0
  42. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  43. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  44. package/dist/lib/browser/core/plugin.mjs +29 -0
  45. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  46. package/dist/lib/browser/core/url-loader.mjs +16 -0
  47. package/dist/lib/browser/core/url-loader.mjs.map +7 -0
  48. package/dist/lib/browser/index.mjs +91 -156
  49. package/dist/lib/browser/index.mjs.map +4 -4
  50. package/dist/lib/browser/invoker-capability-35BJSGXJ.mjs +43 -0
  51. package/dist/lib/browser/invoker-capability-35BJSGXJ.mjs.map +7 -0
  52. package/dist/lib/browser/meta.json +1 -1
  53. package/dist/lib/browser/testing/index.mjs +248 -51
  54. package/dist/lib/browser/testing/index.mjs.map +4 -4
  55. package/dist/lib/browser/testing/react.mjs +78 -0
  56. package/dist/lib/browser/testing/react.mjs.map +7 -0
  57. package/dist/lib/browser/ui/index.mjs +46 -0
  58. package/dist/lib/browser/ui/index.mjs.map +7 -0
  59. package/dist/lib/node-esm/capability-IY3YIHIO.mjs +39 -0
  60. package/dist/lib/node-esm/capability-IY3YIHIO.mjs.map +7 -0
  61. package/dist/lib/node-esm/capability-RDCTCARS.mjs +36 -0
  62. package/dist/lib/node-esm/capability-RDCTCARS.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-42KBWDE4.mjs +80 -0
  64. package/dist/lib/node-esm/chunk-42KBWDE4.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-DAYWQOOQ.mjs +149 -0
  66. package/dist/lib/node-esm/chunk-DAYWQOOQ.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-DER2JDBT.mjs +175 -0
  68. package/dist/lib/node-esm/chunk-DER2JDBT.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-FKE4Z3D6.mjs +10 -0
  72. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-G3RTFSNG.mjs +81 -0
  74. package/dist/lib/node-esm/chunk-G3RTFSNG.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-JPWVIQ5I.mjs +595 -0
  78. package/dist/lib/node-esm/chunk-JPWVIQ5I.mjs.map +7 -0
  79. package/dist/lib/node-esm/chunk-LX6YJOSO.mjs +394 -0
  80. package/dist/lib/node-esm/chunk-LX6YJOSO.mjs.map +7 -0
  81. package/dist/lib/node-esm/chunk-URWHJQT2.mjs +168 -0
  82. package/dist/lib/node-esm/chunk-URWHJQT2.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-VKHGNEDB.mjs +43 -0
  84. package/dist/lib/node-esm/chunk-VKHGNEDB.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-W4K4RU4S.mjs +964 -0
  86. package/dist/lib/node-esm/chunk-W4K4RU4S.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs +35 -0
  88. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs +49 -0
  90. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs.map +7 -0
  91. package/dist/lib/node-esm/cli/index.mjs +91 -0
  92. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  93. package/dist/lib/node-esm/common/activation-events.mjs +25 -0
  94. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  95. package/dist/lib/node-esm/common/capabilities.mjs +47 -0
  96. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  97. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  98. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  99. package/dist/lib/node-esm/core/capability.mjs +31 -0
  100. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  101. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  102. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  103. package/dist/lib/node-esm/core/plugin.mjs +30 -0
  104. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  105. package/dist/lib/node-esm/core/url-loader.mjs +17 -0
  106. package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
  107. package/dist/lib/node-esm/index.mjs +91 -156
  108. package/dist/lib/node-esm/index.mjs.map +4 -4
  109. package/dist/lib/node-esm/invoker-capability-3QWBSM5Q.mjs +44 -0
  110. package/dist/lib/node-esm/invoker-capability-3QWBSM5Q.mjs.map +7 -0
  111. package/dist/lib/node-esm/meta.json +1 -1
  112. package/dist/lib/node-esm/testing/index.mjs +248 -51
  113. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  114. package/dist/lib/node-esm/testing/react.mjs +79 -0
  115. package/dist/lib/node-esm/testing/react.mjs.map +7 -0
  116. package/dist/lib/node-esm/ui/index.mjs +47 -0
  117. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  118. package/dist/plugin/node-esm/index.mjs +730 -0
  119. package/dist/plugin/node-esm/index.mjs.map +7 -0
  120. package/dist/plugin/node-esm/meta.json +1 -0
  121. package/dist/types/src/cli/cli.d.ts +39 -0
  122. package/dist/types/src/cli/cli.d.ts.map +1 -0
  123. package/dist/types/src/cli/index.d.ts +2 -0
  124. package/dist/types/src/cli/index.d.ts.map +1 -0
  125. package/dist/types/src/common/activation-events.d.ts +27 -0
  126. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  127. package/dist/types/src/common/capabilities.d.ts +109 -121
  128. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  129. package/dist/types/src/common/index.d.ts +4 -8
  130. package/dist/types/src/common/index.d.ts.map +1 -1
  131. package/dist/types/src/common/operations.d.ts +19 -0
  132. package/dist/types/src/common/operations.d.ts.map +1 -0
  133. package/dist/types/src/common/translations.d.ts +8 -8
  134. package/dist/types/src/common/translations.d.ts.map +1 -1
  135. package/dist/types/src/context.d.ts +5 -0
  136. package/dist/types/src/context.d.ts.map +1 -0
  137. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +7 -7
  138. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  139. package/dist/types/src/core/capability-manager.d.ts +48 -0
  140. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  141. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  142. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  143. package/dist/types/src/core/capability.d.ts +156 -0
  144. package/dist/types/src/core/capability.d.ts.map +1 -0
  145. package/dist/types/src/core/index.d.ts +6 -4
  146. package/dist/types/src/core/index.d.ts.map +1 -1
  147. package/dist/types/src/core/plugin-manager.d.ts +73 -0
  148. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  149. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  150. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  151. package/dist/types/src/core/plugin.d.ts +124 -37
  152. package/dist/types/src/core/plugin.d.ts.map +1 -1
  153. package/dist/types/src/core/url-loader.d.ts +42 -0
  154. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  155. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  156. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  157. package/dist/types/src/index.d.ts +3 -4
  158. package/dist/types/src/index.d.ts.map +1 -1
  159. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  160. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  162. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  163. package/dist/types/src/plugin-operation/history/errors.d.ts +32 -0
  164. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  165. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  166. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  167. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  168. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  169. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  170. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  171. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  172. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  173. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  174. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  175. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  176. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  177. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  178. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  179. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  180. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  181. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  182. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  183. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  184. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  185. package/dist/types/src/plugin-operation/testing.d.ts +58 -0
  186. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  187. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  188. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  189. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  190. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  191. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  192. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  193. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  194. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  195. package/dist/types/src/testing/harness.d.ts +67 -0
  196. package/dist/types/src/testing/harness.d.ts.map +1 -0
  197. package/dist/types/src/testing/index.d.ts +2 -0
  198. package/dist/types/src/testing/index.d.ts.map +1 -1
  199. package/dist/types/src/testing/react.d.ts +27 -0
  200. package/dist/types/src/testing/react.d.ts.map +1 -0
  201. package/dist/types/src/testing/react.test.d.ts +2 -0
  202. package/dist/types/src/testing/react.test.d.ts.map +1 -0
  203. package/dist/types/src/testing/service.d.ts +8 -0
  204. package/dist/types/src/testing/service.d.ts.map +1 -0
  205. package/dist/types/src/testing/withPluginManager.d.ts +11 -10
  206. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  207. package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
  208. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  209. package/dist/types/src/ui/components/App/App.d.ts +9 -0
  210. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  211. package/dist/types/src/ui/components/App/App.stories.d.ts +19 -0
  212. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  213. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  214. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  215. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts +13 -0
  216. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  217. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
  218. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  219. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  220. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  221. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +24 -0
  222. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  223. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts +14 -0
  224. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  225. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
  226. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  227. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  228. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  229. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  230. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  231. package/dist/types/src/ui/components/Surface/index.d.ts +36 -0
  232. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  233. package/dist/types/src/ui/components/Surface/types.d.ts +197 -0
  234. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  235. package/dist/types/src/ui/components/Surface/types.test.d.ts +2 -0
  236. package/dist/types/src/ui/components/Surface/types.test.d.ts.map +1 -0
  237. package/dist/types/src/ui/components/index.d.ts +4 -0
  238. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  239. package/dist/types/src/ui/hooks/index.d.ts +6 -0
  240. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  241. package/dist/types/src/ui/hooks/useApp.d.ts +62 -0
  242. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  243. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  244. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  245. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  246. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  247. package/dist/types/src/ui/hooks/useLoading.d.ts +18 -0
  248. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  249. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  250. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  251. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  252. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  253. package/dist/types/src/ui/index.d.ts +3 -0
  254. package/dist/types/src/ui/index.d.ts.map +1 -0
  255. package/dist/types/src/vite-plugin/composer-plugin.d.ts +34 -0
  256. package/dist/types/src/vite-plugin/composer-plugin.d.ts.map +1 -0
  257. package/dist/types/src/vite-plugin/import-map-plugin.d.ts +16 -0
  258. package/dist/types/src/vite-plugin/import-map-plugin.d.ts.map +1 -0
  259. package/dist/types/src/vite-plugin/index.d.ts +4 -0
  260. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  261. package/dist/types/src/vite-plugin/manifest.d.ts +16 -0
  262. package/dist/types/src/vite-plugin/manifest.d.ts.map +1 -0
  263. package/dist/types/src/vite-plugin/manifest.test.d.ts +2 -0
  264. package/dist/types/src/vite-plugin/manifest.test.d.ts.map +1 -0
  265. package/dist/types/src/vite-plugin/packages.d.ts +13 -0
  266. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  267. package/dist/types/tsconfig.tsbuildinfo +1 -1
  268. package/moon.yml +26 -3
  269. package/package.json +144 -44
  270. package/src/cli/cli.ts +107 -0
  271. package/src/{playground/layout → cli}/index.ts +1 -1
  272. package/src/common/activation-events.ts +44 -0
  273. package/src/common/capabilities.ts +168 -109
  274. package/src/common/index.ts +4 -8
  275. package/src/common/operations.ts +35 -0
  276. package/src/common/translations.ts +18 -10
  277. package/src/context.ts +9 -0
  278. package/src/core/{events.ts → activation-event.ts} +10 -7
  279. package/src/core/capability-manager.test.ts +151 -0
  280. package/src/core/capability-manager.ts +192 -0
  281. package/src/core/capability.ts +247 -0
  282. package/src/core/index.ts +6 -4
  283. package/src/core/plugin-manager.test.ts +1113 -0
  284. package/src/core/plugin-manager.ts +883 -0
  285. package/src/core/plugin.ts +261 -43
  286. package/src/core/url-loader.test.ts +112 -0
  287. package/src/core/url-loader.ts +178 -0
  288. package/src/helpers.test.ts +1 -1
  289. package/src/index.ts +3 -4
  290. package/src/plugin-operation/OperationPlugin.ts +24 -0
  291. package/src/plugin-operation/history/capability.ts +36 -0
  292. package/src/plugin-operation/history/errors.ts +7 -0
  293. package/src/plugin-operation/history/history-tracker.test.ts +373 -0
  294. package/src/plugin-operation/history/history-tracker.ts +128 -0
  295. package/src/plugin-operation/history/index.ts +9 -0
  296. package/src/plugin-operation/history/types.ts +17 -0
  297. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  298. package/src/plugin-operation/history/undo-registry.test.ts +72 -0
  299. package/src/plugin-operation/history/undo-registry.ts +54 -0
  300. package/src/plugin-operation/index.ts +6 -0
  301. package/src/plugin-operation/invoker-capability.ts +54 -0
  302. package/src/plugin-operation/meta.ts +11 -0
  303. package/src/plugin-operation/testing.ts +154 -0
  304. package/src/plugin-runtime/RuntimePlugin.ts +19 -0
  305. package/src/plugin-runtime/capability.ts +53 -0
  306. package/src/{playground/debug → plugin-runtime}/index.ts +1 -1
  307. package/src/plugin-runtime/meta.ts +11 -0
  308. package/src/testing/harness.ts +229 -0
  309. package/src/testing/index.ts +2 -0
  310. package/src/testing/react.test.tsx +48 -0
  311. package/src/testing/react.tsx +113 -0
  312. package/src/testing/service.ts +52 -0
  313. package/src/testing/withPluginManager.stories.tsx +14 -11
  314. package/src/testing/withPluginManager.tsx +78 -54
  315. package/src/ui/components/App/App.stories.tsx +92 -0
  316. package/src/ui/components/App/App.tsx +58 -0
  317. package/src/{playground/logger → ui/components/App}/index.ts +1 -1
  318. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +183 -0
  319. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
  320. package/src/ui/components/PluginManager/index.ts +5 -0
  321. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +144 -0
  322. package/src/ui/components/Surface/SurfaceComponent.tsx +303 -0
  323. package/src/ui/components/Surface/SurfaceInfo.tsx +107 -0
  324. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  325. package/src/ui/components/Surface/context.ts +12 -0
  326. package/src/ui/components/Surface/index.ts +54 -0
  327. package/src/ui/components/Surface/types.test.ts +126 -0
  328. package/src/ui/components/Surface/types.ts +269 -0
  329. package/src/ui/components/index.ts +7 -0
  330. package/src/ui/hooks/index.ts +9 -0
  331. package/src/ui/hooks/useApp.test.tsx +159 -0
  332. package/src/ui/hooks/useApp.tsx +289 -0
  333. package/src/ui/hooks/useCapabilities.ts +67 -0
  334. package/src/ui/hooks/useLoading.tsx +68 -0
  335. package/src/ui/hooks/useSettingsState.ts +26 -0
  336. package/src/ui/hooks/useSurface.ts +13 -0
  337. package/src/ui/index.ts +6 -0
  338. package/src/vite-plugin/composer-plugin.ts +284 -0
  339. package/src/vite-plugin/import-map-plugin.ts +490 -0
  340. package/src/vite-plugin/index.ts +7 -0
  341. package/src/vite-plugin/manifest.test.ts +23 -0
  342. package/src/vite-plugin/manifest.ts +20 -0
  343. package/src/vite-plugin/packages.ts +181 -0
  344. package/tsconfig.json +15 -25
  345. package/tsconfig.node.json +2 -4
  346. package/typedoc.json +2 -4
  347. package/vitest.config.ts +8 -6
  348. package/.eslintrc.cjs +0 -9
  349. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  350. package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
  351. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs +0 -137
  352. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs.map +0 -7
  353. package/dist/lib/browser/chunk-2636QSIK.mjs +0 -1518
  354. package/dist/lib/browser/chunk-2636QSIK.mjs.map +0 -7
  355. package/dist/lib/browser/chunk-DHZB7HG7.mjs +0 -413
  356. package/dist/lib/browser/chunk-DHZB7HG7.mjs.map +0 -7
  357. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  358. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  359. package/dist/lib/browser/intent-dispatcher-TWKB22NI.mjs +0 -11
  360. package/dist/lib/browser/intent-resolver-O67UANYP.mjs +0 -39
  361. package/dist/lib/browser/intent-resolver-O67UANYP.mjs.map +0 -7
  362. package/dist/lib/browser/store-LFKDWHUQ.mjs +0 -30
  363. package/dist/lib/browser/store-LFKDWHUQ.mjs.map +0 -7
  364. package/dist/lib/browser/worker.mjs +0 -79
  365. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs +0 -138
  366. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs.map +0 -7
  367. package/dist/lib/node-esm/chunk-NJAFK626.mjs +0 -414
  368. package/dist/lib/node-esm/chunk-NJAFK626.mjs.map +0 -7
  369. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  370. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  371. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs +0 -1520
  372. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs.map +0 -7
  373. package/dist/lib/node-esm/intent-dispatcher-5PRM3KGH.mjs +0 -12
  374. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs +0 -40
  375. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs.map +0 -7
  376. package/dist/lib/node-esm/store-53XDUBMD.mjs +0 -31
  377. package/dist/lib/node-esm/store-53XDUBMD.mjs.map +0 -7
  378. package/dist/lib/node-esm/worker.mjs +0 -80
  379. package/dist/types/src/App.d.ts +0 -43
  380. package/dist/types/src/App.d.ts.map +0 -1
  381. package/dist/types/src/common/collaboration.d.ts +0 -19
  382. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  383. package/dist/types/src/common/events.d.ts +0 -52
  384. package/dist/types/src/common/events.d.ts.map +0 -1
  385. package/dist/types/src/common/file.d.ts +0 -14
  386. package/dist/types/src/common/file.d.ts.map +0 -1
  387. package/dist/types/src/common/graph.d.ts +0 -21
  388. package/dist/types/src/common/graph.d.ts.map +0 -1
  389. package/dist/types/src/common/layout.d.ts +0 -281
  390. package/dist/types/src/common/layout.d.ts.map +0 -1
  391. package/dist/types/src/common/surface.d.ts +0 -65
  392. package/dist/types/src/common/surface.d.ts.map +0 -1
  393. package/dist/types/src/core/capabilities.d.ts +0 -114
  394. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  395. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  396. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  397. package/dist/types/src/core/events.d.ts.map +0 -1
  398. package/dist/types/src/core/manager.d.ts +0 -122
  399. package/dist/types/src/core/manager.d.ts.map +0 -1
  400. package/dist/types/src/core/manager.test.d.ts +0 -2
  401. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  402. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  403. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  404. package/dist/types/src/playground/debug/index.d.ts +0 -2
  405. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  406. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  407. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  408. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  409. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  410. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  411. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  412. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  413. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  414. package/dist/types/src/playground/generator/index.d.ts +0 -3
  415. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  416. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  417. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  418. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  419. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  420. package/dist/types/src/playground/layout/index.d.ts +0 -2
  421. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  422. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  423. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  424. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  425. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  426. package/dist/types/src/playground/logger/index.d.ts +0 -2
  427. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  428. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  429. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  430. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  431. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  432. package/dist/types/src/playground/playground.stories.d.ts +0 -10
  433. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  434. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  435. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  436. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  437. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  438. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  439. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  440. package/dist/types/src/plugin-intent/index.d.ts +0 -5
  441. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  442. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  443. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  444. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  445. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  446. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  447. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  448. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  449. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  450. package/dist/types/src/plugin-settings/actions.d.ts +0 -27
  451. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  452. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  453. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  454. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  455. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  456. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  457. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  458. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  459. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  460. package/dist/types/src/plugin-settings/translations.d.ts +0 -10
  461. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  462. package/dist/types/src/react/ErrorBoundary.d.ts +0 -31
  463. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  464. package/dist/types/src/react/IntentContext.d.ts +0 -8
  465. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  466. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  467. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  468. package/dist/types/src/react/Surface.d.ts +0 -12
  469. package/dist/types/src/react/Surface.d.ts.map +0 -1
  470. package/dist/types/src/react/Surface.stories.d.ts +0 -16
  471. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  472. package/dist/types/src/react/common.d.ts +0 -13
  473. package/dist/types/src/react/common.d.ts.map +0 -1
  474. package/dist/types/src/react/index.d.ts +0 -7
  475. package/dist/types/src/react/index.d.ts.map +0 -1
  476. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  477. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  478. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  479. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  480. package/dist/types/src/worker.d.ts +0 -4
  481. package/dist/types/src/worker.d.ts.map +0 -1
  482. package/src/App.tsx +0 -276
  483. package/src/common/collaboration.ts +0 -21
  484. package/src/common/events.ts +0 -77
  485. package/src/common/file.ts +0 -22
  486. package/src/common/graph.ts +0 -30
  487. package/src/common/layout.ts +0 -278
  488. package/src/common/surface.ts +0 -86
  489. package/src/core/capabilities.test.ts +0 -136
  490. package/src/core/capabilities.ts +0 -254
  491. package/src/core/manager.test.ts +0 -515
  492. package/src/core/manager.ts +0 -519
  493. package/src/playground/debug/Debug.tsx +0 -39
  494. package/src/playground/debug/plugin.ts +0 -17
  495. package/src/playground/generator/Main.tsx +0 -71
  496. package/src/playground/generator/Toolbar.tsx +0 -46
  497. package/src/playground/generator/generator.ts +0 -48
  498. package/src/playground/generator/index.ts +0 -6
  499. package/src/playground/generator/plugin.ts +0 -23
  500. package/src/playground/layout/Layout.tsx +0 -33
  501. package/src/playground/layout/plugin.ts +0 -17
  502. package/src/playground/logger/Toolbar.tsx +0 -29
  503. package/src/playground/logger/plugin.ts +0 -36
  504. package/src/playground/logger/schema.ts +0 -12
  505. package/src/playground/playground.stories.tsx +0 -42
  506. package/src/plugin-intent/IntentPlugin.ts +0 -20
  507. package/src/plugin-intent/actions.ts +0 -33
  508. package/src/plugin-intent/errors.ts +0 -39
  509. package/src/plugin-intent/index.ts +0 -8
  510. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  511. package/src/plugin-intent/intent-dispatcher.ts +0 -333
  512. package/src/plugin-intent/intent.ts +0 -154
  513. package/src/plugin-settings/SettingsPlugin.ts +0 -35
  514. package/src/plugin-settings/actions.ts +0 -29
  515. package/src/plugin-settings/app-graph-builder.ts +0 -157
  516. package/src/plugin-settings/index.ts +0 -6
  517. package/src/plugin-settings/intent-resolver.ts +0 -34
  518. package/src/plugin-settings/store.ts +0 -33
  519. package/src/plugin-settings/translations.ts +0 -19
  520. package/src/react/ErrorBoundary.tsx +0 -45
  521. package/src/react/IntentContext.tsx +0 -34
  522. package/src/react/Surface.stories.tsx +0 -96
  523. package/src/react/Surface.tsx +0 -77
  524. package/src/react/common.ts +0 -12
  525. package/src/react/index.ts +0 -10
  526. package/src/react/useCapabilities.ts +0 -30
  527. package/src/react/useIntentResolver.ts +0 -22
  528. package/src/worker.ts +0 -11
  529. package/typedoc/.nojekyll +0 -1
  530. package/typedoc/assets/hierarchy.js +0 -1
  531. package/typedoc/assets/highlight.css +0 -106
  532. package/typedoc/assets/icons.js +0 -18
  533. package/typedoc/assets/icons.svg +0 -1
  534. package/typedoc/assets/main.js +0 -60
  535. package/typedoc/assets/navigation.js +0 -1
  536. package/typedoc/assets/search.js +0 -1
  537. package/typedoc/assets/style.css +0 -1640
  538. package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
  539. package/typedoc/classes/ErrorBoundary.html +0 -125
  540. package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
  541. package/typedoc/classes/IntentAction.Track.html +0 -266
  542. package/typedoc/classes/LayoutAction.AddToast.html +0 -265
  543. package/typedoc/classes/LayoutAction.Close.html +0 -382
  544. package/typedoc/classes/LayoutAction.Expose.html +0 -265
  545. package/typedoc/classes/LayoutAction.Open.html +0 -1123
  546. package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
  547. package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
  548. package/typedoc/classes/LayoutAction.Set.html +0 -460
  549. package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
  550. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
  551. package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
  552. package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
  553. package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
  554. package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
  555. package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
  556. package/typedoc/classes/Plugin.html +0 -6
  557. package/typedoc/classes/PluginContext.html +0 -38
  558. package/typedoc/classes/PluginManager.html +0 -43
  559. package/typedoc/classes/PluginModule.html +0 -18
  560. package/typedoc/classes/SettingsAction.Open.html +0 -226
  561. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
  562. package/typedoc/functions/Events.createStateEvent.html +0 -2
  563. package/typedoc/functions/IntentPlugin.html +0 -1
  564. package/typedoc/functions/SettingsPlugin.html +0 -1
  565. package/typedoc/functions/allOf.html +0 -2
  566. package/typedoc/functions/chain.html +0 -3
  567. package/typedoc/functions/contributes.html +0 -2
  568. package/typedoc/functions/createDispatcher.html +0 -3
  569. package/typedoc/functions/createIntent.html +0 -6
  570. package/typedoc/functions/createResolver.html +0 -2
  571. package/typedoc/functions/createSurface.html +0 -2
  572. package/typedoc/functions/defineCapability.html +0 -2
  573. package/typedoc/functions/defineEvent.html +0 -2
  574. package/typedoc/functions/defineModule.html +0 -2
  575. package/typedoc/functions/definePlugin.html +0 -2
  576. package/typedoc/functions/eventKey.html +0 -2
  577. package/typedoc/functions/getEvents.html +0 -2
  578. package/typedoc/functions/isAllOf.html +0 -2
  579. package/typedoc/functions/isOneOf.html +0 -2
  580. package/typedoc/functions/isSurfaceAvailable.html +0 -2
  581. package/typedoc/functions/lazy.html +0 -2
  582. package/typedoc/functions/oneOf.html +0 -2
  583. package/typedoc/functions/useApp.html +0 -6
  584. package/typedoc/functions/useAppGraph.html +0 -1
  585. package/typedoc/functions/useCapabilities.html +0 -3
  586. package/typedoc/functions/useCapability.html +0 -4
  587. package/typedoc/functions/useIntentDispatcher.html +0 -1
  588. package/typedoc/functions/useIntentResolver.html +0 -1
  589. package/typedoc/functions/useLayout.html +0 -1
  590. package/typedoc/functions/usePluginManager.html +0 -2
  591. package/typedoc/hierarchy.html +0 -1
  592. package/typedoc/index.html +0 -12
  593. package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
  594. package/typedoc/media/LICENSE +0 -8
  595. package/typedoc/modules/Capabilities.html +0 -1
  596. package/typedoc/modules/CollaborationActions.html +0 -1
  597. package/typedoc/modules/Events.html +0 -1
  598. package/typedoc/modules/IntentAction.html +0 -1
  599. package/typedoc/modules/LayoutAction.html +0 -2
  600. package/typedoc/modules/SettingsAction.html +0 -1
  601. package/typedoc/modules.html +0 -1
  602. package/typedoc/types/ActivationEvent.html +0 -8
  603. package/typedoc/types/ActivationEvents.html +0 -2
  604. package/typedoc/types/AnyCapability.html +0 -1
  605. package/typedoc/types/AnyIntent.html +0 -1
  606. package/typedoc/types/AnyIntentChain.html +0 -1
  607. package/typedoc/types/AnyIntentEffectResult.html +0 -1
  608. package/typedoc/types/AnyIntentResolver.html +0 -1
  609. package/typedoc/types/AnyIntentResult.html +0 -1
  610. package/typedoc/types/Capabilities.FileUploader.html +0 -1
  611. package/typedoc/types/Capabilities.IntentResolver.html +0 -1
  612. package/typedoc/types/Capabilities.Layout.html +0 -1
  613. package/typedoc/types/Capabilities.Metadata.html +0 -1
  614. package/typedoc/types/Capabilities.ReactContext.html +0 -1
  615. package/typedoc/types/Capabilities.ReactRoot.html +0 -1
  616. package/typedoc/types/Capabilities.ReactSurface.html +0 -1
  617. package/typedoc/types/Capabilities.Settings.html +0 -4
  618. package/typedoc/types/Capability.html +0 -9
  619. package/typedoc/types/CreateAppOptions.html +0 -10
  620. package/typedoc/types/FileInfo.html +0 -1
  621. package/typedoc/types/Intent.html +0 -10
  622. package/typedoc/types/IntentChain.html +0 -6
  623. package/typedoc/types/IntentContext.html +0 -5
  624. package/typedoc/types/IntentData.html +0 -1
  625. package/typedoc/types/IntentDispatcher.html +0 -2
  626. package/typedoc/types/IntentDispatcherResult.html +0 -2
  627. package/typedoc/types/IntentEffectDefinition.html +0 -2
  628. package/typedoc/types/IntentEffectResult.html +0 -15
  629. package/typedoc/types/IntentParams.html +0 -3
  630. package/typedoc/types/IntentResolver.html +0 -2
  631. package/typedoc/types/IntentResultData.html +0 -1
  632. package/typedoc/types/IntentSchema.html +0 -1
  633. package/typedoc/types/IntentUndo.html +0 -2
  634. package/typedoc/types/InterfaceDef.html +0 -4
  635. package/typedoc/types/Label.html +0 -1
  636. package/typedoc/types/NodeSerializer.html +0 -8
  637. package/typedoc/types/PluginManagerOptions.html +0 -6
  638. package/typedoc/types/PluginMeta.html +0 -21
  639. package/typedoc/types/PromiseIntentDispatcher.html +0 -2
  640. package/typedoc/types/PromiseIntentUndo.html +0 -2
  641. package/typedoc/types/Resource.html +0 -1
  642. package/typedoc/types/ResourceKey.html +0 -1
  643. package/typedoc/types/ResourceLanguage.html +0 -1
  644. package/typedoc/types/SerializedNode.html +0 -4
  645. package/typedoc/types/SurfaceComponent.html +0 -2
  646. package/typedoc/types/SurfaceDefinition.html +0 -2
  647. package/typedoc/types/SurfaceProps.html +0 -4
  648. package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
  649. package/typedoc/variables/Capabilities.AppGraph.html +0 -1
  650. package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
  651. package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
  652. package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
  653. package/typedoc/variables/Capabilities.FileUploader.html +0 -1
  654. package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
  655. package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
  656. package/typedoc/variables/Capabilities.Layout.html +0 -1
  657. package/typedoc/variables/Capabilities.Metadata.html +0 -1
  658. package/typedoc/variables/Capabilities.Null.html +0 -1
  659. package/typedoc/variables/Capabilities.PluginManager.html +0 -1
  660. package/typedoc/variables/Capabilities.ReactContext.html +0 -1
  661. package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
  662. package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
  663. package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
  664. package/typedoc/variables/Capabilities.Settings.html +0 -1
  665. package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
  666. package/typedoc/variables/Capabilities.Tools.html +0 -1
  667. package/typedoc/variables/Capabilities.Translations.html +0 -1
  668. package/typedoc/variables/Events.AppGraphReady.html +0 -2
  669. package/typedoc/variables/Events.DispatcherReady.html +0 -2
  670. package/typedoc/variables/Events.LayoutReady.html +0 -1
  671. package/typedoc/variables/Events.SettingsReady.html +0 -2
  672. package/typedoc/variables/Events.SetupAppGraph.html +0 -2
  673. package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
  674. package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
  675. package/typedoc/variables/Events.SetupMetadata.html +0 -2
  676. package/typedoc/variables/Events.SetupReactSurface.html +0 -2
  677. package/typedoc/variables/Events.SetupSettings.html +0 -2
  678. package/typedoc/variables/Events.SetupTranslations.html +0 -2
  679. package/typedoc/variables/Events.Startup.html +0 -2
  680. package/typedoc/variables/FileInfoSchema.html +0 -1
  681. package/typedoc/variables/INTENT_ACTION.html +0 -1
  682. package/typedoc/variables/INTENT_PLUGIN.html +0 -1
  683. package/typedoc/variables/LAYOUT_ACTION.html +0 -1
  684. package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
  685. package/typedoc/variables/Label.html +0 -1
  686. package/typedoc/variables/LayoutAction.Toast.html +0 -1
  687. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
  688. package/typedoc/variables/PluginManagerProvider.html +0 -2
  689. package/typedoc/variables/Resource.html +0 -2
  690. package/typedoc/variables/ResourceKey.html +0 -1
  691. package/typedoc/variables/ResourceLanguage.html +0 -1
  692. package/typedoc/variables/SETTINGS_ACTION.html +0 -1
  693. package/typedoc/variables/SETTINGS_ID.html +0 -1
  694. package/typedoc/variables/SETTINGS_KEY.html +0 -1
  695. package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
  696. package/typedoc/variables/Surface.html +0 -2
  697. package/typedoc/variables/defaultFileTypes.html +0 -1
  698. /package/dist/lib/browser/{intent-dispatcher-TWKB22NI.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  699. /package/dist/lib/browser/{worker.mjs.map → chunk-RFSO3JRG.mjs.map} +0 -0
  700. /package/dist/lib/{node-esm/intent-dispatcher-5PRM3KGH.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  701. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
@@ -0,0 +1,963 @@
1
+ import {
2
+ eventKey,
3
+ getEvents,
4
+ isAllOf
5
+ } from "./chunk-QSXYHXCE.mjs";
6
+ import {
7
+ Service as Service2
8
+ } from "./chunk-ZBA6IH6L.mjs";
9
+ import {
10
+ Service
11
+ } from "./chunk-2CKCJ6PN.mjs";
12
+ import {
13
+ __export
14
+ } from "./chunk-J5LGTIGS.mjs";
15
+
16
+ // src/core/plugin-manager.ts
17
+ var plugin_manager_exports = {};
18
+ __export(plugin_manager_exports, {
19
+ ManagerTypeId: () => ManagerTypeId,
20
+ isManager: () => isManager,
21
+ make: () => make5
22
+ });
23
+ import { Atom as Atom2, Registry } from "@effect-atom/atom-react";
24
+ import * as Array from "effect/Array";
25
+ import * as Cause from "effect/Cause";
26
+ import * as Deferred2 from "effect/Deferred";
27
+ import * as Duration from "effect/Duration";
28
+ import * as Effect2 from "effect/Effect";
29
+ import * as Fiber from "effect/Fiber";
30
+ import * as Function from "effect/Function";
31
+ import * as HashSet from "effect/HashSet";
32
+ import * as PubSub from "effect/PubSub";
33
+ import * as Ref from "effect/Ref";
34
+ import { runAndForwardErrors } from "@dxos/effect";
35
+ import { Performance } from "@dxos/effect";
36
+ import { log as log2 } from "@dxos/log";
37
+
38
+ // src/core/capability-manager.ts
39
+ var capability_manager_exports = {};
40
+ __export(capability_manager_exports, {
41
+ make: () => make2
42
+ });
43
+ import { Atom } from "@effect-atom/atom-react";
44
+ import * as Deferred from "effect/Deferred";
45
+ import * as Effect from "effect/Effect";
46
+ import { invariant } from "@dxos/invariant";
47
+ import { log } from "@dxos/log";
48
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/app-framework/src/core/capability-manager.ts";
49
+ var CapabilityManagerImpl = class {
50
+ _registry;
51
+ _capabilityEntries = Atom.family(() => {
52
+ return Atom.make([]).pipe(Atom.keepAlive);
53
+ });
54
+ _capabilities = Atom.family((id) => {
55
+ return Atom.make((get2) => {
56
+ const current = get2(this._capabilityEntries(id));
57
+ return current.map((c) => c.implementation);
58
+ }).pipe(Atom.keepAlive);
59
+ });
60
+ _capabilitiesByModule = Atom.family((id) => {
61
+ return Atom.make((get2) => {
62
+ const entries = get2(this._capabilityEntries(id));
63
+ const result = {};
64
+ for (const entry of entries) {
65
+ (result[entry.moduleId] ??= []).push(entry.implementation);
66
+ }
67
+ return result;
68
+ }).pipe(Atom.keepAlive);
69
+ });
70
+ _capability = Atom.family((id) => {
71
+ return Atom.make((get2) => {
72
+ const current = get2(this._capabilities(id));
73
+ invariant(current.length > 0, `No capability found for ${id}`, {
74
+ F: __dxlog_file,
75
+ L: 101,
76
+ S: this,
77
+ A: [
78
+ "current.length > 0",
79
+ "`No capability found for ${id}`"
80
+ ]
81
+ });
82
+ return current[0];
83
+ });
84
+ });
85
+ constructor({ registry }) {
86
+ this._registry = registry;
87
+ }
88
+ contribute({ module: moduleId, interface: interfaceDef, implementation }) {
89
+ const current = this._registry.get(this._capabilityEntries(interfaceDef.identifier));
90
+ const isDuplicate = current.some((c) => c.moduleId === moduleId && c.implementation === implementation);
91
+ if (isDuplicate) {
92
+ log("capability already contributed, skipping", {
93
+ id: interfaceDef.identifier,
94
+ moduleId
95
+ }, {
96
+ F: __dxlog_file,
97
+ L: 122,
98
+ S: this,
99
+ C: (f, a) => f(...a)
100
+ });
101
+ return;
102
+ }
103
+ const entry = {
104
+ moduleId,
105
+ implementation
106
+ };
107
+ this._registry.set(this._capabilityEntries(interfaceDef.identifier), [
108
+ ...current,
109
+ entry
110
+ ]);
111
+ log("capability contributed", {
112
+ id: interfaceDef.identifier,
113
+ moduleId,
114
+ count: current.length
115
+ }, {
116
+ F: __dxlog_file,
117
+ L: 128,
118
+ S: this,
119
+ C: (f, a) => f(...a)
120
+ });
121
+ }
122
+ remove(interfaceDef, implementation) {
123
+ const current = this._registry.get(this._capabilityEntries(interfaceDef.identifier));
124
+ if (current.length === 0) {
125
+ return;
126
+ }
127
+ const next = current.filter((c) => c.implementation !== implementation);
128
+ if (next.length !== current.length) {
129
+ this._registry.set(this._capabilityEntries(interfaceDef.identifier), next);
130
+ log("capability removed", {
131
+ id: interfaceDef.identifier,
132
+ count: current.length
133
+ }, {
134
+ F: __dxlog_file,
135
+ L: 144,
136
+ S: this,
137
+ C: (f, a) => f(...a)
138
+ });
139
+ } else {
140
+ log.warn("capability not removed", {
141
+ id: interfaceDef.identifier
142
+ }, {
143
+ F: __dxlog_file,
144
+ L: 146,
145
+ S: this,
146
+ C: (f, a) => f(...a)
147
+ });
148
+ }
149
+ }
150
+ atom(interfaceDef) {
151
+ return this._capabilities(interfaceDef.identifier);
152
+ }
153
+ getAll(interfaceDef) {
154
+ return this._registry.get(this.atom(interfaceDef));
155
+ }
156
+ get(interfaceDef) {
157
+ const capabilities = this.getAll(interfaceDef);
158
+ invariant(capabilities.length > 0, `No capability found for ${interfaceDef.identifier}`, {
159
+ F: __dxlog_file,
160
+ L: 161,
161
+ S: this,
162
+ A: [
163
+ "capabilities.length > 0",
164
+ "`No capability found for ${interfaceDef.identifier}`"
165
+ ]
166
+ });
167
+ return capabilities[0];
168
+ }
169
+ waitFor(interfaceDef) {
170
+ return Effect.gen(this, function* () {
171
+ const [capability] = this.getAll(interfaceDef);
172
+ if (capability) {
173
+ return capability;
174
+ }
175
+ const deferred = yield* Deferred.make();
176
+ const cancel = this._registry.subscribe(this.atom(interfaceDef), (capabilities) => {
177
+ if (capabilities.length > 0) {
178
+ Effect.runSync(Deferred.succeed(deferred, capabilities[0]));
179
+ }
180
+ });
181
+ const result = yield* Deferred.await(deferred);
182
+ cancel();
183
+ return result;
184
+ });
185
+ }
186
+ atomByModule(interfaceDef) {
187
+ return this._capabilitiesByModule(interfaceDef.identifier);
188
+ }
189
+ };
190
+ var make2 = (options) => new CapabilityManagerImpl(options);
191
+
192
+ // src/core/plugin-manager.ts
193
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/app-framework/src/core/plugin-manager.ts";
194
+ var ManagerTypeId = /* @__PURE__ */ Symbol.for("@dxos/app-framework/Manager");
195
+ var isManager = (value) => {
196
+ return typeof value === "object" && value !== null && ManagerTypeId in value;
197
+ };
198
+ var ManagerImpl = class {
199
+ [ManagerTypeId] = ManagerTypeId;
200
+ activation = Effect2.runSync(PubSub.unbounded());
201
+ capabilities;
202
+ registry;
203
+ _pluginsAtom;
204
+ _coreAtom;
205
+ _enabledAtom;
206
+ _modulesAtom;
207
+ _activeAtom;
208
+ _eventsFiredAtom;
209
+ _pendingResetAtom;
210
+ _pluginLoader;
211
+ _capabilities = /* @__PURE__ */ new Map();
212
+ _moduleMemoMap = /* @__PURE__ */ new Map();
213
+ _moduleSemaphores = /* @__PURE__ */ new Map();
214
+ _activatingEvents = Effect2.runSync(Ref.make([]));
215
+ _activatingModules = Effect2.runSync(Ref.make([]));
216
+ _inFlightFibers = Effect2.runSync(Ref.make([]));
217
+ _shutdownSemaphore = Effect2.runSync(Effect2.makeSemaphore(1));
218
+ _shuttingDown = Effect2.runSync(Ref.make(false));
219
+ constructor({ pluginLoader, plugins = [], core = plugins.map(({ meta }) => meta.id), enabled = [], registry }) {
220
+ this.registry = registry ?? Registry.make();
221
+ this.capabilities = make2({
222
+ registry: this.registry
223
+ });
224
+ this._pluginLoader = pluginLoader;
225
+ this._pluginsAtom = Atom2.make(plugins).pipe(Atom2.keepAlive);
226
+ this._coreAtom = Atom2.make(core).pipe(Atom2.keepAlive);
227
+ this._enabledAtom = Atom2.make(enabled).pipe(Atom2.keepAlive);
228
+ this._modulesAtom = Atom2.make([]).pipe(Atom2.keepAlive);
229
+ this._activeAtom = Atom2.make([]).pipe(Atom2.keepAlive);
230
+ this._eventsFiredAtom = Atom2.make([]).pipe(Atom2.keepAlive);
231
+ this._pendingResetAtom = Atom2.make([]).pipe(Atom2.keepAlive);
232
+ plugins.forEach((plugin) => this._addPlugin(plugin));
233
+ void Effect2.all([
234
+ ...core,
235
+ ...enabled
236
+ ].map((id) => this.enable(id))).pipe(runAndForwardErrors);
237
+ }
238
+ get plugins() {
239
+ return this._pluginsAtom;
240
+ }
241
+ get core() {
242
+ return this._coreAtom;
243
+ }
244
+ /**
245
+ * Ids of plugins that are currently enabled.
246
+ */
247
+ get enabled() {
248
+ return this._enabledAtom;
249
+ }
250
+ /**
251
+ * Modules of plugins which are currently enabled.
252
+ */
253
+ get modules() {
254
+ return this._modulesAtom;
255
+ }
256
+ /**
257
+ * Ids of modules which are currently active.
258
+ */
259
+ get active() {
260
+ return this._activeAtom;
261
+ }
262
+ /**
263
+ * Ids of events which have been fired.
264
+ */
265
+ get eventsFired() {
266
+ return this._eventsFiredAtom;
267
+ }
268
+ /**
269
+ * Ids of modules which are pending reset.
270
+ */
271
+ get pendingReset() {
272
+ return this._pendingResetAtom;
273
+ }
274
+ getPlugins() {
275
+ return this._get(this._pluginsAtom);
276
+ }
277
+ getCore() {
278
+ return this._get(this._coreAtom);
279
+ }
280
+ getEnabled() {
281
+ return this._get(this._enabledAtom);
282
+ }
283
+ getModules() {
284
+ return this._get(this._modulesAtom);
285
+ }
286
+ getActive() {
287
+ return this._get(this._activeAtom);
288
+ }
289
+ getEventsFired() {
290
+ return this._get(this._eventsFiredAtom);
291
+ }
292
+ getPendingReset() {
293
+ return this._get(this._pendingResetAtom);
294
+ }
295
+ /**
296
+ * Adds a plugin to the manager via the plugin loader.
297
+ * @param id The id of the plugin.
298
+ */
299
+ add(id) {
300
+ return Effect2.gen(this, function* () {
301
+ log2("add plugin", {
302
+ id
303
+ }, {
304
+ F: __dxlog_file2,
305
+ L: 227,
306
+ S: this,
307
+ C: (f, a) => f(...a)
308
+ });
309
+ const plugin = yield* this._pluginLoader(id);
310
+ this._addPlugin(plugin);
311
+ return yield* this.enable(plugin.meta.id);
312
+ });
313
+ }
314
+ /**
315
+ * Enables a plugin.
316
+ * @param id The id of the plugin.
317
+ */
318
+ enable(id) {
319
+ return Effect2.gen(this, function* () {
320
+ log2("enable plugin", {
321
+ id
322
+ }, {
323
+ F: __dxlog_file2,
324
+ L: 240,
325
+ S: this,
326
+ C: (f, a) => f(...a)
327
+ });
328
+ const plugin = this._getPlugin(id);
329
+ if (!plugin) {
330
+ return false;
331
+ }
332
+ this._update(this._enabledAtom, (enabled) => enabled.includes(id) ? enabled : [
333
+ ...enabled,
334
+ id
335
+ ]);
336
+ plugin.modules.forEach((module) => {
337
+ this._addModule(module);
338
+ this._setPendingResetByModule(module);
339
+ });
340
+ log2("pending reset", {
341
+ events: [
342
+ ...this.getPendingReset()
343
+ ]
344
+ }, {
345
+ F: __dxlog_file2,
346
+ L: 253,
347
+ S: this,
348
+ C: (f, a) => f(...a)
349
+ });
350
+ yield* Effect2.all(this.getPendingReset().map((event) => this.activate(event)), {
351
+ concurrency: "unbounded"
352
+ });
353
+ return true;
354
+ });
355
+ }
356
+ /**
357
+ * Removes a plugin from the manager.
358
+ * @param id The id of the plugin.
359
+ */
360
+ remove(id) {
361
+ log2("remove plugin", {
362
+ id
363
+ }, {
364
+ F: __dxlog_file2,
365
+ L: 268,
366
+ S: this,
367
+ C: (f, a) => f(...a)
368
+ });
369
+ const result = this.disable(id);
370
+ if (!result) {
371
+ return false;
372
+ }
373
+ this._removePlugin(id);
374
+ return true;
375
+ }
376
+ /**
377
+ * Disables a plugin.
378
+ * @param id The id of the plugin.
379
+ */
380
+ disable(id) {
381
+ return Effect2.gen(this, function* () {
382
+ log2("disable plugin", {
383
+ id
384
+ }, {
385
+ F: __dxlog_file2,
386
+ L: 284,
387
+ S: this,
388
+ C: (f, a) => f(...a)
389
+ });
390
+ if (this._get(this._coreAtom).includes(id)) {
391
+ return false;
392
+ }
393
+ const plugin = this._getPlugin(id);
394
+ if (!plugin) {
395
+ return false;
396
+ }
397
+ const enabledIndex = this._get(this._enabledAtom).findIndex((enabled) => enabled === id);
398
+ if (enabledIndex !== -1) {
399
+ this._update(this._enabledAtom, (enabled) => enabled.filter((item) => item !== id));
400
+ yield* this.deactivate(id);
401
+ plugin.modules.forEach((module) => {
402
+ this._removeModule(module.id);
403
+ });
404
+ }
405
+ return true;
406
+ });
407
+ }
408
+ /**
409
+ * Activates plugins based on the activation event.
410
+ * @param event The activation event.
411
+ * @returns Whether the activation was successful.
412
+ */
413
+ activate(event, params) {
414
+ const key = typeof event === "string" ? event : eventKey(event);
415
+ return Effect2.gen(this, function* () {
416
+ if (yield* this._isShuttingDown()) {
417
+ log2("skipping activation during shutdown", {
418
+ key,
419
+ ...params
420
+ }, {
421
+ F: __dxlog_file2,
422
+ L: 320,
423
+ S: this,
424
+ C: (f, a) => f(...a)
425
+ });
426
+ return false;
427
+ }
428
+ return yield* Effect2.withFiberRuntime((fiber) => this._activateEvent(key, params, fiber).pipe(together(Effect2.sleep(Duration.seconds(15)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("event activation is taking a long time", {
429
+ event: key
430
+ }, {
431
+ F: __dxlog_file2,
432
+ L: 328,
433
+ S: this,
434
+ C: (f, a) => f(...a)
435
+ }))))), Performance.addTrackEntry({
436
+ name: typeof event === "string" ? event : eventKey(event),
437
+ devtools: {
438
+ dataType: "track-entry",
439
+ track: "Event Activation",
440
+ trackGroup: "Composer",
441
+ color: "primary"
442
+ }
443
+ })));
444
+ });
445
+ }
446
+ /**
447
+ * Deactivates all of the modules for a plugin.
448
+ * @param id The id of the plugin.
449
+ * @returns Whether the deactivation was successful.
450
+ */
451
+ deactivate(id) {
452
+ return Effect2.gen(this, function* () {
453
+ const plugin = this._getPlugin(id);
454
+ if (!plugin) {
455
+ return false;
456
+ }
457
+ const modules = plugin.modules;
458
+ const results = yield* Effect2.all(modules.map((module) => this._deactivateModule(module)), {
459
+ concurrency: "unbounded"
460
+ });
461
+ return results.every((result) => result);
462
+ });
463
+ }
464
+ /**
465
+ * Re-activates the modules that were activated by the event.
466
+ * @param event The activation event.
467
+ * @returns Whether the reset was successful.
468
+ */
469
+ reset(event) {
470
+ return Effect2.gen(this, function* () {
471
+ const key = typeof event === "string" ? event : eventKey(event);
472
+ log2("reset", {
473
+ key
474
+ }, {
475
+ F: __dxlog_file2,
476
+ L: 374,
477
+ S: this,
478
+ C: (f, a) => f(...a)
479
+ });
480
+ const modules = this._getActiveModulesByEvent(key);
481
+ const results = yield* Effect2.all(modules.map((module) => this._deactivateModule(module)), {
482
+ concurrency: "unbounded"
483
+ });
484
+ if (results.every((result) => result)) {
485
+ return yield* this.activate(key);
486
+ } else {
487
+ return false;
488
+ }
489
+ });
490
+ }
491
+ shutdown() {
492
+ return this._shutdownSemaphore.withPermits(1)(Effect2.gen(this, function* () {
493
+ yield* Ref.set(this._shuttingDown, true);
494
+ log2("shutdown", void 0, {
495
+ F: __dxlog_file2,
496
+ L: 393,
497
+ S: this,
498
+ C: (f, a) => f(...a)
499
+ });
500
+ yield* this._interruptInFlightActivations();
501
+ const activeIds = [
502
+ ...this._get(this._activeAtom)
503
+ ].reverse();
504
+ const allModules = this._get(this._modulesAtom);
505
+ const modulesToDeactivate = activeIds.map((id) => allModules.find((module) => module.id === id)).filter((module) => module != null);
506
+ for (const module of modulesToDeactivate) {
507
+ yield* this._deactivateModule(module);
508
+ }
509
+ this._set(this._eventsFiredAtom, []);
510
+ this._set(this._pendingResetAtom, []);
511
+ this._moduleMemoMap.clear();
512
+ yield* Ref.set(this._activatingEvents, []);
513
+ yield* Ref.set(this._activatingModules, []);
514
+ log2("shutdown complete", void 0, {
515
+ F: __dxlog_file2,
516
+ L: 413,
517
+ S: this,
518
+ C: (f, a) => f(...a)
519
+ });
520
+ return true;
521
+ }).pipe(Effect2.ensuring(Ref.set(this._shuttingDown, false))));
522
+ }
523
+ //
524
+ // State helpers
525
+ //
526
+ _get(atom) {
527
+ return this.registry.get(atom);
528
+ }
529
+ _set(atom, value) {
530
+ this.registry.set(atom, value);
531
+ }
532
+ _update(atom, updater) {
533
+ this._set(atom, updater(this._get(atom)));
534
+ }
535
+ _isShuttingDown() {
536
+ return Ref.get(this._shuttingDown);
537
+ }
538
+ _getPlugin(id) {
539
+ return this._get(this._pluginsAtom).find((plugin) => plugin.meta.id === id);
540
+ }
541
+ _getActiveModules() {
542
+ const active = this._get(this._activeAtom);
543
+ return this._get(this._modulesAtom).filter((module) => active.includes(module.id));
544
+ }
545
+ _getInactiveModules() {
546
+ const active = this._get(this._activeAtom);
547
+ return this._get(this._modulesAtom).filter((module) => !active.includes(module.id));
548
+ }
549
+ _getActiveModulesByEvent(key) {
550
+ return this._getActiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
551
+ }
552
+ _getInactiveModulesByEvent(key) {
553
+ return this._getInactiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
554
+ }
555
+ _setPendingResetByModule(module) {
556
+ const activationEvents = getEvents(module.activatesOn).map(eventKey).filter((key) => this._get(this._eventsFiredAtom).includes(key));
557
+ const pendingReset = Array.fromIterable(new Set(activationEvents)).filter((event) => {
558
+ const pending = this._get(this._pendingResetAtom);
559
+ return !pending.includes(event);
560
+ });
561
+ if (pendingReset.length > 0) {
562
+ log2("pending reset", {
563
+ events: pendingReset
564
+ }, {
565
+ F: __dxlog_file2,
566
+ L: 475,
567
+ S: this,
568
+ C: (f, a) => f(...a)
569
+ });
570
+ this._update(this._pendingResetAtom, (current) => [
571
+ ...current,
572
+ ...pendingReset
573
+ ]);
574
+ }
575
+ }
576
+ _clearPendingReset(key) {
577
+ const pendingIndex = this._get(this._pendingResetAtom).findIndex((event) => event === key);
578
+ if (pendingIndex !== -1) {
579
+ this._update(this._pendingResetAtom, (pending) => pending.filter((event) => event !== key));
580
+ }
581
+ }
582
+ //
583
+ // Fiber helpers
584
+ //
585
+ _interruptInFlightActivations() {
586
+ return Effect2.gen(this, function* () {
587
+ const inFlightFibers = yield* Ref.get(this._inFlightFibers);
588
+ yield* Effect2.forEach(inFlightFibers, (fiber) => Fiber.interrupt(fiber), {
589
+ concurrency: "unbounded"
590
+ });
591
+ });
592
+ }
593
+ _trackFiber(ref, fiber) {
594
+ return Ref.update(ref, (fibers) => [
595
+ ...fibers,
596
+ fiber
597
+ ]);
598
+ }
599
+ _untrackFiber(ref, fiber) {
600
+ return Ref.update(ref, (fibers) => fibers.filter((trackedFiber) => trackedFiber !== fiber));
601
+ }
602
+ //
603
+ // Registration helpers
604
+ //
605
+ _addPlugin(plugin) {
606
+ log2("add plugin", {
607
+ id: plugin.meta.id
608
+ }, {
609
+ F: __dxlog_file2,
610
+ L: 519,
611
+ S: this,
612
+ C: (f, a) => f(...a)
613
+ });
614
+ this._update(this._pluginsAtom, (plugins) => plugins.includes(plugin) ? plugins : [
615
+ ...plugins,
616
+ plugin
617
+ ]);
618
+ }
619
+ _removePlugin(id) {
620
+ log2("remove plugin", {
621
+ id
622
+ }, {
623
+ F: __dxlog_file2,
624
+ L: 525,
625
+ S: this,
626
+ C: (f, a) => f(...a)
627
+ });
628
+ this._update(this._pluginsAtom, (plugins) => plugins.filter((plugin) => plugin.meta.id !== id));
629
+ }
630
+ _addModule(module) {
631
+ log2("add module", {
632
+ id: module.id
633
+ }, {
634
+ F: __dxlog_file2,
635
+ L: 530,
636
+ S: this,
637
+ C: (f, a) => f(...a)
638
+ });
639
+ this._update(this._modulesAtom, (modules) => modules.includes(module) ? modules : [
640
+ ...modules,
641
+ module
642
+ ]);
643
+ }
644
+ _removeModule(id) {
645
+ log2("remove module", {
646
+ id
647
+ }, {
648
+ F: __dxlog_file2,
649
+ L: 536,
650
+ S: this,
651
+ C: (f, a) => f(...a)
652
+ });
653
+ this._update(this._modulesAtom, (modules) => modules.filter((module) => module.id !== id));
654
+ }
655
+ //
656
+ // Activation helpers
657
+ //
658
+ _activateEvent(key, params, fiber) {
659
+ return Effect2.gen(this, function* () {
660
+ yield* this._trackFiber(this._inFlightFibers, fiber);
661
+ log2("activating", {
662
+ key,
663
+ ...params
664
+ }, {
665
+ F: __dxlog_file2,
666
+ L: 551,
667
+ S: this,
668
+ C: (f, a) => f(...a)
669
+ });
670
+ yield* Ref.update(this._activatingEvents, (activating) => Array.append(activating, key));
671
+ this._clearPendingReset(key);
672
+ const activatingEvents = yield* this._activatingEvents;
673
+ const activatingModules = yield* this._activatingModules;
674
+ const modules = this._getModulesForActivation(key, activatingEvents, activatingModules);
675
+ if (modules.length === 0) {
676
+ log2("no modules to activate", {
677
+ key
678
+ }, {
679
+ F: __dxlog_file2,
680
+ L: 559,
681
+ S: this,
682
+ C: (f, a) => f(...a)
683
+ });
684
+ if (!this._get(this._eventsFiredAtom).includes(key)) {
685
+ this._update(this._eventsFiredAtom, (events) => [
686
+ ...events,
687
+ key
688
+ ]);
689
+ }
690
+ return false;
691
+ }
692
+ return yield* this._activateModulesForEvent(key, modules, activatingEvents);
693
+ }).pipe(Effect2.ensuring(Effect2.all([
694
+ this._untrackFiber(this._inFlightFibers, fiber),
695
+ Ref.update(this._activatingEvents, (activating) => Array.filter(activating, (event) => event !== key))
696
+ ])));
697
+ }
698
+ _activateModulesForEvent(key, modules, activatingEvents) {
699
+ const activatingModuleIds = modules.map((module) => module.id);
700
+ return Effect2.gen(this, function* () {
701
+ yield* Ref.update(this._activatingModules, (activating) => Array.appendAll(activating, activatingModuleIds));
702
+ log2("activating modules", {
703
+ key,
704
+ modules: activatingModuleIds
705
+ }, {
706
+ F: __dxlog_file2,
707
+ L: 586,
708
+ S: this,
709
+ C: (f, a) => f(...a)
710
+ });
711
+ performance.mark(`event:${key}:start`);
712
+ yield* PubSub.publish(this.activation, {
713
+ event: key,
714
+ state: "activating"
715
+ });
716
+ yield* this._activateRelatedEvents(key, this._getBeforeEvents(modules, activatingEvents), "before");
717
+ const capabilities = yield* this._loadCapabilitiesForModules(key, modules);
718
+ yield* this._contributeCapabilitiesForModules(modules, capabilities);
719
+ yield* this._activateRelatedEvents(key, this._getAfterEvents(modules, activatingEvents), "after");
720
+ if (!this._get(this._eventsFiredAtom).includes(key)) {
721
+ this._update(this._eventsFiredAtom, (events) => [
722
+ ...events,
723
+ key
724
+ ]);
725
+ }
726
+ performance.mark(`event:${key}:end`);
727
+ performance.measure(`event:${key}`, `event:${key}:start`, `event:${key}:end`);
728
+ yield* PubSub.publish(this.activation, {
729
+ event: key,
730
+ state: "activated"
731
+ });
732
+ log2("activated", {
733
+ key
734
+ }, {
735
+ F: __dxlog_file2,
736
+ L: 604,
737
+ S: this,
738
+ C: (f, a) => f(...a)
739
+ });
740
+ return true;
741
+ }).pipe(Effect2.ensuring(Ref.update(this._activatingModules, (activating) => Array.filter(activating, (module) => !activatingModuleIds.includes(module)))));
742
+ }
743
+ _getModulesForActivation(key, activatingEvents, activatingModules) {
744
+ return this._getInactiveModulesByEvent(key).filter((module) => {
745
+ const allOf = isAllOf(module.activatesOn);
746
+ if (!allOf) {
747
+ return true;
748
+ }
749
+ const events = getEvents(module.activatesOn).filter((event) => eventKey(event) !== key);
750
+ return events.every((event) => this._get(this._eventsFiredAtom).includes(eventKey(event)) || activatingEvents.includes(eventKey(event))) && !activatingModules.includes(module.id);
751
+ });
752
+ }
753
+ _getBeforeEvents(modules, activatingEvents) {
754
+ return Function.pipe(modules, Array.flatMap((module) => module.firesBeforeActivation ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event) => !activatingEvents.includes(eventKey(event))));
755
+ }
756
+ _getAfterEvents(modules, activatingEvents) {
757
+ return Function.pipe(modules, Array.flatMap((module) => module.firesAfterActivation ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event) => !activatingEvents.includes(eventKey(event))));
758
+ }
759
+ _activateRelatedEvents(key, events, phase) {
760
+ const logLabel = phase === "before" ? "firesBeforeActivation" : "firesAfterActivation";
761
+ const eventKey2 = phase === "before" ? "beforeEvents" : "afterEvents";
762
+ return Function.pipe(events, Array.map((event) => this.activate(event, phase === "before" ? {
763
+ before: key
764
+ } : {
765
+ after: key
766
+ })), Effect2.allWith({
767
+ concurrency: "unbounded"
768
+ }), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn(`${logLabel} is taking a long time`, {
769
+ event: key,
770
+ [eventKey2]: events.map(eventKey)
771
+ }, {
772
+ F: __dxlog_file2,
773
+ L: 683,
774
+ S: this,
775
+ C: (f, a) => f(...a)
776
+ }))))), Effect2.asVoid);
777
+ }
778
+ //
779
+ // Module lifecycle helpers
780
+ //
781
+ _loadCapabilitiesForModules(key, modules) {
782
+ return Function.pipe(modules, Array.map((mod) => this._loadModule(mod)), Effect2.allWith({
783
+ concurrency: "unbounded"
784
+ }), Effect2.catchAll((error) => {
785
+ return Effect2.gen(this, function* () {
786
+ yield* PubSub.publish(this.activation, {
787
+ event: key,
788
+ state: "error",
789
+ error
790
+ });
791
+ return yield* Effect2.fail(error);
792
+ });
793
+ }));
794
+ }
795
+ _contributeCapabilitiesForModules(modules, capabilities) {
796
+ return Function.pipe(
797
+ modules,
798
+ Array.zip(capabilities),
799
+ Array.map(([module, capabilitySet]) => this._contributeCapabilities(module, capabilitySet)),
800
+ Effect2.all,
801
+ Effect2.asVoid
802
+ );
803
+ }
804
+ _getModuleSemaphore(moduleId) {
805
+ let semaphore = this._moduleSemaphores.get(moduleId);
806
+ if (!semaphore) {
807
+ semaphore = Effect2.runSync(Effect2.makeSemaphore(1));
808
+ this._moduleSemaphores.set(moduleId, semaphore);
809
+ }
810
+ return semaphore;
811
+ }
812
+ _loadModule = (module) => Effect2.gen(this, function* () {
813
+ const semaphore = this._getModuleSemaphore(module.id);
814
+ const deferredToAwait = yield* Effect2.gen(this, function* () {
815
+ const existing = this._moduleMemoMap.get(module.id);
816
+ if (existing) {
817
+ return existing;
818
+ }
819
+ const deferred = yield* Deferred2.make();
820
+ this._moduleMemoMap.set(module.id, deferred);
821
+ const loadEffect = Effect2.gen(this, function* () {
822
+ log2("loading module", {
823
+ module: module.id
824
+ }, {
825
+ F: __dxlog_file2,
826
+ L: 756,
827
+ S: this,
828
+ C: (f, a) => f(...a)
829
+ });
830
+ performance.mark(`module:${module.id}:start`);
831
+ yield* PubSub.publish(this.activation, {
832
+ event: "",
833
+ state: "activating",
834
+ module: module.id
835
+ });
836
+ const [duration, capabilities] = yield* module.activate().pipe(Effect2.provideService(Service, this.capabilities), Effect2.provideService(Service2, this), Effect2.timed);
837
+ const normalized = capabilities == null ? [] : Array.isArray(capabilities) ? capabilities : [
838
+ capabilities
839
+ ];
840
+ const elapsed = Duration.toMillis(duration);
841
+ performance.mark(`module:${module.id}:end`);
842
+ performance.measure(`module:${module.id}`, `module:${module.id}:start`, `module:${module.id}:end`);
843
+ yield* PubSub.publish(this.activation, {
844
+ event: "",
845
+ state: "activated",
846
+ module: module.id
847
+ });
848
+ log2("loaded module", {
849
+ module: module.id,
850
+ elapsed,
851
+ failed: false
852
+ }, {
853
+ F: __dxlog_file2,
854
+ L: 771,
855
+ S: this,
856
+ C: (f, a) => f(...a)
857
+ });
858
+ return normalized;
859
+ }).pipe(Effect2.withSpan("PluginManager._loadModule"), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn(`module is taking a long time to activate`, {
860
+ module: module.id
861
+ }, {
862
+ F: __dxlog_file2,
863
+ L: 782,
864
+ S: this,
865
+ C: (f, a) => f(...a)
866
+ }))))), Performance.addTrackEntry({
867
+ name: module.id,
868
+ devtools: {
869
+ dataType: "track-entry",
870
+ track: "Module Activation",
871
+ trackGroup: "Composer",
872
+ color: "primary"
873
+ }
874
+ }));
875
+ const fiber = yield* Effect2.forkDaemon(loadEffect.pipe(Effect2.tap((result) => Deferred2.succeed(deferred, result)), Effect2.catchAllCause((cause) => {
876
+ const error = Cause.squash(cause);
877
+ log2.error("module failed to activate", {
878
+ module: module.id,
879
+ error: error instanceof Error ? error.message : String(error),
880
+ stack: error instanceof Error ? error.stack : void 0,
881
+ isDefect: !Cause.isFailure(cause)
882
+ }, {
883
+ F: __dxlog_file2,
884
+ L: 803,
885
+ S: this,
886
+ C: (f, a) => f(...a)
887
+ });
888
+ return Deferred2.fail(deferred, error instanceof Error ? error : new Error(String(error)));
889
+ })));
890
+ yield* this._trackFiber(this._inFlightFibers, fiber);
891
+ yield* Effect2.forkDaemon(Fiber.await(fiber).pipe(Effect2.andThen(() => this._untrackFiber(this._inFlightFibers, fiber))));
892
+ return deferred;
893
+ }).pipe(semaphore.withPermits(1));
894
+ return yield* Deferred2.await(deferredToAwait);
895
+ });
896
+ _contributeCapabilities(module, capabilities) {
897
+ return Effect2.gen(this, function* () {
898
+ capabilities.forEach((capability) => {
899
+ this.capabilities.contribute({
900
+ module: module.id,
901
+ ...capability
902
+ });
903
+ });
904
+ this._update(this._activeAtom, (active) => [
905
+ ...active,
906
+ module.id
907
+ ]);
908
+ this._capabilities.set(module.id, capabilities);
909
+ });
910
+ }
911
+ _deactivateModule(module) {
912
+ return Effect2.gen(this, function* () {
913
+ const id = module.id;
914
+ log2("deactivating", {
915
+ id
916
+ }, {
917
+ F: __dxlog_file2,
918
+ L: 841,
919
+ S: this,
920
+ C: (f, a) => f(...a)
921
+ });
922
+ this._moduleMemoMap.delete(id);
923
+ const capabilities = this._capabilities.get(id);
924
+ if (capabilities) {
925
+ for (const capability of capabilities) {
926
+ this.capabilities.remove(capability.interface, capability.implementation);
927
+ const program = capability.deactivate?.() ?? Effect2.succeed(void 0);
928
+ yield* program;
929
+ }
930
+ this._capabilities.delete(id);
931
+ }
932
+ const activeIndex = this._get(this._activeAtom).findIndex((event) => event === id);
933
+ if (activeIndex !== -1) {
934
+ this._update(this._activeAtom, (active) => active.filter((event) => event !== id));
935
+ }
936
+ log2("deactivated", {
937
+ id
938
+ }, {
939
+ F: __dxlog_file2,
940
+ L: 859,
941
+ S: this,
942
+ C: (f, a) => f(...a)
943
+ });
944
+ return true;
945
+ });
946
+ }
947
+ };
948
+ var make5 = (options) => new ManagerImpl(options);
949
+ var together = (togetherEffect) => (effect) => Effect2.gen(function* () {
950
+ const togetherFiber = yield* Effect2.fork(togetherEffect);
951
+ const result = yield* effect;
952
+ yield* Fiber.interrupt(togetherFiber);
953
+ return result;
954
+ });
955
+
956
+ export {
957
+ capability_manager_exports,
958
+ ManagerTypeId,
959
+ isManager,
960
+ make5 as make,
961
+ plugin_manager_exports
962
+ };
963
+ //# sourceMappingURL=chunk-56CEL32L.mjs.map