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