@factorim/monotui 0.1.0 → 0.3.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 (467) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +14 -0
  3. package/.github/workflows/ci.yml +5 -2
  4. package/.github/workflows/release.yml +77 -0
  5. package/.vscode/settings.json +1 -0
  6. package/CHANGELOG.md +9 -0
  7. package/README.md +2 -0
  8. package/dist/app/pages/WorkspacePage.d.ts.map +1 -1
  9. package/dist/app/pages/WorkspacePage.js +3 -3
  10. package/dist/app/pages/WorkspacePage.js.map +1 -1
  11. package/dist/commands/init.d.ts +1 -1
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +33 -4
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/components/features/ProjectGrid/ColPackageJson.d.ts +2 -2
  16. package/dist/components/features/ProjectGrid/ColPackageJson.d.ts.map +1 -1
  17. package/dist/components/features/ProjectGrid/ColPackageJson.js.map +1 -1
  18. package/dist/components/features/WorkspaceGrid/WorkspaceGrid.js +1 -1
  19. package/dist/components/features/WorkspaceGrid/WorkspaceInfo.d.ts.map +1 -1
  20. package/dist/components/features/WorkspaceGrid/WorkspaceInfo.js +1 -1
  21. package/dist/components/features/WorkspaceGrid/WorkspaceInfo.js.map +1 -1
  22. package/dist/components/features/WorkspaceGrid/WorkspaceRow.js +2 -2
  23. package/dist/components/features/WorkspaceGrid/WorkspaceRow.js.map +1 -1
  24. package/dist/components/layouts/Header/Header.d.ts.map +1 -1
  25. package/dist/components/layouts/Header/Header.js +3 -7
  26. package/dist/components/layouts/Header/Header.js.map +1 -1
  27. package/dist/config/config.d.ts.map +1 -1
  28. package/dist/config/config.js +21 -21
  29. package/dist/config/config.js.map +1 -1
  30. package/dist/config/defaults.d.ts +2 -2
  31. package/dist/config/defaults.js +2 -2
  32. package/dist/config/validation.d.ts +54 -0
  33. package/dist/config/validation.d.ts.map +1 -0
  34. package/dist/config/validation.js +79 -0
  35. package/dist/config/validation.js.map +1 -0
  36. package/dist/contexts/ProjectGridContext.d.ts +1 -1
  37. package/dist/contexts/ProjectGridContext.d.ts.map +1 -1
  38. package/dist/contexts/WorkspaceDiscoveryContext.d.ts +2 -2
  39. package/dist/contexts/WorkspaceDiscoveryContext.d.ts.map +1 -1
  40. package/dist/contexts/WorkspaceDiscoveryContext.js +3 -3
  41. package/dist/contexts/WorkspaceDiscoveryContext.js.map +1 -1
  42. package/dist/contexts/WorkspaceGridContext.d.ts +1 -1
  43. package/dist/contexts/WorkspaceGridContext.d.ts.map +1 -1
  44. package/dist/contexts/WorkspaceGridContext.js +1 -1
  45. package/dist/contexts/WorkspaceGridContext.js.map +1 -1
  46. package/dist/hooks/useInterval.d.ts +5 -0
  47. package/dist/hooks/useInterval.d.ts.map +1 -0
  48. package/dist/hooks/useInterval.js +19 -0
  49. package/dist/hooks/useInterval.js.map +1 -0
  50. package/dist/hooks/useWorkspaceDiscovery.d.ts +3 -3
  51. package/dist/hooks/useWorkspaceDiscovery.d.ts.map +1 -1
  52. package/dist/hooks/useWorkspaceDiscovery.js +8 -13
  53. package/dist/hooks/useWorkspaceDiscovery.js.map +1 -1
  54. package/dist/hooks/useWorkspaceQuickActions.d.ts +1 -1
  55. package/dist/hooks/useWorkspaceQuickActions.d.ts.map +1 -1
  56. package/dist/hooks/useWorkspaceRuntime.d.ts +1 -1
  57. package/dist/hooks/useWorkspaceRuntime.d.ts.map +1 -1
  58. package/dist/hooks/useWorkspaceRuntime.js +30 -8
  59. package/dist/hooks/useWorkspaceRuntime.js.map +1 -1
  60. package/dist/services/discovery/facets/compose-parser.d.ts +1 -1
  61. package/dist/services/discovery/facets/compose-parser.d.ts.map +1 -1
  62. package/dist/services/discovery/facets/makefile-parser.d.ts +1 -1
  63. package/dist/services/discovery/facets/makefile-parser.d.ts.map +1 -1
  64. package/dist/services/discovery/facets/package-json-parser.d.ts +1 -1
  65. package/dist/services/discovery/facets/package-json-parser.d.ts.map +1 -1
  66. package/dist/services/discovery/workspace-discovery.d.ts +3 -3
  67. package/dist/services/discovery/workspace-discovery.d.ts.map +1 -1
  68. package/dist/services/discovery/workspace-discovery.js +17 -7
  69. package/dist/services/discovery/workspace-discovery.js.map +1 -1
  70. package/dist/services/runtime/docker-runtime.d.ts +1 -1
  71. package/dist/services/runtime/docker-runtime.d.ts.map +1 -1
  72. package/dist/services/runtime/node-runtime.d.ts +2 -2
  73. package/dist/services/runtime/node-runtime.d.ts.map +1 -1
  74. package/dist/theme/theme.js +1 -1
  75. package/dist/theme/theme.js.map +1 -1
  76. package/dist/types/project-grid.d.ts +1 -1
  77. package/dist/types/project-grid.d.ts.map +1 -1
  78. package/dist/types/workspace-grid.d.ts +2 -2
  79. package/dist/types/workspace-grid.d.ts.map +1 -1
  80. package/dist/types/workspace.d.ts +9 -2
  81. package/dist/types/workspace.d.ts.map +1 -1
  82. package/dist/utils/logging/logger.js +2 -2
  83. package/dist/utils/logging/logger.js.map +1 -1
  84. package/dist/utils/project/project-grid.d.ts +1 -1
  85. package/dist/utils/project/project-grid.d.ts.map +1 -1
  86. package/dist/utils/project/project-grid.js.map +1 -1
  87. package/dist/utils/workspace/workspace-grid.d.ts +1 -1
  88. package/dist/utils/workspace/workspace-grid.d.ts.map +1 -1
  89. package/dist/utils/workspace/workspace-grid.js +5 -18
  90. package/dist/utils/workspace/workspace-grid.js.map +1 -1
  91. package/dist/utils/workspace/workspace-helper.d.ts +1 -1
  92. package/dist/utils/workspace/workspace-helper.d.ts.map +1 -1
  93. package/docs/images/monotui-screenshot-v0.2.0.png +0 -0
  94. package/package.json +11 -4
  95. package/src/app/pages/WorkspacePage.tsx +5 -3
  96. package/src/commands/init.ts +34 -4
  97. package/src/components/features/ProjectGrid/ColPackageJson.tsx +3 -2
  98. package/src/components/features/WorkspaceGrid/WorkspaceGrid.tsx +2 -2
  99. package/src/components/features/WorkspaceGrid/WorkspaceInfo.tsx +7 -9
  100. package/src/components/features/WorkspaceGrid/WorkspaceRow.tsx +6 -6
  101. package/src/components/layouts/Header/Header.tsx +2 -9
  102. package/src/config/config.ts +24 -21
  103. package/src/config/defaults.ts +2 -2
  104. package/src/config/validation.ts +90 -0
  105. package/src/contexts/ProjectGridContext.tsx +1 -1
  106. package/src/contexts/WorkspaceDiscoveryContext.tsx +5 -5
  107. package/src/contexts/WorkspaceGridContext.tsx +2 -2
  108. package/src/hooks/useWorkspaceDiscovery.ts +16 -17
  109. package/src/hooks/useWorkspaceQuickActions.ts +1 -1
  110. package/src/hooks/useWorkspaceRuntime.ts +52 -12
  111. package/src/services/discovery/facets/compose-parser.ts +1 -1
  112. package/src/services/discovery/facets/makefile-parser.ts +2 -2
  113. package/src/services/discovery/facets/package-json-parser.ts +1 -1
  114. package/src/services/discovery/workspace-discovery.ts +21 -11
  115. package/src/services/runtime/docker-runtime.ts +1 -1
  116. package/src/services/runtime/node-runtime.ts +2 -2
  117. package/src/theme/theme.ts +1 -1
  118. package/src/types/project-grid.ts +1 -1
  119. package/src/types/workspace-grid.ts +2 -2
  120. package/src/types/{project.ts → workspace.ts} +9 -2
  121. package/src/utils/logging/logger.ts +2 -2
  122. package/src/utils/project/project-grid.test.ts +175 -0
  123. package/src/utils/project/project-grid.ts +1 -2
  124. package/src/utils/workspace/workspace-grid.ts +6 -20
  125. package/src/utils/workspace/workspace-helper.ts +1 -1
  126. package/.github/workflows/publish-to-npm.yml +0 -36
  127. package/dist/app/pages/About.d.ts +0 -2
  128. package/dist/app/pages/About.d.ts.map +0 -1
  129. package/dist/app/pages/About.js +0 -6
  130. package/dist/app/pages/About.js.map +0 -1
  131. package/dist/app/pages/AboutPage.d.ts +0 -2
  132. package/dist/app/pages/AboutPage.d.ts.map +0 -1
  133. package/dist/app/pages/AboutPage.js +0 -6
  134. package/dist/app/pages/AboutPage.js.map +0 -1
  135. package/dist/app/pages/Workspace.d.ts +0 -2
  136. package/dist/app/pages/Workspace.d.ts.map +0 -1
  137. package/dist/app/pages/Workspace.js +0 -14
  138. package/dist/app/pages/Workspace.js.map +0 -1
  139. package/dist/app/pages/Workspaces.d.ts +0 -2
  140. package/dist/app/pages/Workspaces.d.ts.map +0 -1
  141. package/dist/app/pages/Workspaces.js +0 -16
  142. package/dist/app/pages/Workspaces.js.map +0 -1
  143. package/dist/app/pages/WorkspacesPage.d.ts +0 -2
  144. package/dist/app/pages/WorkspacesPage.d.ts.map +0 -1
  145. package/dist/app/pages/WorkspacesPage.js +0 -15
  146. package/dist/app/pages/WorkspacesPage.js.map +0 -1
  147. package/dist/components/features/ProjectGrid/ProjectCommands.d.ts +0 -2
  148. package/dist/components/features/ProjectGrid/ProjectCommands.d.ts.map +0 -1
  149. package/dist/components/features/ProjectGrid/ProjectCommands.js +0 -6
  150. package/dist/components/features/ProjectGrid/ProjectCommands.js.map +0 -1
  151. package/dist/components/features/ProjectGrid/WorkspaceCommands.d.ts +0 -2
  152. package/dist/components/features/ProjectGrid/WorkspaceCommands.d.ts.map +0 -1
  153. package/dist/components/features/ProjectGrid/WorkspaceCommands.js +0 -6
  154. package/dist/components/features/ProjectGrid/WorkspaceCommands.js.map +0 -1
  155. package/dist/components/features/ProjectGrid/WorkspaceDetail.d.ts +0 -2
  156. package/dist/components/features/ProjectGrid/WorkspaceDetail.d.ts.map +0 -1
  157. package/dist/components/features/ProjectGrid/WorkspaceDetail.js +0 -16
  158. package/dist/components/features/ProjectGrid/WorkspaceDetail.js.map +0 -1
  159. package/dist/components/features/ProjectGrid/WorkspaceInfo.d.ts +0 -2
  160. package/dist/components/features/ProjectGrid/WorkspaceInfo.d.ts.map +0 -1
  161. package/dist/components/features/ProjectGrid/WorkspaceInfo.js +0 -11
  162. package/dist/components/features/ProjectGrid/WorkspaceInfo.js.map +0 -1
  163. package/dist/components/features/WorkspaceDetail/ColCompose.d.ts +0 -10
  164. package/dist/components/features/WorkspaceDetail/ColCompose.d.ts.map +0 -1
  165. package/dist/components/features/WorkspaceDetail/ColCompose.js +0 -6
  166. package/dist/components/features/WorkspaceDetail/ColCompose.js.map +0 -1
  167. package/dist/components/features/WorkspaceDetail/ColMakefile.d.ts +0 -9
  168. package/dist/components/features/WorkspaceDetail/ColMakefile.d.ts.map +0 -1
  169. package/dist/components/features/WorkspaceDetail/ColMakefile.js +0 -6
  170. package/dist/components/features/WorkspaceDetail/ColMakefile.js.map +0 -1
  171. package/dist/components/features/WorkspaceDetail/ColPackageJson.d.ts +0 -11
  172. package/dist/components/features/WorkspaceDetail/ColPackageJson.d.ts.map +0 -1
  173. package/dist/components/features/WorkspaceDetail/ColPackageJson.js +0 -6
  174. package/dist/components/features/WorkspaceDetail/ColPackageJson.js.map +0 -1
  175. package/dist/components/features/WorkspaceDetail/ComposeCol copy 2.d.ts +0 -1
  176. package/dist/components/features/WorkspaceDetail/ComposeCol copy 2.d.ts.map +0 -1
  177. package/dist/components/features/WorkspaceDetail/ComposeCol copy 2.js +0 -2
  178. package/dist/components/features/WorkspaceDetail/ComposeCol copy 2.js.map +0 -1
  179. package/dist/components/features/WorkspaceDetail/ComposeCol copy.d.ts +0 -1
  180. package/dist/components/features/WorkspaceDetail/ComposeCol copy.d.ts.map +0 -1
  181. package/dist/components/features/WorkspaceDetail/ComposeCol copy.js +0 -2
  182. package/dist/components/features/WorkspaceDetail/ComposeCol copy.js.map +0 -1
  183. package/dist/components/features/WorkspaceDetail/ComposeCol.d.ts +0 -1
  184. package/dist/components/features/WorkspaceDetail/ComposeCol.d.ts.map +0 -1
  185. package/dist/components/features/WorkspaceDetail/ComposeCol.js +0 -2
  186. package/dist/components/features/WorkspaceDetail/ComposeCol.js.map +0 -1
  187. package/dist/components/features/WorkspaceDetail/EmptyCol.d.ts +0 -2
  188. package/dist/components/features/WorkspaceDetail/EmptyCol.d.ts.map +0 -1
  189. package/dist/components/features/WorkspaceDetail/EmptyCol.js +0 -6
  190. package/dist/components/features/WorkspaceDetail/EmptyCol.js.map +0 -1
  191. package/dist/components/features/WorkspaceDetail/EmptyRow.d.ts +0 -2
  192. package/dist/components/features/WorkspaceDetail/EmptyRow.d.ts.map +0 -1
  193. package/dist/components/features/WorkspaceDetail/EmptyRow.js +0 -6
  194. package/dist/components/features/WorkspaceDetail/EmptyRow.js.map +0 -1
  195. package/dist/components/features/WorkspaceDetail/PackageJsonCol.d.ts +0 -1
  196. package/dist/components/features/WorkspaceDetail/PackageJsonCol.d.ts.map +0 -1
  197. package/dist/components/features/WorkspaceDetail/PackageJsonCol.js +0 -2
  198. package/dist/components/features/WorkspaceDetail/PackageJsonCol.js.map +0 -1
  199. package/dist/components/features/WorkspaceDetail/WorkspaceDetail copy.d.ts +0 -2
  200. package/dist/components/features/WorkspaceDetail/WorkspaceDetail copy.d.ts.map +0 -1
  201. package/dist/components/features/WorkspaceDetail/WorkspaceDetail copy.js +0 -12
  202. package/dist/components/features/WorkspaceDetail/WorkspaceDetail copy.js.map +0 -1
  203. package/dist/components/features/WorkspaceDetail/WorkspaceDetail.d.ts +0 -2
  204. package/dist/components/features/WorkspaceDetail/WorkspaceDetail.d.ts.map +0 -1
  205. package/dist/components/features/WorkspaceDetail/WorkspaceDetail.js +0 -16
  206. package/dist/components/features/WorkspaceDetail/WorkspaceDetail.js.map +0 -1
  207. package/dist/components/features/WorkspaceDetail/WorkspaceInfo.d.ts +0 -2
  208. package/dist/components/features/WorkspaceDetail/WorkspaceInfo.d.ts.map +0 -1
  209. package/dist/components/features/WorkspaceDetail/WorkspaceInfo.js +0 -11
  210. package/dist/components/features/WorkspaceDetail/WorkspaceInfo.js.map +0 -1
  211. package/dist/components/features/WorkspaceGrid/WorkspaceCommands.d.ts +0 -2
  212. package/dist/components/features/WorkspaceGrid/WorkspaceCommands.d.ts.map +0 -1
  213. package/dist/components/features/WorkspaceGrid/WorkspaceCommands.js +0 -6
  214. package/dist/components/features/WorkspaceGrid/WorkspaceCommands.js.map +0 -1
  215. package/dist/components/features/WorkspaceGrid/WorkspaceInfo copy.d.ts +0 -2
  216. package/dist/components/features/WorkspaceGrid/WorkspaceInfo copy.d.ts.map +0 -1
  217. package/dist/components/features/WorkspaceGrid/WorkspaceInfo copy.js +0 -11
  218. package/dist/components/features/WorkspaceGrid/WorkspaceInfo copy.js.map +0 -1
  219. package/dist/components/features/WorkspaceGrid/WorkspacesGrid.d.ts +0 -2
  220. package/dist/components/features/WorkspaceGrid/WorkspacesGrid.d.ts.map +0 -1
  221. package/dist/components/features/WorkspaceGrid/WorkspacesGrid.js +0 -10
  222. package/dist/components/features/WorkspaceGrid/WorkspacesGrid.js.map +0 -1
  223. package/dist/components/features/WorkspaceGrid/WorkspacesInfo.d.ts +0 -2
  224. package/dist/components/features/WorkspaceGrid/WorkspacesInfo.d.ts.map +0 -1
  225. package/dist/components/features/WorkspaceGrid/WorkspacesInfo.js +0 -11
  226. package/dist/components/features/WorkspaceGrid/WorkspacesInfo.js.map +0 -1
  227. package/dist/components/features/WorkspaceGrid/WorkspacesRow.d.ts +0 -8
  228. package/dist/components/features/WorkspaceGrid/WorkspacesRow.d.ts.map +0 -1
  229. package/dist/components/features/WorkspaceGrid/WorkspacesRow.js +0 -18
  230. package/dist/components/features/WorkspaceGrid/WorkspacesRow.js.map +0 -1
  231. package/dist/components/features/WorkspaceList/WorkspaceList.d.ts +0 -2
  232. package/dist/components/features/WorkspaceList/WorkspaceList.d.ts.map +0 -1
  233. package/dist/components/features/WorkspaceList/WorkspaceList.js +0 -10
  234. package/dist/components/features/WorkspaceList/WorkspaceList.js.map +0 -1
  235. package/dist/components/features/WorkspaceList/WorkspacesRow.d.ts +0 -8
  236. package/dist/components/features/WorkspaceList/WorkspacesRow.d.ts.map +0 -1
  237. package/dist/components/features/WorkspaceList/WorkspacesRow.js +0 -15
  238. package/dist/components/features/WorkspaceList/WorkspacesRow.js.map +0 -1
  239. package/dist/components/features/WorkspaceList/responsiveColumnWidths.d.ts +0 -4
  240. package/dist/components/features/WorkspaceList/responsiveColumnWidths.d.ts.map +0 -1
  241. package/dist/components/features/WorkspaceList/responsiveColumnWidths.js +0 -11
  242. package/dist/components/features/WorkspaceList/responsiveColumnWidths.js.map +0 -1
  243. package/dist/components/features/WorkspaceList/responsiveWidth.d.ts +0 -4
  244. package/dist/components/features/WorkspaceList/responsiveWidth.d.ts.map +0 -1
  245. package/dist/components/features/WorkspaceList/responsiveWidth.js +0 -11
  246. package/dist/components/features/WorkspaceList/responsiveWidth.js.map +0 -1
  247. package/dist/components/features/WorkspacesGrid/WorkspaceInfo.d.ts +0 -2
  248. package/dist/components/features/WorkspacesGrid/WorkspaceInfo.d.ts.map +0 -1
  249. package/dist/components/features/WorkspacesGrid/WorkspaceInfo.js +0 -13
  250. package/dist/components/features/WorkspacesGrid/WorkspaceInfo.js.map +0 -1
  251. package/dist/components/features/WorkspacesGrid/WorkspaceList.d.ts +0 -2
  252. package/dist/components/features/WorkspacesGrid/WorkspaceList.d.ts.map +0 -1
  253. package/dist/components/features/WorkspacesGrid/WorkspaceList.js +0 -10
  254. package/dist/components/features/WorkspacesGrid/WorkspaceList.js.map +0 -1
  255. package/dist/components/features/WorkspacesGrid/WorkspacesGrid.d.ts +0 -2
  256. package/dist/components/features/WorkspacesGrid/WorkspacesGrid.d.ts.map +0 -1
  257. package/dist/components/features/WorkspacesGrid/WorkspacesGrid.js +0 -10
  258. package/dist/components/features/WorkspacesGrid/WorkspacesGrid.js.map +0 -1
  259. package/dist/components/features/WorkspacesGrid/WorkspacesInfo.d.ts +0 -2
  260. package/dist/components/features/WorkspacesGrid/WorkspacesInfo.d.ts.map +0 -1
  261. package/dist/components/features/WorkspacesGrid/WorkspacesInfo.js +0 -11
  262. package/dist/components/features/WorkspacesGrid/WorkspacesInfo.js.map +0 -1
  263. package/dist/components/features/WorkspacesGrid/WorkspacesRow.d.ts +0 -8
  264. package/dist/components/features/WorkspacesGrid/WorkspacesRow.d.ts.map +0 -1
  265. package/dist/components/features/WorkspacesGrid/WorkspacesRow.js +0 -18
  266. package/dist/components/features/WorkspacesGrid/WorkspacesRow.js.map +0 -1
  267. package/dist/components/layouts/Footer/Footer.d.ts +0 -2
  268. package/dist/components/layouts/Footer/Footer.d.ts.map +0 -1
  269. package/dist/components/layouts/Footer/Footer.js +0 -7
  270. package/dist/components/layouts/Footer/Footer.js.map +0 -1
  271. package/dist/components/layouts/Header/WorkspaceCommands copy.d.ts +0 -2
  272. package/dist/components/layouts/Header/WorkspaceCommands copy.d.ts.map +0 -1
  273. package/dist/components/layouts/Header/WorkspaceCommands copy.js +0 -6
  274. package/dist/components/layouts/Header/WorkspaceCommands copy.js.map +0 -1
  275. package/dist/contexts/NavigationContext.d.ts +0 -27
  276. package/dist/contexts/NavigationContext.d.ts.map +0 -1
  277. package/dist/contexts/NavigationContext.js +0 -33
  278. package/dist/contexts/NavigationContext.js.map +0 -1
  279. package/dist/contexts/ProjectNavigationContext.d.ts +0 -20
  280. package/dist/contexts/ProjectNavigationContext.d.ts.map +0 -1
  281. package/dist/contexts/ProjectNavigationContext.js +0 -35
  282. package/dist/contexts/ProjectNavigationContext.js.map +0 -1
  283. package/dist/contexts/ResponsizeContext.d.ts +0 -14
  284. package/dist/contexts/ResponsizeContext.d.ts.map +0 -1
  285. package/dist/contexts/ResponsizeContext.js +0 -34
  286. package/dist/contexts/ResponsizeContext.js.map +0 -1
  287. package/dist/contexts/WorkspaceNavigationContext.d.ts +0 -29
  288. package/dist/contexts/WorkspaceNavigationContext.d.ts.map +0 -1
  289. package/dist/contexts/WorkspaceNavigationContext.js +0 -41
  290. package/dist/contexts/WorkspaceNavigationContext.js.map +0 -1
  291. package/dist/contexts/WorkspacesNavigationContext.d.ts +0 -29
  292. package/dist/contexts/WorkspacesNavigationContext.d.ts.map +0 -1
  293. package/dist/contexts/WorkspacesNavigationContext.js +0 -37
  294. package/dist/contexts/WorkspacesNavigationContext.js.map +0 -1
  295. package/dist/hooks/useDisovery.d.ts +0 -7
  296. package/dist/hooks/useDisovery.d.ts.map +0 -1
  297. package/dist/hooks/useDisovery.js +0 -38
  298. package/dist/hooks/useDisovery.js.map +0 -1
  299. package/dist/hooks/useGridNavigation.d.ts +0 -19
  300. package/dist/hooks/useGridNavigation.d.ts.map +0 -1
  301. package/dist/hooks/useGridNavigation.js +0 -52
  302. package/dist/hooks/useGridNavigation.js.map +0 -1
  303. package/dist/hooks/useNavigation.d.ts +0 -10
  304. package/dist/hooks/useNavigation.d.ts.map +0 -1
  305. package/dist/hooks/useNavigation.js +0 -43
  306. package/dist/hooks/useNavigation.js.map +0 -1
  307. package/dist/hooks/useNavigationMatrix.d.ts +0 -6
  308. package/dist/hooks/useNavigationMatrix.d.ts.map +0 -1
  309. package/dist/hooks/useNavigationMatrix.js +0 -34
  310. package/dist/hooks/useNavigationMatrix.js.map +0 -1
  311. package/dist/hooks/useRuntime.d.ts +0 -1
  312. package/dist/hooks/useRuntime.d.ts.map +0 -1
  313. package/dist/hooks/useRuntime.js +0 -2
  314. package/dist/hooks/useRuntime.js.map +0 -1
  315. package/dist/hooks/useWorkspaceNavigation.d.ts +0 -10
  316. package/dist/hooks/useWorkspaceNavigation.d.ts.map +0 -1
  317. package/dist/hooks/useWorkspaceNavigation.js +0 -31
  318. package/dist/hooks/useWorkspaceNavigation.js.map +0 -1
  319. package/dist/hooks/useWorkspaceQuickActionts.d.ts +0 -4
  320. package/dist/hooks/useWorkspaceQuickActionts.d.ts.map +0 -1
  321. package/dist/hooks/useWorkspaceQuickActionts.js +0 -28
  322. package/dist/hooks/useWorkspaceQuickActionts.js.map +0 -1
  323. package/dist/hooks/useWorkspacesGrid copy.d.ts +0 -10
  324. package/dist/hooks/useWorkspacesGrid copy.d.ts.map +0 -1
  325. package/dist/hooks/useWorkspacesGrid copy.js +0 -31
  326. package/dist/hooks/useWorkspacesGrid copy.js.map +0 -1
  327. package/dist/hooks/useWorkspacesGrid.d.ts +0 -11
  328. package/dist/hooks/useWorkspacesGrid.d.ts.map +0 -1
  329. package/dist/hooks/useWorkspacesGrid.js +0 -31
  330. package/dist/hooks/useWorkspacesGrid.js.map +0 -1
  331. package/dist/hooks/useWorkspacesNavigation.d.ts +0 -10
  332. package/dist/hooks/useWorkspacesNavigation.d.ts.map +0 -1
  333. package/dist/hooks/useWorkspacesNavigation.js +0 -31
  334. package/dist/hooks/useWorkspacesNavigation.js.map +0 -1
  335. package/dist/services/discovery/facets/biome-parser.d.ts +0 -3
  336. package/dist/services/discovery/facets/biome-parser.d.ts.map +0 -1
  337. package/dist/services/discovery/facets/biome-parser.js +0 -73
  338. package/dist/services/discovery/facets/biome-parser.js.map +0 -1
  339. package/dist/services/discovery/facets/composeParser.d.ts +0 -1
  340. package/dist/services/discovery/facets/composeParser.d.ts.map +0 -1
  341. package/dist/services/discovery/facets/composeParser.js +0 -2
  342. package/dist/services/discovery/facets/composeParser.js.map +0 -1
  343. package/dist/services/discovery/facets/makefileParser.d.ts +0 -1
  344. package/dist/services/discovery/facets/makefileParser.d.ts.map +0 -1
  345. package/dist/services/discovery/facets/makefileParser.js +0 -2
  346. package/dist/services/discovery/facets/makefileParser.js.map +0 -1
  347. package/dist/services/discovery/facets/manifest-parser.d.ts +0 -7
  348. package/dist/services/discovery/facets/manifest-parser.d.ts.map +0 -1
  349. package/dist/services/discovery/facets/manifest-parser.js +0 -43
  350. package/dist/services/discovery/facets/manifest-parser.js.map +0 -1
  351. package/dist/services/discovery/facets/manifestParser.d.ts +0 -1
  352. package/dist/services/discovery/facets/manifestParser.d.ts.map +0 -1
  353. package/dist/services/discovery/facets/manifestParser.js +0 -2
  354. package/dist/services/discovery/facets/manifestParser.js.map +0 -1
  355. package/dist/services/discovery/workspaceDiscovery.d.ts +0 -3
  356. package/dist/services/discovery/workspaceDiscovery.d.ts.map +0 -1
  357. package/dist/services/discovery/workspaceDiscovery.js +0 -17
  358. package/dist/services/discovery/workspaceDiscovery.js.map +0 -1
  359. package/dist/services/runtime/resolve-runtime-conflicts.d.ts +0 -15
  360. package/dist/services/runtime/resolve-runtime-conflicts.d.ts.map +0 -1
  361. package/dist/services/runtime/resolve-runtime-conflicts.js +0 -36
  362. package/dist/services/runtime/resolve-runtime-conflicts.js.map +0 -1
  363. package/dist/types/navigation.d.ts +0 -10
  364. package/dist/types/navigation.d.ts.map +0 -1
  365. package/dist/types/navigation.js +0 -59
  366. package/dist/types/navigation.js.map +0 -1
  367. package/dist/types/projects-grid.d.ts +0 -32
  368. package/dist/types/projects-grid.d.ts.map +0 -1
  369. package/dist/types/projects-grid.js +0 -2
  370. package/dist/types/projects-grid.js.map +0 -1
  371. package/dist/types/quick-actions.d.ts +0 -7
  372. package/dist/types/quick-actions.d.ts.map +0 -1
  373. package/dist/types/quick-actions.js +0 -2
  374. package/dist/types/quick-actions.js.map +0 -1
  375. package/dist/types/runtime.d.ts +0 -16
  376. package/dist/types/runtime.d.ts.map +0 -1
  377. package/dist/types/runtime.js +0 -2
  378. package/dist/types/runtime.js.map +0 -1
  379. package/dist/types/workpace-grid.d.ts +0 -32
  380. package/dist/types/workpace-grid.d.ts.map +0 -1
  381. package/dist/types/workpace-grid.js +0 -2
  382. package/dist/types/workpace-grid.js.map +0 -1
  383. package/dist/types/workspace-navigation.d.ts +0 -37
  384. package/dist/types/workspace-navigation.d.ts.map +0 -1
  385. package/dist/types/workspace-navigation.js +0 -7
  386. package/dist/types/workspace-navigation.js.map +0 -1
  387. package/dist/types/workspaces-grid copy.d.ts +0 -37
  388. package/dist/types/workspaces-grid copy.d.ts.map +0 -1
  389. package/dist/types/workspaces-grid copy.js +0 -7
  390. package/dist/types/workspaces-grid copy.js.map +0 -1
  391. package/dist/types/workspaces-grid.d.ts +0 -37
  392. package/dist/types/workspaces-grid.d.ts.map +0 -1
  393. package/dist/types/workspaces-grid.js +0 -7
  394. package/dist/types/workspaces-grid.js.map +0 -1
  395. package/dist/types/worspace-state.d.ts +0 -19
  396. package/dist/types/worspace-state.d.ts.map +0 -1
  397. package/dist/types/worspace-state.js +0 -2
  398. package/dist/types/worspace-state.js.map +0 -1
  399. package/dist/utils/framework-detector.d.ts +0 -7
  400. package/dist/utils/framework-detector.d.ts.map +0 -1
  401. package/dist/utils/framework-detector.js +0 -111
  402. package/dist/utils/framework-detector.js.map +0 -1
  403. package/dist/utils/fs/scanner.d.ts +0 -6
  404. package/dist/utils/fs/scanner.d.ts.map +0 -1
  405. package/dist/utils/fs/scanner.js +0 -32
  406. package/dist/utils/fs/scanner.js.map +0 -1
  407. package/dist/utils/getPackageVersion.d.ts +0 -2
  408. package/dist/utils/getPackageVersion.d.ts.map +0 -1
  409. package/dist/utils/getPackageVersion.js +0 -6
  410. package/dist/utils/getPackageVersion.js.map +0 -1
  411. package/dist/utils/logger.d.ts +0 -14
  412. package/dist/utils/logger.d.ts.map +0 -1
  413. package/dist/utils/logger.js +0 -99
  414. package/dist/utils/logger.js.map +0 -1
  415. package/dist/utils/navigation-helper.d.ts +0 -9
  416. package/dist/utils/navigation-helper.d.ts.map +0 -1
  417. package/dist/utils/navigation-helper.js +0 -53
  418. package/dist/utils/navigation-helper.js.map +0 -1
  419. package/dist/utils/package-json.d.ts +0 -2
  420. package/dist/utils/package-json.d.ts.map +0 -1
  421. package/dist/utils/package-json.js +0 -11
  422. package/dist/utils/package-json.js.map +0 -1
  423. package/dist/utils/port.d.ts +0 -6
  424. package/dist/utils/port.d.ts.map +0 -1
  425. package/dist/utils/port.js +0 -24
  426. package/dist/utils/port.js.map +0 -1
  427. package/dist/utils/project/workspace-grid.d.ts +0 -17
  428. package/dist/utils/project/workspace-grid.d.ts.map +0 -1
  429. package/dist/utils/project/workspace-grid.js +0 -121
  430. package/dist/utils/project/workspace-grid.js.map +0 -1
  431. package/dist/utils/workpace/workspace-grid.d.ts +0 -17
  432. package/dist/utils/workpace/workspace-grid.d.ts.map +0 -1
  433. package/dist/utils/workpace/workspace-grid.js +0 -121
  434. package/dist/utils/workpace/workspace-grid.js.map +0 -1
  435. package/dist/utils/workpace/workspace-helper.d.ts +0 -7
  436. package/dist/utils/workpace/workspace-helper.d.ts.map +0 -1
  437. package/dist/utils/workpace/workspace-helper.js +0 -10
  438. package/dist/utils/workpace/workspace-helper.js.map +0 -1
  439. package/dist/utils/workpace/workspace-navigation.d.ts +0 -17
  440. package/dist/utils/workpace/workspace-navigation.d.ts.map +0 -1
  441. package/dist/utils/workpace/workspace-navigation.js +0 -123
  442. package/dist/utils/workpace/workspace-navigation.js.map +0 -1
  443. package/dist/utils/workpace/workspaces-grid copy.d.ts +0 -30
  444. package/dist/utils/workpace/workspaces-grid copy.d.ts.map +0 -1
  445. package/dist/utils/workpace/workspaces-grid copy.js +0 -97
  446. package/dist/utils/workpace/workspaces-grid copy.js.map +0 -1
  447. package/dist/utils/workpace/workspaces-grid.d.ts +0 -22
  448. package/dist/utils/workpace/workspaces-grid.d.ts.map +0 -1
  449. package/dist/utils/workpace/workspaces-grid.js +0 -123
  450. package/dist/utils/workpace/workspaces-grid.js.map +0 -1
  451. package/dist/utils/workpace/worspace-state.d.ts +0 -18
  452. package/dist/utils/workpace/worspace-state.d.ts.map +0 -1
  453. package/dist/utils/workpace/worspace-state.js +0 -2
  454. package/dist/utils/workpace/worspace-state.js.map +0 -1
  455. package/dist/utils/workspace/workspaces-grid.d.ts +0 -22
  456. package/dist/utils/workspace/workspaces-grid.d.ts.map +0 -1
  457. package/dist/utils/workspace/workspaces-grid.js +0 -123
  458. package/dist/utils/workspace/workspaces-grid.js.map +0 -1
  459. package/dist/utils/workspace-helper.d.ts +0 -10
  460. package/dist/utils/workspace-helper.d.ts.map +0 -1
  461. package/dist/utils/workspace-helper.js +0 -46
  462. package/dist/utils/workspace-helper.js.map +0 -1
  463. package/dist/utils/workspace-navigation.d.ts +0 -1
  464. package/dist/utils/workspace-navigation.d.ts.map +0 -1
  465. package/dist/utils/workspace-navigation.js +0 -2
  466. package/dist/utils/workspace-navigation.js.map +0 -1
  467. package/src/utils/navigation/grid-navigation.ts +0 -60
@@ -1,32 +0,0 @@
1
- import { readdir } from "node:fs/promises";
2
- import { join } from "node:path";
3
- export async function scanDirectories(rootDir, options) {
4
- const directories = [];
5
- async function scan(dir, depth) {
6
- if (depth > options.maxDepth)
7
- return;
8
- try {
9
- const entries = await readdir(dir, { withFileTypes: true });
10
- for (const entry of entries) {
11
- // Skip ignored directories
12
- if (options.ignore.includes(entry.name))
13
- continue;
14
- if (entry.name.startsWith("."))
15
- continue;
16
- if (entry.isDirectory()) {
17
- const fullPath = join(dir, entry.name);
18
- directories.push(fullPath);
19
- await scan(fullPath, depth + 1);
20
- }
21
- }
22
- }
23
- catch {
24
- // Skip directories we can't read
25
- }
26
- }
27
- // Add root directory
28
- directories.push(rootDir);
29
- await scan(rootDir, 0);
30
- return directories;
31
- }
32
- //# sourceMappingURL=scanner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/utils/fs/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAOhC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,OAAoB;IAEpB,MAAM,WAAW,GAAa,EAAE,CAAA;IAEhC,KAAK,UAAU,IAAI,CAAC,GAAW,EAAE,KAAa;QAC5C,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ;YAAE,OAAM;QAEpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;YAE3D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,2BAA2B;gBAC3B,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,SAAQ;gBACjD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAQ;gBAExC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;oBACtC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAC1B,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAEtB,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function getPackageVersion(): Promise<string>;
2
- //# sourceMappingURL=getPackageVersion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPackageVersion.d.ts","sourceRoot":"","sources":["../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAEA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAGzD"}
@@ -1,6 +0,0 @@
1
- import { readPackage } from "read-pkg";
2
- export async function getPackageVersion() {
3
- const pkg = await readPackage();
4
- return pkg.version;
5
- }
6
- //# sourceMappingURL=getPackageVersion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPackageVersion.js","sourceRoot":"","sources":["../../src/utils/getPackageVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,GAAG,GAAG,MAAM,WAAW,EAAE,CAAA;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC"}
@@ -1,14 +0,0 @@
1
- import { type Logger } from "pino";
2
- import type { Config } from "../types/config";
3
- /**
4
- * Initialize logger based on configuration
5
- * Must be called once at startup before using logger
6
- */
7
- export declare function initLogger(config: Config): Logger;
8
- export declare const logger: {
9
- debug: (obj: unknown, msg?: string) => void;
10
- info: (obj: unknown, msg?: string) => void;
11
- warn: (obj: unknown, msg?: string) => void;
12
- error: (obj: unknown, msg?: string) => void;
13
- };
14
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,MAAM,EAAQ,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAuDjD;AAOD,eAAO,MAAM,MAAM;iBACJ,OAAO,QAAQ,MAAM;gBAOtB,OAAO,QAAQ,MAAM;gBAOrB,OAAO,QAAQ,MAAM;iBAOpB,OAAO,QAAQ,MAAM;CAOnC,CAAA"}
@@ -1,99 +0,0 @@
1
- import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { join } from "node:path";
4
- import { pino } from "pino";
5
- /**
6
- * Initialize logger based on configuration
7
- * Must be called once at startup before using logger
8
- */
9
- export function initLogger(config) {
10
- const loggingConfig = config.logging || {};
11
- const level = loggingConfig.level || "info";
12
- const enableFile = loggingConfig.file !== false;
13
- const truncateOnStart = loggingConfig.truncateOnStart !== false;
14
- const logDir = loggingConfig.logDir
15
- ? loggingConfig.logDir.replace(/^~/, homedir())
16
- : join(homedir(), ".workspace-cli", "logs");
17
- if (enableFile) {
18
- const logFilePath = join(logDir, "workspace-cli.log");
19
- // Truncate log file if configured
20
- if (truncateOnStart) {
21
- if (!existsSync(logDir)) {
22
- mkdirSync(logDir, { recursive: true });
23
- }
24
- writeFileSync(logFilePath, "", "utf-8");
25
- }
26
- const usePretty = loggingConfig.prettyPrint === true;
27
- _logger = pino({
28
- level,
29
- transport: {
30
- target: usePretty ? "pino-pretty" : "pino/file",
31
- options: {
32
- destination: logFilePath,
33
- mkdir: true,
34
- ...(usePretty && {
35
- colorize: false,
36
- translateTime: "SYS:standard",
37
- ignore: "pid,hostname",
38
- }),
39
- },
40
- },
41
- });
42
- }
43
- else {
44
- // Create a minimal logger that writes to stderr (above Ink UI)
45
- // stderr doesn't interfere with Ink's stdout rendering
46
- _logger = pino({
47
- level,
48
- transport: {
49
- target: "pino-pretty",
50
- options: {
51
- destination: 2, // stderr (file descriptor 2)
52
- colorize: true,
53
- translateTime: "HH:MM:ss",
54
- ignore: "pid,hostname",
55
- },
56
- },
57
- });
58
- }
59
- return _logger;
60
- }
61
- // Singleton logger instance - starts as no-op
62
- let _logger = pino({ level: "silent" });
63
- const _useConsole = false;
64
- // Export the logger directly - pino already has all the methods
65
- export const logger = {
66
- debug: (obj, msg) => {
67
- if (_useConsole) {
68
- console.log("[DEBUG]", ...(msg ? [msg] : []), obj);
69
- }
70
- else {
71
- _logger.debug(obj, msg);
72
- }
73
- },
74
- info: (obj, msg) => {
75
- if (_useConsole) {
76
- console.log("[INFO]", ...(msg ? [msg] : []), obj);
77
- }
78
- else {
79
- _logger.info(obj, msg);
80
- }
81
- },
82
- warn: (obj, msg) => {
83
- if (_useConsole) {
84
- console.log("[WARN]", ...(msg ? [msg] : []), obj);
85
- }
86
- else {
87
- _logger.warn(obj, msg);
88
- }
89
- },
90
- error: (obj, msg) => {
91
- if (_useConsole) {
92
- console.log("[ERROR]", ...(msg ? [msg] : []), obj);
93
- }
94
- else {
95
- _logger.error(obj, msg);
96
- }
97
- },
98
- };
99
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { WorkspacesNavigationGrid } from "../types/workspace-grid";
2
- export declare function findNextPosition(grid: WorkspacesNavigationGrid, position: {
3
- row: number;
4
- col: number;
5
- }, direction: "up" | "down" | "left" | "right"): {
6
- row: number;
7
- col: number;
8
- };
9
- //# sourceMappingURL=navigation-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-helper.d.ts","sourceRoot":"","sources":["../../src/utils/navigation-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,wBAAwB,EAC9B,QAAQ,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACtC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAC1C;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAqD9B"}
@@ -1,53 +0,0 @@
1
- export function findNextPosition(grid, position, direction) {
2
- const numRows = grid.length;
3
- const numCols = grid[0]?.cells.length || 0;
4
- const { row, col } = position;
5
- function isValid(r, c) {
6
- const navRow = grid[r];
7
- return (r >= 0 &&
8
- r < numRows &&
9
- c >= 0 &&
10
- c < (navRow?.cells.length || 0) &&
11
- navRow?.cells[c] !== null &&
12
- navRow?.cells[c] !== undefined);
13
- }
14
- let nextRow = row;
15
- let nextCol = col;
16
- let found = false;
17
- let attempts = 0;
18
- const maxAttempts = numRows * numCols;
19
- while (!found && attempts < maxAttempts) {
20
- switch (direction) {
21
- case "up":
22
- nextRow = (nextRow - 1 + numRows) % numRows;
23
- break;
24
- case "down":
25
- nextRow = (nextRow + 1) % numRows;
26
- break;
27
- case "left":
28
- nextCol = (nextCol - 1 + numCols) % numCols;
29
- break;
30
- case "right":
31
- nextCol = (nextCol + 1) % numCols;
32
- break;
33
- }
34
- if (isValid(nextRow, nextCol)) {
35
- found = true;
36
- }
37
- else {
38
- // If moving left/right, stay in the same row; if up/down, stay in the same col
39
- if (direction === "left" || direction === "right") {
40
- // wrap around row if needed
41
- if (nextCol === col)
42
- break;
43
- }
44
- else {
45
- if (nextRow === row)
46
- break;
47
- }
48
- }
49
- attempts++;
50
- }
51
- return { row: nextRow, col: nextCol };
52
- }
53
- //# sourceMappingURL=navigation-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-helper.js","sourceRoot":"","sources":["../../src/utils/navigation-helper.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gBAAgB,CAC9B,IAA8B,EAC9B,QAAsC,EACtC,SAA2C;IAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAA;IAC1C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAA;IAE7B,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,OAAO,CACL,CAAC,IAAI,CAAC;YACN,CAAC,GAAG,OAAO;YACX,CAAC,IAAI,CAAC;YACN,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YAC/B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI;YACzB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAC/B,CAAA;IACH,CAAC;IAED,IAAI,OAAO,GAAG,GAAG,CAAA;IACjB,IAAI,OAAO,GAAG,GAAG,CAAA;IACjB,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAA;IAErC,OAAO,CAAC,KAAK,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;QACxC,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAA;gBAC3C,MAAK;YACP,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAA;gBACjC,MAAK;YACP,KAAK,MAAM;gBACT,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAA;gBAC3C,MAAK;YACP,KAAK,OAAO;gBACV,OAAO,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAA;gBACjC,MAAK;QACT,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9B,KAAK,GAAG,IAAI,CAAA;QACd,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAClD,4BAA4B;gBAC5B,IAAI,OAAO,KAAK,GAAG;oBAAE,MAAK;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,OAAO,KAAK,GAAG;oBAAE,MAAK;YAC5B,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAA;IACZ,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;AACvC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function getPackageVersion(): Promise<string>;
2
- //# sourceMappingURL=package-json.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAOA,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAIzD"}
@@ -1,11 +0,0 @@
1
- import path from "node:path";
2
- import { fileURLToPath } from "node:url";
3
- import { readPackage } from "read-pkg";
4
- const __filename = fileURLToPath(import.meta.url);
5
- const __dirname = path.dirname(__filename);
6
- export async function getPackageVersion() {
7
- const appPackageJsonPath = path.resolve(__dirname, "../../package.json");
8
- const pkg = await readPackage({ cwd: path.dirname(appPackageJsonPath) });
9
- return pkg.version;
10
- }
11
- //# sourceMappingURL=package-json.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/utils/package-json.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;IACxE,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;IACxE,OAAO,GAAG,CAAC,OAAO,CAAA;AACpB,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Check whether a TCP port is already in use on localhost.
3
- * Returns `true` if the port is taken, `false` if it is free.
4
- */
5
- export declare function isPortInUse(port: number): Promise<boolean>;
6
- //# sourceMappingURL=port.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/utils/port.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB1D"}
@@ -1,24 +0,0 @@
1
- import { createServer } from "node:net";
2
- /**
3
- * Check whether a TCP port is already in use on localhost.
4
- * Returns `true` if the port is taken, `false` if it is free.
5
- */
6
- export function isPortInUse(port) {
7
- return new Promise((resolve) => {
8
- const server = createServer();
9
- server.once("error", (err) => {
10
- if (err.code === "EADDRINUSE") {
11
- resolve(true);
12
- }
13
- else {
14
- // Unexpected error — treat as in use to be safe
15
- resolve(true);
16
- }
17
- });
18
- server.once("listening", () => {
19
- server.close(() => resolve(false));
20
- });
21
- server.listen(port, "127.0.0.1");
22
- });
23
- }
24
- //# sourceMappingURL=port.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"port.js","sourceRoot":"","sources":["../../src/utils/port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;QAE7B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;YAClD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,17 +0,0 @@
1
- import type { Project } from "../../types/project.js";
2
- import { type ProjectNavigationCell, type ProjectNavigationGrid } from "../../types/project-grid.js";
3
- export declare function buildProjectNavigationGrid(workspace: Project): ProjectNavigationGrid;
4
- /**
5
- * Returns the cell at the given position from the grid.
6
- */
7
- export declare function getWorkspaceCellByPosition(grid: ProjectNavigationGrid, row: number, col: number): ProjectNavigationCell | null;
8
- /**
9
- * Returns the maximum row count across all columns.
10
- */
11
- export declare function getMaxRows(grid: ProjectNavigationGrid): number;
12
- /**
13
- * Returns all cells for a given column.
14
- */
15
- export declare function getCellsByColumn(grid: ProjectNavigationGrid, col: number): ProjectNavigationCell[];
16
- export declare function getCellLabel(cell: ProjectNavigationCell): string;
17
- //# sourceMappingURL=workspace-grid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-grid.d.ts","sourceRoot":"","sources":["../../../src/utils/project/workspace-grid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AAEpC,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,OAAO,GACjB,qBAAqB,CA+FvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,qBAAqB,EAC3B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,qBAAqB,GAAG,IAAI,CAS9B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAM9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,qBAAqB,EAC3B,GAAG,EAAE,MAAM,GACV,qBAAqB,EAAE,CAQzB;AASD,wBAAgB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAEhE"}
@@ -1,121 +0,0 @@
1
- import path from "node:path";
2
- import { COMPOSE_COMMANDS, } from "../../types/project-grid.js";
3
- export function buildProjectNavigationGrid(workspace) {
4
- const makefileCells = [];
5
- const packageJsonCells = [];
6
- const composeCommandCells = [];
7
- const composeServiceCells = [];
8
- const makefileCommands = workspace.facets.makefile?.commands ?? [];
9
- const scripts = workspace.facets.packageJson?.scripts ?? [];
10
- const services = workspace.facets.compose?.services ?? [];
11
- const hasCompose = services.length > 0;
12
- // Assign column indices dynamically, skipping empty facets
13
- let nextCol = 0;
14
- const makefileCol = makefileCommands.length > 0 ? nextCol++ : -1;
15
- const packageJsonCol = scripts.length > 0 ? nextCol++ : -1;
16
- const composeCol = hasCompose ? nextCol++ : -1;
17
- // Always show compose commands if column exists (even without services)
18
- // but only create the column if there are services
19
- const maxCol = Math.max(nextCol - 1, 0);
20
- // Column: Makefile commands
21
- if (makefileCol >= 0) {
22
- for (let i = 0; i < makefileCommands.length; i++) {
23
- makefileCells.push({
24
- type: "makefile",
25
- filepath: path.join(workspace.path, workspace.facets.makefile?.filename ?? ""),
26
- row: i,
27
- col: makefileCol,
28
- command: makefileCommands[i],
29
- });
30
- }
31
- }
32
- // Column: Package.json scripts
33
- if (packageJsonCol >= 0) {
34
- for (let i = 0; i < scripts.length; i++) {
35
- packageJsonCells.push({
36
- type: "packageJson",
37
- filepath: path.join(workspace.path, workspace.facets.packageJson?.filename ?? ""),
38
- row: i,
39
- col: packageJsonCol,
40
- script: scripts[i],
41
- });
42
- }
43
- }
44
- // Column: Compose commands + services
45
- if (composeCol >= 0) {
46
- let composeRow = 0;
47
- for (const command of COMPOSE_COMMANDS) {
48
- composeCommandCells.push({
49
- type: "composeCommand",
50
- filepath: path.join(workspace.path, workspace.facets.compose?.filename ?? ""),
51
- row: composeRow,
52
- col: composeCol,
53
- action: {
54
- name: command,
55
- command: `docker compose ${command}`,
56
- },
57
- });
58
- composeRow++;
59
- }
60
- for (const service of services) {
61
- composeServiceCells.push({
62
- type: "composeService",
63
- filepath: path.join(workspace.path, workspace.facets.compose?.filename ?? ""),
64
- row: composeRow,
65
- col: composeCol,
66
- service,
67
- });
68
- composeRow++;
69
- }
70
- }
71
- return {
72
- makefileCells,
73
- packageJsonCells,
74
- composeCommandCells,
75
- composeServiceCells,
76
- maxCol,
77
- };
78
- }
79
- /**
80
- * Returns the cell at the given position from the grid.
81
- */
82
- export function getWorkspaceCellByPosition(grid, row, col) {
83
- const allCells = [
84
- ...grid.makefileCells,
85
- ...grid.packageJsonCells,
86
- ...grid.composeCommandCells,
87
- ...grid.composeServiceCells,
88
- ];
89
- return allCells.find((cell) => cell.row === row && cell.col === col) ?? null;
90
- }
91
- /**
92
- * Returns the maximum row count across all columns.
93
- */
94
- export function getMaxRows(grid) {
95
- const col0Max = grid.makefileCells.length;
96
- const col1Max = grid.packageJsonCells.length;
97
- const col2Max = grid.composeCommandCells.length + grid.composeServiceCells.length;
98
- return Math.max(col0Max, col1Max, col2Max);
99
- }
100
- /**
101
- * Returns all cells for a given column.
102
- */
103
- export function getCellsByColumn(grid, col) {
104
- const allCells = [
105
- ...grid.makefileCells,
106
- ...grid.packageJsonCells,
107
- ...grid.composeCommandCells,
108
- ...grid.composeServiceCells,
109
- ];
110
- return allCells.filter((cell) => cell.col === col);
111
- }
112
- const CELL_TYPE_LABELS = {
113
- makefile: "Makefile",
114
- packageJson: "Package.json",
115
- composeCommand: "Docker Compose",
116
- composeService: "Docker Service",
117
- };
118
- export function getCellLabel(cell) {
119
- return `${CELL_TYPE_LABELS[cell.type]} - ${cell.filepath}`;
120
- }
121
- //# sourceMappingURL=workspace-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-grid.js","sourceRoot":"","sources":["../../../src/utils/project/workspace-grid.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { Project } from "../../types/project.js";
2
- import { type ProjectNavigationCell, type ProjectNavigationGrid } from "../../types/project-grid.js";
3
- export declare function buildProjectNavigationGrid(workspace: Project): ProjectNavigationGrid;
4
- /**
5
- * Returns the cell at the given position from the grid.
6
- */
7
- export declare function getWorkspaceCellByPosition(grid: ProjectNavigationGrid, row: number, col: number): ProjectNavigationCell | null;
8
- /**
9
- * Returns the maximum row count across all columns.
10
- */
11
- export declare function getMaxRows(grid: ProjectNavigationGrid): number;
12
- /**
13
- * Returns all cells for a given column.
14
- */
15
- export declare function getCellsByColumn(grid: ProjectNavigationGrid, col: number): ProjectNavigationCell[];
16
- export declare function getCellLabel(cell: ProjectNavigationCell): string;
17
- //# sourceMappingURL=workspace-grid.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-grid.d.ts","sourceRoot":"","sources":["../../../src/utils/workpace/workspace-grid.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAA;AAEpC,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,OAAO,GACjB,qBAAqB,CA+FvB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,qBAAqB,EAC3B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,qBAAqB,GAAG,IAAI,CAS9B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAM9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,qBAAqB,EAC3B,GAAG,EAAE,MAAM,GACV,qBAAqB,EAAE,CAQzB;AASD,wBAAgB,YAAY,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAEhE"}
@@ -1,121 +0,0 @@
1
- import path from "node:path";
2
- import { COMPOSE_COMMANDS, } from "../../types/project-grid.js";
3
- export function buildProjectNavigationGrid(workspace) {
4
- const makefileCells = [];
5
- const packageJsonCells = [];
6
- const composeCommandCells = [];
7
- const composeServiceCells = [];
8
- const makefileCommands = workspace.facets.makefile?.commands ?? [];
9
- const scripts = workspace.facets.packageJson?.scripts ?? [];
10
- const services = workspace.facets.compose?.services ?? [];
11
- const hasCompose = services.length > 0;
12
- // Assign column indices dynamically, skipping empty facets
13
- let nextCol = 0;
14
- const makefileCol = makefileCommands.length > 0 ? nextCol++ : -1;
15
- const packageJsonCol = scripts.length > 0 ? nextCol++ : -1;
16
- const composeCol = hasCompose ? nextCol++ : -1;
17
- // Always show compose commands if column exists (even without services)
18
- // but only create the column if there are services
19
- const maxCol = Math.max(nextCol - 1, 0);
20
- // Column: Makefile commands
21
- if (makefileCol >= 0) {
22
- for (let i = 0; i < makefileCommands.length; i++) {
23
- makefileCells.push({
24
- type: "makefile",
25
- filepath: path.join(workspace.path, workspace.facets.makefile?.filename ?? ""),
26
- row: i,
27
- col: makefileCol,
28
- command: makefileCommands[i],
29
- });
30
- }
31
- }
32
- // Column: Package.json scripts
33
- if (packageJsonCol >= 0) {
34
- for (let i = 0; i < scripts.length; i++) {
35
- packageJsonCells.push({
36
- type: "packageJson",
37
- filepath: path.join(workspace.path, workspace.facets.packageJson?.filename ?? ""),
38
- row: i,
39
- col: packageJsonCol,
40
- script: scripts[i],
41
- });
42
- }
43
- }
44
- // Column: Compose commands + services
45
- if (composeCol >= 0) {
46
- let composeRow = 0;
47
- for (const command of COMPOSE_COMMANDS) {
48
- composeCommandCells.push({
49
- type: "composeCommand",
50
- filepath: path.join(workspace.path, workspace.facets.compose?.filename ?? ""),
51
- row: composeRow,
52
- col: composeCol,
53
- action: {
54
- name: command,
55
- command: `docker compose ${command}`,
56
- },
57
- });
58
- composeRow++;
59
- }
60
- for (const service of services) {
61
- composeServiceCells.push({
62
- type: "composeService",
63
- filepath: path.join(workspace.path, workspace.facets.compose?.filename ?? ""),
64
- row: composeRow,
65
- col: composeCol,
66
- service,
67
- });
68
- composeRow++;
69
- }
70
- }
71
- return {
72
- makefileCells,
73
- packageJsonCells,
74
- composeCommandCells,
75
- composeServiceCells,
76
- maxCol,
77
- };
78
- }
79
- /**
80
- * Returns the cell at the given position from the grid.
81
- */
82
- export function getWorkspaceCellByPosition(grid, row, col) {
83
- const allCells = [
84
- ...grid.makefileCells,
85
- ...grid.packageJsonCells,
86
- ...grid.composeCommandCells,
87
- ...grid.composeServiceCells,
88
- ];
89
- return allCells.find((cell) => cell.row === row && cell.col === col) ?? null;
90
- }
91
- /**
92
- * Returns the maximum row count across all columns.
93
- */
94
- export function getMaxRows(grid) {
95
- const col0Max = grid.makefileCells.length;
96
- const col1Max = grid.packageJsonCells.length;
97
- const col2Max = grid.composeCommandCells.length + grid.composeServiceCells.length;
98
- return Math.max(col0Max, col1Max, col2Max);
99
- }
100
- /**
101
- * Returns all cells for a given column.
102
- */
103
- export function getCellsByColumn(grid, col) {
104
- const allCells = [
105
- ...grid.makefileCells,
106
- ...grid.packageJsonCells,
107
- ...grid.composeCommandCells,
108
- ...grid.composeServiceCells,
109
- ];
110
- return allCells.filter((cell) => cell.col === col);
111
- }
112
- const CELL_TYPE_LABELS = {
113
- makefile: "Makefile",
114
- packageJson: "Package.json",
115
- composeCommand: "Docker Compose",
116
- composeService: "Docker Service",
117
- };
118
- export function getCellLabel(cell) {
119
- return `${CELL_TYPE_LABELS[cell.type]} - ${cell.filepath}`;
120
- }
121
- //# sourceMappingURL=workspace-grid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-grid.js","sourceRoot":"","sources":["../../../src/utils/workpace/workspace-grid.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { Project } from "../../types/project.js";
2
- import type { WorkspaceQuickAction } from "../../types/workspace-quick-actions.js";
3
- import type { WorkspaceRuntimeState } from "../../types/workspace-runtime.js";
4
- export declare function getQuickActionByPath(quickActions: WorkspaceQuickAction[], path: string): WorkspaceQuickAction | undefined;
5
- export declare function getRuntimeByPath(runtimes: WorkspaceRuntimeState[], path: string): WorkspaceRuntimeState | undefined;
6
- export declare function getRootWorkspace(workspaces: Project[]): Project | undefined;
7
- //# sourceMappingURL=workspace-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/workpace/workspace-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAE7E,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,oBAAoB,EAAE,EACpC,IAAI,EAAE,MAAM,GACX,oBAAoB,GAAG,SAAS,CAElC;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,qBAAqB,EAAE,EACjC,IAAI,EAAE,MAAM,GACX,qBAAqB,GAAG,SAAS,CAEnC;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,SAAS,CAE3E"}