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