@dxos/app-framework 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (368) hide show
  1. package/.storybook/main.mts +1 -3
  2. package/dist/lib/browser/capability-5OFLR7J4.mjs +34 -0
  3. package/dist/lib/browser/capability-5OFLR7J4.mjs.map +7 -0
  4. package/dist/lib/browser/{capability-7PCNSWBT.mjs → capability-ZHQDZRP5.mjs} +15 -11
  5. package/dist/lib/browser/capability-ZHQDZRP5.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-272IPLHQ.mjs} +1 -1
  7. package/dist/lib/browser/{chunk-PKQT6C53.mjs.map → chunk-272IPLHQ.mjs.map} +1 -1
  8. package/dist/lib/browser/{chunk-FMZN33N4.mjs → chunk-3VXJONTI.mjs} +304 -178
  9. package/dist/lib/browser/chunk-3VXJONTI.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-XYNO72GQ.mjs → chunk-7AL6SKIV.mjs} +459 -477
  11. package/dist/lib/browser/chunk-7AL6SKIV.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-TCLLRCS3.mjs → chunk-GH3M2LIW.mjs} +10 -7
  13. package/dist/lib/browser/chunk-GH3M2LIW.mjs.map +7 -0
  14. package/dist/lib/browser/{chunk-7IQHKD4U.mjs → chunk-JGWCBVKJ.mjs} +2 -2
  15. package/dist/lib/browser/chunk-JGWCBVKJ.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-M5IC326L.mjs +34 -0
  17. package/dist/lib/browser/chunk-M5IC326L.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
  19. package/dist/lib/browser/{chunk-FHQTHCX7.mjs.map → chunk-TGX63LTL.mjs.map} +1 -1
  20. package/dist/lib/browser/chunk-TIEBZMTF.mjs +44 -0
  21. package/dist/lib/browser/chunk-TIEBZMTF.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-WEBSGU5L.mjs +80 -0
  23. package/dist/lib/browser/chunk-WEBSGU5L.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
  25. package/dist/lib/browser/{chunk-6Y7PZV72.mjs → chunk-YNFPIQGB.mjs} +2 -3
  26. package/dist/lib/browser/{chunk-6Y7PZV72.mjs.map → chunk-YNFPIQGB.mjs.map} +3 -3
  27. package/dist/lib/browser/cli/index.mjs +89 -0
  28. package/dist/lib/browser/cli/index.mjs.map +7 -0
  29. package/dist/lib/browser/common/activation-events.mjs +23 -0
  30. package/dist/lib/browser/common/capabilities.mjs +45 -0
  31. package/dist/lib/browser/core/activation-event.mjs +1 -1
  32. package/dist/lib/browser/core/capability.mjs +1 -1
  33. package/dist/lib/browser/core/plugin-manager.mjs +4 -4
  34. package/dist/lib/browser/core/plugin.mjs +6 -4
  35. package/dist/lib/browser/index.mjs +37 -132
  36. package/dist/lib/browser/index.mjs.map +4 -4
  37. package/dist/lib/browser/{invoker-capability-SZRSTHEH.mjs → invoker-capability-YTTQ2OBB.mjs} +16 -12
  38. package/dist/lib/browser/invoker-capability-YTTQ2OBB.mjs.map +7 -0
  39. package/dist/lib/browser/meta.json +1 -1
  40. package/dist/lib/browser/testing/index.mjs +55 -34
  41. package/dist/lib/browser/testing/index.mjs.map +3 -3
  42. package/dist/lib/browser/{react → ui}/index.mjs +18 -19
  43. package/dist/lib/node-esm/capability-CRHZKL6T.mjs +35 -0
  44. package/dist/lib/node-esm/capability-CRHZKL6T.mjs.map +7 -0
  45. package/dist/lib/node-esm/{capability-CFLQ2QQU.mjs → capability-W5C5464H.mjs} +15 -11
  46. package/dist/lib/node-esm/capability-W5C5464H.mjs.map +7 -0
  47. package/dist/lib/node-esm/{chunk-663A54LQ.mjs → chunk-3D66SZHP.mjs} +2 -2
  48. package/dist/lib/node-esm/chunk-3D66SZHP.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-6REV5DE7.mjs} +1 -1
  50. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs.map → chunk-6REV5DE7.mjs.map} +1 -1
  51. package/dist/lib/node-esm/{chunk-XYQTBFPA.mjs → chunk-CMDON4NG.mjs} +304 -178
  52. package/dist/lib/node-esm/chunk-CMDON4NG.mjs.map +7 -0
  53. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs → chunk-FKE4Z3D6.mjs} +2 -2
  54. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs.map → chunk-FKE4Z3D6.mjs.map} +1 -1
  55. package/dist/lib/node-esm/{chunk-6WXBT3EC.mjs → chunk-I7FZT4A7.mjs} +459 -477
  56. package/dist/lib/node-esm/chunk-I7FZT4A7.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-GT6OKM5I.mjs → chunk-LHCJGNXK.mjs} +10 -7
  58. package/dist/lib/node-esm/chunk-LHCJGNXK.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs +35 -0
  60. package/dist/lib/node-esm/chunk-NHXBSAQR.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs → chunk-SB5ODNPX.mjs} +2 -3
  62. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs.map → chunk-SB5ODNPX.mjs.map} +3 -3
  63. package/dist/lib/node-esm/chunk-SCDGIGGU.mjs +45 -0
  64. package/dist/lib/node-esm/chunk-SCDGIGGU.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-SQICGJBW.mjs +81 -0
  66. package/dist/lib/node-esm/chunk-SQICGJBW.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
  68. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
  69. package/dist/lib/node-esm/cli/index.mjs +90 -0
  70. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  71. package/dist/lib/node-esm/common/activation-events.mjs +24 -0
  72. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  73. package/dist/lib/node-esm/common/capabilities.mjs +46 -0
  74. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  75. package/dist/lib/node-esm/core/activation-event.mjs +1 -1
  76. package/dist/lib/node-esm/core/capability.mjs +1 -1
  77. package/dist/lib/node-esm/core/plugin-manager.mjs +4 -4
  78. package/dist/lib/node-esm/core/plugin.mjs +6 -4
  79. package/dist/lib/node-esm/index.mjs +37 -132
  80. package/dist/lib/node-esm/index.mjs.map +4 -4
  81. package/dist/lib/node-esm/{invoker-capability-PNMA5JOS.mjs → invoker-capability-BU26474T.mjs} +16 -12
  82. package/dist/lib/node-esm/invoker-capability-BU26474T.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/testing/index.mjs +55 -34
  85. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  86. package/dist/lib/node-esm/{react → ui}/index.mjs +18 -19
  87. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  88. package/dist/types/src/{cli.d.ts → cli/cli.d.ts} +2 -2
  89. package/dist/types/src/cli/cli.d.ts.map +1 -0
  90. package/dist/types/src/cli/index.d.ts +2 -0
  91. package/dist/types/src/cli/index.d.ts.map +1 -0
  92. package/dist/types/src/common/activation-events.d.ts +27 -0
  93. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  94. package/dist/types/src/common/capabilities.d.ts +115 -0
  95. package/dist/types/src/common/capabilities.d.ts.map +1 -0
  96. package/dist/types/src/common/index.d.ts +4 -9
  97. package/dist/types/src/common/index.d.ts.map +1 -1
  98. package/dist/types/src/common/operations.d.ts +1 -348
  99. package/dist/types/src/common/operations.d.ts.map +1 -1
  100. package/dist/types/src/common/translations.d.ts +0 -9
  101. package/dist/types/src/common/translations.d.ts.map +1 -1
  102. package/dist/types/src/core/activation-event.d.ts +1 -1
  103. package/dist/types/src/core/capability.d.ts +7 -7
  104. package/dist/types/src/core/capability.d.ts.map +1 -1
  105. package/dist/types/src/core/plugin-manager.d.ts +6 -0
  106. package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
  107. package/dist/types/src/core/plugin.d.ts +6 -1
  108. package/dist/types/src/core/plugin.d.ts.map +1 -1
  109. package/dist/types/src/index.d.ts +1 -3
  110. package/dist/types/src/index.d.ts.map +1 -1
  111. package/dist/types/src/plugin-operation/history/capability.d.ts +1 -1
  112. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +11 -3
  113. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -1
  114. package/dist/types/src/plugin-operation/invoker-capability.d.ts +1 -1
  115. package/dist/types/src/plugin-runtime/capability.d.ts +2 -2
  116. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -1
  117. package/dist/types/src/testing/withPluginManager.d.ts +1 -1
  118. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  119. package/dist/types/src/{react → ui/components/App}/App.d.ts +1 -1
  120. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  121. package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +7 -2
  122. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  123. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  124. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  125. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  126. package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerProvider.d.ts +1 -1
  127. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  128. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  129. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  130. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
  131. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  132. package/dist/types/src/{react/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
  133. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  134. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  135. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  136. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  137. package/dist/types/src/ui/components/Surface/index.d.ts +20 -0
  138. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  139. package/dist/types/src/{common/surface.d.ts → ui/components/Surface/types.d.ts} +20 -18
  140. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  141. package/dist/types/src/ui/components/index.d.ts +4 -0
  142. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  143. package/dist/types/src/ui/hooks/index.d.ts +7 -0
  144. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  145. package/dist/types/src/{react → ui/hooks}/useApp.d.ts +14 -9
  146. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  147. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  148. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  149. package/dist/types/src/{react → ui/hooks}/useCapabilities.d.ts +6 -1
  150. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  151. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  152. package/dist/types/src/{react → ui/hooks}/useOperationResolver.d.ts +2 -2
  153. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
  154. package/dist/types/src/{react/common.d.ts → ui/hooks/useSettingsState.d.ts} +1 -5
  155. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  156. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  157. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  158. package/dist/types/src/ui/index.d.ts +3 -0
  159. package/dist/types/src/ui/index.d.ts.map +1 -0
  160. package/dist/types/tsconfig.tsbuildinfo +1 -1
  161. package/moon.yml +6 -6
  162. package/package.json +72 -64
  163. package/src/{cli.ts → cli/cli.ts} +10 -10
  164. package/src/{playground/debug → cli}/index.ts +1 -1
  165. package/src/common/activation-events.ts +44 -0
  166. package/src/common/capabilities.ts +178 -0
  167. package/src/common/index.ts +4 -9
  168. package/src/common/operations.ts +2 -376
  169. package/src/common/translations.ts +0 -12
  170. package/src/context.ts +1 -1
  171. package/src/core/activation-event.ts +1 -1
  172. package/src/core/capability.ts +9 -9
  173. package/src/core/plugin-manager.test.ts +292 -44
  174. package/src/core/plugin-manager.ts +326 -154
  175. package/src/core/plugin.ts +10 -2
  176. package/src/index.ts +1 -3
  177. package/src/plugin-operation/OperationPlugin.ts +5 -5
  178. package/src/plugin-operation/history/capability.ts +5 -5
  179. package/src/plugin-operation/history/undo-mapping.ts +6 -3
  180. package/src/plugin-operation/invoker-capability.ts +5 -5
  181. package/src/plugin-operation/meta.ts +1 -1
  182. package/src/plugin-runtime/RuntimePlugin.ts +4 -4
  183. package/src/plugin-runtime/capability.ts +5 -5
  184. package/src/plugin-runtime/meta.ts +1 -1
  185. package/src/testing/service.ts +6 -6
  186. package/src/testing/withPluginManager.stories.tsx +6 -6
  187. package/src/testing/withPluginManager.tsx +46 -19
  188. package/src/ui/components/App/App.stories.tsx +92 -0
  189. package/src/{react → ui/components/App}/App.tsx +6 -9
  190. package/src/{playground/layout → ui/components/App}/index.ts +1 -1
  191. package/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.tsx +13 -14
  192. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +1 -1
  193. package/src/ui/components/PluginManager/index.ts +5 -0
  194. package/src/{react/Surface.stories.tsx → ui/components/Surface/SurfaceComponent.stories.tsx} +18 -16
  195. package/src/{react/Surface.tsx → ui/components/Surface/SurfaceComponent.tsx} +36 -56
  196. package/src/{react → ui/components/Surface}/SurfaceInfo.tsx +2 -2
  197. package/src/ui/components/Surface/context.ts +12 -0
  198. package/src/ui/components/Surface/index.ts +20 -0
  199. package/src/{common/surface.ts → ui/components/Surface/types.ts} +22 -25
  200. package/src/ui/components/index.ts +7 -0
  201. package/src/ui/hooks/index.ts +10 -0
  202. package/src/ui/hooks/useApp.test.tsx +159 -0
  203. package/src/{react → ui/hooks}/useApp.tsx +39 -29
  204. package/src/{react → ui/hooks}/useCapabilities.ts +9 -5
  205. package/src/{react → ui/hooks}/useOperationResolver.ts +5 -5
  206. package/src/{react/common.ts → ui/hooks/useSettingsState.ts} +0 -11
  207. package/src/ui/hooks/useSurface.ts +13 -0
  208. package/src/ui/index.ts +6 -0
  209. package/tsconfig.json +2 -29
  210. package/tsconfig.node.json +1 -3
  211. package/typedoc.json +2 -4
  212. package/vitest.config.ts +1 -1
  213. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +0 -149
  214. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +0 -7
  215. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +0 -7
  216. package/dist/lib/browser/capability-KP3PFEXD.mjs +0 -31
  217. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +0 -7
  218. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +0 -7
  219. package/dist/lib/browser/chunk-BLQJSGL3.mjs +0 -732
  220. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +0 -7
  221. package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
  222. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-H4WPA7U7.mjs +0 -77
  224. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +0 -7
  225. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +0 -7
  227. package/dist/lib/browser/common/index.mjs +0 -38
  228. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +0 -7
  229. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +0 -64
  230. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +0 -7
  231. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +0 -150
  232. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +0 -7
  233. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +0 -7
  234. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +0 -32
  235. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +0 -7
  236. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +0 -7
  237. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +0 -7
  238. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +0 -733
  239. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +0 -7
  240. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +0 -7
  241. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +0 -78
  242. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +0 -7
  243. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +0 -7
  244. package/dist/lib/node-esm/common/index.mjs +0 -39
  245. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +0 -7
  246. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +0 -65
  247. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +0 -7
  248. package/dist/types/src/cli.d.ts.map +0 -1
  249. package/dist/types/src/common/activation-event.d.ts +0 -66
  250. package/dist/types/src/common/activation-event.d.ts.map +0 -1
  251. package/dist/types/src/common/capability.d.ts +0 -265
  252. package/dist/types/src/common/capability.d.ts.map +0 -1
  253. package/dist/types/src/common/collaboration.d.ts +0 -26
  254. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  255. package/dist/types/src/common/file.d.ts +0 -14
  256. package/dist/types/src/common/file.d.ts.map +0 -1
  257. package/dist/types/src/common/graph.d.ts +0 -21
  258. package/dist/types/src/common/graph.d.ts.map +0 -1
  259. package/dist/types/src/common/plugin.d.ts +0 -201
  260. package/dist/types/src/common/plugin.d.ts.map +0 -1
  261. package/dist/types/src/common/surface.d.ts.map +0 -1
  262. package/dist/types/src/playground/debug/Debug.d.ts +0 -8
  263. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  264. package/dist/types/src/playground/debug/index.d.ts +0 -2
  265. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  266. package/dist/types/src/playground/debug/plugin.d.ts +0 -3
  267. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  268. package/dist/types/src/playground/generator/Main.d.ts +0 -8
  269. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  270. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -8
  271. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  272. package/dist/types/src/playground/generator/generator.d.ts +0 -19
  273. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  274. package/dist/types/src/playground/generator/index.d.ts +0 -3
  275. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  276. package/dist/types/src/playground/generator/plugin.d.ts +0 -3
  277. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  278. package/dist/types/src/playground/layout/Layout.d.ts +0 -10
  279. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  280. package/dist/types/src/playground/layout/index.d.ts +0 -2
  281. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  282. package/dist/types/src/playground/layout/plugin.d.ts +0 -3
  283. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  284. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -8
  285. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  286. package/dist/types/src/playground/logger/index.d.ts +0 -2
  287. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  288. package/dist/types/src/playground/logger/plugin.d.ts +0 -3
  289. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  290. package/dist/types/src/playground/logger/schema.d.ts +0 -27
  291. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  292. package/dist/types/src/playground/playground.stories.d.ts +0 -11
  293. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  294. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -3
  295. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  296. package/dist/types/src/plugin-settings/actions.d.ts +0 -61
  297. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  298. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -6
  299. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  300. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  301. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  302. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  303. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  304. package/dist/types/src/plugin-settings/operation-resolver.d.ts +0 -6
  305. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +0 -1
  306. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  307. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  308. package/dist/types/src/react/App.d.ts.map +0 -1
  309. package/dist/types/src/react/App.stories.d.ts.map +0 -1
  310. package/dist/types/src/react/DefaultFallback.d.ts +0 -8
  311. package/dist/types/src/react/DefaultFallback.d.ts.map +0 -1
  312. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  313. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  314. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +0 -1
  315. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  316. package/dist/types/src/react/Surface.d.ts +0 -14
  317. package/dist/types/src/react/Surface.d.ts.map +0 -1
  318. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  319. package/dist/types/src/react/SurfaceInfo.d.ts.map +0 -1
  320. package/dist/types/src/react/common.d.ts.map +0 -1
  321. package/dist/types/src/react/index.d.ts +0 -9
  322. package/dist/types/src/react/index.d.ts.map +0 -1
  323. package/dist/types/src/react/types.d.ts +0 -12
  324. package/dist/types/src/react/types.d.ts.map +0 -1
  325. package/dist/types/src/react/useApp.d.ts.map +0 -1
  326. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  327. package/dist/types/src/react/useLoading.d.ts.map +0 -1
  328. package/dist/types/src/react/useOperationResolver.d.ts.map +0 -1
  329. package/src/common/activation-event.ts +0 -99
  330. package/src/common/capability.ts +0 -343
  331. package/src/common/collaboration.ts +0 -31
  332. package/src/common/file.ts +0 -22
  333. package/src/common/graph.ts +0 -30
  334. package/src/common/plugin.ts +0 -364
  335. package/src/playground/debug/Debug.tsx +0 -49
  336. package/src/playground/debug/plugin.ts +0 -16
  337. package/src/playground/generator/Main.tsx +0 -80
  338. package/src/playground/generator/Toolbar.tsx +0 -57
  339. package/src/playground/generator/generator.ts +0 -48
  340. package/src/playground/generator/index.ts +0 -6
  341. package/src/playground/generator/plugin.ts +0 -21
  342. package/src/playground/layout/Layout.tsx +0 -37
  343. package/src/playground/layout/plugin.ts +0 -18
  344. package/src/playground/logger/Toolbar.tsx +0 -33
  345. package/src/playground/logger/index.ts +0 -5
  346. package/src/playground/logger/plugin.ts +0 -42
  347. package/src/playground/logger/schema.ts +0 -22
  348. package/src/playground/playground.stories.tsx +0 -54
  349. package/src/plugin-settings/SettingsPlugin.ts +0 -19
  350. package/src/plugin-settings/actions.ts +0 -64
  351. package/src/plugin-settings/app-graph-builder.ts +0 -140
  352. package/src/plugin-settings/index.ts +0 -6
  353. package/src/plugin-settings/meta.ts +0 -10
  354. package/src/plugin-settings/operation-resolver.ts +0 -55
  355. package/src/plugin-settings/translations.ts +0 -19
  356. package/src/react/App.stories.tsx +0 -63
  357. package/src/react/DefaultFallback.tsx +0 -26
  358. package/src/react/ErrorBoundary.tsx +0 -56
  359. package/src/react/index.ts +0 -14
  360. package/src/react/types.ts +0 -27
  361. /package/dist/lib/{node-esm/react/index.mjs.map → browser/chunk-YAFEA4GV.mjs.map} +0 -0
  362. /package/dist/lib/{node-esm/common/index.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  363. /package/dist/lib/browser/{react/index.mjs.map → common/capabilities.mjs.map} +0 -0
  364. /package/dist/lib/browser/{common → ui}/index.mjs.map +0 -0
  365. /package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.d.ts +0 -0
  366. /package/dist/types/src/{react → ui/components/Surface}/SurfaceInfo.d.ts +0 -0
  367. /package/dist/types/src/{react → ui/hooks}/useLoading.d.ts +0 -0
  368. /package/src/{react → ui/hooks}/useLoading.tsx +0 -0
@@ -3,13 +3,13 @@ import {
3
3
  eventKey,
4
4
  getEvents,
5
5
  isAllOf
6
- } from "./chunk-7OWSHPYK.mjs";
6
+ } from "./chunk-6REV5DE7.mjs";
7
7
  import {
8
8
  Service as Service2
9
- } from "./chunk-GT6OKM5I.mjs";
9
+ } from "./chunk-LHCJGNXK.mjs";
10
10
  import {
11
11
  Service
12
- } from "./chunk-STMXUEPO.mjs";
12
+ } from "./chunk-SB5ODNPX.mjs";
13
13
  import {
14
14
  __export
15
15
  } from "./chunk-HSLMI22Q.mjs";
@@ -33,6 +33,7 @@ import * as HashSet from "effect/HashSet";
33
33
  import * as PubSub from "effect/PubSub";
34
34
  import * as Ref from "effect/Ref";
35
35
  import { runAndForwardErrors } from "@dxos/effect";
36
+ import { Performance } from "@dxos/effect";
36
37
  import { log as log2 } from "@dxos/log";
37
38
 
38
39
  // src/core/capability-manager.ts
@@ -52,14 +53,14 @@ var CapabilityManagerImpl = class {
52
53
  return Atom.make([]).pipe(Atom.keepAlive);
53
54
  });
54
55
  _capabilities = Atom.family((id) => {
55
- return Atom.make((get) => {
56
- const current = get(this._capabilityEntries(id));
56
+ return Atom.make((get2) => {
57
+ const current = get2(this._capabilityEntries(id));
57
58
  return current.map((c) => c.implementation);
58
59
  });
59
60
  });
60
61
  _capability = Atom.family((id) => {
61
- return Atom.make((get) => {
62
- const current = get(this._capabilities(id));
62
+ return Atom.make((get2) => {
63
+ const current = get2(this._capabilities(id));
63
64
  invariant(current.length > 0, `No capability found for ${id}`, {
64
65
  F: __dxlog_file,
65
66
  L: 84,
@@ -178,7 +179,7 @@ var make2 = (options) => new CapabilityManagerImpl(options);
178
179
 
179
180
  // src/core/plugin-manager.ts
180
181
  var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/app-framework/src/core/plugin-manager.ts";
181
- var ManagerTypeId = Symbol.for("@dxos/app-framework/Manager");
182
+ var ManagerTypeId = /* @__PURE__ */ Symbol.for("@dxos/app-framework/Manager");
182
183
  var isManager = (value) => {
183
184
  return typeof value === "object" && value !== null && ManagerTypeId in value;
184
185
  };
@@ -200,6 +201,9 @@ var ManagerImpl = class {
200
201
  _moduleSemaphores = /* @__PURE__ */ new Map();
201
202
  _activatingEvents = Effect2.runSync(Ref.make([]));
202
203
  _activatingModules = Effect2.runSync(Ref.make([]));
204
+ _inFlightFibers = Effect2.runSync(Ref.make([]));
205
+ _shutdownSemaphore = Effect2.runSync(Effect2.makeSemaphore(1));
206
+ _shuttingDown = Effect2.runSync(Ref.make(false));
203
207
  constructor({ pluginLoader, plugins = [], core = plugins.map(({ meta }) => meta.id), enabled = [], registry }) {
204
208
  this.registry = registry ?? Registry.make();
205
209
  this.capabilities = make2({
@@ -286,7 +290,7 @@ var ManagerImpl = class {
286
290
  id
287
291
  }, {
288
292
  F: __dxlog_file2,
289
- L: 210,
293
+ L: 221,
290
294
  S: this,
291
295
  C: (f, a) => f(...a)
292
296
  });
@@ -305,7 +309,7 @@ var ManagerImpl = class {
305
309
  id
306
310
  }, {
307
311
  F: __dxlog_file2,
308
- L: 223,
312
+ L: 234,
309
313
  S: this,
310
314
  C: (f, a) => f(...a)
311
315
  });
@@ -327,7 +331,7 @@ var ManagerImpl = class {
327
331
  ]
328
332
  }, {
329
333
  F: __dxlog_file2,
330
- L: 236,
334
+ L: 247,
331
335
  S: this,
332
336
  C: (f, a) => f(...a)
333
337
  });
@@ -346,7 +350,7 @@ var ManagerImpl = class {
346
350
  id
347
351
  }, {
348
352
  F: __dxlog_file2,
349
- L: 251,
353
+ L: 262,
350
354
  S: this,
351
355
  C: (f, a) => f(...a)
352
356
  });
@@ -367,7 +371,7 @@ var ManagerImpl = class {
367
371
  id
368
372
  }, {
369
373
  F: __dxlog_file2,
370
- L: 267,
374
+ L: 278,
371
375
  S: this,
372
376
  C: (f, a) => f(...a)
373
377
  });
@@ -397,136 +401,35 @@ var ManagerImpl = class {
397
401
  activate(event, params) {
398
402
  const key = typeof event === "string" ? event : eventKey(event);
399
403
  return Effect2.gen(this, function* () {
400
- log2("activating", {
401
- key,
402
- ...params
403
- }, {
404
- F: __dxlog_file2,
405
- L: 302,
406
- S: this,
407
- C: (f, a) => f(...a)
408
- });
409
- yield* Ref.update(this._activatingEvents, (activating) => Array.append(activating, key));
410
- const pendingIndex = this._get(this._pendingResetAtom).findIndex((event2) => event2 === key);
411
- if (pendingIndex !== -1) {
412
- this._update(this._pendingResetAtom, (pending) => pending.filter((event2) => event2 !== key));
413
- }
414
- const activatingEvents = yield* this._activatingEvents;
415
- const activatingModules = yield* this._activatingModules;
416
- const modules = this._getInactiveModulesByEvent(key).filter((module) => {
417
- const allOf = isAllOf(module.activatesOn);
418
- if (!allOf) {
419
- return true;
420
- }
421
- const events = getEvents(module.activatesOn).filter((event2) => eventKey(event2) !== key);
422
- return events.every((event2) => this._get(this._eventsFiredAtom).includes(eventKey(event2)) || activatingEvents.includes(eventKey(event2))) && !activatingModules.includes(module.id);
423
- });
424
- yield* Ref.update(this._activatingModules, (activating) => Array.appendAll(activating, modules.map((module) => module.id)));
425
- if (modules.length === 0) {
426
- log2("no modules to activate", {
427
- key
404
+ if (yield* this._isShuttingDown()) {
405
+ log2("skipping activation during shutdown", {
406
+ key,
407
+ ...params
428
408
  }, {
429
409
  F: __dxlog_file2,
430
- L: 337,
410
+ L: 314,
431
411
  S: this,
432
412
  C: (f, a) => f(...a)
433
413
  });
434
- if (!this._get(this._eventsFiredAtom).includes(key)) {
435
- this._update(this._eventsFiredAtom, (events) => [
436
- ...events,
437
- key
438
- ]);
439
- }
440
414
  return false;
441
415
  }
442
- log2("activating modules", {
443
- key,
444
- modules: modules.map((module) => module.id)
416
+ 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", {
417
+ event: key
445
418
  }, {
446
419
  F: __dxlog_file2,
447
- L: 344,
420
+ L: 322,
448
421
  S: this,
449
422
  C: (f, a) => f(...a)
450
- });
451
- yield* PubSub.publish(this.activation, {
452
- event: key,
453
- state: "activating"
454
- });
455
- const beforeEvents = Function.pipe(modules, Array.flatMap((module) => module.activatesBefore ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event2) => !activatingEvents.includes(eventKey(event2))));
456
- yield* Function.pipe(beforeEvents, Array.map((event2) => this.activate(event2, {
457
- before: key
458
- })), Effect2.allWith({
459
- concurrency: "unbounded"
460
- }), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("activatesBefore is taking a long time", {
461
- event: key,
462
- beforeEvents: beforeEvents.map(eventKey)
463
- }, {
464
- F: __dxlog_file2,
465
- L: 363,
466
- S: this,
467
- C: (f, a) => f(...a)
468
- }))))));
469
- const getCapabilities = yield* Function.pipe(modules, Array.map((mod) => this._loadModule(mod)), Effect2.allWith({
470
- concurrency: "unbounded"
471
- }), Effect2.catchAll((error) => {
472
- return Effect2.gen(this, function* () {
473
- yield* PubSub.publish(this.activation, {
474
- event: key,
475
- state: "error",
476
- error
477
- });
478
- return yield* Effect2.fail(error);
479
- });
480
- }));
481
- yield* Function.pipe(
482
- modules,
483
- Array.zip(getCapabilities),
484
- Array.map(([module, capabilities]) => this._contributeCapabilities(module, capabilities)),
485
- Effect2.all
486
- );
487
- const afterEvents = Function.pipe(modules, Array.flatMap((module) => module.activatesAfter ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event2) => !activatingEvents.includes(eventKey(event2))));
488
- yield* Function.pipe(afterEvents, Array.map((event2) => this.activate(event2, {
489
- after: key
490
- })), Effect2.allWith({
491
- concurrency: "unbounded"
492
- }), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("activatesAfter is taking a long time", {
493
- event: key,
494
- afterEvents: afterEvents.map(eventKey)
495
- }, {
496
- F: __dxlog_file2,
497
- L: 412,
498
- S: this,
499
- C: (f, a) => f(...a)
500
- }))))));
501
- yield* Ref.update(this._activatingEvents, (activating) => Array.filter(activating, (event2) => event2 !== key));
502
- yield* Ref.update(this._activatingModules, (activating) => Array.filter(activating, (module) => !modules.map((module2) => module2.id).includes(module)));
503
- if (!this._get(this._eventsFiredAtom).includes(key)) {
504
- this._update(this._eventsFiredAtom, (events) => [
505
- ...events,
506
- key
507
- ]);
508
- }
509
- yield* PubSub.publish(this.activation, {
510
- event: key,
511
- state: "activated"
512
- });
513
- log2("activated", {
514
- key
515
- }, {
516
- F: __dxlog_file2,
517
- L: 432,
518
- S: this,
519
- C: (f, a) => f(...a)
520
- });
521
- return true;
522
- }).pipe(together(Effect2.sleep(Duration.seconds(15)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("event activation is taking a long time", {
523
- event: key
524
- }, {
525
- F: __dxlog_file2,
526
- L: 438,
527
- S: this,
528
- C: (f, a) => f(...a)
529
- }))))));
423
+ }))))), Performance.addTrackEntry({
424
+ name: typeof event === "string" ? event : eventKey(event),
425
+ devtools: {
426
+ dataType: "track-entry",
427
+ track: "Event Activation",
428
+ trackGroup: "Composer",
429
+ color: "primary"
430
+ }
431
+ })));
432
+ });
530
433
  }
531
434
  /**
532
435
  * Deactivates all of the modules for a plugin.
@@ -558,7 +461,7 @@ var ManagerImpl = class {
558
461
  key
559
462
  }, {
560
463
  F: __dxlog_file2,
561
- L: 473,
464
+ L: 368,
562
465
  S: this,
563
466
  C: (f, a) => f(...a)
564
467
  });
@@ -573,6 +476,41 @@ var ManagerImpl = class {
573
476
  }
574
477
  });
575
478
  }
479
+ shutdown() {
480
+ return this._shutdownSemaphore.withPermits(1)(Effect2.gen(this, function* () {
481
+ yield* Ref.set(this._shuttingDown, true);
482
+ log2("shutdown", void 0, {
483
+ F: __dxlog_file2,
484
+ L: 387,
485
+ S: this,
486
+ C: (f, a) => f(...a)
487
+ });
488
+ yield* this._interruptInFlightActivations();
489
+ const activeIds = [
490
+ ...this._get(this._activeAtom)
491
+ ].reverse();
492
+ const allModules = this._get(this._modulesAtom);
493
+ const modulesToDeactivate = activeIds.map((id) => allModules.find((module) => module.id === id)).filter((module) => module != null);
494
+ for (const module of modulesToDeactivate) {
495
+ yield* this._deactivateModule(module);
496
+ }
497
+ this._set(this._eventsFiredAtom, []);
498
+ this._set(this._pendingResetAtom, []);
499
+ this._moduleMemoMap.clear();
500
+ yield* Ref.set(this._activatingEvents, []);
501
+ yield* Ref.set(this._activatingModules, []);
502
+ log2("shutdown complete", void 0, {
503
+ F: __dxlog_file2,
504
+ L: 407,
505
+ S: this,
506
+ C: (f, a) => f(...a)
507
+ });
508
+ return true;
509
+ }).pipe(Effect2.ensuring(Ref.set(this._shuttingDown, false))));
510
+ }
511
+ //
512
+ // State helpers
513
+ //
576
514
  _get(atom) {
577
515
  return this.registry.get(atom);
578
516
  }
@@ -582,12 +520,82 @@ var ManagerImpl = class {
582
520
  _update(atom, updater) {
583
521
  this._set(atom, updater(this._get(atom)));
584
522
  }
523
+ _isShuttingDown() {
524
+ return Ref.get(this._shuttingDown);
525
+ }
526
+ _getPlugin(id) {
527
+ return this._get(this._pluginsAtom).find((plugin) => plugin.meta.id === id);
528
+ }
529
+ _getActiveModules() {
530
+ const active = this._get(this._activeAtom);
531
+ return this._get(this._modulesAtom).filter((module) => active.includes(module.id));
532
+ }
533
+ _getInactiveModules() {
534
+ const active = this._get(this._activeAtom);
535
+ return this._get(this._modulesAtom).filter((module) => !active.includes(module.id));
536
+ }
537
+ _getActiveModulesByEvent(key) {
538
+ return this._getActiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
539
+ }
540
+ _getInactiveModulesByEvent(key) {
541
+ return this._getInactiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
542
+ }
543
+ _setPendingResetByModule(module) {
544
+ const activationEvents = getEvents(module.activatesOn).map(eventKey).filter((key) => this._get(this._eventsFiredAtom).includes(key));
545
+ const pendingReset = Array.fromIterable(new Set(activationEvents)).filter((event) => {
546
+ const pending = this._get(this._pendingResetAtom);
547
+ return !pending.includes(event);
548
+ });
549
+ if (pendingReset.length > 0) {
550
+ log2("pending reset", {
551
+ events: pendingReset
552
+ }, {
553
+ F: __dxlog_file2,
554
+ L: 469,
555
+ S: this,
556
+ C: (f, a) => f(...a)
557
+ });
558
+ this._update(this._pendingResetAtom, (current) => [
559
+ ...current,
560
+ ...pendingReset
561
+ ]);
562
+ }
563
+ }
564
+ _clearPendingReset(key) {
565
+ const pendingIndex = this._get(this._pendingResetAtom).findIndex((event) => event === key);
566
+ if (pendingIndex !== -1) {
567
+ this._update(this._pendingResetAtom, (pending) => pending.filter((event) => event !== key));
568
+ }
569
+ }
570
+ //
571
+ // Fiber helpers
572
+ //
573
+ _interruptInFlightActivations() {
574
+ return Effect2.gen(this, function* () {
575
+ const inFlightFibers = yield* Ref.get(this._inFlightFibers);
576
+ yield* Effect2.forEach(inFlightFibers, (fiber) => Fiber.interrupt(fiber), {
577
+ concurrency: "unbounded"
578
+ });
579
+ });
580
+ }
581
+ _trackFiber(ref, fiber) {
582
+ return Ref.update(ref, (fibers) => [
583
+ ...fibers,
584
+ fiber
585
+ ]);
586
+ }
587
+ _untrackFiber(ref, fiber) {
588
+ return Ref.update(ref, (fibers) => fibers.filter((trackedFiber) => trackedFiber !== fiber));
589
+ }
590
+ //
591
+ // Registration helpers
592
+ //
585
593
  _addPlugin(plugin) {
586
594
  log2("add plugin", {
587
595
  id: plugin.meta.id
588
596
  }, {
589
597
  F: __dxlog_file2,
590
- L: 501,
598
+ L: 513,
591
599
  S: this,
592
600
  C: (f, a) => f(...a)
593
601
  });
@@ -601,7 +609,7 @@ var ManagerImpl = class {
601
609
  id
602
610
  }, {
603
611
  F: __dxlog_file2,
604
- L: 507,
612
+ L: 519,
605
613
  S: this,
606
614
  C: (f, a) => f(...a)
607
615
  });
@@ -612,7 +620,7 @@ var ManagerImpl = class {
612
620
  id: module.id
613
621
  }, {
614
622
  F: __dxlog_file2,
615
- L: 512,
623
+ L: 524,
616
624
  S: this,
617
625
  C: (f, a) => f(...a)
618
626
  });
@@ -626,49 +634,157 @@ var ManagerImpl = class {
626
634
  id
627
635
  }, {
628
636
  F: __dxlog_file2,
629
- L: 518,
637
+ L: 530,
630
638
  S: this,
631
639
  C: (f, a) => f(...a)
632
640
  });
633
641
  this._update(this._modulesAtom, (modules) => modules.filter((module) => module.id !== id));
634
642
  }
635
- _getPlugin(id) {
636
- return this._get(this._pluginsAtom).find((plugin) => plugin.meta.id === id);
637
- }
638
- _getActiveModules() {
639
- const active = this._get(this._activeAtom);
640
- return this._get(this._modulesAtom).filter((module) => active.includes(module.id));
641
- }
642
- _getInactiveModules() {
643
- const active = this._get(this._activeAtom);
644
- return this._get(this._modulesAtom).filter((module) => !active.includes(module.id));
645
- }
646
- _getActiveModulesByEvent(key) {
647
- return this._getActiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
648
- }
649
- _getInactiveModulesByEvent(key) {
650
- return this._getInactiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
651
- }
652
- _setPendingResetByModule(module) {
653
- const activationEvents = getEvents(module.activatesOn).map(eventKey).filter((key) => this._get(this._eventsFiredAtom).includes(key));
654
- const pendingReset = Array.fromIterable(new Set(activationEvents)).filter((event) => {
655
- const pending = this._get(this._pendingResetAtom);
656
- return !pending.includes(event);
657
- });
658
- if (pendingReset.length > 0) {
659
- log2("pending reset", {
660
- events: pendingReset
643
+ //
644
+ // Activation helpers
645
+ //
646
+ _activateEvent(key, params, fiber) {
647
+ return Effect2.gen(this, function* () {
648
+ yield* this._trackFiber(this._inFlightFibers, fiber);
649
+ log2("activating", {
650
+ key,
651
+ ...params
661
652
  }, {
662
653
  F: __dxlog_file2,
663
- L: 558,
654
+ L: 545,
664
655
  S: this,
665
656
  C: (f, a) => f(...a)
666
657
  });
667
- this._update(this._pendingResetAtom, (current) => [
668
- ...current,
669
- ...pendingReset
670
- ]);
671
- }
658
+ yield* Ref.update(this._activatingEvents, (activating) => Array.append(activating, key));
659
+ this._clearPendingReset(key);
660
+ const activatingEvents = yield* this._activatingEvents;
661
+ const activatingModules = yield* this._activatingModules;
662
+ const modules = this._getModulesForActivation(key, activatingEvents, activatingModules);
663
+ if (modules.length === 0) {
664
+ log2("no modules to activate", {
665
+ key
666
+ }, {
667
+ F: __dxlog_file2,
668
+ L: 553,
669
+ S: this,
670
+ C: (f, a) => f(...a)
671
+ });
672
+ if (!this._get(this._eventsFiredAtom).includes(key)) {
673
+ this._update(this._eventsFiredAtom, (events) => [
674
+ ...events,
675
+ key
676
+ ]);
677
+ }
678
+ return false;
679
+ }
680
+ return yield* this._activateModulesForEvent(key, modules, activatingEvents);
681
+ }).pipe(Effect2.ensuring(Effect2.all([
682
+ this._untrackFiber(this._inFlightFibers, fiber),
683
+ Ref.update(this._activatingEvents, (activating) => Array.filter(activating, (event) => event !== key))
684
+ ])));
685
+ }
686
+ _activateModulesForEvent(key, modules, activatingEvents) {
687
+ const activatingModuleIds = modules.map((module) => module.id);
688
+ return Effect2.gen(this, function* () {
689
+ yield* Ref.update(this._activatingModules, (activating) => Array.appendAll(activating, activatingModuleIds));
690
+ log2("activating modules", {
691
+ key,
692
+ modules: activatingModuleIds
693
+ }, {
694
+ F: __dxlog_file2,
695
+ L: 580,
696
+ S: this,
697
+ C: (f, a) => f(...a)
698
+ });
699
+ yield* PubSub.publish(this.activation, {
700
+ event: key,
701
+ state: "activating"
702
+ });
703
+ yield* this._activateRelatedEvents(key, this._getBeforeEvents(modules, activatingEvents), "before");
704
+ const capabilities = yield* this._loadCapabilitiesForModules(key, modules);
705
+ yield* this._contributeCapabilitiesForModules(modules, capabilities);
706
+ yield* this._activateRelatedEvents(key, this._getAfterEvents(modules, activatingEvents), "after");
707
+ if (!this._get(this._eventsFiredAtom).includes(key)) {
708
+ this._update(this._eventsFiredAtom, (events) => [
709
+ ...events,
710
+ key
711
+ ]);
712
+ }
713
+ yield* PubSub.publish(this.activation, {
714
+ event: key,
715
+ state: "activated"
716
+ });
717
+ log2("activated", {
718
+ key
719
+ }, {
720
+ F: __dxlog_file2,
721
+ L: 595,
722
+ S: this,
723
+ C: (f, a) => f(...a)
724
+ });
725
+ return true;
726
+ }).pipe(Effect2.ensuring(Ref.update(this._activatingModules, (activating) => Array.filter(activating, (module) => !activatingModuleIds.includes(module)))));
727
+ }
728
+ _getModulesForActivation(key, activatingEvents, activatingModules) {
729
+ return this._getInactiveModulesByEvent(key).filter((module) => {
730
+ const allOf = isAllOf(module.activatesOn);
731
+ if (!allOf) {
732
+ return true;
733
+ }
734
+ const events = getEvents(module.activatesOn).filter((event) => eventKey(event) !== key);
735
+ return events.every((event) => this._get(this._eventsFiredAtom).includes(eventKey(event)) || activatingEvents.includes(eventKey(event))) && !activatingModules.includes(module.id);
736
+ });
737
+ }
738
+ _getBeforeEvents(modules, activatingEvents) {
739
+ return Function.pipe(modules, Array.flatMap((module) => module.activatesBefore ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event) => !activatingEvents.includes(eventKey(event))));
740
+ }
741
+ _getAfterEvents(modules, activatingEvents) {
742
+ return Function.pipe(modules, Array.flatMap((module) => module.activatesAfter ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event) => !activatingEvents.includes(eventKey(event))));
743
+ }
744
+ _activateRelatedEvents(key, events, phase) {
745
+ const logLabel = phase === "before" ? "activatesBefore" : "activatesAfter";
746
+ const eventKey2 = phase === "before" ? "beforeEvents" : "afterEvents";
747
+ return Function.pipe(events, Array.map((event) => this.activate(event, phase === "before" ? {
748
+ before: key
749
+ } : {
750
+ after: key
751
+ })), Effect2.allWith({
752
+ concurrency: "unbounded"
753
+ }), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn(`${logLabel} is taking a long time`, {
754
+ event: key,
755
+ [eventKey2]: events.map(eventKey)
756
+ }, {
757
+ F: __dxlog_file2,
758
+ L: 674,
759
+ S: this,
760
+ C: (f, a) => f(...a)
761
+ }))))), Effect2.asVoid);
762
+ }
763
+ //
764
+ // Module lifecycle helpers
765
+ //
766
+ _loadCapabilitiesForModules(key, modules) {
767
+ return Function.pipe(modules, Array.map((mod) => this._loadModule(mod)), Effect2.allWith({
768
+ concurrency: "unbounded"
769
+ }), Effect2.catchAll((error) => {
770
+ return Effect2.gen(this, function* () {
771
+ yield* PubSub.publish(this.activation, {
772
+ event: key,
773
+ state: "error",
774
+ error
775
+ });
776
+ return yield* Effect2.fail(error);
777
+ });
778
+ }));
779
+ }
780
+ _contributeCapabilitiesForModules(modules, capabilities) {
781
+ return Function.pipe(
782
+ modules,
783
+ Array.zip(capabilities),
784
+ Array.map(([module, capabilitySet]) => this._contributeCapabilities(module, capabilitySet)),
785
+ Effect2.all,
786
+ Effect2.asVoid
787
+ );
672
788
  }
673
789
  _getModuleSemaphore(moduleId) {
674
790
  let semaphore = this._moduleSemaphores.get(moduleId);
@@ -692,7 +808,7 @@ var ManagerImpl = class {
692
808
  module: module.id
693
809
  }, {
694
810
  F: __dxlog_file2,
695
- L: 588,
811
+ L: 747,
696
812
  S: this,
697
813
  C: (f, a) => f(...a)
698
814
  });
@@ -706,7 +822,7 @@ var ManagerImpl = class {
706
822
  failed: false
707
823
  }, {
708
824
  F: __dxlog_file2,
709
- L: 597,
825
+ L: 756,
710
826
  S: this,
711
827
  C: (f, a) => f(...a)
712
828
  });
@@ -715,11 +831,19 @@ var ManagerImpl = class {
715
831
  module: module.id
716
832
  }, {
717
833
  F: __dxlog_file2,
718
- L: 608,
834
+ L: 767,
719
835
  S: this,
720
836
  C: (f, a) => f(...a)
721
- }))))));
722
- yield* Effect2.forkDaemon(loadEffect.pipe(Effect2.tap((result) => Deferred2.succeed(deferred, result)), Effect2.catchAllCause((cause) => {
837
+ }))))), Performance.addTrackEntry({
838
+ name: module.id,
839
+ devtools: {
840
+ dataType: "track-entry",
841
+ track: "Module Activation",
842
+ trackGroup: "Composer",
843
+ color: "primary"
844
+ }
845
+ }));
846
+ const fiber = yield* Effect2.forkDaemon(loadEffect.pipe(Effect2.tap((result) => Deferred2.succeed(deferred, result)), Effect2.catchAllCause((cause) => {
723
847
  const error = Cause.squash(cause);
724
848
  log2.error("module failed to activate", {
725
849
  module: module.id,
@@ -728,12 +852,14 @@ var ManagerImpl = class {
728
852
  isDefect: !Cause.isFailure(cause)
729
853
  }, {
730
854
  F: __dxlog_file2,
731
- L: 620,
855
+ L: 788,
732
856
  S: this,
733
857
  C: (f, a) => f(...a)
734
858
  });
735
859
  return Deferred2.fail(deferred, error instanceof Error ? error : new Error(String(error)));
736
860
  })));
861
+ yield* this._trackFiber(this._inFlightFibers, fiber);
862
+ yield* Effect2.forkDaemon(Fiber.await(fiber).pipe(Effect2.andThen(() => this._untrackFiber(this._inFlightFibers, fiber))));
737
863
  return deferred;
738
864
  }).pipe(semaphore.withPermits(1));
739
865
  return yield* Deferred2.await(deferredToAwait);
@@ -760,7 +886,7 @@ var ManagerImpl = class {
760
886
  id
761
887
  }, {
762
888
  F: __dxlog_file2,
763
- L: 654,
889
+ L: 826,
764
890
  S: this,
765
891
  C: (f, a) => f(...a)
766
892
  });
@@ -782,7 +908,7 @@ var ManagerImpl = class {
782
908
  id
783
909
  }, {
784
910
  F: __dxlog_file2,
785
- L: 672,
911
+ L: 844,
786
912
  S: this,
787
913
  C: (f, a) => f(...a)
788
914
  });
@@ -805,4 +931,4 @@ export {
805
931
  make5 as make,
806
932
  plugin_manager_exports
807
933
  };
808
- //# sourceMappingURL=chunk-XYQTBFPA.mjs.map
934
+ //# sourceMappingURL=chunk-CMDON4NG.mjs.map