@edenapp/sdk 0.1.0

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 (432) hide show
  1. package/apps/com/eden/editor/dist/assets/css-DQU6DXDx.js +3 -0
  2. package/apps/com/eden/editor/dist/assets/editor-BRA9licV.css +1 -0
  3. package/apps/com/eden/editor/dist/assets/editor.main-DAsyVptA.js +677 -0
  4. package/apps/com/eden/editor/dist/assets/editor.worker-B4pQIWZD.js +12 -0
  5. package/apps/com/eden/editor/dist/assets/html-CTBLac3N.js +1 -0
  6. package/apps/com/eden/editor/dist/assets/index-B7GgDQ9I.css +1 -0
  7. package/apps/com/eden/editor/dist/assets/index-BWJI9cyM.js +2 -0
  8. package/apps/com/eden/editor/dist/assets/ini-BvajGCUy.js +1 -0
  9. package/apps/com/eden/editor/dist/assets/javascript-DJ6Ya8pi.js +1 -0
  10. package/apps/com/eden/editor/dist/assets/jsonMode-BA0kYRDI.js +10 -0
  11. package/apps/com/eden/editor/dist/assets/less-GGFNNJHn.js +2 -0
  12. package/apps/com/eden/editor/dist/assets/markdown-B811l8j2.js +1 -0
  13. package/apps/com/eden/editor/dist/assets/shell-CsDZo4DB.js +1 -0
  14. package/apps/com/eden/editor/dist/assets/typescript-C7BsmV0J.js +1 -0
  15. package/apps/com/eden/editor/dist/assets/yaml-QL02lm_B.js +1 -0
  16. package/apps/com/eden/editor/dist/index.html +13 -0
  17. package/apps/com/eden/editor/icon.svg +22 -0
  18. package/apps/com/eden/editor/index.html +12 -0
  19. package/apps/com/eden/editor/manifest.json +58 -0
  20. package/apps/com/eden/editor/node_modules/.bin/browserslist +21 -0
  21. package/apps/com/eden/editor/node_modules/.bin/tsc +21 -0
  22. package/apps/com/eden/editor/node_modules/.bin/tsserver +21 -0
  23. package/apps/com/eden/editor/node_modules/.bin/vite +21 -0
  24. package/apps/com/eden/editor/package.json +21 -0
  25. package/apps/com/eden/editor/src/App.tsx +212 -0
  26. package/apps/com/eden/editor/src/components/ErrorBanner.tsx +13 -0
  27. package/apps/com/eden/editor/src/components/LazyMonacoEditor.tsx +154 -0
  28. package/apps/com/eden/editor/src/components/TabBar.tsx +36 -0
  29. package/apps/com/eden/editor/src/components/Toolbar.tsx +39 -0
  30. package/apps/com/eden/editor/src/components/WelcomeScreen.tsx +49 -0
  31. package/apps/com/eden/editor/src/components/index.ts +11 -0
  32. package/apps/com/eden/editor/src/index.tsx +10 -0
  33. package/apps/com/eden/editor/src/styles.css +319 -0
  34. package/apps/com/eden/editor/src/types.ts +69 -0
  35. package/apps/com/eden/editor/tsconfig.json +24 -0
  36. package/apps/com/eden/editor/vite.config.mts +67 -0
  37. package/apps/com/eden/eveshell/assets/apps-grid-icon.svg +17 -0
  38. package/apps/com/eden/eveshell/assets/default-icon.svg +17 -0
  39. package/apps/com/eden/eveshell/dist/assets/index-BS2yCXxK.css +1 -0
  40. package/apps/com/eden/eveshell/dist/assets/index-De0NEh_d.js +1 -0
  41. package/apps/com/eden/eveshell/dist/index.html +13 -0
  42. package/apps/com/eden/eveshell/index.html +12 -0
  43. package/apps/com/eden/eveshell/manifest.json +28 -0
  44. package/apps/com/eden/eveshell/node_modules/.bin/tsc +21 -0
  45. package/apps/com/eden/eveshell/node_modules/.bin/tsserver +21 -0
  46. package/apps/com/eden/eveshell/node_modules/.bin/vite +21 -0
  47. package/apps/com/eden/eveshell/package.json +20 -0
  48. package/apps/com/eden/eveshell/src/components/AllApps.tsx +228 -0
  49. package/apps/com/eden/eveshell/src/components/AppContextMenu.tsx +125 -0
  50. package/apps/com/eden/eveshell/src/components/AppIcon.tsx +40 -0
  51. package/apps/com/eden/eveshell/src/components/Clock.tsx +35 -0
  52. package/apps/com/eden/eveshell/src/components/Dock.tsx +147 -0
  53. package/apps/com/eden/eveshell/src/components/ShellOverlay.tsx +343 -0
  54. package/apps/com/eden/eveshell/src/icon-cache.ts +38 -0
  55. package/apps/com/eden/eveshell/src/index.tsx +11 -0
  56. package/apps/com/eden/eveshell/src/styles.css +409 -0
  57. package/apps/com/eden/eveshell/src/types.ts +5 -0
  58. package/apps/com/eden/eveshell/tsconfig.json +37 -0
  59. package/apps/com/eden/eveshell/vite.config.mts +23 -0
  60. package/apps/com/eden/example/appbus/client-a/app.js +239 -0
  61. package/apps/com/eden/example/appbus/client-a/index.html +48 -0
  62. package/apps/com/eden/example/appbus/client-a/manifest.json +27 -0
  63. package/apps/com/eden/example/appbus/client-a/styles.css +52 -0
  64. package/apps/com/eden/example/appbus/client-b/app.js +130 -0
  65. package/apps/com/eden/example/appbus/client-b/index.html +35 -0
  66. package/apps/com/eden/example/appbus/client-b/manifest.json +27 -0
  67. package/apps/com/eden/example/appbus/client-b/styles.css +48 -0
  68. package/apps/com/eden/example/appbus/hub/README.md +18 -0
  69. package/apps/com/eden/example/appbus/hub/backend.js +121 -0
  70. package/apps/com/eden/example/appbus/hub/manifest.json +17 -0
  71. package/apps/com/eden/example/appbus/isolated/app.js +107 -0
  72. package/apps/com/eden/example/appbus/isolated/index.html +35 -0
  73. package/apps/com/eden/example/appbus/isolated/manifest.json +27 -0
  74. package/apps/com/eden/example/appbus/isolated/styles.css +52 -0
  75. package/apps/com/eden/example/calculator/.dev-manifest.json +5 -0
  76. package/apps/com/eden/example/calculator/app.js +95 -0
  77. package/apps/com/eden/example/calculator/icon.svg +19 -0
  78. package/apps/com/eden/example/calculator/index.html +39 -0
  79. package/apps/com/eden/example/calculator/manifest.json +30 -0
  80. package/apps/com/eden/example/calculator/styles.css +83 -0
  81. package/apps/com/eden/example/hello/README.md +3 -0
  82. package/apps/com/eden/example/hello/backend/dist/backend.js +47 -0
  83. package/apps/com/eden/example/hello/backend/node_modules/.bin/tsc +21 -0
  84. package/apps/com/eden/example/hello/backend/node_modules/.bin/tsserver +21 -0
  85. package/apps/com/eden/example/hello/backend/package.json +13 -0
  86. package/apps/com/eden/example/hello/backend/src/backend.ts +58 -0
  87. package/apps/com/eden/example/hello/backend/tsconfig.json +19 -0
  88. package/apps/com/eden/example/hello/frontend/dist/assets/index-D2WAwW3g.css +1 -0
  89. package/apps/com/eden/example/hello/frontend/dist/assets/index-D4bTq3-Q.js +1 -0
  90. package/apps/com/eden/example/hello/frontend/dist/index.html +59 -0
  91. package/apps/com/eden/example/hello/frontend/index.html +59 -0
  92. package/apps/com/eden/example/hello/frontend/node_modules/.bin/tsc +21 -0
  93. package/apps/com/eden/example/hello/frontend/node_modules/.bin/tsserver +21 -0
  94. package/apps/com/eden/example/hello/frontend/node_modules/.bin/vite +21 -0
  95. package/apps/com/eden/example/hello/frontend/package.json +15 -0
  96. package/apps/com/eden/example/hello/frontend/src/App.ts +191 -0
  97. package/apps/com/eden/example/hello/frontend/styles.css +96 -0
  98. package/apps/com/eden/example/hello/frontend/tsconfig.json +16 -0
  99. package/apps/com/eden/example/hello/frontend/vite.config.mts +21 -0
  100. package/apps/com/eden/example/hello/manifest.json +34 -0
  101. package/apps/com/eden/example/hello/shared/protocol.d.ts +38 -0
  102. package/apps/com/eden/example/showcase/app.js +186 -0
  103. package/apps/com/eden/example/showcase/index.html +637 -0
  104. package/apps/com/eden/example/showcase/manifest.json +24 -0
  105. package/apps/com/eden/example/showcase/styles.css +195 -0
  106. package/apps/com/eden/files/.dev-manifest.json +5 -0
  107. package/apps/com/eden/files/dist/assets/index-BOw4ESi3.js +1 -0
  108. package/apps/com/eden/files/dist/assets/index-BPH5FvSW.css +1 -0
  109. package/apps/com/eden/files/dist/index.html +13 -0
  110. package/apps/com/eden/files/icon.svg +15 -0
  111. package/apps/com/eden/files/index.html +12 -0
  112. package/apps/com/eden/files/manifest.json +28 -0
  113. package/apps/com/eden/files/node_modules/.bin/tsc +21 -0
  114. package/apps/com/eden/files/node_modules/.bin/tsserver +21 -0
  115. package/apps/com/eden/files/node_modules/.bin/vite +21 -0
  116. package/apps/com/eden/files/node_modules/.vite/deps/_metadata.json +46 -0
  117. package/apps/com/eden/files/node_modules/.vite/deps/chunk-5W77UGHT.js +1253 -0
  118. package/apps/com/eden/files/node_modules/.vite/deps/chunk-5W77UGHT.js.map +7 -0
  119. package/apps/com/eden/files/node_modules/.vite/deps/chunk-K4SCX2FD.js +1809 -0
  120. package/apps/com/eden/files/node_modules/.vite/deps/chunk-K4SCX2FD.js.map +7 -0
  121. package/apps/com/eden/files/node_modules/.vite/deps/package.json +3 -0
  122. package/apps/com/eden/files/node_modules/.vite/deps/solid-js.js +112 -0
  123. package/apps/com/eden/files/node_modules/.vite/deps/solid-js.js.map +7 -0
  124. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_h.js +122 -0
  125. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_h.js.map +7 -0
  126. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_html.js +606 -0
  127. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_html.js.map +7 -0
  128. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_store.js +455 -0
  129. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_store.js.map +7 -0
  130. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_web.js +147 -0
  131. package/apps/com/eden/files/node_modules/.vite/deps/solid-js_web.js.map +7 -0
  132. package/apps/com/eden/files/package-lock.json +1754 -0
  133. package/apps/com/eden/files/package.json +20 -0
  134. package/apps/com/eden/files/src/App.tsx +387 -0
  135. package/apps/com/eden/files/src/components/FileExplorerHeader.tsx +90 -0
  136. package/apps/com/eden/files/src/components/FileItem.tsx +70 -0
  137. package/apps/com/eden/files/src/components/FileList.tsx +77 -0
  138. package/apps/com/eden/files/src/components/Modal.tsx +48 -0
  139. package/apps/com/eden/files/src/components/Omnibox.tsx +241 -0
  140. package/apps/com/eden/files/src/dialogs/CreateFileDialog.tsx +71 -0
  141. package/apps/com/eden/files/src/dialogs/CreateFolderDialog.tsx +68 -0
  142. package/apps/com/eden/files/src/dialogs/DeleteConfirmDialog.tsx +35 -0
  143. package/apps/com/eden/files/src/dialogs/DisplayOptionsModal.tsx +122 -0
  144. package/apps/com/eden/files/src/dialogs/ErrorDialog.tsx +28 -0
  145. package/apps/com/eden/files/src/index.tsx +9 -0
  146. package/apps/com/eden/files/src/styles.css +595 -0
  147. package/apps/com/eden/files/src/types.ts +20 -0
  148. package/apps/com/eden/files/src/utils.ts +44 -0
  149. package/apps/com/eden/files/tsconfig.json +27 -0
  150. package/apps/com/eden/files/vite.config.mts +23 -0
  151. package/apps/com/eden/settings/dist/assets/index-CTkJneTg.js +1 -0
  152. package/apps/com/eden/settings/dist/assets/index-GIMJANTM.css +1 -0
  153. package/apps/com/eden/settings/dist/index.html +13 -0
  154. package/apps/com/eden/settings/icon.svg +15 -0
  155. package/apps/com/eden/settings/index.html +12 -0
  156. package/apps/com/eden/settings/manifest.json +28 -0
  157. package/apps/com/eden/settings/node_modules/.bin/tsc +21 -0
  158. package/apps/com/eden/settings/node_modules/.bin/tsserver +21 -0
  159. package/apps/com/eden/settings/node_modules/.bin/vite +21 -0
  160. package/apps/com/eden/settings/package.json +21 -0
  161. package/apps/com/eden/settings/src/App.css +168 -0
  162. package/apps/com/eden/settings/src/App.tsx +301 -0
  163. package/apps/com/eden/settings/src/components/SettingInput.tsx +131 -0
  164. package/apps/com/eden/settings/src/index.tsx +9 -0
  165. package/apps/com/eden/settings/tsconfig.json +21 -0
  166. package/apps/com/eden/settings/vite.config.mts +22 -0
  167. package/apps/com/eden/toaster/README.md +89 -0
  168. package/apps/com/eden/toaster/dist/assets/index-8JMcmBCJ.css +1 -0
  169. package/apps/com/eden/toaster/dist/assets/index-C4cVyh7j.js +16 -0
  170. package/apps/com/eden/toaster/dist/index.html +16 -0
  171. package/apps/com/eden/toaster/index.html +16 -0
  172. package/apps/com/eden/toaster/manifest.json +28 -0
  173. package/apps/com/eden/toaster/node_modules/.bin/vite +21 -0
  174. package/apps/com/eden/toaster/package.json +15 -0
  175. package/apps/com/eden/toaster/src/styles.css +159 -0
  176. package/apps/com/eden/toaster/src/toaster.ts +470 -0
  177. package/apps/com/eden/toaster/tsconfig.json +28 -0
  178. package/apps/com/eden/toaster/vite.config.mts +18 -0
  179. package/apps/com/eden/webbrowser/.dev-manifest.json +5 -0
  180. package/apps/com/eden/webbrowser/icon.svg +20 -0
  181. package/apps/com/eden/webbrowser/index.html +141 -0
  182. package/apps/com/eden/webbrowser/manifest.json +23 -0
  183. package/apps/com/eden/webbrowser/node_modules/.bin/vite +21 -0
  184. package/apps/com/eden/webbrowser/node_modules/.vite/deps/_metadata.json +8 -0
  185. package/apps/com/eden/webbrowser/node_modules/.vite/deps/package.json +3 -0
  186. package/apps/com/eden/webbrowser/package.json +13 -0
  187. package/apps/com/eden/webbrowser/vite.config.mts +11 -0
  188. package/dist/Eden.d.ts +40 -0
  189. package/dist/Eden.d.ts.map +1 -0
  190. package/dist/Eden.js +186 -0
  191. package/dist/Eden.js.map +1 -0
  192. package/dist/SystemHandler.d.ts +11 -0
  193. package/dist/SystemHandler.d.ts.map +1 -0
  194. package/dist/SystemHandler.js +53 -0
  195. package/dist/SystemHandler.js.map +1 -0
  196. package/dist/app-frame/frame-injector.js +19 -0
  197. package/dist/app-frame/frame-injector.js.map +7 -0
  198. package/dist/app-frame/frame.css +186 -0
  199. package/dist/app-runtime/app-preload.js +2 -0
  200. package/dist/app-runtime/app-preload.js.map +7 -0
  201. package/dist/app-runtime/backend-preload.js +2 -0
  202. package/dist/app-runtime/backend-preload.js.map +7 -0
  203. package/dist/appbus/AppChannelHandler.d.ts +65 -0
  204. package/dist/appbus/AppChannelHandler.d.ts.map +1 -0
  205. package/dist/appbus/AppChannelHandler.js +120 -0
  206. package/dist/appbus/AppChannelHandler.js.map +1 -0
  207. package/dist/appbus/AppChannelManager.d.ts +80 -0
  208. package/dist/appbus/AppChannelManager.d.ts.map +1 -0
  209. package/dist/appbus/AppChannelManager.js +312 -0
  210. package/dist/appbus/AppChannelManager.js.map +1 -0
  211. package/dist/appbus/index.d.ts +2 -0
  212. package/dist/appbus/index.d.ts.map +1 -0
  213. package/dist/appbus/index.js +18 -0
  214. package/dist/appbus/index.js.map +1 -0
  215. package/dist/db/DbHandler.d.ts +119 -0
  216. package/dist/db/DbHandler.d.ts.map +1 -0
  217. package/dist/db/DbHandler.js +204 -0
  218. package/dist/db/DbHandler.js.map +1 -0
  219. package/dist/db/DbManager.d.ts +49 -0
  220. package/dist/db/DbManager.d.ts.map +1 -0
  221. package/dist/db/DbManager.js +172 -0
  222. package/dist/db/DbManager.js.map +1 -0
  223. package/dist/db/index.d.ts +3 -0
  224. package/dist/db/index.d.ts.map +1 -0
  225. package/dist/db/index.js +8 -0
  226. package/dist/db/index.js.map +1 -0
  227. package/dist/edencss/eden-tokens.css +1 -0
  228. package/dist/edencss/eden.css +1 -0
  229. package/dist/file-open/FileOpenHandler.d.ts +59 -0
  230. package/dist/file-open/FileOpenHandler.d.ts.map +1 -0
  231. package/dist/file-open/FileOpenHandler.js +122 -0
  232. package/dist/file-open/FileOpenHandler.js.map +1 -0
  233. package/dist/file-open/FileOpenManager.d.ts +91 -0
  234. package/dist/file-open/FileOpenManager.d.ts.map +1 -0
  235. package/dist/file-open/FileOpenManager.js +411 -0
  236. package/dist/file-open/FileOpenManager.js.map +1 -0
  237. package/dist/file-open/index.d.ts +3 -0
  238. package/dist/file-open/index.d.ts.map +1 -0
  239. package/dist/file-open/index.js +8 -0
  240. package/dist/file-open/index.js.map +1 -0
  241. package/dist/filesystem/FilesystemHandler.d.ts +65 -0
  242. package/dist/filesystem/FilesystemHandler.d.ts.map +1 -0
  243. package/dist/filesystem/FilesystemHandler.js +134 -0
  244. package/dist/filesystem/FilesystemHandler.js.map +1 -0
  245. package/dist/filesystem/FilesystemManager.d.ts +70 -0
  246. package/dist/filesystem/FilesystemManager.d.ts.map +1 -0
  247. package/dist/filesystem/FilesystemManager.js +236 -0
  248. package/dist/filesystem/FilesystemManager.js.map +1 -0
  249. package/dist/filesystem/index.d.ts +3 -0
  250. package/dist/filesystem/index.d.ts.map +1 -0
  251. package/dist/filesystem/index.js +8 -0
  252. package/dist/filesystem/index.js.map +1 -0
  253. package/dist/foundation/foundation-preload.js +15 -0
  254. package/dist/foundation/foundation.css +40 -0
  255. package/dist/foundation/foundation.html +22 -0
  256. package/dist/foundation/foundation.js +69 -0
  257. package/dist/hotreload-config.d.ts +8 -0
  258. package/dist/hotreload-config.d.ts.map +1 -0
  259. package/dist/hotreload-config.js +73 -0
  260. package/dist/hotreload-config.js.map +1 -0
  261. package/dist/index.d.ts +7 -0
  262. package/dist/index.d.ts.map +1 -0
  263. package/dist/index.js +20 -0
  264. package/dist/index.js.map +1 -0
  265. package/dist/ipc/CommandDecorators.d.ts +72 -0
  266. package/dist/ipc/CommandDecorators.d.ts.map +1 -0
  267. package/dist/ipc/CommandDecorators.js +49 -0
  268. package/dist/ipc/CommandDecorators.js.map +1 -0
  269. package/dist/ipc/CommandRegistry.d.ts +77 -0
  270. package/dist/ipc/CommandRegistry.d.ts.map +1 -0
  271. package/dist/ipc/CommandRegistry.js +175 -0
  272. package/dist/ipc/CommandRegistry.js.map +1 -0
  273. package/dist/ipc/EdenEmitter.d.ts +54 -0
  274. package/dist/ipc/EdenEmitter.d.ts.map +1 -0
  275. package/dist/ipc/EdenEmitter.js +81 -0
  276. package/dist/ipc/EdenEmitter.js.map +1 -0
  277. package/dist/ipc/EventHandler.d.ts +21 -0
  278. package/dist/ipc/EventHandler.d.ts.map +1 -0
  279. package/dist/ipc/EventHandler.js +87 -0
  280. package/dist/ipc/EventHandler.js.map +1 -0
  281. package/dist/ipc/EventSubscriberManager.d.ts +67 -0
  282. package/dist/ipc/EventSubscriberManager.d.ts.map +1 -0
  283. package/dist/ipc/EventSubscriberManager.js +204 -0
  284. package/dist/ipc/EventSubscriberManager.js.map +1 -0
  285. package/dist/ipc/IPCBridge.d.ts +60 -0
  286. package/dist/ipc/IPCBridge.d.ts.map +1 -0
  287. package/dist/ipc/IPCBridge.js +186 -0
  288. package/dist/ipc/IPCBridge.js.map +1 -0
  289. package/dist/ipc/PermissionRegistry.d.ts +52 -0
  290. package/dist/ipc/PermissionRegistry.d.ts.map +1 -0
  291. package/dist/ipc/PermissionRegistry.js +120 -0
  292. package/dist/ipc/PermissionRegistry.js.map +1 -0
  293. package/dist/ipc/index.d.ts +7 -0
  294. package/dist/ipc/index.d.ts.map +1 -0
  295. package/dist/ipc/index.js +23 -0
  296. package/dist/ipc/index.js.map +1 -0
  297. package/dist/main.d.ts +2 -0
  298. package/dist/main.d.ts.map +1 -0
  299. package/dist/main.js +15 -0
  300. package/dist/main.js.map +1 -0
  301. package/dist/notification/NotificationHandler.d.ts +16 -0
  302. package/dist/notification/NotificationHandler.d.ts.map +1 -0
  303. package/dist/notification/NotificationHandler.js +39 -0
  304. package/dist/notification/NotificationHandler.js.map +1 -0
  305. package/dist/notification/NotificationManager.d.ts +32 -0
  306. package/dist/notification/NotificationManager.d.ts.map +1 -0
  307. package/dist/notification/NotificationManager.js +66 -0
  308. package/dist/notification/NotificationManager.js.map +1 -0
  309. package/dist/notification/index.d.ts +3 -0
  310. package/dist/notification/index.d.ts.map +1 -0
  311. package/dist/notification/index.js +19 -0
  312. package/dist/notification/index.js.map +1 -0
  313. package/dist/package-manager/PackageHandler.d.ts +50 -0
  314. package/dist/package-manager/PackageHandler.d.ts.map +1 -0
  315. package/dist/package-manager/PackageHandler.js +107 -0
  316. package/dist/package-manager/PackageHandler.js.map +1 -0
  317. package/dist/package-manager/PackageManager.d.ts +73 -0
  318. package/dist/package-manager/PackageManager.d.ts.map +1 -0
  319. package/dist/package-manager/PackageManager.js +373 -0
  320. package/dist/package-manager/PackageManager.js.map +1 -0
  321. package/dist/package-manager/index.d.ts +3 -0
  322. package/dist/package-manager/index.d.ts.map +1 -0
  323. package/dist/package-manager/index.js +8 -0
  324. package/dist/package-manager/index.js.map +1 -0
  325. package/dist/process-manager/AutostartManager.d.ts +15 -0
  326. package/dist/process-manager/AutostartManager.d.ts.map +1 -0
  327. package/dist/process-manager/AutostartManager.js +56 -0
  328. package/dist/process-manager/AutostartManager.js.map +1 -0
  329. package/dist/process-manager/BackendManager.d.ts +63 -0
  330. package/dist/process-manager/BackendManager.d.ts.map +1 -0
  331. package/dist/process-manager/BackendManager.js +272 -0
  332. package/dist/process-manager/BackendManager.js.map +1 -0
  333. package/dist/process-manager/ProcessHandler.d.ts +29 -0
  334. package/dist/process-manager/ProcessHandler.d.ts.map +1 -0
  335. package/dist/process-manager/ProcessHandler.js +66 -0
  336. package/dist/process-manager/ProcessHandler.js.map +1 -0
  337. package/dist/process-manager/ProcessManager.d.ts +94 -0
  338. package/dist/process-manager/ProcessManager.d.ts.map +1 -0
  339. package/dist/process-manager/ProcessManager.js +286 -0
  340. package/dist/process-manager/ProcessManager.js.map +1 -0
  341. package/dist/process-manager/index.d.ts +5 -0
  342. package/dist/process-manager/index.d.ts.map +1 -0
  343. package/dist/process-manager/index.js +12 -0
  344. package/dist/process-manager/index.js.map +1 -0
  345. package/dist/settings/EdenSettings.d.ts +8 -0
  346. package/dist/settings/EdenSettings.d.ts.map +1 -0
  347. package/dist/settings/EdenSettings.js +148 -0
  348. package/dist/settings/EdenSettings.js.map +1 -0
  349. package/dist/settings/SettingsHandler.d.ts +117 -0
  350. package/dist/settings/SettingsHandler.d.ts.map +1 -0
  351. package/dist/settings/SettingsHandler.js +199 -0
  352. package/dist/settings/SettingsHandler.js.map +1 -0
  353. package/dist/settings/SettingsManager.d.ts +64 -0
  354. package/dist/settings/SettingsManager.d.ts.map +1 -0
  355. package/dist/settings/SettingsManager.js +221 -0
  356. package/dist/settings/SettingsManager.js.map +1 -0
  357. package/dist/settings/index.d.ts +4 -0
  358. package/dist/settings/index.d.ts.map +1 -0
  359. package/dist/settings/index.js +11 -0
  360. package/dist/settings/index.js.map +1 -0
  361. package/dist/utils/cachedFileReader.d.ts +46 -0
  362. package/dist/utils/cachedFileReader.d.ts.map +1 -0
  363. package/dist/utils/cachedFileReader.js +100 -0
  364. package/dist/utils/cachedFileReader.js.map +1 -0
  365. package/dist/view-manager/DevToolsManager.d.ts +29 -0
  366. package/dist/view-manager/DevToolsManager.d.ts.map +1 -0
  367. package/dist/view-manager/DevToolsManager.js +88 -0
  368. package/dist/view-manager/DevToolsManager.js.map +1 -0
  369. package/dist/view-manager/FloatingWindowController.d.ts +44 -0
  370. package/dist/view-manager/FloatingWindowController.d.ts.map +1 -0
  371. package/dist/view-manager/FloatingWindowController.js +124 -0
  372. package/dist/view-manager/FloatingWindowController.js.map +1 -0
  373. package/dist/view-manager/LayoutCalculator.d.ts +49 -0
  374. package/dist/view-manager/LayoutCalculator.d.ts.map +1 -0
  375. package/dist/view-manager/LayoutCalculator.js +94 -0
  376. package/dist/view-manager/LayoutCalculator.js.map +1 -0
  377. package/dist/view-manager/MouseTracker.d.ts +65 -0
  378. package/dist/view-manager/MouseTracker.d.ts.map +1 -0
  379. package/dist/view-manager/MouseTracker.js +114 -0
  380. package/dist/view-manager/MouseTracker.js.map +1 -0
  381. package/dist/view-manager/TilingManager.d.ts +61 -0
  382. package/dist/view-manager/TilingManager.d.ts.map +1 -0
  383. package/dist/view-manager/TilingManager.js +142 -0
  384. package/dist/view-manager/TilingManager.js.map +1 -0
  385. package/dist/view-manager/ViewCreator.d.ts +72 -0
  386. package/dist/view-manager/ViewCreator.d.ts.map +1 -0
  387. package/dist/view-manager/ViewCreator.js +277 -0
  388. package/dist/view-manager/ViewCreator.js.map +1 -0
  389. package/dist/view-manager/ViewHandler.d.ts +112 -0
  390. package/dist/view-manager/ViewHandler.d.ts.map +1 -0
  391. package/dist/view-manager/ViewHandler.js +307 -0
  392. package/dist/view-manager/ViewHandler.js.map +1 -0
  393. package/dist/view-manager/ViewLifecycle.d.ts +66 -0
  394. package/dist/view-manager/ViewLifecycle.d.ts.map +1 -0
  395. package/dist/view-manager/ViewLifecycle.js +142 -0
  396. package/dist/view-manager/ViewLifecycle.js.map +1 -0
  397. package/dist/view-manager/ViewManager.d.ts +112 -0
  398. package/dist/view-manager/ViewManager.d.ts.map +1 -0
  399. package/dist/view-manager/ViewManager.js +422 -0
  400. package/dist/view-manager/ViewManager.js.map +1 -0
  401. package/dist/view-manager/index.d.ts +11 -0
  402. package/dist/view-manager/index.d.ts.map +1 -0
  403. package/dist/view-manager/index.js +23 -0
  404. package/dist/view-manager/index.js.map +1 -0
  405. package/dist/view-manager/types.d.ts +24 -0
  406. package/dist/view-manager/types.d.ts.map +1 -0
  407. package/dist/view-manager/types.js +11 -0
  408. package/dist/view-manager/types.js.map +1 -0
  409. package/edencss/README.md +214 -0
  410. package/edencss/components/badges.css +180 -0
  411. package/edencss/components/buttons.css +221 -0
  412. package/edencss/components/cards.css +201 -0
  413. package/edencss/components/inputs.css +424 -0
  414. package/edencss/components/lists.css +242 -0
  415. package/edencss/components/modals.css +207 -0
  416. package/edencss/components/progress.css +186 -0
  417. package/edencss/components/sidebar.css +232 -0
  418. package/edencss/components/tabs.css +189 -0
  419. package/edencss/eden.css +16 -0
  420. package/edencss/index.ts +11 -0
  421. package/edencss/style-dictionary.config.mjs +75 -0
  422. package/edencss/tokens-pink.json +163 -0
  423. package/edencss/tokens.css +121 -0
  424. package/edencss/tokens.d.ts +111 -0
  425. package/edencss/tokens.json +369 -0
  426. package/edencss/tokens.ts +125 -0
  427. package/edencss/utilities.css +423 -0
  428. package/foundation/foundation-preload.js +15 -0
  429. package/foundation/foundation.css +40 -0
  430. package/foundation/foundation.html +22 -0
  431. package/foundation/foundation.js +69 -0
  432. package/package.json +55 -0
@@ -0,0 +1,67 @@
1
+ import { ViewManager } from "../view-manager/ViewManager";
2
+ import { BackendManager } from "../process-manager/BackendManager";
3
+ import { PermissionRegistry } from "./PermissionRegistry";
4
+ import { EventName, EventData } from "@edenapp/types";
5
+ export declare class EventSubscriberManager {
6
+ private viewManager;
7
+ private backendManager?;
8
+ private subscriptions;
9
+ private backendSubscriptions;
10
+ private internalSubscriptions;
11
+ private permissionRegistry?;
12
+ constructor(viewManager: ViewManager);
13
+ /**
14
+ * Set the backend manager for backend notifications
15
+ */
16
+ setBackendManager(backendManager: BackendManager): void;
17
+ /**
18
+ * Set the permission registry for permission checking
19
+ */
20
+ setPermissionRegistry(registry: PermissionRegistry): void;
21
+ /**
22
+ * Subscribe a view to an event
23
+ */
24
+ subscribe(viewId: number, eventName: string): boolean;
25
+ /**
26
+ * Subscribe a backend to an event
27
+ */
28
+ subscribeBackend(appId: string, eventName: string): boolean;
29
+ /**
30
+ * Subscribe an internal callback (for managers) to an event
31
+ * Unlike view subscriptions, these are in-process callbacks
32
+ */
33
+ subscribeInternal<T extends EventName>(event: T, callback: (data: EventData<T>) => void): void;
34
+ /**
35
+ * Unsubscribe a view from an event
36
+ */
37
+ unsubscribe(viewId: number, eventName: string): boolean;
38
+ /**
39
+ * Unsubscribe a backend from an event
40
+ */
41
+ unsubscribeBackend(appId: string, eventName: string): boolean;
42
+ /**
43
+ * Get all views subscribed to an event
44
+ */
45
+ getSubscribedViews(eventName: string): number[];
46
+ /**
47
+ * Get all backends subscribed to an event
48
+ */
49
+ getSubscribedBackends(eventName: string): string[];
50
+ /**
51
+ * Send event only to subscribed views, backends, and internal callbacks
52
+ */
53
+ notify(eventName: string, payload: any): void;
54
+ /**
55
+ * Send event to a specific subscribed view
56
+ */
57
+ notifyView(viewId: number, eventName: string, payload: any): boolean;
58
+ /**
59
+ * Remove all subscriptions for a view
60
+ */
61
+ removeViewSubscriptions(viewId: number): void;
62
+ /**
63
+ * Remove all subscriptions for a backend
64
+ */
65
+ removeBackendSubscriptions(appId: string): void;
66
+ }
67
+ //# sourceMappingURL=EventSubscriberManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSubscriberManager.d.ts","sourceRoot":"","sources":["../../src/ipc/EventSubscriberManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEtD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,qBAAqB,CACjB;IACZ,OAAO,CAAC,kBAAkB,CAAC,CAAqB;gBAEpC,WAAW,EAAE,WAAW;IAIpC;;OAEG;IACH,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAIvD;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIzD;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiC5D;;OAEG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAoBlE;;;OAGG;IACI,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAC1C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GACrC,IAAI;IAUP;;OAEG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiB9D;;OAEG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiBpE;;OAEG;IACI,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAKtD;;OAEG;IACI,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;OAEG;IACI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI;IAsCpD;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO;IAY3E;;OAEG;IACI,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUpD;;OAEG;IACI,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAYvD"}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventSubscriberManager = void 0;
4
+ const PermissionRegistry_1 = require("./PermissionRegistry");
5
+ class EventSubscriberManager {
6
+ viewManager;
7
+ backendManager;
8
+ subscriptions = new Map();
9
+ backendSubscriptions = new Map();
10
+ internalSubscriptions = new Map();
11
+ permissionRegistry;
12
+ constructor(viewManager) {
13
+ this.viewManager = viewManager;
14
+ }
15
+ /**
16
+ * Set the backend manager for backend notifications
17
+ */
18
+ setBackendManager(backendManager) {
19
+ this.backendManager = backendManager;
20
+ }
21
+ /**
22
+ * Set the permission registry for permission checking
23
+ */
24
+ setPermissionRegistry(registry) {
25
+ this.permissionRegistry = registry;
26
+ }
27
+ /**
28
+ * Subscribe a view to an event
29
+ */
30
+ subscribe(viewId, eventName) {
31
+ const viewInfo = this.viewManager.getViewInfo(viewId);
32
+ if (!viewInfo) {
33
+ console.warn(`Cannot subscribe: view ${viewId} not found`);
34
+ return false;
35
+ }
36
+ // Check event permission if required
37
+ const requiredPermission = (0, PermissionRegistry_1.getEventPermission)(eventName);
38
+ if (requiredPermission && this.permissionRegistry) {
39
+ if (!this.permissionRegistry.hasPermission(viewInfo.appId, requiredPermission)) {
40
+ throw new Error(`Permission denied: ${requiredPermission} required to subscribe to ${eventName}`);
41
+ }
42
+ }
43
+ if (!this.subscriptions.has(eventName)) {
44
+ this.subscriptions.set(eventName, new Set());
45
+ }
46
+ this.subscriptions.get(eventName).add(viewId);
47
+ console.log(`View ${viewId} (${viewInfo.appId}) subscribed to event: ${eventName}`);
48
+ return true;
49
+ }
50
+ /**
51
+ * Subscribe a backend to an event
52
+ */
53
+ subscribeBackend(appId, eventName) {
54
+ // Check event permission if required
55
+ const requiredPermission = (0, PermissionRegistry_1.getEventPermission)(eventName);
56
+ if (requiredPermission && this.permissionRegistry) {
57
+ if (!this.permissionRegistry.hasPermission(appId, requiredPermission)) {
58
+ throw new Error(`Permission denied: ${requiredPermission} required to subscribe to ${eventName}`);
59
+ }
60
+ }
61
+ if (!this.backendSubscriptions.has(eventName)) {
62
+ this.backendSubscriptions.set(eventName, new Set());
63
+ }
64
+ this.backendSubscriptions.get(eventName).add(appId);
65
+ console.log(`Backend (${appId}) subscribed to event: ${eventName}`);
66
+ return true;
67
+ }
68
+ /**
69
+ * Subscribe an internal callback (for managers) to an event
70
+ * Unlike view subscriptions, these are in-process callbacks
71
+ */
72
+ subscribeInternal(event, callback) {
73
+ if (!this.internalSubscriptions.has(event)) {
74
+ this.internalSubscriptions.set(event, new Set());
75
+ }
76
+ this.internalSubscriptions
77
+ .get(event)
78
+ .add(callback);
79
+ console.log(`Internal subscriber added for event: ${event}`);
80
+ }
81
+ /**
82
+ * Unsubscribe a view from an event
83
+ */
84
+ unsubscribe(viewId, eventName) {
85
+ const subscriptions = this.subscriptions.get(eventName);
86
+ if (!subscriptions) {
87
+ return false;
88
+ }
89
+ const result = subscriptions.delete(viewId);
90
+ if (subscriptions.size === 0) {
91
+ this.subscriptions.delete(eventName);
92
+ }
93
+ if (result) {
94
+ console.log(`View ${viewId} unsubscribed from event: ${eventName}`);
95
+ }
96
+ return result;
97
+ }
98
+ /**
99
+ * Unsubscribe a backend from an event
100
+ */
101
+ unsubscribeBackend(appId, eventName) {
102
+ const subscriptions = this.backendSubscriptions.get(eventName);
103
+ if (!subscriptions) {
104
+ return false;
105
+ }
106
+ const result = subscriptions.delete(appId);
107
+ if (subscriptions.size === 0) {
108
+ this.backendSubscriptions.delete(eventName);
109
+ }
110
+ if (result) {
111
+ console.log(`Backend (${appId}) unsubscribed from event: ${eventName}`);
112
+ }
113
+ return result;
114
+ }
115
+ /**
116
+ * Get all views subscribed to an event
117
+ */
118
+ getSubscribedViews(eventName) {
119
+ const subscriptions = this.subscriptions.get(eventName);
120
+ return subscriptions ? Array.from(subscriptions) : [];
121
+ }
122
+ /**
123
+ * Get all backends subscribed to an event
124
+ */
125
+ getSubscribedBackends(eventName) {
126
+ const subscriptions = this.backendSubscriptions.get(eventName);
127
+ return subscriptions ? Array.from(subscriptions) : [];
128
+ }
129
+ /**
130
+ * Send event only to subscribed views, backends, and internal callbacks
131
+ */
132
+ notify(eventName, payload) {
133
+ // Notify internal subscribers first
134
+ const internalCallbacks = this.internalSubscriptions.get(eventName);
135
+ if (internalCallbacks) {
136
+ for (const callback of internalCallbacks) {
137
+ try {
138
+ callback(payload);
139
+ }
140
+ catch (error) {
141
+ console.error(`Error in internal subscriber for ${eventName}:`, error);
142
+ }
143
+ }
144
+ }
145
+ // Notify view subscribers
146
+ const subscribedViewIds = this.getSubscribedViews(eventName);
147
+ for (const viewId of subscribedViewIds) {
148
+ this.viewManager.sendToView(viewId, "shell-message", {
149
+ type: eventName,
150
+ payload,
151
+ });
152
+ }
153
+ // Notify backend subscribers
154
+ if (this.backendManager) {
155
+ const subscribedBackends = this.getSubscribedBackends(eventName);
156
+ for (const appId of subscribedBackends) {
157
+ this.backendManager.sendMessage(appId, {
158
+ type: "shell-event",
159
+ eventName,
160
+ payload,
161
+ });
162
+ }
163
+ }
164
+ }
165
+ /**
166
+ * Send event to a specific subscribed view
167
+ */
168
+ notifyView(viewId, eventName, payload) {
169
+ const subscriptions = this.subscriptions.get(eventName);
170
+ if (!subscriptions || !subscriptions.has(viewId)) {
171
+ return false;
172
+ }
173
+ return this.viewManager.sendToView(viewId, "shell-message", {
174
+ type: eventName,
175
+ payload,
176
+ });
177
+ }
178
+ /**
179
+ * Remove all subscriptions for a view
180
+ */
181
+ removeViewSubscriptions(viewId) {
182
+ for (const [eventName, subscribers] of this.subscriptions.entries()) {
183
+ if (subscribers.delete(viewId)) {
184
+ if (subscribers.size === 0) {
185
+ this.subscriptions.delete(eventName);
186
+ }
187
+ }
188
+ }
189
+ }
190
+ /**
191
+ * Remove all subscriptions for a backend
192
+ */
193
+ removeBackendSubscriptions(appId) {
194
+ for (const [eventName, subscribers,] of this.backendSubscriptions.entries()) {
195
+ if (subscribers.delete(appId)) {
196
+ if (subscribers.size === 0) {
197
+ this.backendSubscriptions.delete(eventName);
198
+ }
199
+ }
200
+ }
201
+ }
202
+ }
203
+ exports.EventSubscriberManager = EventSubscriberManager;
204
+ //# sourceMappingURL=EventSubscriberManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSubscriberManager.js","sourceRoot":"","sources":["../../src/ipc/EventSubscriberManager.ts"],"names":[],"mappings":";;;AAEA,6DAA8E;AAG9E,MAAa,sBAAsB;IACzB,WAAW,CAAc;IACzB,cAAc,CAAkB;IAChC,aAAa,GAA6B,IAAI,GAAG,EAAE,CAAC;IACpD,oBAAoB,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC3D,qBAAqB,GAC3B,IAAI,GAAG,EAAE,CAAC;IACJ,kBAAkB,CAAsB;IAEhD,YAAY,WAAwB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,cAA8B;QAC9C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAA4B;QAChD,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,MAAc,EAAE,SAAiB;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,0BAA0B,MAAM,YAAY,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,MAAM,kBAAkB,GAAG,IAAA,uCAAkB,EAAC,SAAS,CAAC,CAAC;QACzD,IAAI,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,IACE,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CACpC,QAAQ,CAAC,KAAK,EACd,kBAAkB,CACnB,EACD,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,sBAAsB,kBAAkB,6BAA6B,SAAS,EAAE,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CACT,QAAQ,MAAM,KAAK,QAAQ,CAAC,KAAK,0BAA0B,SAAS,EAAE,CACvE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,KAAa,EAAE,SAAiB;QACtD,qCAAqC;QACrC,MAAM,kBAAkB,GAAG,IAAA,uCAAkB,EAAC,SAAS,CAAC,CAAC;QACzD,IAAI,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CACb,sBAAsB,kBAAkB,6BAA6B,SAAS,EAAE,CACjF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,0BAA0B,SAAS,EAAE,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACI,iBAAiB,CACtB,KAAQ,EACR,QAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,qBAAqB;aACvB,GAAG,CAAC,KAAK,CAAE;aACX,GAAG,CAAC,QAAkC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,MAAc,EAAE,SAAiB;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,6BAA6B,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,KAAa,EAAE,SAAiB;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,8BAA8B,SAAS,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,SAAiB;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,qBAAqB,CAAC,SAAiB;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/D,OAAO,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAiB,EAAE,OAAY;QAC3C,oCAAoC;QACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,iBAAiB,EAAE,CAAC;YACtB,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;gBACzC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CACX,oCAAoC,SAAS,GAAG,EAChD,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC7D,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE;gBACnD,IAAI,EAAE,SAAS;gBACf,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YACjE,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE;oBACrC,IAAI,EAAE,aAAa;oBACnB,SAAS;oBACT,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAY;QAC/D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE;YAC1D,IAAI,EAAE,SAAS;YACf,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,uBAAuB,CAAC,MAAc;QAC3C,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACpE,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,0BAA0B,CAAC,KAAa;QAC7C,KAAK,MAAM,CACT,SAAS,EACT,WAAW,EACZ,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC9C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnPD,wDAmPC"}
@@ -0,0 +1,60 @@
1
+ import { BrowserWindow } from "electron";
2
+ import { EventEmitter } from "events";
3
+ import { BackendManager } from "../process-manager/BackendManager";
4
+ import { ViewManager } from "../view-manager/ViewManager";
5
+ import { CommandRegistry } from "./CommandRegistry";
6
+ import { EventSubscriberManager } from "./EventSubscriberManager";
7
+ import { PermissionRegistry } from "./PermissionRegistry";
8
+ /**
9
+ * IPCBridge
10
+ *
11
+ * Central communication hub for IPC messages between:
12
+ * - Main process
13
+ * - Utility processes (app backends)
14
+ * - WebContentsViews (app frontends)
15
+ */
16
+ export declare class IPCBridge extends EventEmitter {
17
+ private backendManager;
18
+ private commandRegistry;
19
+ private viewManager;
20
+ eventSubscribers: EventSubscriberManager;
21
+ private eventHandler;
22
+ private mainWindow;
23
+ private runningAppIds;
24
+ private pendingCommands;
25
+ constructor(backendManager: BackendManager, commandRegistry: CommandRegistry, permissionRegistry: PermissionRegistry, viewManager: ViewManager);
26
+ /**
27
+ * Set the main window for shell communication
28
+ */
29
+ setMainWindow(window: BrowserWindow): void;
30
+ /**
31
+ * Get the main window instance
32
+ */
33
+ getMainWindow(): BrowserWindow | null;
34
+ /**
35
+ * Setup IPC handlers for renderer processes
36
+ */
37
+ private setupIPCHandlers;
38
+ /**
39
+ * Setup handlers for backend utility process messages
40
+ */
41
+ private setupBackendMessageHandlers;
42
+ /**
43
+ * Helper to send response to backend
44
+ */
45
+ private sendBackendResponse;
46
+ /**
47
+ * Handle shell commands (app management, etc.)
48
+ */
49
+ private handleShellCommand;
50
+ /**
51
+ * Provide running-app updates from the AppManager
52
+ */
53
+ updateRunningApps(appIds: Iterable<string>): void;
54
+ getRunningAppIds(): string[];
55
+ /**
56
+ * Cleanup
57
+ */
58
+ destroy(): void;
59
+ }
60
+ //# sourceMappingURL=IPCBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPCBridge.d.ts","sourceRoot":"","sources":["../../src/ipc/IPCBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,aAAa,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D;;;;;;;GAOG;AACH,qBAEa,SAAU,SAAQ,YAAY;IAef,OAAO,CAAC,cAAc;IACrB,OAAO,CAAC,eAAe;IAEd,OAAO,CAAC,WAAW;IAjBhD,gBAAgB,EAAE,sBAAsB,CAAC;IAChD,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,eAAe,CAOT;gBAGoB,cAAc,EAAE,cAAc,EAC7B,eAAe,EAAE,eAAe,EACrC,kBAAkB,EAAE,kBAAkB,EACxB,WAAW,EAAE,WAAW;IAiBpE;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAI1C;;OAEG;IACH,aAAa,IAAI,aAAa,GAAG,IAAI;IAIrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAsCnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;YACW,kBAAkB;IAuChC;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAIjD,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.IPCBridge = void 0;
16
+ const electron_1 = require("electron");
17
+ const events_1 = require("events");
18
+ const BackendManager_1 = require("../process-manager/BackendManager");
19
+ const ViewManager_1 = require("../view-manager/ViewManager");
20
+ const crypto_1 = require("crypto");
21
+ const CommandRegistry_1 = require("./CommandRegistry");
22
+ const EventSubscriberManager_1 = require("./EventSubscriberManager");
23
+ const PermissionRegistry_1 = require("./PermissionRegistry");
24
+ const tsyringe_1 = require("tsyringe");
25
+ const EventHandler_1 = require("./EventHandler");
26
+ /**
27
+ * IPCBridge
28
+ *
29
+ * Central communication hub for IPC messages between:
30
+ * - Main process
31
+ * - Utility processes (app backends)
32
+ * - WebContentsViews (app frontends)
33
+ */
34
+ let IPCBridge = class IPCBridge extends events_1.EventEmitter {
35
+ backendManager;
36
+ commandRegistry;
37
+ viewManager;
38
+ eventSubscribers;
39
+ eventHandler;
40
+ mainWindow = null;
41
+ runningAppIds = new Set();
42
+ pendingCommands = new Map();
43
+ constructor(backendManager, commandRegistry, permissionRegistry, viewManager) {
44
+ super();
45
+ this.backendManager = backendManager;
46
+ this.commandRegistry = commandRegistry;
47
+ this.viewManager = viewManager;
48
+ // Initialize event subscriber manager
49
+ this.eventSubscribers = new EventSubscriberManager_1.EventSubscriberManager(viewManager);
50
+ this.eventSubscribers.setBackendManager(this.backendManager);
51
+ this.eventSubscribers.setPermissionRegistry(permissionRegistry);
52
+ // Initialize and register EventHandler
53
+ this.eventHandler = new EventHandler_1.EventHandler(this.eventSubscribers, viewManager);
54
+ this.commandRegistry.registerManager(this.eventHandler);
55
+ this.setupIPCHandlers();
56
+ this.setupBackendMessageHandlers();
57
+ }
58
+ /**
59
+ * Set the main window for shell communication
60
+ */
61
+ setMainWindow(window) {
62
+ this.mainWindow = window;
63
+ }
64
+ /**
65
+ * Get the main window instance
66
+ */
67
+ getMainWindow() {
68
+ return this.mainWindow;
69
+ }
70
+ /**
71
+ * Setup IPC handlers for renderer processes
72
+ */
73
+ setupIPCHandlers() {
74
+ // Handle shell commands
75
+ electron_1.ipcMain.handle("shell-command", async (event, command, args) => {
76
+ // Build caller context for commands that need it
77
+ const appId = this.viewManager.getAppIdByWebContentsId(event.sender.id);
78
+ const argsWithContext = {
79
+ ...args,
80
+ _callerAppId: appId,
81
+ _callerWebContentsId: event.sender.id,
82
+ };
83
+ return this.handleShellCommand(command, argsWithContext, appId);
84
+ });
85
+ }
86
+ /**
87
+ * Setup handlers for backend utility process messages
88
+ */
89
+ setupBackendMessageHandlers() {
90
+ this.backendManager.on("backend-message", async ({ appId, message }) => {
91
+ // Handle different message types from backend
92
+ if (message.type === "shell-command") {
93
+ // Backend requesting a shell command execution
94
+ try {
95
+ // Inject caller context for backend commands
96
+ const argsWithContext = {
97
+ ...message.args,
98
+ _callerAppId: appId,
99
+ };
100
+ const result = await this.handleShellCommand(message.command, argsWithContext, appId);
101
+ // Send response back to backend
102
+ this.sendBackendResponse(appId, message.commandId, result);
103
+ }
104
+ catch (error) {
105
+ this.backendManager.sendMessage(appId, {
106
+ type: "shell-command-response",
107
+ commandId: message.commandId,
108
+ error: error instanceof Error ? error.message : String(error),
109
+ });
110
+ }
111
+ }
112
+ else {
113
+ console.warn(`Unknown backend message type from ${appId}:`, message.type);
114
+ }
115
+ });
116
+ }
117
+ /**
118
+ * Helper to send response to backend
119
+ */
120
+ sendBackendResponse(appId, commandId, result) {
121
+ this.backendManager.sendMessage(appId, {
122
+ type: "shell-command-response",
123
+ commandId,
124
+ result,
125
+ });
126
+ }
127
+ /**
128
+ * Handle shell commands (app management, etc.)
129
+ */
130
+ async handleShellCommand(command, args, appId) {
131
+ // Create a promise to wait for the command result
132
+ const commandId = (0, crypto_1.randomUUID)();
133
+ return new Promise((resolve, reject) => {
134
+ const timeout = setTimeout(() => {
135
+ console.error(`[IPCBridge] Command '${command}' (ID: ${commandId}) timed out after 10s`);
136
+ this.pendingCommands.delete(commandId);
137
+ reject(new Error(`Command '${command}' timed out`));
138
+ }, 10000);
139
+ this.pendingCommands.set(commandId, { resolve, reject, timeout });
140
+ // Execute via CommandRegistry with appId for permission checking
141
+ this.commandRegistry
142
+ .execute(command, args, appId)
143
+ .then((result) => {
144
+ clearTimeout(timeout);
145
+ this.pendingCommands.delete(commandId);
146
+ resolve(result);
147
+ })
148
+ .catch((error) => {
149
+ console.error(`[IPCBridge] Command '${command}' (ID: ${commandId}) failed:`, error);
150
+ clearTimeout(timeout);
151
+ this.pendingCommands.delete(commandId);
152
+ reject(error);
153
+ });
154
+ });
155
+ }
156
+ /**
157
+ * Provide running-app updates from the AppManager
158
+ */
159
+ updateRunningApps(appIds) {
160
+ this.runningAppIds = new Set(appIds);
161
+ }
162
+ getRunningAppIds() {
163
+ return Array.from(this.runningAppIds);
164
+ }
165
+ /**
166
+ * Cleanup
167
+ */
168
+ destroy() {
169
+ // Remove global IPC handlers
170
+ electron_1.ipcMain.removeHandler("shell-command");
171
+ }
172
+ };
173
+ exports.IPCBridge = IPCBridge;
174
+ exports.IPCBridge = IPCBridge = __decorate([
175
+ (0, tsyringe_1.singleton)(),
176
+ (0, tsyringe_1.injectable)(),
177
+ __param(0, (0, tsyringe_1.inject)(BackendManager_1.BackendManager)),
178
+ __param(1, (0, tsyringe_1.inject)(CommandRegistry_1.CommandRegistry)),
179
+ __param(2, (0, tsyringe_1.inject)(PermissionRegistry_1.PermissionRegistry)),
180
+ __param(3, (0, tsyringe_1.inject)((0, tsyringe_1.delay)(() => ViewManager_1.ViewManager))),
181
+ __metadata("design:paramtypes", [BackendManager_1.BackendManager,
182
+ CommandRegistry_1.CommandRegistry,
183
+ PermissionRegistry_1.PermissionRegistry,
184
+ ViewManager_1.ViewManager])
185
+ ], IPCBridge);
186
+ //# sourceMappingURL=IPCBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IPCBridge.js","sourceRoot":"","sources":["../../src/ipc/IPCBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * PermissionRegistry
3
+ *
4
+ * Central registry for managing app permissions at runtime.
5
+ * Supports glob patterns for permission matching:
6
+ * - "fs/read" matches exactly "fs/read"
7
+ * - "fs/*" matches any permission starting with "fs/"
8
+ * - "*" matches all permissions
9
+ */
10
+ export declare class PermissionRegistry {
11
+ private appPermissions;
12
+ /**
13
+ * Register permissions for an app (called during install/load)
14
+ */
15
+ registerApp(appId: string, permissions: string[]): void;
16
+ /**
17
+ * Unregister app permissions (called during uninstall)
18
+ */
19
+ unregisterApp(appId: string): void;
20
+ /**
21
+ * Check if an app has a specific permission.
22
+ * Supports glob patterns in the app's granted permissions.
23
+ */
24
+ hasPermission(appId: string, requiredPermission: string): boolean;
25
+ /**
26
+ * Match a glob pattern against a permission.
27
+ * - "*" matches everything
28
+ * - "namespace/*" matches anything starting with "namespace/"
29
+ */
30
+ private matchesGlob;
31
+ /**
32
+ * Get all permissions for an app
33
+ */
34
+ getPermissions(appId: string): string[];
35
+ /**
36
+ * Check if an app is registered
37
+ */
38
+ hasApp(appId: string): boolean;
39
+ }
40
+ /**
41
+ * Register an event's required permission
42
+ */
43
+ export declare function registerEventPermission(eventName: string, permission: string): void;
44
+ /**
45
+ * Get the permission required to subscribe to an event
46
+ */
47
+ export declare function getEventPermission(eventName: string): string | undefined;
48
+ /**
49
+ * Get all registered event permissions
50
+ */
51
+ export declare function getAllEventPermissions(): Map<string, string>;
52
+ //# sourceMappingURL=PermissionRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PermissionRegistry.d.ts","sourceRoot":"","sources":["../../src/ipc/PermissionRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,qBAEa,kBAAkB;IAC7B,OAAO,CAAC,cAAc,CAAuC;IAE7D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAOvD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAqBjE;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAKvC;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAG/B;AASD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5D"}