@dxos/app-framework 0.8.4-main.84f28bd → 0.8.4-main.937b3ca

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 (594) hide show
  1. package/.storybook/main.mts +11 -0
  2. package/.storybook/preview.mts +8 -0
  3. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  4. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +149 -0
  5. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +7 -0
  6. package/dist/lib/browser/capability-7PCNSWBT.mjs +33 -0
  7. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +7 -0
  8. package/dist/lib/browser/capability-KP3PFEXD.mjs +31 -0
  9. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +7 -0
  10. package/dist/lib/browser/chunk-6Y7PZV72.mjs +77 -0
  11. package/dist/lib/browser/chunk-6Y7PZV72.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-7IQHKD4U.mjs +170 -0
  13. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-BLQJSGL3.mjs +732 -0
  15. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-FHQTHCX7.mjs +8 -0
  17. package/dist/lib/browser/chunk-FHQTHCX7.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-FMZN33N4.mjs +807 -0
  19. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-H4WPA7U7.mjs +77 -0
  21. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  23. package/dist/lib/browser/chunk-PKQT6C53.mjs +47 -0
  24. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-TCLLRCS3.mjs +145 -0
  26. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-XYNO72GQ.mjs +746 -0
  28. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +7 -0
  29. package/dist/lib/browser/common/index.mjs +38 -0
  30. package/dist/lib/browser/core/activation-event.mjs +20 -0
  31. package/dist/lib/browser/core/capability.mjs +28 -0
  32. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  33. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  34. package/dist/lib/browser/core/plugin.mjs +27 -0
  35. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  36. package/dist/lib/browser/index.mjs +165 -139
  37. package/dist/lib/browser/index.mjs.map +4 -4
  38. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs +32 -0
  39. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +7 -0
  40. package/dist/lib/browser/meta.json +1 -1
  41. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +64 -0
  42. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +7 -0
  43. package/dist/lib/browser/react/index.mjs +46 -0
  44. package/dist/lib/browser/react/index.mjs.map +7 -0
  45. package/dist/lib/browser/testing/index.mjs +79 -37
  46. package/dist/lib/browser/testing/index.mjs.map +4 -4
  47. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +150 -0
  48. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +7 -0
  49. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs +34 -0
  50. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +7 -0
  51. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +32 -0
  52. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-663A54LQ.mjs +171 -0
  54. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs +747 -0
  56. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs +48 -0
  58. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +7 -0
  59. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +733 -0
  60. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs +146 -0
  62. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  64. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-STMXUEPO.mjs +78 -0
  66. package/dist/lib/node-esm/chunk-STMXUEPO.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs +10 -0
  68. package/dist/lib/node-esm/chunk-UEWJDI2L.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +78 -0
  70. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs +808 -0
  72. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +7 -0
  73. package/dist/lib/node-esm/common/index.mjs +39 -0
  74. package/dist/lib/node-esm/common/index.mjs.map +7 -0
  75. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  76. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  77. package/dist/lib/node-esm/core/capability.mjs +29 -0
  78. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  79. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  80. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  81. package/dist/lib/node-esm/core/plugin.mjs +28 -0
  82. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +165 -139
  84. package/dist/lib/node-esm/index.mjs.map +4 -4
  85. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs +33 -0
  86. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +7 -0
  87. package/dist/lib/node-esm/meta.json +1 -1
  88. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +65 -0
  89. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +7 -0
  90. package/dist/lib/node-esm/react/index.mjs +47 -0
  91. package/dist/lib/node-esm/react/index.mjs.map +7 -0
  92. package/dist/lib/node-esm/testing/index.mjs +79 -37
  93. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  94. package/dist/types/src/cli.d.ts +39 -0
  95. package/dist/types/src/cli.d.ts.map +1 -0
  96. package/dist/types/src/common/activation-event.d.ts +66 -0
  97. package/dist/types/src/common/activation-event.d.ts.map +1 -0
  98. package/dist/types/src/common/capability.d.ts +265 -0
  99. package/dist/types/src/common/capability.d.ts.map +1 -0
  100. package/dist/types/src/common/collaboration.d.ts +24 -17
  101. package/dist/types/src/common/collaboration.d.ts.map +1 -1
  102. package/dist/types/src/common/file.d.ts +1 -1
  103. package/dist/types/src/common/file.d.ts.map +1 -1
  104. package/dist/types/src/common/graph.d.ts +2 -2
  105. package/dist/types/src/common/graph.d.ts.map +1 -1
  106. package/dist/types/src/common/index.d.ts +4 -3
  107. package/dist/types/src/common/index.d.ts.map +1 -1
  108. package/dist/types/src/common/operations.d.ts +380 -0
  109. package/dist/types/src/common/operations.d.ts.map +1 -0
  110. package/dist/types/src/common/plugin.d.ts +201 -0
  111. package/dist/types/src/common/plugin.d.ts.map +1 -0
  112. package/dist/types/src/common/surface.d.ts +50 -21
  113. package/dist/types/src/common/surface.d.ts.map +1 -1
  114. package/dist/types/src/common/translations.d.ts +10 -1
  115. package/dist/types/src/common/translations.d.ts.map +1 -1
  116. package/dist/types/src/context.d.ts +5 -0
  117. package/dist/types/src/context.d.ts.map +1 -0
  118. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +6 -6
  119. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  120. package/dist/types/src/core/capability-manager.d.ts +43 -0
  121. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  122. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  123. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  124. package/dist/types/src/core/capability.d.ts +150 -0
  125. package/dist/types/src/core/capability.d.ts.map +1 -0
  126. package/dist/types/src/core/index.d.ts +5 -4
  127. package/dist/types/src/core/index.d.ts.map +1 -1
  128. package/dist/types/src/core/plugin-manager.d.ts +66 -0
  129. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  130. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  131. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  132. package/dist/types/src/core/plugin.d.ts +97 -32
  133. package/dist/types/src/core/plugin.d.ts.map +1 -1
  134. package/dist/types/src/index.d.ts +5 -4
  135. package/dist/types/src/index.d.ts.map +1 -1
  136. package/dist/types/src/playground/debug/Debug.d.ts +4 -2
  137. package/dist/types/src/playground/debug/Debug.d.ts.map +1 -1
  138. package/dist/types/src/playground/debug/plugin.d.ts +2 -1
  139. package/dist/types/src/playground/debug/plugin.d.ts.map +1 -1
  140. package/dist/types/src/playground/generator/Main.d.ts +4 -2
  141. package/dist/types/src/playground/generator/Main.d.ts.map +1 -1
  142. package/dist/types/src/playground/generator/Toolbar.d.ts +4 -2
  143. package/dist/types/src/playground/generator/Toolbar.d.ts.map +1 -1
  144. package/dist/types/src/playground/generator/generator.d.ts +17 -5
  145. package/dist/types/src/playground/generator/generator.d.ts.map +1 -1
  146. package/dist/types/src/playground/generator/plugin.d.ts +2 -1
  147. package/dist/types/src/playground/generator/plugin.d.ts.map +1 -1
  148. package/dist/types/src/playground/layout/Layout.d.ts +4 -2
  149. package/dist/types/src/playground/layout/Layout.d.ts.map +1 -1
  150. package/dist/types/src/playground/layout/plugin.d.ts +2 -1
  151. package/dist/types/src/playground/layout/plugin.d.ts.map +1 -1
  152. package/dist/types/src/playground/logger/Toolbar.d.ts +4 -2
  153. package/dist/types/src/playground/logger/Toolbar.d.ts.map +1 -1
  154. package/dist/types/src/playground/logger/plugin.d.ts +2 -1
  155. package/dist/types/src/playground/logger/plugin.d.ts.map +1 -1
  156. package/dist/types/src/playground/logger/schema.d.ts +15 -1
  157. package/dist/types/src/playground/logger/schema.d.ts.map +1 -1
  158. package/dist/types/src/playground/playground.stories.d.ts +5 -4
  159. package/dist/types/src/playground/playground.stories.d.ts.map +1 -1
  160. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  161. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  162. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  163. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  164. package/dist/types/src/plugin-operation/history/errors.d.ts +5 -0
  165. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  166. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  167. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  168. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  169. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  170. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  171. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  172. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  173. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  174. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +93 -0
  175. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  176. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  177. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  178. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  179. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  180. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  181. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  182. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  183. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  184. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  185. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  186. package/dist/types/src/plugin-operation/testing.d.ts +109 -0
  187. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  188. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  189. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  190. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  191. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  192. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  193. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  194. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  195. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  196. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +2 -1
  197. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +1 -1
  198. package/dist/types/src/plugin-settings/actions.d.ts +41 -7
  199. package/dist/types/src/plugin-settings/actions.d.ts.map +1 -1
  200. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +4 -2
  201. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +1 -1
  202. package/dist/types/src/plugin-settings/meta.d.ts +3 -0
  203. package/dist/types/src/plugin-settings/meta.d.ts.map +1 -0
  204. package/dist/types/src/plugin-settings/operation-resolver.d.ts +6 -0
  205. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +1 -0
  206. package/dist/types/src/plugin-settings/translations.d.ts +2 -1
  207. package/dist/types/src/plugin-settings/translations.d.ts.map +1 -1
  208. package/dist/types/src/react/App.d.ts +8 -0
  209. package/dist/types/src/react/App.d.ts.map +1 -0
  210. package/dist/types/src/react/App.stories.d.ts +14 -0
  211. package/dist/types/src/react/App.stories.d.ts.map +1 -0
  212. package/dist/types/src/react/DefaultFallback.d.ts +8 -0
  213. package/dist/types/src/react/DefaultFallback.d.ts.map +1 -0
  214. package/dist/types/src/react/ErrorBoundary.d.ts +13 -14
  215. package/dist/types/src/react/ErrorBoundary.d.ts.map +1 -1
  216. package/dist/types/src/react/PluginManagerContext.stories.d.ts +13 -0
  217. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +1 -0
  218. package/dist/types/src/react/PluginManagerProvider.d.ts +2 -2
  219. package/dist/types/src/react/PluginManagerProvider.d.ts.map +1 -1
  220. package/dist/types/src/react/Surface.d.ts +9 -7
  221. package/dist/types/src/react/Surface.d.ts.map +1 -1
  222. package/dist/types/src/react/Surface.stories.d.ts +8 -10
  223. package/dist/types/src/react/Surface.stories.d.ts.map +1 -1
  224. package/dist/types/src/react/SurfaceInfo.d.ts +11 -0
  225. package/dist/types/src/react/SurfaceInfo.d.ts.map +1 -0
  226. package/dist/types/src/react/common.d.ts +13 -12
  227. package/dist/types/src/react/common.d.ts.map +1 -1
  228. package/dist/types/src/react/index.d.ts +3 -1
  229. package/dist/types/src/react/index.d.ts.map +1 -1
  230. package/dist/types/src/react/types.d.ts +12 -0
  231. package/dist/types/src/react/types.d.ts.map +1 -0
  232. package/dist/types/src/{App.d.ts → react/useApp.d.ts} +11 -9
  233. package/dist/types/src/react/useApp.d.ts.map +1 -0
  234. package/dist/types/src/react/useCapabilities.d.ts +16 -3
  235. package/dist/types/src/react/useCapabilities.d.ts.map +1 -1
  236. package/dist/types/src/react/useLoading.d.ts +18 -0
  237. package/dist/types/src/react/useLoading.d.ts.map +1 -0
  238. package/dist/types/src/react/useOperationResolver.d.ts +19 -0
  239. package/dist/types/src/react/useOperationResolver.d.ts.map +1 -0
  240. package/dist/types/src/testing/index.d.ts +1 -0
  241. package/dist/types/src/testing/index.d.ts.map +1 -1
  242. package/dist/types/src/testing/service.d.ts +8 -0
  243. package/dist/types/src/testing/service.d.ts.map +1 -0
  244. package/dist/types/src/testing/withPluginManager.d.ts +11 -10
  245. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  246. package/dist/types/src/testing/withPluginManager.stories.d.ts +9 -3
  247. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  248. package/dist/types/tsconfig.tsbuildinfo +1 -1
  249. package/moon.yml +10 -2
  250. package/package.json +103 -42
  251. package/src/cli.ts +107 -0
  252. package/src/common/activation-event.ts +99 -0
  253. package/src/common/capability.ts +343 -0
  254. package/src/common/collaboration.ts +24 -14
  255. package/src/common/file.ts +1 -1
  256. package/src/common/graph.ts +2 -2
  257. package/src/common/index.ts +4 -3
  258. package/src/common/operations.ts +412 -0
  259. package/src/common/plugin.ts +364 -0
  260. package/src/common/surface.ts +60 -26
  261. package/src/common/translations.ts +21 -1
  262. package/src/context.ts +9 -0
  263. package/src/core/{events.ts → activation-event.ts} +5 -5
  264. package/src/core/capability-manager.test.ts +151 -0
  265. package/src/core/capability-manager.ts +171 -0
  266. package/src/core/capability.ts +236 -0
  267. package/src/core/index.ts +5 -4
  268. package/src/core/plugin-manager.test.ts +845 -0
  269. package/src/core/plugin-manager.ts +696 -0
  270. package/src/core/plugin.ts +229 -36
  271. package/src/helpers.test.ts +1 -1
  272. package/src/index.ts +5 -4
  273. package/src/playground/debug/Debug.tsx +27 -17
  274. package/src/playground/debug/plugin.ts +10 -11
  275. package/src/playground/generator/Main.tsx +20 -11
  276. package/src/playground/generator/Toolbar.tsx +27 -16
  277. package/src/playground/generator/generator.ts +28 -28
  278. package/src/playground/generator/plugin.ts +15 -17
  279. package/src/playground/layout/Layout.tsx +11 -7
  280. package/src/playground/layout/plugin.ts +12 -11
  281. package/src/playground/logger/Toolbar.tsx +20 -16
  282. package/src/playground/logger/plugin.ts +33 -27
  283. package/src/playground/logger/schema.ts +11 -1
  284. package/src/playground/playground.stories.tsx +29 -17
  285. package/src/plugin-operation/OperationPlugin.ts +25 -0
  286. package/src/plugin-operation/history/capability.ts +37 -0
  287. package/src/plugin-operation/history/errors.ts +11 -0
  288. package/src/plugin-operation/history/history-tracker.test.ts +380 -0
  289. package/src/plugin-operation/history/history-tracker.ts +129 -0
  290. package/src/plugin-operation/history/index.ts +9 -0
  291. package/src/plugin-operation/history/types.ts +17 -0
  292. package/src/plugin-operation/history/undo-mapping.ts +132 -0
  293. package/src/plugin-operation/history/undo-registry.test.ts +73 -0
  294. package/src/plugin-operation/history/undo-registry.ts +54 -0
  295. package/src/plugin-operation/index.ts +6 -0
  296. package/src/plugin-operation/invoker-capability.ts +40 -0
  297. package/src/plugin-operation/meta.ts +11 -0
  298. package/src/plugin-operation/testing.ts +174 -0
  299. package/src/plugin-runtime/RuntimePlugin.ts +20 -0
  300. package/src/plugin-runtime/capability.ts +53 -0
  301. package/src/plugin-runtime/index.ts +5 -0
  302. package/src/plugin-runtime/meta.ts +11 -0
  303. package/src/plugin-settings/SettingsPlugin.ts +13 -29
  304. package/src/plugin-settings/actions.ts +45 -10
  305. package/src/plugin-settings/app-graph-builder.ts +124 -141
  306. package/src/plugin-settings/meta.ts +10 -0
  307. package/src/plugin-settings/operation-resolver.ts +55 -0
  308. package/src/plugin-settings/translations.ts +4 -4
  309. package/src/react/App.stories.tsx +63 -0
  310. package/src/react/App.tsx +60 -0
  311. package/src/react/DefaultFallback.tsx +26 -0
  312. package/src/react/ErrorBoundary.tsx +26 -15
  313. package/src/react/PluginManagerContext.stories.tsx +184 -0
  314. package/src/react/PluginManagerProvider.ts +2 -2
  315. package/src/react/Surface.stories.tsx +103 -58
  316. package/src/react/Surface.tsx +236 -46
  317. package/src/react/SurfaceInfo.tsx +107 -0
  318. package/src/react/common.ts +30 -5
  319. package/src/react/index.ts +5 -1
  320. package/src/react/types.ts +27 -0
  321. package/src/react/useApp.tsx +209 -0
  322. package/src/react/useCapabilities.ts +38 -5
  323. package/src/react/useLoading.tsx +68 -0
  324. package/src/react/useOperationResolver.ts +40 -0
  325. package/src/testing/index.ts +1 -0
  326. package/src/testing/service.ts +52 -0
  327. package/src/testing/withPluginManager.stories.tsx +14 -10
  328. package/src/testing/withPluginManager.tsx +43 -44
  329. package/tsconfig.json +30 -16
  330. package/vitest.config.ts +8 -6
  331. package/.eslintrc.cjs +0 -9
  332. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  333. package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
  334. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs +0 -137
  335. package/dist/lib/browser/app-graph-builder-BGGXLD6T.mjs.map +0 -7
  336. package/dist/lib/browser/chunk-2636QSIK.mjs +0 -1518
  337. package/dist/lib/browser/chunk-2636QSIK.mjs.map +0 -7
  338. package/dist/lib/browser/chunk-DHZB7HG7.mjs +0 -413
  339. package/dist/lib/browser/chunk-DHZB7HG7.mjs.map +0 -7
  340. package/dist/lib/browser/chunk-ORWHM7CO.mjs +0 -32
  341. package/dist/lib/browser/chunk-ORWHM7CO.mjs.map +0 -7
  342. package/dist/lib/browser/intent-dispatcher-TWKB22NI.mjs +0 -11
  343. package/dist/lib/browser/intent-resolver-O67UANYP.mjs +0 -39
  344. package/dist/lib/browser/intent-resolver-O67UANYP.mjs.map +0 -7
  345. package/dist/lib/browser/store-LFKDWHUQ.mjs +0 -30
  346. package/dist/lib/browser/store-LFKDWHUQ.mjs.map +0 -7
  347. package/dist/lib/browser/worker.mjs +0 -79
  348. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs +0 -138
  349. package/dist/lib/node-esm/app-graph-builder-QHIJUYYW.mjs.map +0 -7
  350. package/dist/lib/node-esm/chunk-NJAFK626.mjs +0 -414
  351. package/dist/lib/node-esm/chunk-NJAFK626.mjs.map +0 -7
  352. package/dist/lib/node-esm/chunk-UMZQERLE.mjs +0 -34
  353. package/dist/lib/node-esm/chunk-UMZQERLE.mjs.map +0 -7
  354. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs +0 -1520
  355. package/dist/lib/node-esm/chunk-VSKRV3NW.mjs.map +0 -7
  356. package/dist/lib/node-esm/intent-dispatcher-5PRM3KGH.mjs +0 -12
  357. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs +0 -40
  358. package/dist/lib/node-esm/intent-resolver-K3D4BXQQ.mjs.map +0 -7
  359. package/dist/lib/node-esm/store-53XDUBMD.mjs +0 -31
  360. package/dist/lib/node-esm/store-53XDUBMD.mjs.map +0 -7
  361. package/dist/lib/node-esm/worker.mjs +0 -80
  362. package/dist/types/src/App.d.ts.map +0 -1
  363. package/dist/types/src/common/capabilities.d.ts +0 -122
  364. package/dist/types/src/common/capabilities.d.ts.map +0 -1
  365. package/dist/types/src/common/events.d.ts +0 -52
  366. package/dist/types/src/common/events.d.ts.map +0 -1
  367. package/dist/types/src/common/layout.d.ts +0 -281
  368. package/dist/types/src/common/layout.d.ts.map +0 -1
  369. package/dist/types/src/core/capabilities.d.ts +0 -114
  370. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  371. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  372. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  373. package/dist/types/src/core/events.d.ts.map +0 -1
  374. package/dist/types/src/core/manager.d.ts +0 -122
  375. package/dist/types/src/core/manager.d.ts.map +0 -1
  376. package/dist/types/src/core/manager.test.d.ts +0 -2
  377. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  378. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  379. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  380. package/dist/types/src/plugin-intent/actions.d.ts +0 -38
  381. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  382. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  383. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  384. package/dist/types/src/plugin-intent/index.d.ts +0 -5
  385. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  386. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  387. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  388. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  389. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  390. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  391. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  392. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  393. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  394. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  395. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  396. package/dist/types/src/react/IntentContext.d.ts +0 -8
  397. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  398. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  399. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  400. package/dist/types/src/worker.d.ts +0 -4
  401. package/dist/types/src/worker.d.ts.map +0 -1
  402. package/src/App.tsx +0 -276
  403. package/src/common/capabilities.ts +0 -113
  404. package/src/common/events.ts +0 -77
  405. package/src/common/layout.ts +0 -278
  406. package/src/core/capabilities.test.ts +0 -136
  407. package/src/core/capabilities.ts +0 -254
  408. package/src/core/manager.test.ts +0 -515
  409. package/src/core/manager.ts +0 -519
  410. package/src/plugin-intent/IntentPlugin.ts +0 -20
  411. package/src/plugin-intent/actions.ts +0 -33
  412. package/src/plugin-intent/errors.ts +0 -39
  413. package/src/plugin-intent/index.ts +0 -8
  414. package/src/plugin-intent/intent-dispatcher.test.ts +0 -279
  415. package/src/plugin-intent/intent-dispatcher.ts +0 -333
  416. package/src/plugin-intent/intent.ts +0 -154
  417. package/src/plugin-settings/intent-resolver.ts +0 -34
  418. package/src/plugin-settings/store.ts +0 -33
  419. package/src/react/IntentContext.tsx +0 -34
  420. package/src/react/useIntentResolver.ts +0 -22
  421. package/src/worker.ts +0 -11
  422. package/typedoc/.nojekyll +0 -1
  423. package/typedoc/assets/hierarchy.js +0 -1
  424. package/typedoc/assets/highlight.css +0 -106
  425. package/typedoc/assets/icons.js +0 -18
  426. package/typedoc/assets/icons.svg +0 -1
  427. package/typedoc/assets/main.js +0 -60
  428. package/typedoc/assets/navigation.js +0 -1
  429. package/typedoc/assets/search.js +0 -1
  430. package/typedoc/assets/style.css +0 -1640
  431. package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
  432. package/typedoc/classes/ErrorBoundary.html +0 -125
  433. package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
  434. package/typedoc/classes/IntentAction.Track.html +0 -266
  435. package/typedoc/classes/LayoutAction.AddToast.html +0 -265
  436. package/typedoc/classes/LayoutAction.Close.html +0 -382
  437. package/typedoc/classes/LayoutAction.Expose.html +0 -265
  438. package/typedoc/classes/LayoutAction.Open.html +0 -1123
  439. package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
  440. package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
  441. package/typedoc/classes/LayoutAction.Set.html +0 -460
  442. package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
  443. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
  444. package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
  445. package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
  446. package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
  447. package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
  448. package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
  449. package/typedoc/classes/Plugin.html +0 -6
  450. package/typedoc/classes/PluginContext.html +0 -38
  451. package/typedoc/classes/PluginManager.html +0 -43
  452. package/typedoc/classes/PluginModule.html +0 -18
  453. package/typedoc/classes/SettingsAction.Open.html +0 -226
  454. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
  455. package/typedoc/functions/Events.createStateEvent.html +0 -2
  456. package/typedoc/functions/IntentPlugin.html +0 -1
  457. package/typedoc/functions/SettingsPlugin.html +0 -1
  458. package/typedoc/functions/allOf.html +0 -2
  459. package/typedoc/functions/chain.html +0 -3
  460. package/typedoc/functions/contributes.html +0 -2
  461. package/typedoc/functions/createDispatcher.html +0 -3
  462. package/typedoc/functions/createIntent.html +0 -6
  463. package/typedoc/functions/createResolver.html +0 -2
  464. package/typedoc/functions/createSurface.html +0 -2
  465. package/typedoc/functions/defineCapability.html +0 -2
  466. package/typedoc/functions/defineEvent.html +0 -2
  467. package/typedoc/functions/defineModule.html +0 -2
  468. package/typedoc/functions/definePlugin.html +0 -2
  469. package/typedoc/functions/eventKey.html +0 -2
  470. package/typedoc/functions/getEvents.html +0 -2
  471. package/typedoc/functions/isAllOf.html +0 -2
  472. package/typedoc/functions/isOneOf.html +0 -2
  473. package/typedoc/functions/isSurfaceAvailable.html +0 -2
  474. package/typedoc/functions/lazy.html +0 -2
  475. package/typedoc/functions/oneOf.html +0 -2
  476. package/typedoc/functions/useApp.html +0 -6
  477. package/typedoc/functions/useAppGraph.html +0 -1
  478. package/typedoc/functions/useCapabilities.html +0 -3
  479. package/typedoc/functions/useCapability.html +0 -4
  480. package/typedoc/functions/useIntentDispatcher.html +0 -1
  481. package/typedoc/functions/useIntentResolver.html +0 -1
  482. package/typedoc/functions/useLayout.html +0 -1
  483. package/typedoc/functions/usePluginManager.html +0 -2
  484. package/typedoc/hierarchy.html +0 -1
  485. package/typedoc/index.html +0 -12
  486. package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
  487. package/typedoc/media/LICENSE +0 -8
  488. package/typedoc/modules/Capabilities.html +0 -1
  489. package/typedoc/modules/CollaborationActions.html +0 -1
  490. package/typedoc/modules/Events.html +0 -1
  491. package/typedoc/modules/IntentAction.html +0 -1
  492. package/typedoc/modules/LayoutAction.html +0 -2
  493. package/typedoc/modules/SettingsAction.html +0 -1
  494. package/typedoc/modules.html +0 -1
  495. package/typedoc/types/ActivationEvent.html +0 -8
  496. package/typedoc/types/ActivationEvents.html +0 -2
  497. package/typedoc/types/AnyCapability.html +0 -1
  498. package/typedoc/types/AnyIntent.html +0 -1
  499. package/typedoc/types/AnyIntentChain.html +0 -1
  500. package/typedoc/types/AnyIntentEffectResult.html +0 -1
  501. package/typedoc/types/AnyIntentResolver.html +0 -1
  502. package/typedoc/types/AnyIntentResult.html +0 -1
  503. package/typedoc/types/Capabilities.FileUploader.html +0 -1
  504. package/typedoc/types/Capabilities.IntentResolver.html +0 -1
  505. package/typedoc/types/Capabilities.Layout.html +0 -1
  506. package/typedoc/types/Capabilities.Metadata.html +0 -1
  507. package/typedoc/types/Capabilities.ReactContext.html +0 -1
  508. package/typedoc/types/Capabilities.ReactRoot.html +0 -1
  509. package/typedoc/types/Capabilities.ReactSurface.html +0 -1
  510. package/typedoc/types/Capabilities.Settings.html +0 -4
  511. package/typedoc/types/Capability.html +0 -9
  512. package/typedoc/types/CreateAppOptions.html +0 -10
  513. package/typedoc/types/FileInfo.html +0 -1
  514. package/typedoc/types/Intent.html +0 -10
  515. package/typedoc/types/IntentChain.html +0 -6
  516. package/typedoc/types/IntentContext.html +0 -5
  517. package/typedoc/types/IntentData.html +0 -1
  518. package/typedoc/types/IntentDispatcher.html +0 -2
  519. package/typedoc/types/IntentDispatcherResult.html +0 -2
  520. package/typedoc/types/IntentEffectDefinition.html +0 -2
  521. package/typedoc/types/IntentEffectResult.html +0 -15
  522. package/typedoc/types/IntentParams.html +0 -3
  523. package/typedoc/types/IntentResolver.html +0 -2
  524. package/typedoc/types/IntentResultData.html +0 -1
  525. package/typedoc/types/IntentSchema.html +0 -1
  526. package/typedoc/types/IntentUndo.html +0 -2
  527. package/typedoc/types/InterfaceDef.html +0 -4
  528. package/typedoc/types/Label.html +0 -1
  529. package/typedoc/types/NodeSerializer.html +0 -8
  530. package/typedoc/types/PluginManagerOptions.html +0 -6
  531. package/typedoc/types/PluginMeta.html +0 -21
  532. package/typedoc/types/PromiseIntentDispatcher.html +0 -2
  533. package/typedoc/types/PromiseIntentUndo.html +0 -2
  534. package/typedoc/types/Resource.html +0 -1
  535. package/typedoc/types/ResourceKey.html +0 -1
  536. package/typedoc/types/ResourceLanguage.html +0 -1
  537. package/typedoc/types/SerializedNode.html +0 -4
  538. package/typedoc/types/SurfaceComponent.html +0 -2
  539. package/typedoc/types/SurfaceDefinition.html +0 -2
  540. package/typedoc/types/SurfaceProps.html +0 -4
  541. package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
  542. package/typedoc/variables/Capabilities.AppGraph.html +0 -1
  543. package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
  544. package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
  545. package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
  546. package/typedoc/variables/Capabilities.FileUploader.html +0 -1
  547. package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
  548. package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
  549. package/typedoc/variables/Capabilities.Layout.html +0 -1
  550. package/typedoc/variables/Capabilities.Metadata.html +0 -1
  551. package/typedoc/variables/Capabilities.Null.html +0 -1
  552. package/typedoc/variables/Capabilities.PluginManager.html +0 -1
  553. package/typedoc/variables/Capabilities.ReactContext.html +0 -1
  554. package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
  555. package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
  556. package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
  557. package/typedoc/variables/Capabilities.Settings.html +0 -1
  558. package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
  559. package/typedoc/variables/Capabilities.Tools.html +0 -1
  560. package/typedoc/variables/Capabilities.Translations.html +0 -1
  561. package/typedoc/variables/Events.AppGraphReady.html +0 -2
  562. package/typedoc/variables/Events.DispatcherReady.html +0 -2
  563. package/typedoc/variables/Events.LayoutReady.html +0 -1
  564. package/typedoc/variables/Events.SettingsReady.html +0 -2
  565. package/typedoc/variables/Events.SetupAppGraph.html +0 -2
  566. package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
  567. package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
  568. package/typedoc/variables/Events.SetupMetadata.html +0 -2
  569. package/typedoc/variables/Events.SetupReactSurface.html +0 -2
  570. package/typedoc/variables/Events.SetupSettings.html +0 -2
  571. package/typedoc/variables/Events.SetupTranslations.html +0 -2
  572. package/typedoc/variables/Events.Startup.html +0 -2
  573. package/typedoc/variables/FileInfoSchema.html +0 -1
  574. package/typedoc/variables/INTENT_ACTION.html +0 -1
  575. package/typedoc/variables/INTENT_PLUGIN.html +0 -1
  576. package/typedoc/variables/LAYOUT_ACTION.html +0 -1
  577. package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
  578. package/typedoc/variables/Label.html +0 -1
  579. package/typedoc/variables/LayoutAction.Toast.html +0 -1
  580. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
  581. package/typedoc/variables/PluginManagerProvider.html +0 -2
  582. package/typedoc/variables/Resource.html +0 -2
  583. package/typedoc/variables/ResourceKey.html +0 -1
  584. package/typedoc/variables/ResourceLanguage.html +0 -1
  585. package/typedoc/variables/SETTINGS_ACTION.html +0 -1
  586. package/typedoc/variables/SETTINGS_ID.html +0 -1
  587. package/typedoc/variables/SETTINGS_KEY.html +0 -1
  588. package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
  589. package/typedoc/variables/Surface.html +0 -2
  590. package/typedoc/variables/defaultFileTypes.html +0 -1
  591. /package/dist/lib/browser/{intent-dispatcher-TWKB22NI.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  592. /package/dist/lib/browser/{worker.mjs.map → common/index.mjs.map} +0 -0
  593. /package/dist/lib/{node-esm/intent-dispatcher-5PRM3KGH.mjs.map → browser/core/activation-event.mjs.map} +0 -0
  594. /package/dist/lib/{node-esm/worker.mjs.map → browser/core/capability.mjs.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/plugin-intent/actions.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,aAAa,kCAA4B,CAAC;AAEvD,yBAAiB,YAAY,CAAC;;;;;;;;;;IAC5B;;OAEG;IACH,MAAM,OAAO,KAAM,SAAQ,UAMzB;KAAG;;;;;;;;;;;;;IAEL;;OAEG;IACH,MAAM,OAAO,QAAS,SAAQ,aAK5B;KAAG;;CACN"}
@@ -1,16 +0,0 @@
1
- /**
2
- * NOTE: Messages should be sentences (Start with a capital letter and end with a period).
3
- * Errors can optionally include a JSON context object.
4
- */
5
- export declare class BaseError extends Error {
6
- readonly code: string;
7
- readonly context?: Record<string, any> | undefined;
8
- constructor(code: string, message?: string, context?: Record<string, any> | undefined);
9
- }
10
- export declare class NoResolversError extends BaseError {
11
- constructor(action: string);
12
- }
13
- export declare class CycleDetectedError extends BaseError {
14
- constructor(context?: Record<string, any>);
15
- }
16
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/plugin-intent/errors.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;gBAF7B,IAAI,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,EACP,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAA;CAQzC;AAED,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,MAAM,EAAE,MAAM;CAG3B;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAO1C"}
@@ -1,5 +0,0 @@
1
- export * from './actions';
2
- export * from './intent';
3
- export * from './intent-dispatcher';
4
- export * from './IntentPlugin';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugin-intent/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
@@ -1,139 +0,0 @@
1
- import { Effect } from 'effect';
2
- import { type Simplify } from 'effect/Types';
3
- import { type MaybePromise, type Position, type GuardedType } from '@dxos/util';
4
- import { type AnyIntentChain, type Intent, type IntentChain, type IntentData, type IntentParams, type IntentResultData, type IntentSchema, type Label } from './intent';
5
- import { type PluginContext } from '../core';
6
- /**
7
- * The return value of an intent effect.
8
- */
9
- export type IntentEffectResult<Input, Output> = {
10
- /**
11
- * The output of the action that was performed.
12
- *
13
- * If the intent is apart of a chain of intents, the data will be passed to the next intent.
14
- */
15
- data?: Output;
16
- /**
17
- * If provided, the action will be undoable.
18
- */
19
- undoable?: {
20
- /**
21
- * Message to display to the user when indicating that the action can be undone.
22
- */
23
- message: Label;
24
- /**
25
- * Will be merged with the original intent data when firing the undo intent.
26
- */
27
- data?: Partial<Input>;
28
- };
29
- /**
30
- * An error that occurred while performing the action.
31
- *
32
- * If the intent is apart of a chain of intents and an error occurs, the chain will be aborted.
33
- *
34
- * Return caught error instead of throwing to trigger other intent to be triggered prior to returning the error.
35
- */
36
- error?: Error;
37
- /**
38
- * Other intent chains to be triggered.
39
- */
40
- intents?: AnyIntentChain[];
41
- };
42
- export type AnyIntentEffectResult = IntentEffectResult<any, any>;
43
- /**
44
- * The result of an intent dispatcher.
45
- */
46
- export type IntentDispatcherResult<Input, Output> = Pick<IntentEffectResult<Input, Output>, 'data' | 'error'>;
47
- /**
48
- * The implementation of an intent effect.
49
- */
50
- export type IntentEffectDefinition<Input, Output> = (data: Input, undo: boolean) => MaybePromise<IntentEffectResult<Input, Output> | void> | Effect.Effect<IntentEffectResult<Input, Output> | void, Error>;
51
- /**
52
- * Intent resolver to match intents to their effects.
53
- */
54
- export type IntentResolver<Tag extends string, Fields extends IntentParams, Data = IntentData<Fields>> = Readonly<{
55
- /**
56
- * The schema of the intent to be resolved.
57
- */
58
- intent: IntentSchema<Tag, Fields>;
59
- /**
60
- * Hint to determine the order the resolvers are processed if multiple resolvers are defined for the same intent.
61
- * Only one resolver will be used.
62
- */
63
- position?: Position;
64
- /**
65
- * Optional filter to determine if the resolver should be used.
66
- */
67
- filter?: (data: IntentData<Fields>) => data is Data;
68
- /**
69
- * The effect to be performed when the intent is resolved.
70
- */
71
- resolve: IntentEffectDefinition<GuardedType<IntentResolver<Tag, Fields, Data>['filter']>, IntentResultData<Fields>>;
72
- }>;
73
- export type AnyIntentResolver = IntentResolver<any, any, any>;
74
- /**
75
- * Creates an intent resolver to match intents to their effects.
76
- * @param schema Schema of the intent. Must be a tagged class with input and output schemas.
77
- * @param effect Effect to be performed when the intent is resolved.
78
- * @param params.disposition Determines the priority of the resolver when multiple are resolved.
79
- * @param params.filter Optional filter to determine if the resolver should be used.
80
- */
81
- export declare const createResolver: <Tag extends string, Fields extends IntentParams, Data = IntentData<Fields>>(resolver: IntentResolver<Tag, Fields, Data>) => Readonly<{
82
- /**
83
- * The schema of the intent to be resolved.
84
- */
85
- intent: IntentSchema<Tag, Fields>;
86
- /**
87
- * Hint to determine the order the resolvers are processed if multiple resolvers are defined for the same intent.
88
- * Only one resolver will be used.
89
- */
90
- position?: Position;
91
- /**
92
- * Optional filter to determine if the resolver should be used.
93
- */
94
- filter?: ((data: IntentData<Fields>) => data is Data) | undefined;
95
- /**
96
- * The effect to be performed when the intent is resolved.
97
- */
98
- resolve: IntentEffectDefinition<Data, IntentResultData<Fields>>;
99
- }>;
100
- /**
101
- * Invokes intents and returns the result.
102
- */
103
- export type PromiseIntentDispatcher = <Fields extends IntentParams>(intent: IntentChain<any, any, any, Fields>) => Promise<Simplify<IntentDispatcherResult<IntentData<Fields>, IntentResultData<Fields>>>>;
104
- /**
105
- * Creates an effect for intents.
106
- */
107
- export type IntentDispatcher = <Fields extends IntentParams>(intent: IntentChain<any, any, any, Fields>, depth?: number) => Effect.Effect<Simplify<Required<IntentDispatcherResult<IntentData<Fields>, IntentResultData<Fields>>>['data']>, Error>;
108
- type IntentResult<Tag extends string, Fields extends IntentParams> = IntentEffectResult<IntentData<Fields>, IntentResultData<Fields>> & {
109
- _intent: Intent<Tag, Fields>;
110
- };
111
- export type AnyIntentResult = IntentResult<any, any>;
112
- /**
113
- * Invokes the most recent undoable intent with undo flags.
114
- */
115
- export type PromiseIntentUndo = () => Promise<IntentDispatcherResult<any, any>>;
116
- /**
117
- * Creates an effect which undoes the last intent.
118
- */
119
- export type IntentUndo = () => Effect.Effect<any, Error>;
120
- export type IntentContext = {
121
- dispatch: IntentDispatcher;
122
- dispatchPromise: PromiseIntentDispatcher;
123
- undo: IntentUndo;
124
- undoPromise: PromiseIntentUndo;
125
- };
126
- /**
127
- * Sets of an intent dispatcher.
128
- *
129
- * @param getResolvers A function that returns an array of available intent resolvers.
130
- * @param params.historyLimit The maximum number of intent results to keep in history.
131
- * @param params.executionLimit The maximum recursion depth of intent chains.
132
- */
133
- export declare const createDispatcher: (getResolvers: () => AnyIntentResolver[], { executionLimit, historyLimit }?: {
134
- executionLimit?: number | undefined;
135
- historyLimit?: number | undefined;
136
- }) => IntentContext;
137
- declare const _default: (context: PluginContext) => import("..").Capability<import("@dxos/live-object").Live<IntentContext>>;
138
- export default _default;
139
- //# sourceMappingURL=intent-dispatcher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/plugin-intent/intent-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=intent-dispatcher.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-dispatcher.test.d.ts","sourceRoot":"","sources":["../../../../src/plugin-intent/intent-dispatcher.test.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- import { Schema } from 'effect';
2
- export type IntentParams = {
3
- readonly input: Schema.Schema.All;
4
- readonly output: Schema.Schema.All;
5
- };
6
- export type IntentData<Fields extends IntentParams> = Schema.Schema.Type<Schema.Struct<Fields>> extends {
7
- readonly input: any;
8
- } ? Schema.Schema.Type<Schema.Struct<Fields>>['input'] : any;
9
- export type IntentResultData<Fields extends IntentParams> = Schema.Schema.Type<Schema.Struct<Fields>> extends {
10
- readonly output: any;
11
- } ? Schema.Schema.Type<Schema.Struct<Fields>>['output'] : any;
12
- export type IntentSchema<Tag extends string, Fields extends IntentParams> = Schema.TaggedClass<any, Tag, Fields>;
13
- /**
14
- * An intent is an abstract description of an operation to be performed.
15
- * Intents allow actions to be performed across plugins.
16
- */
17
- export type Intent<Tag extends string, Fields extends IntentParams> = {
18
- _schema: IntentSchema<Tag, Fields>;
19
- /**
20
- * The id of the intent.
21
- */
22
- id: Tag;
23
- /**
24
- * Any data needed to perform the desired action.
25
- */
26
- data: IntentData<Fields>;
27
- /**
28
- * Whether or not the intent is being undone.
29
- */
30
- undo?: boolean;
31
- };
32
- export type AnyIntent = Intent<any, any>;
33
- /**
34
- * Chain of intents to be executed together.
35
- * The result of each intent is merged into the next intent's input data.
36
- */
37
- export type IntentChain<FirstTag extends string, LastTag extends string, FirstFields extends IntentParams, LastFields extends IntentParams> = {
38
- first: Intent<FirstTag, FirstFields>;
39
- last: Intent<LastTag, LastFields>;
40
- all: AnyIntent[];
41
- };
42
- export type AnyIntentChain = IntentChain<any, any, any, any>;
43
- /**
44
- * Creates a typed intent.
45
- * @param schema Schema of the intent. Must be a tagged class with input and output schemas.
46
- * @param data Data fulfilling the input schema of the intent.
47
- * @param params.plugin Optional plugin ID to send the intent to.
48
- * @param params.undo Optional flag to indicate that the intent is being undone. Generally not set manually.
49
- */
50
- export declare const createIntent: <Tag extends string, Fields extends IntentParams>(schema: IntentSchema<Tag, Fields>, data?: IntentData<Fields>, params?: Pick<AnyIntent, "undo">) => IntentChain<Tag, Tag, Fields, Fields>;
51
- /**
52
- * Chain two intents together.
53
- *
54
- * NOTE: Chaining of intents depends on the data inputs and outputs being structs.
55
- */
56
- export declare const chain: <FirstTag extends string, NextTag extends string, FirstFields extends IntentParams, LastFields extends IntentParams, NextFields extends IntentParams>(schema: IntentSchema<NextTag, NextFields>, data?: Omit<IntentData<NextFields>, keyof IntentResultData<LastFields>>, params?: Pick<AnyIntent, "undo">) => (intent: IntentChain<FirstTag, any, FirstFields, LastFields>) => IntentChain<FirstTag, NextTag, FirstFields, NextFields>;
57
- export declare const Label: Schema.Union<[typeof Schema.String, Schema.mutable<Schema.Tuple2<typeof Schema.String, Schema.mutable<Schema.Struct<{
58
- ns: typeof Schema.String;
59
- count: Schema.optional<typeof Schema.Number>;
60
- defaultValue: Schema.optional<typeof Schema.String>;
61
- }>>>>]>;
62
- export type Label = Schema.Schema.Type<typeof Label>;
63
- //# sourceMappingURL=intent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../../../src/plugin-intent/intent.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Capabilities } from '../common';
2
- declare const _default: () => import("..").Capability<Capabilities.IntentResolver>;
3
- export default _default;
4
- //# sourceMappingURL=intent-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent-resolver.d.ts","sourceRoot":"","sources":["../../../../src/plugin-settings/intent-resolver.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAgB,MAAM,WAAW,CAAC;;AAIvD,wBAsBI"}
@@ -1,5 +0,0 @@
1
- import { RootSettingsStore } from '@dxos/local-storage';
2
- import { type PluginContext } from '../core';
3
- declare const _default: (context: PluginContext) => import("..").Capability<RootSettingsStore>;
4
- export default _default;
5
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/plugin-settings/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;yBAE1C,SAAS,aAAa;AAAtC,wBAuBE"}
@@ -1,8 +0,0 @@
1
- import { type Context, type Provider } from 'react';
2
- import { type AnyIntentResolver, type IntentContext } from '../plugin-intent';
3
- declare const IntentContext: Context<IntentContext | undefined>;
4
- export declare const useIntentDispatcher: () => Pick<IntentContext, "dispatch" | "dispatchPromise">;
5
- export declare const useIntentResolver: (module: string, resolver: AnyIntentResolver) => void;
6
- export declare const IntentProvider: Provider<IntentContext | undefined>;
7
- export {};
8
- //# sourceMappingURL=IntentContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntentContext.d.ts","sourceRoot":"","sources":["../../../../src/react/IntentContext.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAA6B,KAAK,QAAQ,EAAa,MAAM,OAAO,CAAC;AAO1F,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9E,QAAA,MAAM,aAAa,EAAE,OAAO,CAAC,aAAa,GAAG,SAAS,CAAuD,CAAC;AAE9G,eAAO,MAAM,mBAAmB,QAAO,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,iBAAiB,CAGxF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,UAAU,iBAAiB,SAW5E,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAA0B,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type AnyIntentResolver } from '../plugin-intent';
2
- export declare const useIntentResolver: (module: string, resolver: AnyIntentResolver) => void;
3
- //# sourceMappingURL=useIntentResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIntentResolver.d.ts","sourceRoot":"","sources":["../../../../src/react/useIntentResolver.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,UAAU,iBAAiB,SAW5E,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './core';
2
- export * from './common';
3
- export * from './plugin-intent';
4
- //# sourceMappingURL=worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/worker.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AAEvB,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC"}
package/src/App.tsx DELETED
@@ -1,276 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { RegistryContext } from '@effect-rx/rx-react';
6
- import { effect } from '@preact/signals-core';
7
- import React, { useCallback, useEffect, useMemo, useState, type FC, type PropsWithChildren } from 'react';
8
-
9
- import { invariant } from '@dxos/invariant';
10
- import { live } from '@dxos/live-object';
11
- import { useDefaultValue } from '@dxos/react-hooks';
12
-
13
- import { Capabilities, Events } from './common';
14
- import { PluginManager, type PluginManagerOptions, type Plugin } from './core';
15
- import { topologicalSort } from './helpers';
16
- import { ErrorBoundary, PluginManagerProvider, useCapabilities } from './react';
17
-
18
- const ENABLED_KEY = 'dxos.org/app-framework/enabled';
19
-
20
- export type CreateAppOptions = {
21
- pluginManager?: PluginManager;
22
- pluginLoader?: PluginManagerOptions['pluginLoader'];
23
- plugins?: Plugin[];
24
- core?: string[];
25
- defaults?: string[];
26
- placeholder?: FC<{ stage: number }>;
27
- fallback?: ErrorBoundary['props']['fallback'];
28
- cacheEnabled?: boolean;
29
- safeMode?: boolean;
30
- };
31
-
32
- /**
33
- * Expected usage is for this to be the entrypoint of the application.
34
- * Initializes plugins and renders the root components.
35
- *
36
- * @example
37
- * const plugins = [LayoutPlugin(), MyPlugin()];
38
- * const core = [LayoutPluginId];
39
- * const default = [MyPluginId];
40
- * const fallback = <div>Initializing Plugins...</div>;
41
- * const App = createApp({ plugins, core, default, fallback });
42
- * createRoot(document.getElementById('root')!).render(
43
- * <StrictMode>
44
- * <App />
45
- * </StrictMode>,
46
- * );
47
- *
48
- * @param params.pluginLoader A function which loads new plugins.
49
- * @param params.plugins All plugins available to the application.
50
- * @param params.core Core plugins which will always be enabled.
51
- * @param params.defaults Default plugins are enabled by default but can be disabled by the user.
52
- * @param params.placeholder Placeholder component to render during startup.
53
- * @param params.fallback Fallback component to render if an error occurs during startup.
54
- * @param params.cacheEnabled Whether to cache enabled plugins in localStorage.
55
- * @param params.safeMode Whether to enable safe mode, which disables optional plugins.
56
- */
57
- export const useApp = ({
58
- pluginManager,
59
- pluginLoader: _pluginLoader,
60
- plugins: _plugins,
61
- core: _core,
62
- defaults: _defaults,
63
- placeholder,
64
- fallback = DefaultFallback,
65
- cacheEnabled = false,
66
- safeMode = false,
67
- }: CreateAppOptions) => {
68
- const plugins = useDefaultValue(_plugins, () => []);
69
- const core = useDefaultValue(_core, () => plugins.map(({ meta }) => meta.id));
70
- const defaults = useDefaultValue(_defaults, () => []);
71
-
72
- // TODO(wittjosiah): Provide a custom plugin loader which supports loading via url.
73
- const pluginLoader = useMemo(
74
- () =>
75
- _pluginLoader ??
76
- ((id: string) => {
77
- const plugin = plugins.find((plugin) => plugin.meta.id === id);
78
- invariant(plugin, `Plugin not found: ${id}`);
79
- return plugin;
80
- }),
81
- [_pluginLoader, plugins],
82
- );
83
-
84
- const state = useMemo(() => live({ ready: false, error: null }), []);
85
- const cached: string[] = useMemo(() => JSON.parse(localStorage.getItem(ENABLED_KEY) ?? '[]'), []);
86
- const enabled = useMemo(
87
- () => (safeMode ? [] : cacheEnabled && cached.length > 0 ? cached : defaults),
88
- [safeMode, cacheEnabled, cached, defaults],
89
- );
90
- const manager = useMemo(
91
- () => pluginManager ?? new PluginManager({ pluginLoader, plugins, core, enabled }),
92
- [pluginManager, pluginLoader, plugins, core, enabled],
93
- );
94
-
95
- useEffect(() => {
96
- return manager.activation.on(({ event, state: _state, error }) => {
97
- // Once the app is ready the first time, don't show the fallback again.
98
- if (!state.ready && event === Events.Startup.id) {
99
- state.ready = _state === 'activated';
100
- }
101
-
102
- if (error && !state.ready && !state.error) {
103
- state.error = error;
104
- }
105
- });
106
- }, [manager, state]);
107
-
108
- useEffect(() => {
109
- effect(() => {
110
- cacheEnabled && localStorage.setItem(ENABLED_KEY, JSON.stringify(manager.enabled));
111
- });
112
- }, [cacheEnabled, manager]);
113
-
114
- useEffect(() => {
115
- manager.context.contributeCapability({
116
- interface: Capabilities.PluginManager,
117
- implementation: manager,
118
- module: 'dxos.org/app-framework/plugin-manager',
119
- });
120
-
121
- manager.context.contributeCapability({
122
- interface: Capabilities.RxRegistry,
123
- implementation: manager.registry,
124
- module: 'dxos.org/app-framework/rx-registry',
125
- });
126
-
127
- return () => {
128
- manager.context.removeCapability(Capabilities.PluginManager, manager);
129
- manager.context.removeCapability(Capabilities.RxRegistry, manager.registry);
130
- };
131
- }, [manager]);
132
-
133
- useEffect(() => {
134
- setupDevtools(manager);
135
- }, [manager]);
136
-
137
- useEffect(() => {
138
- const timeout = setTimeout(async () => {
139
- await Promise.all([
140
- // TODO(wittjosiah): Factor out such that this could be called per surface role when attempting to render.
141
- manager.activate(Events.SetupReactSurface),
142
- manager.activate(Events.Startup),
143
- ]);
144
- });
145
-
146
- return () => clearTimeout(timeout);
147
- }, [manager]);
148
-
149
- return useCallback(
150
- () => (
151
- <ErrorBoundary fallback={fallback}>
152
- <PluginManagerProvider value={manager}>
153
- <RegistryContext.Provider value={manager.registry}>
154
- <App placeholder={placeholder} state={state} />
155
- </RegistryContext.Provider>
156
- </PluginManagerProvider>
157
- </ErrorBoundary>
158
- ),
159
- [fallback, manager, placeholder, state],
160
- );
161
- };
162
-
163
- const DELAY_PLACEHOLDER = 2_000;
164
-
165
- enum LoadingState {
166
- Loading = 0,
167
- FadeIn = 1,
168
- FadeOut = 2,
169
- Done = 3,
170
- }
171
-
172
- /**
173
- * To avoid "flashing" the placeholder, we wait a period of time before starting the loading animation.
174
- * If loading completes during this time the placehoder is not shown, otherwise is it displayed for a minimum period of time.
175
- *
176
- * States:
177
- * 0: Loading - Wait for a period of time before starting the loading animation.
178
- * 1: Fade-in - Display a loading animation.
179
- * 2: Fade-out - Fade out the loading animation.
180
- * 3: Done - Remove the placeholder.
181
- */
182
- const useLoading = (state: AppProps['state']) => {
183
- const [stage, setStage] = useState<LoadingState>(LoadingState.Loading);
184
- useEffect(() => {
185
- const i = setInterval(() => {
186
- setStage((tick) => {
187
- switch (tick) {
188
- case LoadingState.Loading:
189
- if (!state.ready) {
190
- return LoadingState.FadeIn;
191
- } else {
192
- clearInterval(i);
193
- return LoadingState.Done;
194
- }
195
- case LoadingState.FadeIn:
196
- if (state.ready) {
197
- return LoadingState.FadeOut;
198
- }
199
- break;
200
- case LoadingState.FadeOut:
201
- clearInterval(i);
202
- return LoadingState.Done;
203
- }
204
-
205
- return tick;
206
- });
207
- }, DELAY_PLACEHOLDER);
208
-
209
- return () => clearInterval(i);
210
- }, []);
211
-
212
- return stage;
213
- };
214
-
215
- type AppProps = Pick<CreateAppOptions, 'placeholder'> & {
216
- state: { ready: boolean; error: unknown };
217
- };
218
-
219
- const App = ({ placeholder: Placeholder, state }: AppProps) => {
220
- const reactContexts = useCapabilities(Capabilities.ReactContext);
221
- const reactRoots = useCapabilities(Capabilities.ReactRoot);
222
- const stage = useLoading(state);
223
-
224
- if (state.error) {
225
- // This triggers the error boundary to provide UI feedback for the startup error.
226
- throw state.error;
227
- }
228
-
229
- // TODO(wittjosiah): Consider using Suspense instead?
230
- if (stage < LoadingState.Done) {
231
- if (!Placeholder) {
232
- return null;
233
- }
234
-
235
- return <Placeholder stage={stage} />;
236
- }
237
-
238
- const ComposedContext = composeContexts(reactContexts);
239
- return (
240
- <ComposedContext>
241
- {reactRoots.map(({ id, root: Component }) => (
242
- <Component key={id} />
243
- ))}
244
- </ComposedContext>
245
- );
246
- };
247
-
248
- // Default fallback does not use tailwind or theme.
249
- const DefaultFallback = ({ error }: { error: Error }) => {
250
- return (
251
- <div style={{ margin: '0.5rem', padding: '1rem', overflow: 'hidden', border: '1px solid red' }}>
252
- {/* TODO(wittjosiah): Link to docs for replacing default. */}
253
- <h1 style={{ margin: '0.5rem 0', fontSize: '1.2rem' }}>[ERROR]: {error.message}</h1>
254
- <pre style={{ overflow: 'auto', fontSize: '1rem' }}>{error.stack}</pre>
255
- </div>
256
- );
257
- };
258
-
259
- const composeContexts = (contexts: Capabilities.ReactContext[]) => {
260
- if (contexts.length === 0) {
261
- return ({ children }: PropsWithChildren) => <>{children}</>;
262
- }
263
-
264
- return topologicalSort(contexts)
265
- .map(({ context }) => context)
266
- .reduce((Acc, Next) => ({ children }) => (
267
- <Acc>
268
- <Next>{children}</Next>
269
- </Acc>
270
- ));
271
- };
272
-
273
- const setupDevtools = (manager: PluginManager) => {
274
- (globalThis as any).composer ??= {};
275
- (globalThis as any).composer.manager = manager;
276
- };