@dxos/app-framework 0.8.4-main.74a063c4e0 → 0.8.4-main.765dc60934

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