@dxos/app-framework 0.8.4-main.3eb6e50203 → 0.8.4-main.3fbcb4aa9b

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