@dxos/app-framework 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced

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