@dxos/app-framework 0.8.4-main.c4373fc → 0.8.4-main.c85a9c8dae

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 (481) hide show
  1. package/.storybook/main.mts +2 -4
  2. package/.storybook/preview.mts +2 -2
  3. package/dist/lib/browser/capability-2GL5JAGJ.mjs +37 -0
  4. package/dist/lib/browser/capability-2GL5JAGJ.mjs.map +7 -0
  5. package/dist/lib/browser/capability-7RLVE42K.mjs +34 -0
  6. package/dist/lib/browser/capability-7RLVE42K.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-4CTRO67U.mjs +703 -0
  8. package/dist/lib/browser/chunk-4CTRO67U.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-5RJNZV7K.mjs +44 -0
  10. package/dist/lib/browser/chunk-5RJNZV7K.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
  12. package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-FNKT2QQ2.mjs +145 -0
  14. package/dist/lib/browser/chunk-FNKT2QQ2.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-HE27PNNQ.mjs +824 -0
  16. package/dist/lib/browser/chunk-HE27PNNQ.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  18. package/dist/lib/browser/chunk-NPUEVX42.mjs +34 -0
  19. package/dist/lib/browser/chunk-NPUEVX42.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
  21. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-REORGDJT.mjs +80 -0
  23. package/dist/lib/browser/chunk-REORGDJT.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
  25. package/dist/lib/browser/chunk-YNFPIQGB.mjs +76 -0
  26. package/dist/lib/browser/chunk-YNFPIQGB.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-ZRWBPIZG.mjs +170 -0
  28. package/dist/lib/browser/chunk-ZRWBPIZG.mjs.map +7 -0
  29. package/dist/lib/browser/cli/index.mjs +89 -0
  30. package/dist/lib/browser/cli/index.mjs.map +7 -0
  31. package/dist/lib/browser/common/activation-events.mjs +23 -0
  32. package/dist/lib/browser/common/capabilities.mjs +45 -0
  33. package/dist/lib/browser/core/activation-event.mjs +20 -0
  34. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  35. package/dist/lib/browser/core/capability.mjs +28 -0
  36. package/dist/lib/browser/core/capability.mjs.map +7 -0
  37. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  38. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  39. package/dist/lib/browser/core/plugin.mjs +27 -0
  40. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  41. package/dist/lib/browser/index.mjs +87 -148
  42. package/dist/lib/browser/index.mjs.map +4 -4
  43. package/dist/lib/browser/invoker-capability-BNLVNYHU.mjs +36 -0
  44. package/dist/lib/browser/invoker-capability-BNLVNYHU.mjs.map +7 -0
  45. package/dist/lib/browser/meta.json +1 -1
  46. package/dist/lib/browser/testing/index.mjs +81 -26
  47. package/dist/lib/browser/testing/index.mjs.map +4 -4
  48. package/dist/lib/browser/ui/index.mjs +45 -0
  49. package/dist/lib/browser/ui/index.mjs.map +7 -0
  50. package/dist/lib/node-esm/capability-CHIMU6LX.mjs +38 -0
  51. package/dist/lib/node-esm/capability-CHIMU6LX.mjs.map +7 -0
  52. package/dist/lib/node-esm/capability-EVZK4REM.mjs +35 -0
  53. package/dist/lib/node-esm/capability-EVZK4REM.mjs.map +7 -0
  54. package/dist/lib/node-esm/chunk-2A4PRBIX.mjs +171 -0
  55. package/dist/lib/node-esm/chunk-2A4PRBIX.mjs.map +7 -0
  56. package/dist/lib/node-esm/chunk-7CPNAEGV.mjs +704 -0
  57. package/dist/lib/node-esm/chunk-7CPNAEGV.mjs.map +7 -0
  58. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
  59. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
  60. package/dist/lib/node-esm/chunk-CJCQS2YL.mjs +146 -0
  61. package/dist/lib/node-esm/chunk-CJCQS2YL.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-DTCHT2X2.mjs +825 -0
  63. package/dist/lib/node-esm/chunk-DTCHT2X2.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  65. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-JAZVHID3.mjs +35 -0
  67. package/dist/lib/node-esm/chunk-JAZVHID3.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-SB5ODNPX.mjs +77 -0
  69. package/dist/lib/node-esm/chunk-SB5ODNPX.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
  71. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-UFW652GS.mjs +81 -0
  73. package/dist/lib/node-esm/chunk-UFW652GS.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-VUIUFIGT.mjs +45 -0
  75. package/dist/lib/node-esm/chunk-VUIUFIGT.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
  77. package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
  78. package/dist/lib/node-esm/cli/index.mjs +90 -0
  79. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  80. package/dist/lib/node-esm/common/activation-events.mjs +24 -0
  81. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  82. package/dist/lib/node-esm/common/capabilities.mjs +46 -0
  83. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  84. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  85. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  86. package/dist/lib/node-esm/core/capability.mjs +29 -0
  87. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  88. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  89. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  90. package/dist/lib/node-esm/core/plugin.mjs +28 -0
  91. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  92. package/dist/lib/node-esm/index.mjs +87 -148
  93. package/dist/lib/node-esm/index.mjs.map +4 -4
  94. package/dist/lib/node-esm/invoker-capability-VF6SP44V.mjs +37 -0
  95. package/dist/lib/node-esm/invoker-capability-VF6SP44V.mjs.map +7 -0
  96. package/dist/lib/node-esm/meta.json +1 -1
  97. package/dist/lib/node-esm/testing/index.mjs +81 -26
  98. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  99. package/dist/lib/node-esm/ui/index.mjs +46 -0
  100. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  101. package/dist/types/src/cli/cli.d.ts +39 -0
  102. package/dist/types/src/cli/cli.d.ts.map +1 -0
  103. package/dist/types/src/cli/index.d.ts +2 -0
  104. package/dist/types/src/cli/index.d.ts.map +1 -0
  105. package/dist/types/src/common/activation-events.d.ts +27 -0
  106. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  107. package/dist/types/src/common/capabilities.d.ts +114 -200
  108. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  109. package/dist/types/src/common/index.d.ts +4 -8
  110. package/dist/types/src/common/index.d.ts.map +1 -1
  111. package/dist/types/src/common/operations.d.ts +33 -0
  112. package/dist/types/src/common/operations.d.ts.map +1 -0
  113. package/dist/types/src/common/translations.d.ts +7 -7
  114. package/dist/types/src/common/translations.d.ts.map +1 -1
  115. package/dist/types/src/context.d.ts +5 -0
  116. package/dist/types/src/context.d.ts.map +1 -0
  117. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +6 -6
  118. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  119. package/dist/types/src/core/capability-manager.d.ts +43 -0
  120. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  121. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  122. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  123. package/dist/types/src/core/capability.d.ts +150 -0
  124. package/dist/types/src/core/capability.d.ts.map +1 -0
  125. package/dist/types/src/core/index.d.ts +5 -4
  126. package/dist/types/src/core/index.d.ts.map +1 -1
  127. package/dist/types/src/core/plugin-manager.d.ts +66 -0
  128. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  129. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  130. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  131. package/dist/types/src/core/plugin.d.ts +96 -34
  132. package/dist/types/src/core/plugin.d.ts.map +1 -1
  133. package/dist/types/src/index.d.ts +3 -4
  134. package/dist/types/src/index.d.ts.map +1 -1
  135. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  136. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  137. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  138. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  139. package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
  140. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  141. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  142. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  143. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  144. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  145. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  146. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  147. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  148. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  149. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  150. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  151. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  152. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  153. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  154. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  155. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  156. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  157. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  158. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  159. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  160. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  161. package/dist/types/src/plugin-operation/testing.d.ts +109 -0
  162. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  163. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  164. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  165. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  166. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  167. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  168. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  169. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  170. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  171. package/dist/types/src/testing/index.d.ts +1 -0
  172. package/dist/types/src/testing/index.d.ts.map +1 -1
  173. package/dist/types/src/testing/service.d.ts +8 -0
  174. package/dist/types/src/testing/service.d.ts.map +1 -0
  175. package/dist/types/src/testing/withPluginManager.d.ts +7 -6
  176. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  177. package/dist/types/src/ui/components/App/App.d.ts +8 -0
  178. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  179. package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +9 -7
  180. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  181. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  182. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  183. package/dist/types/src/{playground/playground.stories.d.ts → ui/components/PluginManager/PluginManagerContext.stories.d.ts} +5 -3
  184. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  185. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
  186. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  187. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  188. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  189. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
  190. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  191. package/dist/types/src/{components/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
  192. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  193. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
  194. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  195. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  196. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  197. package/dist/types/src/ui/components/Surface/index.d.ts +20 -0
  198. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  199. package/dist/types/src/ui/components/Surface/types.d.ts +96 -0
  200. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  201. package/dist/types/src/ui/components/index.d.ts +4 -0
  202. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  203. package/dist/types/src/ui/hooks/index.d.ts +7 -0
  204. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  205. package/dist/types/src/{components → ui/hooks}/useApp.d.ts +18 -12
  206. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  207. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  208. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  209. package/dist/types/src/{components → ui/hooks}/useLoading.d.ts +1 -2
  210. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  211. package/dist/types/src/ui/hooks/useOperationResolver.d.ts +19 -0
  212. package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
  213. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  214. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  215. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  216. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  217. package/dist/types/src/ui/index.d.ts +3 -0
  218. package/dist/types/src/ui/index.d.ts.map +1 -0
  219. package/dist/types/tsconfig.tsbuildinfo +1 -1
  220. package/moon.yml +10 -6
  221. package/package.json +111 -47
  222. package/src/cli/cli.ts +107 -0
  223. package/src/{components → cli}/index.ts +1 -1
  224. package/src/common/activation-events.ts +44 -0
  225. package/src/common/capabilities.ts +174 -213
  226. package/src/common/index.ts +4 -8
  227. package/src/common/operations.ts +38 -0
  228. package/src/common/translations.ts +17 -9
  229. package/src/context.ts +9 -0
  230. package/src/core/{events.ts → activation-event.ts} +5 -5
  231. package/src/core/capability-manager.test.ts +151 -0
  232. package/src/core/capability-manager.ts +171 -0
  233. package/src/core/capability.ts +236 -0
  234. package/src/core/index.ts +5 -4
  235. package/src/core/plugin-manager.test.ts +845 -0
  236. package/src/core/plugin-manager.ts +715 -0
  237. package/src/core/plugin.ts +227 -39
  238. package/src/index.ts +3 -4
  239. package/src/plugin-operation/OperationPlugin.ts +25 -0
  240. package/src/plugin-operation/history/capability.ts +37 -0
  241. package/src/plugin-operation/history/errors.ts +11 -0
  242. package/src/plugin-operation/history/history-tracker.test.ts +380 -0
  243. package/src/plugin-operation/history/history-tracker.ts +129 -0
  244. package/src/plugin-operation/history/index.ts +9 -0
  245. package/src/plugin-operation/history/types.ts +17 -0
  246. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  247. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  248. package/src/plugin-operation/history/undo-registry.ts +54 -0
  249. package/src/plugin-operation/index.ts +6 -0
  250. package/src/plugin-operation/invoker-capability.ts +40 -0
  251. package/src/plugin-operation/meta.ts +11 -0
  252. package/src/plugin-operation/testing.ts +174 -0
  253. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  254. package/src/plugin-runtime/capability.ts +53 -0
  255. package/src/{playground/logger → plugin-runtime}/index.ts +1 -1
  256. package/src/plugin-runtime/meta.ts +11 -0
  257. package/src/testing/index.ts +1 -0
  258. package/src/testing/service.ts +52 -0
  259. package/src/testing/withPluginManager.stories.tsx +7 -7
  260. package/src/testing/withPluginManager.tsx +33 -27
  261. package/src/ui/components/App/App.stories.tsx +92 -0
  262. package/src/{components → ui/components/App}/App.tsx +9 -11
  263. package/src/{playground/debug → ui/components/App}/index.ts +1 -1
  264. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +183 -0
  265. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
  266. package/src/ui/components/PluginManager/index.ts +5 -0
  267. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +143 -0
  268. package/src/ui/components/Surface/SurfaceComponent.tsx +247 -0
  269. package/src/ui/components/Surface/SurfaceInfo.tsx +107 -0
  270. package/src/ui/components/Surface/context.ts +12 -0
  271. package/src/ui/components/Surface/index.ts +20 -0
  272. package/src/ui/components/Surface/types.ts +117 -0
  273. package/src/ui/components/index.ts +7 -0
  274. package/src/ui/hooks/index.ts +10 -0
  275. package/src/ui/hooks/useApp.tsx +213 -0
  276. package/src/ui/hooks/useCapabilities.ts +67 -0
  277. package/src/{components → ui/hooks}/useLoading.tsx +4 -6
  278. package/src/ui/hooks/useOperationResolver.ts +40 -0
  279. package/src/ui/hooks/useSettingsState.ts +26 -0
  280. package/src/ui/hooks/useSurface.ts +13 -0
  281. package/src/ui/index.ts +6 -0
  282. package/tsconfig.json +12 -21
  283. package/tsconfig.node.json +1 -3
  284. package/typedoc.json +2 -4
  285. package/.swc/plugins/linux_x86_64_19.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429.wasmer-v7 +0 -0
  286. package/dist/lib/browser/app-graph-builder-77MY7KAY.mjs +0 -138
  287. package/dist/lib/browser/app-graph-builder-77MY7KAY.mjs.map +0 -7
  288. package/dist/lib/browser/chunk-4NFLRSTX.mjs +0 -467
  289. package/dist/lib/browser/chunk-4NFLRSTX.mjs.map +0 -7
  290. package/dist/lib/browser/chunk-OKF2PAWO.mjs +0 -1646
  291. package/dist/lib/browser/chunk-OKF2PAWO.mjs.map +0 -7
  292. package/dist/lib/browser/chunk-SCPE4ZO2.mjs +0 -35
  293. package/dist/lib/browser/chunk-SCPE4ZO2.mjs.map +0 -7
  294. package/dist/lib/browser/intent-dispatcher-Y4LZNOBC.mjs +0 -11
  295. package/dist/lib/browser/intent-resolver-XO5OYWVD.mjs +0 -39
  296. package/dist/lib/browser/intent-resolver-XO5OYWVD.mjs.map +0 -7
  297. package/dist/lib/browser/store-E3YSBPJQ.mjs +0 -30
  298. package/dist/lib/browser/store-E3YSBPJQ.mjs.map +0 -7
  299. package/dist/lib/browser/worker.mjs +0 -77
  300. package/dist/lib/node-esm/app-graph-builder-WK7WBM6I.mjs +0 -139
  301. package/dist/lib/node-esm/app-graph-builder-WK7WBM6I.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-7DNZQ6H2.mjs +0 -1648
  303. package/dist/lib/node-esm/chunk-7DNZQ6H2.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-AHCD4UYO.mjs +0 -468
  305. package/dist/lib/node-esm/chunk-AHCD4UYO.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-ZX63QUGE.mjs +0 -37
  307. package/dist/lib/node-esm/chunk-ZX63QUGE.mjs.map +0 -7
  308. package/dist/lib/node-esm/intent-dispatcher-R4CCPBHO.mjs +0 -12
  309. package/dist/lib/node-esm/intent-resolver-NVYY6BQA.mjs +0 -40
  310. package/dist/lib/node-esm/intent-resolver-NVYY6BQA.mjs.map +0 -7
  311. package/dist/lib/node-esm/store-QA5DGTOS.mjs +0 -31
  312. package/dist/lib/node-esm/store-QA5DGTOS.mjs.map +0 -7
  313. package/dist/lib/node-esm/worker.mjs +0 -78
  314. package/dist/types/src/common/collaboration.d.ts +0 -20
  315. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  316. package/dist/types/src/common/events.d.ts +0 -52
  317. package/dist/types/src/common/events.d.ts.map +0 -1
  318. package/dist/types/src/common/file.d.ts +0 -14
  319. package/dist/types/src/common/file.d.ts.map +0 -1
  320. package/dist/types/src/common/graph.d.ts +0 -21
  321. package/dist/types/src/common/graph.d.ts.map +0 -1
  322. package/dist/types/src/common/layout.d.ts +0 -279
  323. package/dist/types/src/common/layout.d.ts.map +0 -1
  324. package/dist/types/src/common/surface.d.ts +0 -59
  325. package/dist/types/src/common/surface.d.ts.map +0 -1
  326. package/dist/types/src/components/App.d.ts +0 -10
  327. package/dist/types/src/components/App.d.ts.map +0 -1
  328. package/dist/types/src/components/App.stories.d.ts.map +0 -1
  329. package/dist/types/src/components/DefaultFallback.d.ts +0 -8
  330. package/dist/types/src/components/DefaultFallback.d.ts.map +0 -1
  331. package/dist/types/src/components/index.d.ts +0 -2
  332. package/dist/types/src/components/index.d.ts.map +0 -1
  333. package/dist/types/src/components/useApp.d.ts.map +0 -1
  334. package/dist/types/src/components/useLoading.d.ts.map +0 -1
  335. package/dist/types/src/core/capabilities.d.ts +0 -117
  336. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  337. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  338. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  339. package/dist/types/src/core/events.d.ts.map +0 -1
  340. package/dist/types/src/core/manager.d.ts +0 -126
  341. package/dist/types/src/core/manager.d.ts.map +0 -1
  342. package/dist/types/src/core/manager.test.d.ts +0 -2
  343. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  344. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  345. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  346. package/dist/types/src/playground/debug/index.d.ts +0 -2
  347. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  348. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  349. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  350. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  351. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  352. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  353. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  354. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  355. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  356. package/dist/types/src/playground/generator/index.d.ts +0 -3
  357. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  358. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  359. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  360. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  361. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  362. package/dist/types/src/playground/layout/index.d.ts +0 -2
  363. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  364. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  365. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  366. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  367. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  368. package/dist/types/src/playground/logger/index.d.ts +0 -2
  369. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  370. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  371. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  372. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  373. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  374. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  375. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  376. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  377. package/dist/types/src/plugin-intent/actions.d.ts +0 -36
  378. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  379. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  380. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  381. package/dist/types/src/plugin-intent/index.d.ts +0 -6
  382. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  383. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  384. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  385. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  386. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  387. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  388. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  389. package/dist/types/src/plugin-intent/meta.d.ts +0 -3
  390. package/dist/types/src/plugin-intent/meta.d.ts.map +0 -1
  391. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  392. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  393. package/dist/types/src/plugin-settings/actions.d.ts +0 -25
  394. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  395. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  396. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  397. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  398. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  399. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  400. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  401. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  402. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  403. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  404. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  405. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  406. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  407. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  408. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  409. package/dist/types/src/react/IntentContext.d.ts +0 -8
  410. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  411. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  412. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  413. package/dist/types/src/react/Surface.d.ts +0 -12
  414. package/dist/types/src/react/Surface.d.ts.map +0 -1
  415. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  416. package/dist/types/src/react/common.d.ts +0 -13
  417. package/dist/types/src/react/common.d.ts.map +0 -1
  418. package/dist/types/src/react/index.d.ts +0 -7
  419. package/dist/types/src/react/index.d.ts.map +0 -1
  420. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  421. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  422. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  423. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  424. package/dist/types/src/worker.d.ts +0 -4
  425. package/dist/types/src/worker.d.ts.map +0 -1
  426. package/src/common/collaboration.ts +0 -18
  427. package/src/common/events.ts +0 -79
  428. package/src/common/file.ts +0 -22
  429. package/src/common/graph.ts +0 -30
  430. package/src/common/layout.ts +0 -277
  431. package/src/common/surface.ts +0 -83
  432. package/src/components/App.stories.tsx +0 -33
  433. package/src/components/DefaultFallback.tsx +0 -26
  434. package/src/components/useApp.tsx +0 -164
  435. package/src/core/capabilities.test.ts +0 -136
  436. package/src/core/capabilities.ts +0 -259
  437. package/src/core/manager.test.ts +0 -516
  438. package/src/core/manager.ts +0 -604
  439. package/src/playground/debug/Debug.tsx +0 -39
  440. package/src/playground/debug/plugin.ts +0 -16
  441. package/src/playground/generator/Main.tsx +0 -71
  442. package/src/playground/generator/Toolbar.tsx +0 -47
  443. package/src/playground/generator/generator.ts +0 -48
  444. package/src/playground/generator/index.ts +0 -6
  445. package/src/playground/generator/plugin.ts +0 -22
  446. package/src/playground/layout/Layout.tsx +0 -33
  447. package/src/playground/layout/index.ts +0 -5
  448. package/src/playground/layout/plugin.ts +0 -18
  449. package/src/playground/logger/Toolbar.tsx +0 -30
  450. package/src/playground/logger/plugin.ts +0 -41
  451. package/src/playground/logger/schema.ts +0 -12
  452. package/src/playground/playground.stories.tsx +0 -46
  453. package/src/plugin-intent/IntentPlugin.ts +0 -20
  454. package/src/plugin-intent/actions.ts +0 -31
  455. package/src/plugin-intent/errors.ts +0 -40
  456. package/src/plugin-intent/index.ts +0 -9
  457. package/src/plugin-intent/intent-dispatcher.test.ts +0 -286
  458. package/src/plugin-intent/intent-dispatcher.ts +0 -337
  459. package/src/plugin-intent/intent.ts +0 -154
  460. package/src/plugin-intent/meta.ts +0 -10
  461. package/src/plugin-settings/SettingsPlugin.ts +0 -34
  462. package/src/plugin-settings/actions.ts +0 -25
  463. package/src/plugin-settings/app-graph-builder.ts +0 -160
  464. package/src/plugin-settings/index.ts +0 -6
  465. package/src/plugin-settings/intent-resolver.ts +0 -35
  466. package/src/plugin-settings/meta.ts +0 -10
  467. package/src/plugin-settings/store.ts +0 -33
  468. package/src/plugin-settings/translations.ts +0 -19
  469. package/src/react/ErrorBoundary.tsx +0 -56
  470. package/src/react/IntentContext.tsx +0 -35
  471. package/src/react/Surface.stories.tsx +0 -101
  472. package/src/react/Surface.tsx +0 -86
  473. package/src/react/common.ts +0 -13
  474. package/src/react/index.ts +0 -10
  475. package/src/react/useCapabilities.ts +0 -31
  476. package/src/react/useIntentResolver.ts +0 -22
  477. package/src/worker.ts +0 -11
  478. /package/dist/lib/browser/{intent-dispatcher-Y4LZNOBC.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  479. /package/dist/lib/browser/{worker.mjs.map → chunk-YAFEA4GV.mjs.map} +0 -0
  480. /package/dist/lib/{node-esm/intent-dispatcher-R4CCPBHO.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  481. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
@@ -0,0 +1,825 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ eventKey,
4
+ getEvents,
5
+ isAllOf
6
+ } from "./chunk-7OWSHPYK.mjs";
7
+ import {
8
+ Service as Service2
9
+ } from "./chunk-CJCQS2YL.mjs";
10
+ import {
11
+ Service
12
+ } from "./chunk-SB5ODNPX.mjs";
13
+ import {
14
+ __export
15
+ } from "./chunk-HSLMI22Q.mjs";
16
+
17
+ // src/core/plugin-manager.ts
18
+ var plugin_manager_exports = {};
19
+ __export(plugin_manager_exports, {
20
+ ManagerTypeId: () => ManagerTypeId,
21
+ isManager: () => isManager,
22
+ make: () => make5
23
+ });
24
+ import { Atom as Atom2, Registry } from "@effect-atom/atom-react";
25
+ import * as Array from "effect/Array";
26
+ import * as Cause from "effect/Cause";
27
+ import * as Deferred2 from "effect/Deferred";
28
+ import * as Duration from "effect/Duration";
29
+ import * as Effect2 from "effect/Effect";
30
+ import * as Fiber from "effect/Fiber";
31
+ import * as Function from "effect/Function";
32
+ import * as HashSet from "effect/HashSet";
33
+ import * as PubSub from "effect/PubSub";
34
+ import * as Ref from "effect/Ref";
35
+ import { runAndForwardErrors } from "@dxos/effect";
36
+ import { Performance } from "@dxos/effect";
37
+ import { log as log2 } from "@dxos/log";
38
+
39
+ // src/core/capability-manager.ts
40
+ var capability_manager_exports = {};
41
+ __export(capability_manager_exports, {
42
+ make: () => make2
43
+ });
44
+ import { Atom } from "@effect-atom/atom-react";
45
+ import * as Deferred from "effect/Deferred";
46
+ import * as Effect from "effect/Effect";
47
+ import { invariant } from "@dxos/invariant";
48
+ import { log } from "@dxos/log";
49
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/app-framework/src/core/capability-manager.ts";
50
+ var CapabilityManagerImpl = class {
51
+ _registry;
52
+ _capabilityEntries = Atom.family(() => {
53
+ return Atom.make([]).pipe(Atom.keepAlive);
54
+ });
55
+ _capabilities = Atom.family((id) => {
56
+ return Atom.make((get) => {
57
+ const current = get(this._capabilityEntries(id));
58
+ return current.map((c) => c.implementation);
59
+ });
60
+ });
61
+ _capability = Atom.family((id) => {
62
+ return Atom.make((get) => {
63
+ const current = get(this._capabilities(id));
64
+ invariant(current.length > 0, `No capability found for ${id}`, {
65
+ F: __dxlog_file,
66
+ L: 84,
67
+ S: this,
68
+ A: [
69
+ "current.length > 0",
70
+ "`No capability found for ${id}`"
71
+ ]
72
+ });
73
+ return current[0];
74
+ });
75
+ });
76
+ constructor({ registry }) {
77
+ this._registry = registry;
78
+ }
79
+ contribute({ module: moduleId, interface: interfaceDef, implementation }) {
80
+ const current = this._registry.get(this._capabilityEntries(interfaceDef.identifier));
81
+ const isDuplicate = current.some((c) => c.moduleId === moduleId && c.implementation === implementation);
82
+ if (isDuplicate) {
83
+ log("capability already contributed, skipping", {
84
+ id: interfaceDef.identifier,
85
+ moduleId
86
+ }, {
87
+ F: __dxlog_file,
88
+ L: 105,
89
+ S: this,
90
+ C: (f, a) => f(...a)
91
+ });
92
+ return;
93
+ }
94
+ const entry = {
95
+ moduleId,
96
+ implementation
97
+ };
98
+ this._registry.set(this._capabilityEntries(interfaceDef.identifier), [
99
+ ...current,
100
+ entry
101
+ ]);
102
+ log("capability contributed", {
103
+ id: interfaceDef.identifier,
104
+ moduleId,
105
+ count: current.length
106
+ }, {
107
+ F: __dxlog_file,
108
+ L: 111,
109
+ S: this,
110
+ C: (f, a) => f(...a)
111
+ });
112
+ }
113
+ remove(interfaceDef, implementation) {
114
+ const current = this._registry.get(this._capabilityEntries(interfaceDef.identifier));
115
+ if (current.length === 0) {
116
+ return;
117
+ }
118
+ const next = current.filter((c) => c.implementation !== implementation);
119
+ if (next.length !== current.length) {
120
+ this._registry.set(this._capabilityEntries(interfaceDef.identifier), next);
121
+ log("capability removed", {
122
+ id: interfaceDef.identifier,
123
+ count: current.length
124
+ }, {
125
+ F: __dxlog_file,
126
+ L: 127,
127
+ S: this,
128
+ C: (f, a) => f(...a)
129
+ });
130
+ } else {
131
+ log.warn("capability not removed", {
132
+ id: interfaceDef.identifier
133
+ }, {
134
+ F: __dxlog_file,
135
+ L: 129,
136
+ S: this,
137
+ C: (f, a) => f(...a)
138
+ });
139
+ }
140
+ }
141
+ atom(interfaceDef) {
142
+ return this._capabilities(interfaceDef.identifier);
143
+ }
144
+ getAll(interfaceDef) {
145
+ return this._registry.get(this.atom(interfaceDef));
146
+ }
147
+ get(interfaceDef) {
148
+ const capabilities = this.getAll(interfaceDef);
149
+ invariant(capabilities.length > 0, `No capability found for ${interfaceDef.identifier}`, {
150
+ F: __dxlog_file,
151
+ L: 144,
152
+ S: this,
153
+ A: [
154
+ "capabilities.length > 0",
155
+ "`No capability found for ${interfaceDef.identifier}`"
156
+ ]
157
+ });
158
+ return capabilities[0];
159
+ }
160
+ waitFor(interfaceDef) {
161
+ return Effect.gen(this, function* () {
162
+ const [capability] = this.getAll(interfaceDef);
163
+ if (capability) {
164
+ return capability;
165
+ }
166
+ const deferred = yield* Deferred.make();
167
+ const cancel = this._registry.subscribe(this.atom(interfaceDef), (capabilities) => {
168
+ if (capabilities.length > 0) {
169
+ Effect.runSync(Deferred.succeed(deferred, capabilities[0]));
170
+ }
171
+ });
172
+ const result = yield* Deferred.await(deferred);
173
+ cancel();
174
+ return result;
175
+ });
176
+ }
177
+ };
178
+ var make2 = (options) => new CapabilityManagerImpl(options);
179
+
180
+ // src/core/plugin-manager.ts
181
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/app-framework/src/core/plugin-manager.ts";
182
+ var ManagerTypeId = /* @__PURE__ */ Symbol.for("@dxos/app-framework/Manager");
183
+ var isManager = (value) => {
184
+ return typeof value === "object" && value !== null && ManagerTypeId in value;
185
+ };
186
+ var ManagerImpl = class {
187
+ [ManagerTypeId] = ManagerTypeId;
188
+ activation = Effect2.runSync(PubSub.unbounded());
189
+ capabilities;
190
+ registry;
191
+ _pluginsAtom;
192
+ _coreAtom;
193
+ _enabledAtom;
194
+ _modulesAtom;
195
+ _activeAtom;
196
+ _eventsFiredAtom;
197
+ _pendingResetAtom;
198
+ _pluginLoader;
199
+ _capabilities = /* @__PURE__ */ new Map();
200
+ _moduleMemoMap = /* @__PURE__ */ new Map();
201
+ _moduleSemaphores = /* @__PURE__ */ new Map();
202
+ _activatingEvents = Effect2.runSync(Ref.make([]));
203
+ _activatingModules = Effect2.runSync(Ref.make([]));
204
+ constructor({ pluginLoader, plugins = [], core = plugins.map(({ meta }) => meta.id), enabled = [], registry }) {
205
+ this.registry = registry ?? Registry.make();
206
+ this.capabilities = make2({
207
+ registry: this.registry
208
+ });
209
+ this._pluginLoader = pluginLoader;
210
+ this._pluginsAtom = Atom2.make(plugins).pipe(Atom2.keepAlive);
211
+ this._coreAtom = Atom2.make(core).pipe(Atom2.keepAlive);
212
+ this._enabledAtom = Atom2.make(enabled).pipe(Atom2.keepAlive);
213
+ this._modulesAtom = Atom2.make([]).pipe(Atom2.keepAlive);
214
+ this._activeAtom = Atom2.make([]).pipe(Atom2.keepAlive);
215
+ this._eventsFiredAtom = Atom2.make([]).pipe(Atom2.keepAlive);
216
+ this._pendingResetAtom = Atom2.make([]).pipe(Atom2.keepAlive);
217
+ plugins.forEach((plugin) => this._addPlugin(plugin));
218
+ void Effect2.all([
219
+ ...core,
220
+ ...enabled
221
+ ].map((id) => this.enable(id))).pipe(runAndForwardErrors);
222
+ }
223
+ get plugins() {
224
+ return this._pluginsAtom;
225
+ }
226
+ get core() {
227
+ return this._coreAtom;
228
+ }
229
+ /**
230
+ * Ids of plugins that are currently enabled.
231
+ */
232
+ get enabled() {
233
+ return this._enabledAtom;
234
+ }
235
+ /**
236
+ * Modules of plugins which are currently enabled.
237
+ */
238
+ get modules() {
239
+ return this._modulesAtom;
240
+ }
241
+ /**
242
+ * Ids of modules which are currently active.
243
+ */
244
+ get active() {
245
+ return this._activeAtom;
246
+ }
247
+ /**
248
+ * Ids of events which have been fired.
249
+ */
250
+ get eventsFired() {
251
+ return this._eventsFiredAtom;
252
+ }
253
+ /**
254
+ * Ids of modules which are pending reset.
255
+ */
256
+ get pendingReset() {
257
+ return this._pendingResetAtom;
258
+ }
259
+ getPlugins() {
260
+ return this._get(this._pluginsAtom);
261
+ }
262
+ getCore() {
263
+ return this._get(this._coreAtom);
264
+ }
265
+ getEnabled() {
266
+ return this._get(this._enabledAtom);
267
+ }
268
+ getModules() {
269
+ return this._get(this._modulesAtom);
270
+ }
271
+ getActive() {
272
+ return this._get(this._activeAtom);
273
+ }
274
+ getEventsFired() {
275
+ return this._get(this._eventsFiredAtom);
276
+ }
277
+ getPendingReset() {
278
+ return this._get(this._pendingResetAtom);
279
+ }
280
+ /**
281
+ * Adds a plugin to the manager via the plugin loader.
282
+ * @param id The id of the plugin.
283
+ */
284
+ add(id) {
285
+ return Effect2.gen(this, function* () {
286
+ log2("add plugin", {
287
+ id
288
+ }, {
289
+ F: __dxlog_file2,
290
+ L: 211,
291
+ S: this,
292
+ C: (f, a) => f(...a)
293
+ });
294
+ const plugin = yield* this._pluginLoader(id);
295
+ this._addPlugin(plugin);
296
+ return yield* this.enable(id);
297
+ });
298
+ }
299
+ /**
300
+ * Enables a plugin.
301
+ * @param id The id of the plugin.
302
+ */
303
+ enable(id) {
304
+ return Effect2.gen(this, function* () {
305
+ log2("enable plugin", {
306
+ id
307
+ }, {
308
+ F: __dxlog_file2,
309
+ L: 224,
310
+ S: this,
311
+ C: (f, a) => f(...a)
312
+ });
313
+ const plugin = this._getPlugin(id);
314
+ if (!plugin) {
315
+ return false;
316
+ }
317
+ this._update(this._enabledAtom, (enabled) => enabled.includes(id) ? enabled : [
318
+ ...enabled,
319
+ id
320
+ ]);
321
+ plugin.modules.forEach((module) => {
322
+ this._addModule(module);
323
+ this._setPendingResetByModule(module);
324
+ });
325
+ log2("pending reset", {
326
+ events: [
327
+ ...this.getPendingReset()
328
+ ]
329
+ }, {
330
+ F: __dxlog_file2,
331
+ L: 237,
332
+ S: this,
333
+ C: (f, a) => f(...a)
334
+ });
335
+ yield* Effect2.all(this.getPendingReset().map((event) => this.activate(event)), {
336
+ concurrency: "unbounded"
337
+ });
338
+ return true;
339
+ });
340
+ }
341
+ /**
342
+ * Removes a plugin from the manager.
343
+ * @param id The id of the plugin.
344
+ */
345
+ remove(id) {
346
+ log2("remove plugin", {
347
+ id
348
+ }, {
349
+ F: __dxlog_file2,
350
+ L: 252,
351
+ S: this,
352
+ C: (f, a) => f(...a)
353
+ });
354
+ const result = this.disable(id);
355
+ if (!result) {
356
+ return false;
357
+ }
358
+ this._removePlugin(id);
359
+ return true;
360
+ }
361
+ /**
362
+ * Disables a plugin.
363
+ * @param id The id of the plugin.
364
+ */
365
+ disable(id) {
366
+ return Effect2.gen(this, function* () {
367
+ log2("disable plugin", {
368
+ id
369
+ }, {
370
+ F: __dxlog_file2,
371
+ L: 268,
372
+ S: this,
373
+ C: (f, a) => f(...a)
374
+ });
375
+ if (this._get(this._coreAtom).includes(id)) {
376
+ return false;
377
+ }
378
+ const plugin = this._getPlugin(id);
379
+ if (!plugin) {
380
+ return false;
381
+ }
382
+ const enabledIndex = this._get(this._enabledAtom).findIndex((enabled) => enabled === id);
383
+ if (enabledIndex !== -1) {
384
+ this._update(this._enabledAtom, (enabled) => enabled.filter((item) => item !== id));
385
+ yield* this.deactivate(id);
386
+ plugin.modules.forEach((module) => {
387
+ this._removeModule(module.id);
388
+ });
389
+ }
390
+ return true;
391
+ });
392
+ }
393
+ /**
394
+ * Activates plugins based on the activation event.
395
+ * @param event The activation event.
396
+ * @returns Whether the activation was successful.
397
+ */
398
+ activate(event, params) {
399
+ const key = typeof event === "string" ? event : eventKey(event);
400
+ return Effect2.gen(this, function* () {
401
+ log2("activating", {
402
+ key,
403
+ ...params
404
+ }, {
405
+ F: __dxlog_file2,
406
+ L: 303,
407
+ S: this,
408
+ C: (f, a) => f(...a)
409
+ });
410
+ yield* Ref.update(this._activatingEvents, (activating) => Array.append(activating, key));
411
+ const pendingIndex = this._get(this._pendingResetAtom).findIndex((event2) => event2 === key);
412
+ if (pendingIndex !== -1) {
413
+ this._update(this._pendingResetAtom, (pending) => pending.filter((event2) => event2 !== key));
414
+ }
415
+ const activatingEvents = yield* this._activatingEvents;
416
+ const activatingModules = yield* this._activatingModules;
417
+ const modules = this._getInactiveModulesByEvent(key).filter((module) => {
418
+ const allOf = isAllOf(module.activatesOn);
419
+ if (!allOf) {
420
+ return true;
421
+ }
422
+ const events = getEvents(module.activatesOn).filter((event2) => eventKey(event2) !== key);
423
+ return events.every((event2) => this._get(this._eventsFiredAtom).includes(eventKey(event2)) || activatingEvents.includes(eventKey(event2))) && !activatingModules.includes(module.id);
424
+ });
425
+ yield* Ref.update(this._activatingModules, (activating) => Array.appendAll(activating, modules.map((module) => module.id)));
426
+ if (modules.length === 0) {
427
+ log2("no modules to activate", {
428
+ key
429
+ }, {
430
+ F: __dxlog_file2,
431
+ L: 338,
432
+ S: this,
433
+ C: (f, a) => f(...a)
434
+ });
435
+ if (!this._get(this._eventsFiredAtom).includes(key)) {
436
+ this._update(this._eventsFiredAtom, (events) => [
437
+ ...events,
438
+ key
439
+ ]);
440
+ }
441
+ return false;
442
+ }
443
+ log2("activating modules", {
444
+ key,
445
+ modules: modules.map((module) => module.id)
446
+ }, {
447
+ F: __dxlog_file2,
448
+ L: 345,
449
+ S: this,
450
+ C: (f, a) => f(...a)
451
+ });
452
+ yield* PubSub.publish(this.activation, {
453
+ event: key,
454
+ state: "activating"
455
+ });
456
+ const beforeEvents = Function.pipe(modules, Array.flatMap((module) => module.activatesBefore ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event2) => !activatingEvents.includes(eventKey(event2))));
457
+ yield* Function.pipe(beforeEvents, Array.map((event2) => this.activate(event2, {
458
+ before: key
459
+ })), Effect2.allWith({
460
+ concurrency: "unbounded"
461
+ }), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("activatesBefore is taking a long time", {
462
+ event: key,
463
+ beforeEvents: beforeEvents.map(eventKey)
464
+ }, {
465
+ F: __dxlog_file2,
466
+ L: 364,
467
+ S: this,
468
+ C: (f, a) => f(...a)
469
+ }))))));
470
+ const getCapabilities = yield* Function.pipe(modules, Array.map((mod) => this._loadModule(mod)), Effect2.allWith({
471
+ concurrency: "unbounded"
472
+ }), Effect2.catchAll((error) => {
473
+ return Effect2.gen(this, function* () {
474
+ yield* PubSub.publish(this.activation, {
475
+ event: key,
476
+ state: "error",
477
+ error
478
+ });
479
+ return yield* Effect2.fail(error);
480
+ });
481
+ }));
482
+ yield* Function.pipe(
483
+ modules,
484
+ Array.zip(getCapabilities),
485
+ Array.map(([module, capabilities]) => this._contributeCapabilities(module, capabilities)),
486
+ Effect2.all
487
+ );
488
+ const afterEvents = Function.pipe(modules, Array.flatMap((module) => module.activatesAfter ?? []), HashSet.fromIterable, HashSet.toValues, Array.filter((event2) => !activatingEvents.includes(eventKey(event2))));
489
+ yield* Function.pipe(afterEvents, Array.map((event2) => this.activate(event2, {
490
+ after: key
491
+ })), Effect2.allWith({
492
+ concurrency: "unbounded"
493
+ }), together(Effect2.sleep(Duration.seconds(10)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("activatesAfter is taking a long time", {
494
+ event: key,
495
+ afterEvents: afterEvents.map(eventKey)
496
+ }, {
497
+ F: __dxlog_file2,
498
+ L: 413,
499
+ S: this,
500
+ C: (f, a) => f(...a)
501
+ }))))));
502
+ yield* Ref.update(this._activatingEvents, (activating) => Array.filter(activating, (event2) => event2 !== key));
503
+ yield* Ref.update(this._activatingModules, (activating) => Array.filter(activating, (module) => !modules.map((module2) => module2.id).includes(module)));
504
+ if (!this._get(this._eventsFiredAtom).includes(key)) {
505
+ this._update(this._eventsFiredAtom, (events) => [
506
+ ...events,
507
+ key
508
+ ]);
509
+ }
510
+ yield* PubSub.publish(this.activation, {
511
+ event: key,
512
+ state: "activated"
513
+ });
514
+ log2("activated", {
515
+ key
516
+ }, {
517
+ F: __dxlog_file2,
518
+ L: 433,
519
+ S: this,
520
+ C: (f, a) => f(...a)
521
+ });
522
+ return true;
523
+ }).pipe(together(Effect2.sleep(Duration.seconds(15)).pipe(Effect2.andThen(Effect2.sync(() => log2.warn("event activation is taking a long time", {
524
+ event: key
525
+ }, {
526
+ F: __dxlog_file2,
527
+ L: 439,
528
+ S: this,
529
+ C: (f, a) => f(...a)
530
+ }))))), Performance.addTrackEntry({
531
+ name: typeof event === "string" ? event : eventKey(event),
532
+ devtools: {
533
+ dataType: "track-entry",
534
+ track: "Event Activation",
535
+ trackGroup: "Composer",
536
+ color: "primary"
537
+ }
538
+ }));
539
+ }
540
+ /**
541
+ * Deactivates all of the modules for a plugin.
542
+ * @param id The id of the plugin.
543
+ * @returns Whether the deactivation was successful.
544
+ */
545
+ deactivate(id) {
546
+ return Effect2.gen(this, function* () {
547
+ const plugin = this._getPlugin(id);
548
+ if (!plugin) {
549
+ return false;
550
+ }
551
+ const modules = plugin.modules;
552
+ const results = yield* Effect2.all(modules.map((module) => this._deactivateModule(module)), {
553
+ concurrency: "unbounded"
554
+ });
555
+ return results.every((result) => result);
556
+ });
557
+ }
558
+ /**
559
+ * Re-activates the modules that were activated by the event.
560
+ * @param event The activation event.
561
+ * @returns Whether the reset was successful.
562
+ */
563
+ reset(event) {
564
+ return Effect2.gen(this, function* () {
565
+ const key = typeof event === "string" ? event : eventKey(event);
566
+ log2("reset", {
567
+ key
568
+ }, {
569
+ F: __dxlog_file2,
570
+ L: 483,
571
+ S: this,
572
+ C: (f, a) => f(...a)
573
+ });
574
+ const modules = this._getActiveModulesByEvent(key);
575
+ const results = yield* Effect2.all(modules.map((module) => this._deactivateModule(module)), {
576
+ concurrency: "unbounded"
577
+ });
578
+ if (results.every((result) => result)) {
579
+ return yield* this.activate(key);
580
+ } else {
581
+ return false;
582
+ }
583
+ });
584
+ }
585
+ _get(atom) {
586
+ return this.registry.get(atom);
587
+ }
588
+ _set(atom, value) {
589
+ this.registry.set(atom, value);
590
+ }
591
+ _update(atom, updater) {
592
+ this._set(atom, updater(this._get(atom)));
593
+ }
594
+ _addPlugin(plugin) {
595
+ log2("add plugin", {
596
+ id: plugin.meta.id
597
+ }, {
598
+ F: __dxlog_file2,
599
+ L: 511,
600
+ S: this,
601
+ C: (f, a) => f(...a)
602
+ });
603
+ this._update(this._pluginsAtom, (plugins) => plugins.includes(plugin) ? plugins : [
604
+ ...plugins,
605
+ plugin
606
+ ]);
607
+ }
608
+ _removePlugin(id) {
609
+ log2("remove plugin", {
610
+ id
611
+ }, {
612
+ F: __dxlog_file2,
613
+ L: 517,
614
+ S: this,
615
+ C: (f, a) => f(...a)
616
+ });
617
+ this._update(this._pluginsAtom, (plugins) => plugins.filter((plugin) => plugin.meta.id !== id));
618
+ }
619
+ _addModule(module) {
620
+ log2("add module", {
621
+ id: module.id
622
+ }, {
623
+ F: __dxlog_file2,
624
+ L: 522,
625
+ S: this,
626
+ C: (f, a) => f(...a)
627
+ });
628
+ this._update(this._modulesAtom, (modules) => modules.includes(module) ? modules : [
629
+ ...modules,
630
+ module
631
+ ]);
632
+ }
633
+ _removeModule(id) {
634
+ log2("remove module", {
635
+ id
636
+ }, {
637
+ F: __dxlog_file2,
638
+ L: 528,
639
+ S: this,
640
+ C: (f, a) => f(...a)
641
+ });
642
+ this._update(this._modulesAtom, (modules) => modules.filter((module) => module.id !== id));
643
+ }
644
+ _getPlugin(id) {
645
+ return this._get(this._pluginsAtom).find((plugin) => plugin.meta.id === id);
646
+ }
647
+ _getActiveModules() {
648
+ const active = this._get(this._activeAtom);
649
+ return this._get(this._modulesAtom).filter((module) => active.includes(module.id));
650
+ }
651
+ _getInactiveModules() {
652
+ const active = this._get(this._activeAtom);
653
+ return this._get(this._modulesAtom).filter((module) => !active.includes(module.id));
654
+ }
655
+ _getActiveModulesByEvent(key) {
656
+ return this._getActiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
657
+ }
658
+ _getInactiveModulesByEvent(key) {
659
+ return this._getInactiveModules().filter((module) => getEvents(module.activatesOn).map(eventKey).includes(key));
660
+ }
661
+ _setPendingResetByModule(module) {
662
+ const activationEvents = getEvents(module.activatesOn).map(eventKey).filter((key) => this._get(this._eventsFiredAtom).includes(key));
663
+ const pendingReset = Array.fromIterable(new Set(activationEvents)).filter((event) => {
664
+ const pending = this._get(this._pendingResetAtom);
665
+ return !pending.includes(event);
666
+ });
667
+ if (pendingReset.length > 0) {
668
+ log2("pending reset", {
669
+ events: pendingReset
670
+ }, {
671
+ F: __dxlog_file2,
672
+ L: 568,
673
+ S: this,
674
+ C: (f, a) => f(...a)
675
+ });
676
+ this._update(this._pendingResetAtom, (current) => [
677
+ ...current,
678
+ ...pendingReset
679
+ ]);
680
+ }
681
+ }
682
+ _getModuleSemaphore(moduleId) {
683
+ let semaphore = this._moduleSemaphores.get(moduleId);
684
+ if (!semaphore) {
685
+ semaphore = Effect2.runSync(Effect2.makeSemaphore(1));
686
+ this._moduleSemaphores.set(moduleId, semaphore);
687
+ }
688
+ return semaphore;
689
+ }
690
+ _loadModule = (module) => Effect2.gen(this, function* () {
691
+ const semaphore = this._getModuleSemaphore(module.id);
692
+ const deferredToAwait = yield* Effect2.gen(this, function* () {
693
+ const existing = this._moduleMemoMap.get(module.id);
694
+ if (existing) {
695
+ return existing;
696
+ }
697
+ const deferred = yield* Deferred2.make();
698
+ this._moduleMemoMap.set(module.id, deferred);
699
+ const loadEffect = Effect2.gen(this, function* () {
700
+ log2("loading module", {
701
+ module: module.id
702
+ }, {
703
+ F: __dxlog_file2,
704
+ L: 598,
705
+ S: this,
706
+ C: (f, a) => f(...a)
707
+ });
708
+ const [duration, capabilities] = yield* module.activate().pipe(Effect2.provideService(Service, this.capabilities), Effect2.provideService(Service2, this), Effect2.timed);
709
+ const normalized = capabilities == null ? [] : Array.isArray(capabilities) ? capabilities : [
710
+ capabilities
711
+ ];
712
+ log2("loaded module", {
713
+ module: module.id,
714
+ elapsed: Duration.toMillis(duration),
715
+ failed: false
716
+ }, {
717
+ F: __dxlog_file2,
718
+ L: 607,
719
+ S: this,
720
+ C: (f, a) => f(...a)
721
+ });
722
+ return normalized;
723
+ }).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`, {
724
+ module: module.id
725
+ }, {
726
+ F: __dxlog_file2,
727
+ L: 618,
728
+ S: this,
729
+ C: (f, a) => f(...a)
730
+ }))))), Performance.addTrackEntry({
731
+ name: module.id,
732
+ devtools: {
733
+ dataType: "track-entry",
734
+ track: "Module Activation",
735
+ trackGroup: "Composer",
736
+ color: "primary"
737
+ }
738
+ }));
739
+ yield* Effect2.forkDaemon(loadEffect.pipe(Effect2.tap((result) => Deferred2.succeed(deferred, result)), Effect2.catchAllCause((cause) => {
740
+ const error = Cause.squash(cause);
741
+ log2.error("module failed to activate", {
742
+ module: module.id,
743
+ error: error instanceof Error ? error.message : String(error),
744
+ stack: error instanceof Error ? error.stack : void 0,
745
+ isDefect: !Cause.isFailure(cause)
746
+ }, {
747
+ F: __dxlog_file2,
748
+ L: 639,
749
+ S: this,
750
+ C: (f, a) => f(...a)
751
+ });
752
+ return Deferred2.fail(deferred, error instanceof Error ? error : new Error(String(error)));
753
+ })));
754
+ return deferred;
755
+ }).pipe(semaphore.withPermits(1));
756
+ return yield* Deferred2.await(deferredToAwait);
757
+ });
758
+ _contributeCapabilities(module, capabilities) {
759
+ return Effect2.gen(this, function* () {
760
+ capabilities.forEach((capability) => {
761
+ this.capabilities.contribute({
762
+ module: module.id,
763
+ ...capability
764
+ });
765
+ });
766
+ this._update(this._activeAtom, (active) => [
767
+ ...active,
768
+ module.id
769
+ ]);
770
+ this._capabilities.set(module.id, capabilities);
771
+ });
772
+ }
773
+ _deactivateModule(module) {
774
+ return Effect2.gen(this, function* () {
775
+ const id = module.id;
776
+ log2("deactivating", {
777
+ id
778
+ }, {
779
+ F: __dxlog_file2,
780
+ L: 673,
781
+ S: this,
782
+ C: (f, a) => f(...a)
783
+ });
784
+ this._moduleMemoMap.delete(id);
785
+ const capabilities = this._capabilities.get(id);
786
+ if (capabilities) {
787
+ for (const capability of capabilities) {
788
+ this.capabilities.remove(capability.interface, capability.implementation);
789
+ const program = capability.deactivate?.() ?? Effect2.succeed(void 0);
790
+ yield* program;
791
+ }
792
+ this._capabilities.delete(id);
793
+ }
794
+ const activeIndex = this._get(this._activeAtom).findIndex((event) => event === id);
795
+ if (activeIndex !== -1) {
796
+ this._update(this._activeAtom, (active) => active.filter((event) => event !== id));
797
+ }
798
+ log2("deactivated", {
799
+ id
800
+ }, {
801
+ F: __dxlog_file2,
802
+ L: 691,
803
+ S: this,
804
+ C: (f, a) => f(...a)
805
+ });
806
+ return true;
807
+ });
808
+ }
809
+ };
810
+ var make5 = (options) => new ManagerImpl(options);
811
+ var together = (togetherEffect) => (effect) => Effect2.gen(function* () {
812
+ const togetherFiber = yield* Effect2.fork(togetherEffect);
813
+ const result = yield* effect;
814
+ yield* Fiber.interrupt(togetherFiber);
815
+ return result;
816
+ });
817
+
818
+ export {
819
+ capability_manager_exports,
820
+ ManagerTypeId,
821
+ isManager,
822
+ make5 as make,
823
+ plugin_manager_exports
824
+ };
825
+ //# sourceMappingURL=chunk-DTCHT2X2.mjs.map