@dxos/app-framework 0.8.4-main.dedc0f3 → 0.8.4-main.dfabb4ec29

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 (577) hide show
  1. package/.storybook/main.mts +9 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/dist/lib/browser/capability-5RRH3WIB.mjs +35 -0
  4. package/dist/lib/browser/capability-5RRH3WIB.mjs.map +7 -0
  5. package/dist/lib/browser/capability-LUKGKUQH.mjs +38 -0
  6. package/dist/lib/browser/capability-LUKGKUQH.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-23D4SJUE.mjs +42 -0
  8. package/dist/lib/browser/chunk-23D4SJUE.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-3JWJXGLK.mjs +79 -0
  10. package/dist/lib/browser/chunk-3JWJXGLK.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-45CHLTBV.mjs +34 -0
  12. package/dist/lib/browser/chunk-45CHLTBV.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-66IXTIVK.mjs +48 -0
  14. package/dist/lib/browser/chunk-66IXTIVK.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-7VZJR2OA.mjs +581 -0
  16. package/dist/lib/browser/chunk-7VZJR2OA.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-CZ4BIAHH.mjs +422 -0
  18. package/dist/lib/browser/chunk-CZ4BIAHH.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-FJ4765WW.mjs +8 -0
  20. package/dist/lib/browser/chunk-FJ4765WW.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-FO3IYSLV.mjs +68 -0
  22. package/dist/lib/browser/chunk-FO3IYSLV.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  24. package/dist/lib/browser/chunk-JD3Z5NEF.mjs +469 -0
  25. package/dist/lib/browser/chunk-JD3Z5NEF.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-NBXPP7JR.mjs +1174 -0
  27. package/dist/lib/browser/chunk-NBXPP7JR.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-WBHCSOBW.mjs +80 -0
  29. package/dist/lib/browser/chunk-WBHCSOBW.mjs.map +7 -0
  30. package/dist/lib/browser/chunk-Z55LVAGN.mjs +213 -0
  31. package/dist/lib/browser/chunk-Z55LVAGN.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-ZGJAZSNE.mjs +142 -0
  33. package/dist/lib/browser/chunk-ZGJAZSNE.mjs.map +7 -0
  34. package/dist/lib/browser/cli/index.mjs +76 -0
  35. package/dist/lib/browser/cli/index.mjs.map +7 -0
  36. package/dist/lib/browser/common/activation-events.mjs +24 -0
  37. package/dist/lib/browser/common/capabilities.mjs +46 -0
  38. package/dist/lib/browser/core/activation-event.mjs +20 -0
  39. package/dist/lib/browser/core/capability.mjs +30 -0
  40. package/dist/lib/browser/core/capability.mjs.map +7 -0
  41. package/dist/lib/browser/core/plugin-manager.mjs +19 -0
  42. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  43. package/dist/lib/browser/core/plugin.mjs +37 -0
  44. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  45. package/dist/lib/browser/core/url-loader.mjs +24 -0
  46. package/dist/lib/browser/core/url-loader.mjs.map +7 -0
  47. package/dist/lib/browser/index.mjs +108 -162
  48. package/dist/lib/browser/index.mjs.map +4 -4
  49. package/dist/lib/browser/invoker-capability-K4GHUFXF.mjs +44 -0
  50. package/dist/lib/browser/invoker-capability-K4GHUFXF.mjs.map +7 -0
  51. package/dist/lib/browser/meta.json +1 -1
  52. package/dist/lib/browser/testing/index.mjs +235 -48
  53. package/dist/lib/browser/testing/index.mjs.map +4 -4
  54. package/dist/lib/browser/testing/react.mjs +78 -0
  55. package/dist/lib/browser/testing/react.mjs.map +7 -0
  56. package/dist/lib/browser/ui/index.mjs +48 -0
  57. package/dist/lib/browser/ui/index.mjs.map +7 -0
  58. package/dist/lib/node-esm/capability-FCGZVIEG.mjs +39 -0
  59. package/dist/lib/node-esm/capability-FCGZVIEG.mjs.map +7 -0
  60. package/dist/lib/node-esm/capability-JOIQ2MQE.mjs +36 -0
  61. package/dist/lib/node-esm/capability-JOIQ2MQE.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-37Z53PXZ.mjs +10 -0
  63. package/dist/lib/node-esm/chunk-37Z53PXZ.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-6XW6LET6.mjs +35 -0
  65. package/dist/lib/node-esm/chunk-6XW6LET6.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-D347W3KO.mjs +143 -0
  67. package/dist/lib/node-esm/chunk-D347W3KO.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-DRZKO5UZ.mjs +470 -0
  69. package/dist/lib/node-esm/chunk-DRZKO5UZ.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  71. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-HTBJU5FX.mjs +214 -0
  73. package/dist/lib/node-esm/chunk-HTBJU5FX.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-M3HKPRPO.mjs +423 -0
  75. package/dist/lib/node-esm/chunk-M3HKPRPO.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-MUVUQC3G.mjs +1175 -0
  77. package/dist/lib/node-esm/chunk-MUVUQC3G.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-SBS2YMPT.mjs +43 -0
  79. package/dist/lib/node-esm/chunk-SBS2YMPT.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-SDJ4B2LU.mjs +80 -0
  81. package/dist/lib/node-esm/chunk-SDJ4B2LU.mjs.map +7 -0
  82. package/dist/lib/node-esm/chunk-V24UWT36.mjs +582 -0
  83. package/dist/lib/node-esm/chunk-V24UWT36.mjs.map +7 -0
  84. package/dist/lib/node-esm/chunk-WFSRZKBP.mjs +81 -0
  85. package/dist/lib/node-esm/chunk-WFSRZKBP.mjs.map +7 -0
  86. package/dist/lib/node-esm/chunk-WK7OIQKI.mjs +70 -0
  87. package/dist/lib/node-esm/chunk-WK7OIQKI.mjs.map +7 -0
  88. package/dist/lib/node-esm/chunk-XOCUANHO.mjs +49 -0
  89. package/dist/lib/node-esm/chunk-XOCUANHO.mjs.map +7 -0
  90. package/dist/lib/node-esm/cli/index.mjs +77 -0
  91. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  92. package/dist/lib/node-esm/common/activation-events.mjs +25 -0
  93. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  94. package/dist/lib/node-esm/common/capabilities.mjs +47 -0
  95. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  96. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  97. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  98. package/dist/lib/node-esm/core/capability.mjs +31 -0
  99. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  100. package/dist/lib/node-esm/core/plugin-manager.mjs +20 -0
  101. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  102. package/dist/lib/node-esm/core/plugin.mjs +38 -0
  103. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  104. package/dist/lib/node-esm/core/url-loader.mjs +25 -0
  105. package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
  106. package/dist/lib/node-esm/index.mjs +108 -162
  107. package/dist/lib/node-esm/index.mjs.map +4 -4
  108. package/dist/lib/node-esm/invoker-capability-XEPW5LMJ.mjs +45 -0
  109. package/dist/lib/node-esm/invoker-capability-XEPW5LMJ.mjs.map +7 -0
  110. package/dist/lib/node-esm/meta.json +1 -1
  111. package/dist/lib/node-esm/testing/index.mjs +235 -48
  112. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  113. package/dist/lib/node-esm/testing/react.mjs +79 -0
  114. package/dist/lib/node-esm/testing/react.mjs.map +7 -0
  115. package/dist/lib/node-esm/ui/index.mjs +49 -0
  116. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  117. package/dist/plugin/node-esm/index.mjs +893 -0
  118. package/dist/plugin/node-esm/index.mjs.map +7 -0
  119. package/dist/plugin/node-esm/meta.json +1 -0
  120. package/dist/types/src/cli/cli.d.ts +39 -0
  121. package/dist/types/src/cli/cli.d.ts.map +1 -0
  122. package/dist/types/src/cli/index.d.ts +2 -0
  123. package/dist/types/src/cli/index.d.ts.map +1 -0
  124. package/dist/types/src/common/activation-events.d.ts +27 -0
  125. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  126. package/dist/types/src/common/annotations.d.ts +1 -0
  127. package/dist/types/src/common/annotations.d.ts.map +1 -0
  128. package/dist/types/src/common/capabilities.d.ts +110 -190
  129. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  130. package/dist/types/src/common/index.d.ts +4 -8
  131. package/dist/types/src/common/index.d.ts.map +1 -1
  132. package/dist/types/src/common/operations.d.ts +19 -0
  133. package/dist/types/src/common/operations.d.ts.map +1 -0
  134. package/dist/types/src/common/translations.d.ts +8 -8
  135. package/dist/types/src/common/translations.d.ts.map +1 -1
  136. package/dist/types/src/context.d.ts +5 -0
  137. package/dist/types/src/context.d.ts.map +1 -0
  138. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +11 -11
  139. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  140. package/dist/types/src/core/capability-manager.d.ts +48 -0
  141. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  142. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  143. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  144. package/dist/types/src/core/capability.d.ts +156 -0
  145. package/dist/types/src/core/capability.d.ts.map +1 -0
  146. package/dist/types/src/core/edge-registry-plugin-provider.d.ts +30 -0
  147. package/dist/types/src/core/edge-registry-plugin-provider.d.ts.map +1 -0
  148. package/dist/types/src/core/index.d.ts +11 -4
  149. package/dist/types/src/core/index.d.ts.map +1 -1
  150. package/dist/types/src/core/plugin-asset-cache.d.ts +71 -0
  151. package/dist/types/src/core/plugin-asset-cache.d.ts.map +1 -0
  152. package/dist/types/src/core/plugin-manager.d.ts +239 -0
  153. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  154. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  155. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  156. package/dist/types/src/core/plugin-manifest.d.ts +101 -0
  157. package/dist/types/src/core/plugin-manifest.d.ts.map +1 -0
  158. package/dist/types/src/core/plugin-manifest.test.d.ts +2 -0
  159. package/dist/types/src/core/plugin-manifest.test.d.ts.map +1 -0
  160. package/dist/types/src/core/plugin.d.ts +208 -37
  161. package/dist/types/src/core/plugin.d.ts.map +1 -1
  162. package/dist/types/src/core/registry.d.ts +101 -0
  163. package/dist/types/src/core/registry.d.ts.map +1 -0
  164. package/dist/types/src/core/url-loader.d.ts +127 -0
  165. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  166. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  167. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  168. package/dist/types/src/helpers.d.ts.map +1 -1
  169. package/dist/types/src/index.d.ts +3 -4
  170. package/dist/types/src/index.d.ts.map +1 -1
  171. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  172. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  173. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  174. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  175. package/dist/types/src/plugin-operation/history/errors.d.ts +32 -0
  176. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  177. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  178. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  179. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  180. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  181. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  182. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  183. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  184. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  185. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  186. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  187. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  188. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  189. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  190. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  191. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  192. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  193. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  194. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  195. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  196. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  197. package/dist/types/src/plugin-operation/testing.d.ts +59 -0
  198. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  199. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  200. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  201. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  202. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  203. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  204. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  205. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  206. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  207. package/dist/types/src/testing/harness.d.ts +67 -0
  208. package/dist/types/src/testing/harness.d.ts.map +1 -0
  209. package/dist/types/src/testing/index.d.ts +2 -0
  210. package/dist/types/src/testing/index.d.ts.map +1 -1
  211. package/dist/types/src/testing/react.d.ts +27 -0
  212. package/dist/types/src/testing/react.d.ts.map +1 -0
  213. package/dist/types/src/testing/react.test.d.ts +2 -0
  214. package/dist/types/src/testing/react.test.d.ts.map +1 -0
  215. package/dist/types/src/testing/service.d.ts +8 -0
  216. package/dist/types/src/testing/service.d.ts.map +1 -0
  217. package/dist/types/src/testing/withPluginManager.d.ts +8 -9
  218. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  219. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  220. package/dist/types/src/ui/components/App/App.d.ts +9 -0
  221. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  222. package/dist/types/src/ui/components/App/App.stories.d.ts +19 -0
  223. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  224. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  225. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  226. package/dist/types/src/ui/components/Placeholder/Placeholder.d.ts +64 -0
  227. package/dist/types/src/ui/components/Placeholder/Placeholder.d.ts.map +1 -0
  228. package/dist/types/src/ui/components/Placeholder/Placeholder.stories.d.ts +19 -0
  229. package/dist/types/src/ui/components/Placeholder/Placeholder.stories.d.ts.map +1 -0
  230. package/dist/types/src/ui/components/Placeholder/index.d.ts +2 -0
  231. package/dist/types/src/ui/components/Placeholder/index.d.ts.map +1 -0
  232. package/dist/types/src/{playground/playground.stories.d.ts → ui/components/PluginManager/PluginManagerContext.stories.d.ts} +5 -4
  233. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  234. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
  235. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  236. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  237. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  238. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +24 -0
  239. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  240. package/dist/types/src/{components/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -2
  241. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  242. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
  243. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  244. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  245. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  246. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  247. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  248. package/dist/types/src/ui/components/Surface/index.d.ts +36 -0
  249. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  250. package/dist/types/src/ui/components/Surface/types.d.ts +197 -0
  251. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  252. package/dist/types/src/ui/components/Surface/types.test.d.ts +2 -0
  253. package/dist/types/src/ui/components/Surface/types.test.d.ts.map +1 -0
  254. package/dist/types/src/ui/components/index.d.ts +5 -0
  255. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  256. package/dist/types/src/ui/hooks/index.d.ts +6 -0
  257. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  258. package/dist/types/src/ui/hooks/useApp.d.ts +89 -0
  259. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  260. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  261. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  262. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  263. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  264. package/dist/types/src/{components → ui/hooks}/useLoading.d.ts +1 -2
  265. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  266. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  267. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  268. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  269. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  270. package/dist/types/src/ui/index.d.ts +3 -0
  271. package/dist/types/src/ui/index.d.ts.map +1 -0
  272. package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts +34 -0
  273. package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts.map +1 -0
  274. package/dist/types/src/vite-plugin/boot-loader/index.d.ts +2 -0
  275. package/dist/types/src/vite-plugin/boot-loader/index.d.ts.map +1 -0
  276. package/dist/types/src/vite-plugin/boot-loader/loader.d.ts +51 -0
  277. package/dist/types/src/vite-plugin/boot-loader/loader.d.ts.map +1 -0
  278. package/dist/types/src/vite-plugin/composer/index.d.ts +34 -0
  279. package/dist/types/src/vite-plugin/composer/index.d.ts.map +1 -0
  280. package/dist/types/src/vite-plugin/import-map/index.d.ts +28 -0
  281. package/dist/types/src/vite-plugin/import-map/index.d.ts.map +1 -0
  282. package/dist/types/src/vite-plugin/index.d.ts +5 -0
  283. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  284. package/dist/types/src/vite-plugin/manifest.d.ts +41 -0
  285. package/dist/types/src/vite-plugin/manifest.d.ts.map +1 -0
  286. package/dist/types/src/vite-plugin/manifest.test.d.ts +2 -0
  287. package/dist/types/src/vite-plugin/manifest.test.d.ts.map +1 -0
  288. package/dist/types/src/vite-plugin/packages.d.ts +13 -0
  289. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  290. package/dist/types/tsconfig.tsbuildinfo +1 -1
  291. package/moon.yml +26 -3
  292. package/package.json +114 -54
  293. package/src/cli/cli.ts +107 -0
  294. package/src/{playground/logger → cli}/index.ts +1 -1
  295. package/src/common/activation-events.ts +44 -0
  296. package/src/{components/index.ts → common/annotations.ts} +0 -2
  297. package/src/common/capabilities.ts +169 -195
  298. package/src/common/index.ts +4 -8
  299. package/src/common/operations.ts +35 -0
  300. package/src/common/translations.ts +18 -10
  301. package/src/context.ts +9 -0
  302. package/src/core/{events.ts → activation-event.ts} +10 -7
  303. package/src/core/capability-manager.test.ts +151 -0
  304. package/src/core/capability-manager.ts +192 -0
  305. package/src/core/capability.ts +247 -0
  306. package/src/core/edge-registry-plugin-provider.ts +92 -0
  307. package/src/core/index.ts +11 -4
  308. package/src/core/plugin-asset-cache.ts +60 -0
  309. package/src/core/plugin-manager.test.ts +1671 -0
  310. package/src/core/plugin-manager.ts +1335 -0
  311. package/src/core/plugin-manifest.test.ts +75 -0
  312. package/src/core/plugin-manifest.ts +134 -0
  313. package/src/core/plugin.ts +369 -43
  314. package/src/core/registry.ts +157 -0
  315. package/src/core/url-loader.test.ts +221 -0
  316. package/src/core/url-loader.ts +388 -0
  317. package/src/index.ts +3 -4
  318. package/src/plugin-operation/OperationPlugin.ts +24 -0
  319. package/src/plugin-operation/history/capability.ts +36 -0
  320. package/src/plugin-operation/history/errors.ts +7 -0
  321. package/src/plugin-operation/history/history-tracker.test.ts +374 -0
  322. package/src/plugin-operation/history/history-tracker.ts +128 -0
  323. package/src/plugin-operation/history/index.ts +9 -0
  324. package/src/plugin-operation/history/types.ts +17 -0
  325. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  326. package/src/plugin-operation/history/undo-registry.test.ts +72 -0
  327. package/src/plugin-operation/history/undo-registry.ts +54 -0
  328. package/src/plugin-operation/index.ts +6 -0
  329. package/src/plugin-operation/invoker-capability.ts +55 -0
  330. package/src/plugin-operation/meta.ts +12 -0
  331. package/src/plugin-operation/testing.ts +155 -0
  332. package/src/plugin-runtime/RuntimePlugin.ts +19 -0
  333. package/src/plugin-runtime/capability.ts +53 -0
  334. package/src/plugin-runtime/index.ts +5 -0
  335. package/src/plugin-runtime/meta.ts +12 -0
  336. package/src/testing/harness.ts +229 -0
  337. package/src/testing/index.ts +2 -0
  338. package/src/testing/react.test.tsx +48 -0
  339. package/src/testing/react.tsx +113 -0
  340. package/src/testing/service.ts +52 -0
  341. package/src/testing/withPluginManager.stories.tsx +9 -10
  342. package/src/testing/withPluginManager.tsx +74 -50
  343. package/src/ui/components/App/App.stories.tsx +88 -0
  344. package/src/ui/components/App/App.tsx +81 -0
  345. package/src/{playground/layout → ui/components/App}/index.ts +1 -1
  346. package/src/ui/components/Placeholder/Placeholder.stories.tsx +77 -0
  347. package/src/ui/components/Placeholder/Placeholder.tsx +155 -0
  348. package/src/{playground/debug → ui/components/Placeholder}/index.ts +1 -1
  349. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +185 -0
  350. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
  351. package/src/ui/components/PluginManager/index.ts +5 -0
  352. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +144 -0
  353. package/src/ui/components/Surface/SurfaceComponent.tsx +303 -0
  354. package/src/ui/components/Surface/SurfaceInfo.tsx +106 -0
  355. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  356. package/src/ui/components/Surface/context.ts +12 -0
  357. package/src/ui/components/Surface/index.ts +54 -0
  358. package/src/ui/components/Surface/types.test.ts +126 -0
  359. package/src/ui/components/Surface/types.ts +269 -0
  360. package/src/ui/components/index.ts +8 -0
  361. package/src/ui/hooks/index.ts +9 -0
  362. package/src/ui/hooks/useApp.test.tsx +159 -0
  363. package/src/ui/hooks/useApp.tsx +424 -0
  364. package/src/ui/hooks/useCapabilities.ts +67 -0
  365. package/src/{components → ui/hooks}/useLoading.tsx +16 -10
  366. package/src/ui/hooks/useSettingsState.ts +26 -0
  367. package/src/ui/hooks/useSurface.ts +13 -0
  368. package/src/ui/index.ts +6 -0
  369. package/src/vite-plugin/boot-loader/BootLoader.stories.tsx +270 -0
  370. package/src/vite-plugin/boot-loader/boot-loader.css +320 -0
  371. package/src/vite-plugin/boot-loader/boot-loader.js +325 -0
  372. package/src/vite-plugin/boot-loader/index.ts +5 -0
  373. package/src/vite-plugin/boot-loader/loader.ts +123 -0
  374. package/src/vite-plugin/composer/index.ts +306 -0
  375. package/src/vite-plugin/import-map/index.ts +527 -0
  376. package/src/vite-plugin/index.ts +10 -0
  377. package/src/vite-plugin/manifest.test.ts +46 -0
  378. package/src/vite-plugin/manifest.ts +57 -0
  379. package/src/vite-plugin/packages.ts +187 -0
  380. package/tsconfig.json +24 -15
  381. package/tsconfig.node.json +2 -4
  382. package/typedoc.json +2 -4
  383. package/vitest.config.ts +8 -6
  384. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  385. package/.swc/plugins/linux_x86_64_19.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429.wasmer-v7 +0 -0
  386. package/dist/lib/browser/app-graph-builder-AFFC6VB2.mjs +0 -137
  387. package/dist/lib/browser/app-graph-builder-AFFC6VB2.mjs.map +0 -7
  388. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  389. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  390. package/dist/lib/browser/chunk-OZY7HV2A.mjs +0 -1643
  391. package/dist/lib/browser/chunk-OZY7HV2A.mjs.map +0 -7
  392. package/dist/lib/browser/chunk-T6M7JB7M.mjs +0 -471
  393. package/dist/lib/browser/chunk-T6M7JB7M.mjs.map +0 -7
  394. package/dist/lib/browser/intent-dispatcher-QG7UPGQX.mjs +0 -11
  395. package/dist/lib/browser/intent-resolver-4S4PSTM5.mjs +0 -39
  396. package/dist/lib/browser/intent-resolver-4S4PSTM5.mjs.map +0 -7
  397. package/dist/lib/browser/store-6E33KLGK.mjs +0 -30
  398. package/dist/lib/browser/store-6E33KLGK.mjs.map +0 -7
  399. package/dist/lib/browser/worker.mjs +0 -85
  400. package/dist/lib/node-esm/app-graph-builder-S4OAULX5.mjs +0 -138
  401. package/dist/lib/node-esm/app-graph-builder-S4OAULX5.mjs.map +0 -7
  402. package/dist/lib/node-esm/chunk-F63ZRXMK.mjs +0 -1645
  403. package/dist/lib/node-esm/chunk-F63ZRXMK.mjs.map +0 -7
  404. package/dist/lib/node-esm/chunk-HJFU7QOR.mjs +0 -472
  405. package/dist/lib/node-esm/chunk-HJFU7QOR.mjs.map +0 -7
  406. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  407. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  408. package/dist/lib/node-esm/intent-dispatcher-NXBGPJOX.mjs +0 -12
  409. package/dist/lib/node-esm/intent-resolver-2ZKXI5ET.mjs +0 -40
  410. package/dist/lib/node-esm/intent-resolver-2ZKXI5ET.mjs.map +0 -7
  411. package/dist/lib/node-esm/store-QQUTQHHT.mjs +0 -31
  412. package/dist/lib/node-esm/store-QQUTQHHT.mjs.map +0 -7
  413. package/dist/lib/node-esm/worker.mjs +0 -86
  414. package/dist/types/src/common/collaboration.d.ts +0 -20
  415. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  416. package/dist/types/src/common/events.d.ts +0 -52
  417. package/dist/types/src/common/events.d.ts.map +0 -1
  418. package/dist/types/src/common/file.d.ts +0 -14
  419. package/dist/types/src/common/file.d.ts.map +0 -1
  420. package/dist/types/src/common/graph.d.ts +0 -21
  421. package/dist/types/src/common/graph.d.ts.map +0 -1
  422. package/dist/types/src/common/layout.d.ts +0 -281
  423. package/dist/types/src/common/layout.d.ts.map +0 -1
  424. package/dist/types/src/common/surface.d.ts +0 -65
  425. package/dist/types/src/common/surface.d.ts.map +0 -1
  426. package/dist/types/src/components/App.d.ts +0 -10
  427. package/dist/types/src/components/App.d.ts.map +0 -1
  428. package/dist/types/src/components/App.stories.d.ts.map +0 -1
  429. package/dist/types/src/components/DefaultFallback.d.ts +0 -8
  430. package/dist/types/src/components/DefaultFallback.d.ts.map +0 -1
  431. package/dist/types/src/components/index.d.ts +0 -2
  432. package/dist/types/src/components/index.d.ts.map +0 -1
  433. package/dist/types/src/components/useApp.d.ts +0 -44
  434. package/dist/types/src/components/useApp.d.ts.map +0 -1
  435. package/dist/types/src/components/useLoading.d.ts.map +0 -1
  436. package/dist/types/src/core/capabilities.d.ts +0 -117
  437. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  438. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  439. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  440. package/dist/types/src/core/events.d.ts.map +0 -1
  441. package/dist/types/src/core/manager.d.ts +0 -126
  442. package/dist/types/src/core/manager.d.ts.map +0 -1
  443. package/dist/types/src/core/manager.test.d.ts +0 -2
  444. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  445. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  446. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  447. package/dist/types/src/playground/debug/index.d.ts +0 -2
  448. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  449. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  450. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  451. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  452. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  453. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  454. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  455. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  456. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  457. package/dist/types/src/playground/generator/index.d.ts +0 -3
  458. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  459. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  460. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  461. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  462. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  463. package/dist/types/src/playground/layout/index.d.ts +0 -2
  464. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  465. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  466. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  467. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  468. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  469. package/dist/types/src/playground/logger/index.d.ts +0 -2
  470. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  471. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  472. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  473. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  474. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  475. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  476. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  477. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  478. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  479. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  480. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  481. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  482. package/dist/types/src/plugin-intent/index.d.ts +0 -6
  483. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  484. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  485. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  486. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  487. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  488. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  489. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  490. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  491. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  492. package/dist/types/src/plugin-settings/actions.d.ts +0 -27
  493. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  494. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  495. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  496. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  497. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  498. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  499. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  500. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  501. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  502. package/dist/types/src/plugin-settings/translations.d.ts +0 -10
  503. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  504. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  505. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  506. package/dist/types/src/react/IntentContext.d.ts +0 -8
  507. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  508. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  509. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  510. package/dist/types/src/react/Surface.d.ts +0 -12
  511. package/dist/types/src/react/Surface.d.ts.map +0 -1
  512. package/dist/types/src/react/Surface.stories.d.ts +0 -18
  513. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  514. package/dist/types/src/react/common.d.ts +0 -13
  515. package/dist/types/src/react/common.d.ts.map +0 -1
  516. package/dist/types/src/react/index.d.ts +0 -7
  517. package/dist/types/src/react/index.d.ts.map +0 -1
  518. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  519. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  520. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  521. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  522. package/dist/types/src/worker.d.ts +0 -4
  523. package/dist/types/src/worker.d.ts.map +0 -1
  524. package/src/common/collaboration.ts +0 -18
  525. package/src/common/events.ts +0 -79
  526. package/src/common/file.ts +0 -22
  527. package/src/common/graph.ts +0 -30
  528. package/src/common/layout.ts +0 -278
  529. package/src/common/surface.ts +0 -86
  530. package/src/components/App.stories.tsx +0 -35
  531. package/src/components/App.tsx +0 -59
  532. package/src/components/DefaultFallback.tsx +0 -26
  533. package/src/components/useApp.tsx +0 -166
  534. package/src/core/capabilities.test.ts +0 -136
  535. package/src/core/capabilities.ts +0 -259
  536. package/src/core/manager.test.ts +0 -516
  537. package/src/core/manager.ts +0 -597
  538. package/src/playground/debug/Debug.tsx +0 -39
  539. package/src/playground/debug/plugin.ts +0 -17
  540. package/src/playground/generator/Main.tsx +0 -71
  541. package/src/playground/generator/Toolbar.tsx +0 -47
  542. package/src/playground/generator/generator.ts +0 -48
  543. package/src/playground/generator/index.ts +0 -6
  544. package/src/playground/generator/plugin.ts +0 -23
  545. package/src/playground/layout/Layout.tsx +0 -33
  546. package/src/playground/layout/plugin.ts +0 -17
  547. package/src/playground/logger/Toolbar.tsx +0 -30
  548. package/src/playground/logger/plugin.ts +0 -37
  549. package/src/playground/logger/schema.ts +0 -12
  550. package/src/playground/playground.stories.tsx +0 -47
  551. package/src/plugin-intent/IntentPlugin.ts +0 -21
  552. package/src/plugin-intent/actions.ts +0 -33
  553. package/src/plugin-intent/errors.ts +0 -39
  554. package/src/plugin-intent/index.ts +0 -9
  555. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  556. package/src/plugin-intent/intent-dispatcher.ts +0 -335
  557. package/src/plugin-intent/intent.ts +0 -154
  558. package/src/plugin-settings/SettingsPlugin.ts +0 -36
  559. package/src/plugin-settings/actions.ts +0 -29
  560. package/src/plugin-settings/app-graph-builder.ts +0 -158
  561. package/src/plugin-settings/index.ts +0 -6
  562. package/src/plugin-settings/intent-resolver.ts +0 -35
  563. package/src/plugin-settings/store.ts +0 -33
  564. package/src/plugin-settings/translations.ts +0 -19
  565. package/src/react/ErrorBoundary.tsx +0 -54
  566. package/src/react/IntentContext.tsx +0 -35
  567. package/src/react/Surface.stories.tsx +0 -104
  568. package/src/react/Surface.tsx +0 -78
  569. package/src/react/common.ts +0 -13
  570. package/src/react/index.ts +0 -10
  571. package/src/react/useCapabilities.ts +0 -31
  572. package/src/react/useIntentResolver.ts +0 -22
  573. package/src/worker.ts +0 -11
  574. /package/dist/lib/{node-esm/worker.mjs.map → browser/chunk-J5LGTIGS.mjs.map} +0 -0
  575. /package/dist/lib/{node-esm/intent-dispatcher-NXBGPJOX.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  576. /package/dist/lib/browser/{worker.mjs.map → common/capabilities.mjs.map} +0 -0
  577. /package/dist/lib/browser/{intent-dispatcher-QG7UPGQX.mjs.map → core/activation-event.mjs.map} +0 -0
@@ -0,0 +1,18 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { OperationInvoker } from '@dxos/operation';
3
+ import type { UndoRegistry } from './undo-registry';
4
+ /**
5
+ * HistoryTracker interface - tracks operation history and provides undo.
6
+ */
7
+ export interface HistoryTracker {
8
+ undo: () => Effect.Effect<void, Error>;
9
+ undoPromise: () => Promise<{
10
+ error?: Error;
11
+ }>;
12
+ canUndo: () => boolean;
13
+ }
14
+ /**
15
+ * Creates a HistoryTracker that subscribes to invocation events and provides undo.
16
+ */
17
+ export declare const make: (invoker: OperationInvoker.OperationInvokerInternal, undoRegistry: UndoRegistry) => HistoryTracker;
18
+ //# sourceMappingURL=history-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-tracker.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/history-tracker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,OAAO,CAAC;CACxB;AAMD;;GAEG;AACH,eAAO,MAAM,IAAI,YACN,gBAAgB,CAAC,wBAAwB,gBACpC,YAAY,KACzB,cAqFF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=history-tracker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-tracker.test.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/history-tracker.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export * from './errors';
2
+ export * from './types';
3
+ export * as UndoMapping from './undo-mapping';
4
+ export * as UndoRegistry from './undo-registry';
5
+ export * as HistoryTracker from './history-tracker';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Operation } from '@dxos/compute';
2
+ /**
3
+ * History entry stored by HistoryTracker.
4
+ */
5
+ export type HistoryEntry = {
6
+ operation: Operation.Definition<any, any>;
7
+ input: any;
8
+ output: any;
9
+ inverse: Operation.Definition<any, any>;
10
+ inverseInput: any;
11
+ timestamp: number;
12
+ };
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,YAAY,EAAE,GAAG,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
@@ -0,0 +1,101 @@
1
+ import type { Operation } from '@dxos/compute';
2
+ /**
3
+ * Label type for translatable text (canonical definition in @dxos/app-toolkit).
4
+ */
5
+ type Label = string | [string, {
6
+ ns: string;
7
+ count?: number;
8
+ defaultValue?: string;
9
+ }];
10
+ /**
11
+ * Extract the input type from an OperationDefinition.
12
+ */
13
+ export type InputOf<T> = T extends Operation.Definition<infer I, any> ? I : never;
14
+ /**
15
+ * Extract the output type from an OperationDefinition.
16
+ */
17
+ export type OutputOf<T> = T extends Operation.Definition<any, infer O> ? O : never;
18
+ /**
19
+ * Message provider for undo toast.
20
+ * Can be a static Label or a function that derives the message from input/output.
21
+ */
22
+ export type MessageProvider<Op extends Operation.Definition<any, any>> = Label | ((input: InputOf<Op>, output: OutputOf<Op>) => Label);
23
+ /**
24
+ * Undo mapping that links a forward operation to its inverse.
25
+ * Type parameters ensure deriveContext has correctly typed arguments.
26
+ *
27
+ * @template Op - The forward operation definition type.
28
+ * @template Inv - The inverse operation definition type.
29
+ */
30
+ export interface UndoMapping<Op extends Operation.Definition<any, any> = Operation.Definition<any, any>, Inv extends Operation.Definition<any, any> = Operation.Definition<any, any>> {
31
+ /** The forward operation. */
32
+ readonly operation: Op;
33
+ /** The inverse operation to invoke for undo. */
34
+ readonly inverse: Inv;
35
+ /**
36
+ * Derives the input for the inverse operation from the forward operation's input and output.
37
+ * @param input - The input that was passed to the forward operation.
38
+ * @param output - The output that was returned by the forward operation.
39
+ * @returns The input to pass to the inverse operation, or undefined to indicate the operation is not undoable.
40
+ */
41
+ readonly deriveContext: (input: InputOf<Op>, output: OutputOf<Op>) => InputOf<Inv> | undefined;
42
+ /**
43
+ * Optional message to show in the undo toast.
44
+ * Can be a static Label or a function that derives the message from input/output.
45
+ */
46
+ readonly message?: MessageProvider<Op>;
47
+ }
48
+ /**
49
+ * Props for creating an UndoMapping.
50
+ */
51
+ export interface UndoMappingProps<Op extends Operation.Definition<any, any>, Inv extends Operation.Definition<any, any>> {
52
+ /** The forward operation. */
53
+ operation: Op;
54
+ /** The inverse operation to invoke for undo. */
55
+ inverse: Inv;
56
+ /**
57
+ * Derives the input for the inverse operation from the forward operation's input and output.
58
+ * Return undefined to indicate the operation is not undoable.
59
+ */
60
+ deriveContext: (input: InputOf<Op>, output: OutputOf<Op>) => InputOf<Inv> | undefined;
61
+ /**
62
+ * Optional message to show in the undo toast.
63
+ * Can be a static Label or a function that derives the message from input/output.
64
+ */
65
+ message?: MessageProvider<Op>;
66
+ }
67
+ /**
68
+ * Creates a type-safe undo mapping.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * // Static message
73
+ * const mapping = UndoMapping.make({
74
+ * operation: DeleteThread,
75
+ * inverse: RestoreThread,
76
+ * deriveContext: (input, output) => ({
77
+ * thread: output.thread,
78
+ * anchor: output.anchor,
79
+ * }),
80
+ * message: ['thread deleted label', { ns: '@dxos/plugin-thread' }],
81
+ * });
82
+ *
83
+ * // Dynamic message based on input/output
84
+ * const mapping = UndoMapping.make({
85
+ * operation: RemoveObjects,
86
+ * inverse: RestoreObjects,
87
+ * deriveContext: (_input, output) => output,
88
+ * message: (input, _output) =>
89
+ * input.objects.length === 1
90
+ * ? ['object deleted label', { ns: getTypename(input.objects[0]) }]
91
+ * : ['objects deleted label', { ns: '@dxos/plugin-space' }],
92
+ * });
93
+ * ```
94
+ */
95
+ export declare const make: <Op extends Operation.Definition<any, any>, Inv extends Operation.Definition<any, any>>(props: UndoMappingProps<Op, Inv>) => UndoMapping<Op, Inv>;
96
+ /**
97
+ * Resolves a message provider to a Label.
98
+ */
99
+ export declare const resolveMessage: <Op extends Operation.Definition<any, any>>(message: MessageProvider<Op> | undefined, input: InputOf<Op>, output: OutputOf<Op>) => Label | undefined;
100
+ export {};
101
+ //# sourceMappingURL=undo-mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-mapping.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/undo-mapping.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,KAAK,KAAK,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEtF;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEnF;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,IACjE,KAAK,GACL,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,WAAW,WAAW,CAC1B,EAAE,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1E,GAAG,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IAE3E,6BAA6B;IAC7B,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;IAEvB,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE/F;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAC/B,EAAE,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EACzC,GAAG,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IAE1C,6BAA6B;IAC7B,SAAS,EAAE,EAAE,CAAC;IAEd,gDAAgD;IAChD,OAAO,EAAE,GAAG,CAAC;IAEb;;;OAGG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAEtF;;;OAGG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,IAAI,GAAI,EAAE,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,SACjG,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,KAC/B,WAAW,CAAC,EAAE,EAAE,GAAG,CAAU,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,EAAE,SAAS,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,WAC7D,eAAe,CAAC,EAAE,CAAC,GAAG,SAAS,SACjC,OAAO,CAAC,EAAE,CAAC,UACV,QAAQ,CAAC,EAAE,CAAC,KACnB,KAAK,GAAG,SAQV,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Operation } from '@dxos/compute';
2
+ import type * as UndoMapping from './undo-mapping';
3
+ /**
4
+ * Lookup result from UndoRegistry.
5
+ */
6
+ export type UndoMappingResult = {
7
+ inverse: Operation.Definition<any, any>;
8
+ /** Returns undefined to indicate the operation is not undoable. */
9
+ deriveContext: (input: any, output: any) => any | undefined;
10
+ /** Message provider - may be a static Label or a function. */
11
+ message?: UndoMapping.MessageProvider<Operation.Definition<any, any>>;
12
+ };
13
+ /**
14
+ * UndoRegistry interface - looks up inverse operations.
15
+ */
16
+ export interface UndoRegistry {
17
+ lookup: (operation: Operation.Definition<any, any>) => UndoMappingResult | undefined;
18
+ }
19
+ /**
20
+ * Creates an UndoRegistry that looks up inverse operations.
21
+ */
22
+ export declare const make: (getMappings: () => UndoMapping.UndoMapping[]) => UndoRegistry;
23
+ //# sourceMappingURL=undo-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-registry.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/undo-registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,KAAK,WAAW,MAAM,gBAAgB,CAAC;AAMnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,mEAAmE;IACnE,aAAa,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,GAAG,SAAS,CAAC;IAC5D,8DAA8D;IAC9D,OAAO,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;CACvE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,iBAAiB,GAAG,SAAS,CAAC;CACtF;AAMD;;GAEG;AACH,eAAO,MAAM,IAAI,gBAAiB,MAAM,WAAW,CAAC,WAAW,EAAE,KAAG,YAgBnE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=undo-registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-registry.test.d.ts","sourceRoot":"","sources":["../../../../../src/plugin-operation/history/undo-registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './history';
2
+ export * from './OperationPlugin';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugin-operation/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { OperationInvoker } from '@dxos/operation';
3
+ import { Capability, Plugin } from '../core';
4
+ declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<OperationInvoker.OperationInvoker>>, Error, Plugin.Service | Capability.Service>;
5
+ export default _default;
6
+ //# sourceMappingURL=invoker-capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invoker-capability.d.ts","sourceRoot":"","sources":["../../../../src/plugin-operation/invoker-capability.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Plugin } from '../core';
2
+ export declare const meta: Plugin.Meta;
3
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/plugin-operation/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAKzB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Operation } from '@dxos/compute';
3
+ import { OperationInvoker } from '@dxos/operation';
4
+ export declare const Compute: Operation.Definition<{
5
+ readonly value: number;
6
+ }, {
7
+ readonly value: number;
8
+ }, never>;
9
+ export declare const HalveCompute: Operation.Definition<{
10
+ readonly value: number;
11
+ }, {
12
+ readonly value: number;
13
+ }, never>;
14
+ export declare const ToString: Operation.Definition<{
15
+ readonly value: number;
16
+ }, {
17
+ readonly string: string;
18
+ }, never>;
19
+ export declare const Add: Operation.Definition<readonly [number, number], number, never>;
20
+ export declare const SideEffect: Operation.Definition<void, void, never>;
21
+ export declare const computeHandler: Operation.WithHandler<Operation.Definition<{
22
+ readonly value: number;
23
+ }, {
24
+ readonly value: number;
25
+ }, never>>;
26
+ export declare const halveComputeHandler: Operation.WithHandler<Operation.Definition<{
27
+ readonly value: number;
28
+ }, {
29
+ readonly value: number;
30
+ }, never>>;
31
+ export declare const toStringHandler: Operation.WithHandler<Operation.Definition<{
32
+ readonly value: number;
33
+ }, {
34
+ readonly string: string;
35
+ }, never>>;
36
+ export declare const addHandler: Operation.WithHandler<Operation.Definition<readonly [number, number], number, never>>;
37
+ export declare const sideEffectHandler: Operation.WithHandler<Operation.Definition<void, void, never>>;
38
+ /**
39
+ * Event collector for testing - provides deterministic event collection using Effect primitives.
40
+ */
41
+ export interface EventCollector {
42
+ /** All collected events. */
43
+ readonly events: OperationInvoker.InvocationEvent[];
44
+ /** Wait until N events have been collected. */
45
+ waitForEvents: (count: number) => Effect.Effect<void>;
46
+ /** Clean up the subscription fiber. */
47
+ dispose: Effect.Effect<void>;
48
+ }
49
+ /**
50
+ * Creates an event collector that subscribes to invoker events.
51
+ * Uses Effect primitives for synchronization.
52
+ */
53
+ export declare const createEventCollector: (invoker: OperationInvoker.OperationInvoker) => Effect.Effect<EventCollector>;
54
+ /**
55
+ * Waits until a condition is true, yielding to the JS event loop between checks.
56
+ * Uses setImmediate to allow other async work to complete.
57
+ */
58
+ export declare const waitUntil: (condition: () => boolean) => Effect.Effect<void>;
59
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/plugin-operation/testing.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAMnD,eAAO,MAAM,OAAO;;;;SAIlB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;SAIvB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;SAInB,CAAC;AAEH,eAAO,MAAM,GAAG,gEAId,CAAC;AAEH,eAAO,MAAM,UAAU,yCAIrB,CAAC;AAMH,eAAO,MAAM,cAAc;;;;UAK1B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;UAE/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;UAE3B,CAAC;AAEF,eAAO,MAAM,UAAU,uFAA0E,CAAC;AAElG,eAAO,MAAM,iBAAiB,gEAAqE,CAAC;AAMpG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,eAAe,EAAE,CAAC;IACpD,+CAA+C;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,YAAa,gBAAgB,CAAC,gBAAgB,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAoD1G,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,MAAM,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAKnE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from '../core';
2
+ export declare const RuntimePlugin: Plugin.PluginFactory<void>;
3
+ //# sourceMappingURL=RuntimePlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimePlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugin-runtime/RuntimePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,MAAM,EAAE,MAAM,SAAS,CAAC;AAK7C,eAAO,MAAM,aAAa,4BAQzB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import { Capabilities } from '../common';
3
+ import { Capability, Plugin } from '../core';
4
+ declare const _default: (props: void) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Capabilities.ManagedRuntime>>, Error, Plugin.Service | Capability.Service>;
5
+ export default _default;
6
+ //# sourceMappingURL=capability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../../../../src/plugin-runtime/capability.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAoB,YAAY,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './RuntimePlugin';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugin-runtime/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Plugin } from '../core';
2
+ export declare const meta: Plugin.Meta;
3
+ //# sourceMappingURL=meta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../../src/plugin-runtime/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAKzB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { type Registry } from '@effect-atom/atom-react';
2
+ import { type Operation } from '@dxos/compute';
3
+ import { ActivationEvent, type Capability, type CapabilityManager, type Plugin, PluginManager } from '../core';
4
+ export type TestAppOptions = {
5
+ /** Plugins to register. */
6
+ plugins: Plugin.Plugin[];
7
+ /** Plugin ids that are always enabled. Defaults to all provided plugin ids. */
8
+ core?: string[];
9
+ /** Plugin ids that are enabled by default in addition to core. */
10
+ enabled?: string[];
11
+ /** Additional activation events fired alongside SetupReactSurface. */
12
+ setupEvents?: ActivationEvent.ActivationEvent[];
13
+ /**
14
+ * Whether to automatically fire SetupReactSurface + Startup during setup.
15
+ * Defaults to true.
16
+ */
17
+ autoStart?: boolean;
18
+ /**
19
+ * Whether to register the PluginManager + AtomRegistry framework capabilities.
20
+ * Defaults to true.
21
+ */
22
+ registerFrameworkCapabilities?: boolean;
23
+ };
24
+ /**
25
+ * A running plugin manager plus helpers for driving it in tests.
26
+ */
27
+ export interface TestHarness {
28
+ readonly manager: PluginManager.PluginManager;
29
+ readonly capabilities: CapabilityManager.CapabilityManager;
30
+ readonly registry: Registry.Registry;
31
+ /** Activate the given event. Equivalent to `manager.activate(event)`. */
32
+ fire(event: ActivationEvent.ActivationEvent | string): Promise<boolean>;
33
+ /** Re-activate all modules that were activated by the given event. */
34
+ reset(event: ActivationEvent.ActivationEvent | string): Promise<boolean>;
35
+ /** Returns the first contributed capability for the given interface. Throws if none are present. */
36
+ get<T>(iface: Capability.InterfaceDef<T>): T;
37
+ /** Returns all contributed capabilities for the given interface. */
38
+ getAll<T>(iface: Capability.InterfaceDef<T>): T[];
39
+ /** Waits until at least one capability is contributed for the given interface. */
40
+ waitForCapability<T>(iface: Capability.InterfaceDef<T>, opts?: {
41
+ timeout?: number;
42
+ }): Promise<T>;
43
+ /** Waits until the given activation event has completed. */
44
+ waitForEvent(event: ActivationEvent.ActivationEvent | string, opts?: {
45
+ timeout?: number;
46
+ }): Promise<void>;
47
+ /** Invokes an operation through the `Capabilities.OperationInvoker` capability. */
48
+ invoke<I, O>(op: Operation.Definition<I, O>, ...args: void extends I ? [input?: I] : [input: I]): Promise<O>;
49
+ enable(id: string): Promise<boolean>;
50
+ disable(id: string): Promise<boolean>;
51
+ /** Shuts down the underlying plugin manager. */
52
+ dispose(): Promise<void>;
53
+ /** Async-disposable support so tests can use `await using harness = ...`. */
54
+ [Symbol.asyncDispose](): Promise<void>;
55
+ }
56
+ /**
57
+ * Creates a TestHarness with the same bootstrap sequence that `useApp` performs,
58
+ * minus the React provider tree.
59
+ *
60
+ * For Node-only tests, this is enough to fire activation events, read
61
+ * capabilities, and invoke operations.
62
+ *
63
+ * For React tests, pass the returned harness to `render` or `renderSurface`
64
+ * from `@dxos/app-framework/testing-react`.
65
+ */
66
+ export declare const createTestApp: (opts: TestAppOptions) => Promise<TestHarness>;
67
+ //# sourceMappingURL=harness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/testing/harness.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMxD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAK/C,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/G,MAAM,MAAM,cAAc,GAAG;IAC3B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sEAAsE;IACtE,WAAW,CAAC,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC;IAChD;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC;IAC9C,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAErC,yEAAyE;IACzE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxE,sEAAsE;IACtE,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE,oGAAoG;IACpG,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,oEAAoE;IACpE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAClD,kFAAkF;IAClF,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACjG,4DAA4D;IAC5D,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1G,mFAAmF;IACnF,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE7G,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,gDAAgD;IAChD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB,6EAA6E;IAC7E,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAID;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,SAAgB,cAAc,KAAG,OAAO,CAAC,WAAW,CAgD7E,CAAC"}
@@ -1,2 +1,4 @@
1
+ export * from './harness';
2
+ export * from './service';
1
3
  export * from './withPluginManager';
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type RenderOptions, type RenderResult } from '@testing-library/react';
2
+ import { type FC, type PropsWithChildren, type ReactNode } from 'react';
3
+ import { type TestHarness } from './harness';
4
+ export type HarnessRenderOptions = Omit<RenderOptions, 'wrapper'> & {
5
+ /** Additional providers to wrap around the harness tree (applied innermost first). */
6
+ reactContexts?: FC<PropsWithChildren>[];
7
+ };
8
+ /**
9
+ * Renders `ui` wrapped in the same provider tree as `useApp` plus every contributed
10
+ * `Capabilities.ReactContext`.
11
+ */
12
+ export declare const render: (harness: TestHarness, ui: ReactNode, options?: HarnessRenderOptions) => RenderResult;
13
+ export type RenderSurfaceProps = {
14
+ role: string;
15
+ data?: unknown;
16
+ limit?: number;
17
+ fallback?: FC<{
18
+ error: Error;
19
+ data?: any;
20
+ }>;
21
+ placeholder?: ReactNode;
22
+ };
23
+ /**
24
+ * Renders a `Surface` with the given role/data inside the harness provider tree.
25
+ */
26
+ export declare const renderSurface: (harness: TestHarness, props: RenderSurfaceProps, options?: HarnessRenderOptions) => RenderResult;
27
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../../src/testing/react.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAc,EAAE,KAAK,EAAE,EAAY,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AASzF,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG;IAClE,sFAAsF;IACtF,aAAa,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,YAAa,WAAW,MAAM,SAAS,YAAY,oBAAoB,KAAG,YAQ5F,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,EAAE,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAC5C,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,YACf,WAAW,SACb,kBAAkB,YACf,oBAAoB,KAC7B,YAOF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=react.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.test.d.ts","sourceRoot":"","sources":["../../../../src/testing/react.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import * as Layer from 'effect/Layer';
2
+ import { Plugin } from '../core';
3
+ /**
4
+ * Creates a Plugin.Service layer from a list of plugins.
5
+ * This is primarily used for testing.
6
+ */
7
+ export declare const fromPlugins: (plugins: Plugin.Plugin[]) => Layer.Layer<Plugin.Service, Error, never>;
8
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/testing/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,YAAa,MAAM,CAAC,MAAM,EAAE,8CAmCjD,CAAC"}
@@ -1,18 +1,17 @@
1
- import { type Decorator } from '@storybook/react';
2
- import { type UseAppOptions } from '../components';
3
- import { type ActivationEvent, type AnyCapability, type PluginContext } from '../core';
4
- export type Provider<C, R> = (context: C) => R;
5
- export type ProviderOrValue<C, R> = Provider<C, R> | R;
6
- export declare const getValue: <C, R>(providerOrValue: ProviderOrValue<C, R>, context: C) => R;
1
+ import { type Decorator, type StoryContext } from '@storybook/react';
2
+ import { type MaybeProvider } from '@dxos/util';
3
+ import { type ActivationEvent, Capability, type CapabilityManager } from '../core';
4
+ import { type UseAppOptions } from '../ui';
7
5
  export type WithPluginManagerOptions = UseAppOptions & {
8
6
  /** @deprecated */
9
- capabilities?: ProviderOrValue<PluginContext, AnyCapability[]>;
7
+ capabilities?: MaybeProvider<Capability.Any[], CapabilityManager.CapabilityManager>;
10
8
  /** @deprecated */
11
- fireEvents?: (ActivationEvent | string)[];
9
+ fireEvents?: (ActivationEvent.ActivationEvent | string)[];
12
10
  };
11
+ export type WithPluginManagerInitializer<Args = void> = WithPluginManagerOptions | ((context: StoryContext<Args>) => WithPluginManagerOptions);
13
12
  /**
14
13
  * Wraps a story with a plugin manager.
15
14
  * NOTE: This builds up and tears down the plugin manager on every render.
16
15
  */
17
- export declare const withPluginManager: (options?: WithPluginManagerOptions) => Decorator;
16
+ export declare const withPluginManager: <Args>(init?: WithPluginManagerInitializer<Args>) => Decorator;
18
17
  //# sourceMappingURL=withPluginManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withPluginManager.d.ts","sourceRoot":"","sources":["../../../../src/testing/withPluginManager.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAKnB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/C,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAEvD,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,iBAAiB,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,KAAG,CAEnF,CAAC;AA+BF,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,kBAAkB;IAClB,YAAY,CAAC,EAAE,eAAe,CAAC,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;IAC/D,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAS,wBAA6B,KAAG,SA+B1E,CAAC"}
1
+ {"version":3,"file":"withPluginManager.d.ts","sourceRoot":"","sources":["../../../../src/testing/withPluginManager.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAOrE,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,YAAY,CAAC;AAGlE,OAAO,EAAE,KAAK,eAAe,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAyB,MAAM,SAAS,CAAC;AAC1G,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,OAAO,CAAC;AAsCnD,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IACrD,kBAAkB;IAClB,YAAY,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpF,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,IAAI,GAAG,IAAI,IAChD,wBAAwB,GACxB,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,wBAAwB,CAAC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,IAAI,SAAS,4BAA4B,CAAC,IAAI,CAAC,KAAQ,SAuCxF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"withPluginManager.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/withPluginManager.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAoB1B,QAAA,MAAM,IAAI;;;;CAkB2B,CAAC;AAEtC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
1
+ {"version":3,"file":"withPluginManager.stories.d.ts","sourceRoot":"","sources":["../../../../src/testing/withPluginManager.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAmB1B,QAAA,MAAM,IAAI;;;;CAkB2B,CAAC;eAEvB,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { type StartupProgress, type UseAppOptions } from '../../hooks';
3
+ export type AppProps = Pick<UseAppOptions, 'placeholder' | 'debounce'> & {
4
+ ready: boolean;
5
+ error: unknown;
6
+ progress?: StartupProgress;
7
+ };
8
+ export declare const App: ({ placeholder: Placeholder, ready, error, debounce, progress }: AppProps) => React.JSX.Element | null;
9
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/App/App.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA4C,MAAM,OAAO,CAAC;AAIjE,OAAO,EAAgB,KAAK,eAAe,EAAE,KAAK,aAAa,EAA+B,MAAM,aAAa,CAAC;AAElH,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,UAAU,CAAC,GAAG;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAIF,eAAO,MAAM,GAAG,mEAAoE,QAAQ,6BAgD3F,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ import { Plugin } from '../../../core';
4
+ type DefaultStoryProps = {
5
+ plugins?: Plugin.Plugin[];
6
+ };
7
+ declare const meta: {
8
+ title: string;
9
+ render: ({ plugins }: DefaultStoryProps) => React.JSX.Element;
10
+ decorators: import("@storybook/react").Decorator[];
11
+ parameters: {
12
+ layout: string;
13
+ };
14
+ };
15
+ export default meta;
16
+ type Story = StoryObj<typeof meta>;
17
+ export declare const Default: Story;
18
+ export declare const WithError: Story;
19
+ //# sourceMappingURL=App.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.stories.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/App/App.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,KAAoB,MAAM,OAAO,CAAC;AAKzC,OAAO,EAAc,MAAM,EAAE,MAAM,eAAe,CAAC;AAuCnD,KAAK,iBAAiB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;CAAE,CAAC;AAcvD,QAAA,MAAM,IAAI;;0BAZyB,iBAAiB;;;QAiBhD,MAAM;;CAEM,CAAC;eAEF,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './App';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/App/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC"}