@k8slens/extensions 6.1.1-git.55960ef653.0 → 6.1.1-git.79efe1be29.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 (375) hide show
  1. package/dist/src/common/catalog/filtered-categories.injectable.d.ts +2 -0
  2. package/dist/src/common/cluster/cluster.d.ts +3 -1
  3. package/dist/src/common/cluster-store/get-by-id.injectable.d.ts +5 -0
  4. package/dist/src/common/cluster-types.d.ts +10 -0
  5. package/dist/src/common/fetch/fetch.global-override-for-injectable.d.ts +9 -0
  6. package/dist/src/common/fetch/fetch.injectable.d.ts +4 -0
  7. package/dist/src/common/front-end-routing/routes/cluster/config/runtime-classes/navigate-to-runtime-classes.injectable.d.ts +2 -0
  8. package/dist/src/common/front-end-routing/routes/cluster/config/runtime-classes/runtime-classes-route.injectable.d.ts +6 -0
  9. package/dist/src/common/fs/access-path.global-override-for-injectable.d.ts +9 -0
  10. package/dist/src/common/fs/access-path.injectable.d.ts +3 -0
  11. package/dist/src/common/fs/copy.global-override-for-injectable.d.ts +9 -0
  12. package/dist/src/common/fs/copy.injectable.d.ts +4 -0
  13. package/dist/src/common/fs/create-read-file-stream.injectable.d.ts +19 -0
  14. package/dist/src/common/fs/delete-file.global-override-for-injectable.d.ts +9 -0
  15. package/dist/src/common/fs/delete-file.injectable.d.ts +3 -0
  16. package/dist/src/common/fs/ensure-dir.global-override-for-injectable.d.ts +9 -0
  17. package/dist/src/common/fs/ensure-dir.injectable.d.ts +2 -1
  18. package/dist/src/common/fs/extract-tar.global-override-for-injectable.d.ts +9 -0
  19. package/dist/src/common/fs/extract-tar.injectable.d.ts +4 -0
  20. package/dist/src/common/fs/lstat.global-override-for-injectable.d.ts +9 -0
  21. package/dist/src/common/fs/lstat.injectable.d.ts +5 -0
  22. package/dist/src/common/fs/move.global-override-for-injectable.d.ts +9 -0
  23. package/dist/src/common/fs/move.injectable.d.ts +4 -0
  24. package/dist/src/common/fs/path-exists.global-override-for-injectable.d.ts +9 -0
  25. package/dist/src/common/fs/read-directory.global-override-for-injectable.d.ts +9 -0
  26. package/dist/src/common/fs/read-directory.injectable.d.ts +23 -0
  27. package/dist/src/common/fs/read-file.injectable.d.ts +2 -1
  28. package/dist/src/common/fs/remove-path.global-override-for-injectable.d.ts +9 -0
  29. package/dist/src/common/fs/remove-path.injectable.d.ts +3 -0
  30. package/dist/src/common/fs/stat/stat.global-override-for-injectable.d.ts +2 -2
  31. package/dist/src/common/fs/stat/stat.injectable.d.ts +4 -1
  32. package/dist/src/common/fs/watch/watch.injectable.d.ts +120 -2
  33. package/dist/src/common/fs/write-file.global-override-for-injectable.d.ts +9 -0
  34. package/dist/src/common/fs/write-file.injectable.d.ts +3 -1
  35. package/dist/src/common/ipc/cluster.d.ts +0 -3
  36. package/dist/src/common/k8s-api/__tests__/kube-api.test.d.ts +0 -4
  37. package/dist/src/common/k8s-api/api-base.d.ts +2 -2
  38. package/dist/src/common/k8s-api/api-kube.d.ts +0 -1
  39. package/dist/src/common/k8s-api/create-json-api.injectable.d.ts +6 -0
  40. package/dist/src/common/k8s-api/create-kube-api-for-cluster.injectable.d.ts +14 -0
  41. package/dist/src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.d.ts +30 -0
  42. package/dist/src/common/k8s-api/create-kube-json-api-for-cluster.injectable.d.ts +4 -0
  43. package/dist/src/common/k8s-api/create-kube-json-api.injectable.d.ts +6 -0
  44. package/dist/src/common/k8s-api/endpoints/cluster.api.d.ts +0 -16
  45. package/dist/src/common/k8s-api/endpoints/daemon-set.api.d.ts +0 -2
  46. package/dist/src/common/k8s-api/endpoints/deployment.api.d.ts +1 -2
  47. package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-charts.injectable.d.ts +9 -0
  48. package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-readme.injectable.d.ts +3 -0
  49. package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-values.injectable.d.ts +3 -0
  50. package/dist/src/common/k8s-api/endpoints/helm-charts.api/request-versions.injectable.d.ts +4 -0
  51. package/dist/src/common/k8s-api/endpoints/helm-charts.api.d.ts +0 -29
  52. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-configuration.global-override-for-injectable.d.ts +9 -0
  53. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-configuration.injectable.d.ts +3 -0
  54. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-create.injectable.d.ts +12 -0
  55. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-delete.injectable.d.ts +3 -0
  56. package/dist/src/{renderer/components/+helm-releases/release-details/release-details-model/call-for-helm-release/call-for-helm-release-details/call-for-helm-release-details.injectable.d.ts → common/k8s-api/endpoints/helm-releases.api/request-details.injectable.d.ts} +3 -3
  57. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-history.injectable.d.ts +11 -0
  58. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-releases.injectable.d.ts +4 -0
  59. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-rollback.injectable.d.ts +3 -0
  60. package/dist/src/{renderer/components/+helm-releases/update-release/call-for-helm-release-update/call-for-helm-release-update.injectable.d.ts → common/k8s-api/endpoints/helm-releases.api/request-update.injectable.d.ts} +3 -3
  61. package/dist/src/common/k8s-api/endpoints/helm-releases.api/request-values.injectable.d.ts +3 -0
  62. package/dist/src/common/k8s-api/endpoints/helm-releases.api.d.ts +1 -29
  63. package/dist/src/common/k8s-api/endpoints/index.d.ts +1 -0
  64. package/dist/src/common/k8s-api/endpoints/ingress.api.d.ts +0 -8
  65. package/dist/src/common/k8s-api/endpoints/job.api.d.ts +1 -2
  66. package/dist/src/common/k8s-api/endpoints/metrics.api/request-cluster-metrics-by-node-names.injectable.d.ts +22 -0
  67. package/dist/src/common/k8s-api/endpoints/metrics.api/request-ingress-metrics.injectable.d.ts +10 -0
  68. package/dist/src/common/k8s-api/endpoints/metrics.api/request-metrics-for-all-nodes.injectable.d.ts +14 -0
  69. package/dist/src/common/k8s-api/endpoints/metrics.api/request-metrics.injectable.d.ts +32 -0
  70. package/dist/src/common/k8s-api/endpoints/metrics.api/request-persistent-volume-claim-metrics.injectable.d.ts +9 -0
  71. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-daemon-sets.injectable.d.ts +14 -0
  72. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-deployments.injectable.d.ts +14 -0
  73. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-jobs.injectable.d.ts +14 -0
  74. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-replica-sets.injectable.d.ts +14 -0
  75. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-for-stateful-sets.injectable.d.ts +14 -0
  76. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics-in-namespace.injectable.d.ts +13 -0
  77. package/dist/src/common/k8s-api/endpoints/metrics.api/request-pod-metrics.injectable.d.ts +18 -0
  78. package/dist/src/common/k8s-api/endpoints/metrics.api/request-providers.injectable.d.ts +12 -0
  79. package/dist/src/common/k8s-api/endpoints/metrics.api.d.ts +2 -32
  80. package/dist/src/common/k8s-api/endpoints/namespace.api.d.ts +0 -2
  81. package/dist/src/common/k8s-api/endpoints/node.api.d.ts +0 -12
  82. package/dist/src/common/k8s-api/endpoints/persistent-volume-claim.api.d.ts +0 -6
  83. package/dist/src/common/k8s-api/endpoints/pod.api.d.ts +1 -15
  84. package/dist/src/common/k8s-api/endpoints/replica-set.api.d.ts +0 -2
  85. package/dist/src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.d.ts +5 -0
  86. package/dist/src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.d.ts +4 -0
  87. package/dist/src/common/k8s-api/endpoints/runtime-class.api.d.ts +37 -0
  88. package/dist/src/common/k8s-api/endpoints/runtime-class.api.injectable.d.ts +3 -0
  89. package/dist/src/common/k8s-api/endpoints/stateful-set.api.d.ts +0 -2
  90. package/dist/src/common/k8s-api/json-api.d.ts +8 -1
  91. package/dist/src/common/k8s-api/kube-api.d.ts +39 -42
  92. package/dist/src/common/k8s-api/kube-json-api.d.ts +0 -1
  93. package/dist/src/common/k8s-api/window-location.global-override-for-injectable.d.ts +15 -0
  94. package/dist/src/common/k8s-api/window-location.injectable.d.ts +5 -0
  95. package/dist/src/common/kube-helpers/load-config-from-file.injectable.d.ts +4 -0
  96. package/dist/src/common/kube-helpers.d.ts +0 -3
  97. package/dist/src/common/logger/prefixed-logger.injectable.d.ts +3 -0
  98. package/dist/src/common/os/home-directory-path.global-override-for-injectable.d.ts +9 -0
  99. package/dist/src/common/os/home-directory-path.injectable.d.ts +2 -0
  100. package/dist/src/common/os/temp-directory-path.global-override-for-injectable.d.ts +9 -0
  101. package/dist/src/common/os/temp-directory-path.injectable.d.ts +2 -0
  102. package/dist/src/common/path/get-absolute-path.global-override-for-injectable.d.ts +9 -0
  103. package/dist/src/common/path/get-basename.global-override-for-injectable.d.ts +9 -0
  104. package/dist/src/common/path/get-basename.injectable.d.ts +3 -0
  105. package/dist/src/common/path/get-dirname.global-override-for-injectable.d.ts +9 -0
  106. package/dist/src/common/path/get-dirname.injectable.d.ts +3 -0
  107. package/dist/src/common/path/get-relative-path.global-override-for-injectable.d.ts +9 -0
  108. package/dist/src/common/path/get-relative-path.injectable.d.ts +3 -0
  109. package/dist/src/common/{utils/paths.d.ts → path/is-logical-child-path.injectable.d.ts} +3 -7
  110. package/dist/src/common/path/join-paths.global-override-for-injectable.d.ts +9 -0
  111. package/dist/src/common/path/parse.global-override-for-injectable.d.ts +11 -0
  112. package/dist/src/common/path/parse.injectable.d.ts +4 -0
  113. package/dist/src/common/path/resolve-path.injectable.d.ts +3 -0
  114. package/dist/src/common/path/resolve-tilde.injectable.d.ts +3 -0
  115. package/dist/src/common/path/separator.global-override-for-injectable.d.ts +9 -0
  116. package/dist/src/common/path/separator.injectable.d.ts +2 -0
  117. package/dist/src/common/rbac.d.ts +1 -1
  118. package/dist/src/common/runnable/run-many-for.d.ts +2 -1
  119. package/dist/src/common/runnable/run-many-sync-for.d.ts +2 -1
  120. package/dist/src/common/runnable/throw-with-incorrect-hierarchy-for.d.ts +1 -1
  121. package/dist/src/common/user-store/kubeconfig-syncs.injectable.d.ts +2 -0
  122. package/dist/src/common/user-store/user-store.d.ts +0 -5
  123. package/dist/src/common/utils/buildUrl.d.ts +5 -0
  124. package/dist/src/common/utils/channel/request-from-channel-injection-token.d.ts +1 -1
  125. package/dist/src/common/utils/date/get-current-date-time.d.ts +2 -0
  126. package/dist/src/common/utils/index.d.ts +0 -1
  127. package/dist/src/common/utils/iter.d.ts +1 -0
  128. package/dist/src/common/utils/sort-compare.d.ts +7 -8
  129. package/dist/src/common/utils/tar.d.ts +0 -4
  130. package/dist/src/common/vars/is-debugging.global-override-for-injectable.d.ts +9 -0
  131. package/dist/src/common/vars/is-debugging.injectable.d.ts +2 -0
  132. package/dist/src/common/vars.d.ts +3 -0
  133. package/dist/src/extensions/common-api/k8s-api.d.ts +13 -1
  134. package/dist/src/extensions/extension-api.js +180 -114
  135. package/dist/src/extensions/extension-discovery/extension-discovery.d.ts +35 -9
  136. package/dist/src/extensions/extension-loader/extension-loader.d.ts +7 -1
  137. package/dist/src/features/cluster/delete-dialog/common/clear-as-deleting-channel.injectable.d.ts +5 -0
  138. package/dist/src/features/cluster/delete-dialog/common/delete-channel.injectable.d.ts +5 -0
  139. package/dist/src/features/cluster/delete-dialog/common/set-as-deleting-channel.injectable.d.ts +5 -0
  140. package/dist/src/{renderer/components/delete-cluster-dialog/__tests__ → features/cluster/delete-dialog}/delete-cluster-dialog.test.d.ts +0 -0
  141. package/dist/src/features/cluster/delete-dialog/main/clear-as-deleteing-channel-handler.injectable.d.ts +5 -0
  142. package/dist/src/features/cluster/delete-dialog/main/delete-channel-handler.injectable.d.ts +5 -0
  143. package/dist/src/features/cluster/delete-dialog/main/set-as-deleteing-channel-handler.injectable.d.ts +5 -0
  144. package/dist/src/features/cluster/delete-dialog/renderer/request-clear-as-deleting.injectable.d.ts +4 -0
  145. package/dist/src/features/cluster/delete-dialog/renderer/request-delete.injectable.d.ts +4 -0
  146. package/dist/src/features/cluster/delete-dialog/renderer/request-set-as-deleting.injectable.d.ts +4 -0
  147. package/dist/src/{renderer/api/index.d.ts → features/helm-charts/upgrade-chart/upgrade-chart-new-tab.test.d.ts} +1 -1
  148. package/dist/src/main/app-paths/setup-app-paths.injectable.d.ts +1 -0
  149. package/dist/src/main/application-update/emit-current-version-to-analytics.injectable.d.ts +1 -0
  150. package/dist/src/main/application-update/periodical-check-for-updates/start-checking-for-updates.injectable.d.ts +1 -0
  151. package/dist/src/main/application-update/periodical-check-for-updates/stop-checking-for-updates.injectable.d.ts +1 -0
  152. package/dist/src/main/application-update/watch-if-update-should-happen-on-quit/start-watching-if-update-should-happen-on-quit.injectable.d.ts +1 -0
  153. package/dist/src/main/application-update/watch-if-update-should-happen-on-quit/stop-watching-if-update-should-happen-on-quit.injectable.d.ts +1 -0
  154. package/dist/src/main/catalog-sources/kubeconfig-sync/compute-diff.injectable.d.ts +6 -0
  155. package/dist/src/main/catalog-sources/kubeconfig-sync/config-to-models.injectable.d.ts +9 -0
  156. package/dist/src/main/catalog-sources/kubeconfig-sync/diff-changed-kubeconfig.injectable.d.ts +15 -0
  157. package/dist/src/main/catalog-sources/kubeconfig-sync/logger.injectable.d.ts +2 -0
  158. package/dist/src/main/catalog-sources/kubeconfig-sync/manager.d.ts +7 -19
  159. package/dist/src/main/catalog-sources/kubeconfig-sync/watch-file-changes.injectable.d.ts +6 -0
  160. package/dist/src/main/catalog-sync-to-renderer/start-catalog-sync.injectable.d.ts +1 -0
  161. package/dist/src/main/catalog-sync-to-renderer/stop-catalog-sync.injectable.d.ts +1 -0
  162. package/dist/src/main/cluster/are-being-deleted.injectable.d.ts +2 -0
  163. package/dist/src/main/cluster/initialize-manager.injectable.d.ts +5 -0
  164. package/dist/src/main/{cluster-manager.d.ts → cluster/manager.d.ts} +11 -10
  165. package/dist/src/main/{cluster-manager.injectable.d.ts → cluster/manager.injectable.d.ts} +1 -1
  166. package/dist/src/main/electron-app/runnables/clean-up-deep-linking.injectable.d.ts +1 -0
  167. package/dist/src/main/electron-app/runnables/dock-visibility/hide-dock-for-last-closed-window.injectable.d.ts +1 -0
  168. package/dist/src/main/electron-app/runnables/dock-visibility/show-dock-for-first-opened-window.injectable.d.ts +1 -0
  169. package/dist/src/main/electron-app/runnables/enforce-single-application-instance.injectable.d.ts +1 -0
  170. package/dist/src/main/electron-app/runnables/setup-application-name.injectable.d.ts +1 -0
  171. package/dist/src/main/electron-app/runnables/setup-deep-linking.injectable.d.ts +1 -0
  172. package/dist/src/main/electron-app/runnables/setup-developer-tools-in-development-environment.injectable.d.ts +1 -0
  173. package/dist/src/main/electron-app/runnables/setup-device-shutdown.injectable.d.ts +1 -0
  174. package/dist/src/main/electron-app/runnables/setup-ipc-main-handlers/setup-ipc-main-handlers.d.ts +2 -5
  175. package/dist/src/main/electron-app/runnables/setup-ipc-main-handlers/setup-ipc-main-handlers.injectable.d.ts +1 -0
  176. package/dist/src/main/electron-app/runnables/setup-main-window-visibility-after-activation.injectable.d.ts +1 -0
  177. package/dist/src/main/electron-app/runnables/setup-runnables-after-window-is-opened.injectable.d.ts +1 -0
  178. package/dist/src/main/electron-app/runnables/setup-runnables-before-closing-of-application.injectable.d.ts +1 -0
  179. package/dist/src/main/get-metrics.injectable.d.ts +2 -2
  180. package/dist/src/main/helm/helm-chart-manager.d.ts +1 -1
  181. package/dist/src/main/helm/helm-service/get-helm-chart-readme.global-override-for-injectable.d.ts +9 -0
  182. package/dist/src/main/helm/helm-service/get-helm-chart-readme.injectable.d.ts +2 -0
  183. package/dist/src/main/helm/helm-service/get-helm-chart-versions.injectable.d.ts +2 -0
  184. package/dist/src/main/helm/helm-service/list-helm-charts.injectable.d.ts +1 -1
  185. package/dist/src/main/k8s/api-base.injectable.d.ts +2 -0
  186. package/dist/src/main/kubeconfig-manager/kubeconfig-manager.d.ts +13 -4
  187. package/dist/src/main/kubectl/kubectl.d.ts +6 -0
  188. package/dist/src/main/lens-proxy/proxy-functions/shell-api-request/shell-api-request.d.ts +4 -12
  189. package/dist/src/main/menu/start-application-menu.injectable.d.ts +1 -0
  190. package/dist/src/main/menu/stop-application-menu.injectable.d.ts +1 -0
  191. package/dist/src/main/resource-applier.d.ts +2 -3
  192. package/dist/src/main/routes/helm/charts/get-readme-route.injectable.d.ts +2 -0
  193. package/dist/src/main/routes/helm/charts/get-values-route.injectable.d.ts +2 -0
  194. package/dist/src/main/routes/helm/charts/get-versions-route.injectable.d.ts +2 -0
  195. package/dist/src/main/routes/helm/charts/list-route.injectable.d.ts +2 -0
  196. package/dist/src/main/routes/kubeconfig-route/get-service-account-route.injectable.d.ts +1 -27
  197. package/dist/src/main/routes/resource-applier/create-resource-route.injectable.d.ts +2 -0
  198. package/dist/src/main/shell-session/create-shell-session.injectable.d.ts +5 -4
  199. package/dist/src/main/shell-session/local-shell-session/local-shell-session.d.ts +16 -6
  200. package/dist/src/main/shell-session/local-shell-session/open.injectable.d.ts +10 -0
  201. package/dist/src/main/shell-session/node-shell-session/node-shell-session.d.ts +11 -5
  202. package/dist/src/main/shell-session/node-shell-session/open.injectable.d.ts +10 -0
  203. package/dist/src/main/shell-session/shell-env-modifier/modify-terminal-shell-env.injectable.d.ts +8 -0
  204. package/dist/src/main/shell-session/shell-session.d.ts +17 -4
  205. package/dist/src/main/start-main-application/lens-window/current-cluster-frame/setup-listener-for-current-cluster-frame.injectable.d.ts +1 -0
  206. package/dist/src/main/start-main-application/runnables/clean-up-shell-sessions.injectable.d.ts +1 -0
  207. package/dist/src/main/start-main-application/runnables/emit-close-to-event-bus.injectable.d.ts +1 -0
  208. package/dist/src/main/start-main-application/runnables/emit-service-start-to-event-bus.injectable.d.ts +1 -0
  209. package/dist/src/main/start-main-application/runnables/flag-renderer/flag-renderer-as-loaded.injectable.d.ts +1 -0
  210. package/dist/src/main/start-main-application/runnables/flag-renderer/flag-renderer-as-not-loaded.injectable.d.ts +1 -0
  211. package/dist/src/main/start-main-application/runnables/initialize-extensions.injectable.d.ts +1 -0
  212. package/dist/src/main/start-main-application/runnables/kube-config-sync/add-source.injectable.d.ts +5 -0
  213. package/dist/src/main/start-main-application/runnables/kube-config-sync/start-kube-config-sync.injectable.d.ts +5 -0
  214. package/dist/src/main/start-main-application/runnables/kube-config-sync/stop-kube-config-sync.injectable.d.ts +1 -0
  215. package/dist/src/main/start-main-application/runnables/sentry/setup.injectable.d.ts +1 -0
  216. package/dist/src/main/start-main-application/runnables/setup-detector-registry.injectable.d.ts +1 -0
  217. package/dist/src/main/start-main-application/runnables/setup-hardware-acceleration.injectable.d.ts +1 -0
  218. package/dist/src/main/start-main-application/runnables/setup-hotbar-store.injectable.d.ts +8 -1
  219. package/dist/src/main/start-main-application/runnables/setup-immer.injectable.d.ts +1 -0
  220. package/dist/src/main/start-main-application/runnables/setup-lens-proxy.injectable.d.ts +1 -0
  221. package/dist/src/main/start-main-application/runnables/setup-mobx.injectable.d.ts +1 -0
  222. package/dist/src/main/start-main-application/runnables/setup-prometheus-registry.injectable.d.ts +1 -0
  223. package/dist/src/main/start-main-application/runnables/setup-proxy-env.injectable.d.ts +1 -0
  224. package/dist/src/main/start-main-application/runnables/setup-reactions-in-user-store.injectable.d.ts +1 -0
  225. package/dist/src/main/start-main-application/runnables/setup-shell.injectable.d.ts +1 -0
  226. package/dist/src/main/start-main-application/runnables/setup-syncing-of-general-catalog-entities.injectable.d.ts +1 -0
  227. package/dist/src/main/start-main-application/runnables/setup-syncing-of-weblinks.injectable.d.ts +1 -0
  228. package/dist/src/main/start-main-application/runnables/setup-system-ca.injectable.d.ts +1 -0
  229. package/dist/src/main/start-main-application/runnables/stop-cluster-manager.injectable.d.ts +1 -0
  230. package/dist/src/main/stores/init-user-store.injectable.d.ts +20 -1
  231. package/dist/src/main/theme/broadcast-theme-change/start-broadcasting-theme-change.injectable.d.ts +1 -0
  232. package/dist/src/main/theme/broadcast-theme-change/stop-broadcasting-theme-change.injectable.d.ts +1 -0
  233. package/dist/src/main/theme/sync-theme-from-os/start-syncing-theme-from-operating-system.injectable.d.ts +1 -0
  234. package/dist/src/main/theme/sync-theme-from-os/stop-syncing-theme-from-operating-system.injectable.d.ts +1 -0
  235. package/dist/src/main/tray/electron-tray/start-tray.injectable.d.ts +1 -0
  236. package/dist/src/main/tray/electron-tray/stop-tray.injectable.d.ts +8 -1
  237. package/dist/src/main/tray/menu-icon/start-reactivity.injectable.d.ts +8 -1
  238. package/dist/src/main/tray/menu-icon/stop-reactivity.injectable.d.ts +1 -0
  239. package/dist/src/main/tray/reactive-tray-menu-items/start-reactive-tray-menu-items.injectable.d.ts +8 -1
  240. package/dist/src/main/tray/reactive-tray-menu-items/stop-reactive-tray-menu-items.injectable.d.ts +1 -0
  241. package/dist/src/main/utils/channel/channel-listeners/start-listening-of-channels.injectable.d.ts +1 -0
  242. package/dist/src/main/vars/build-version/init.injectable.d.ts +3 -2
  243. package/dist/src/main/vars/default-update-channel/init.injectable.d.ts +17 -2
  244. package/dist/src/main/vars/release-channel/init.injectable.d.ts +12 -1
  245. package/dist/src/main/vars/semantic-build-version/init.injectable.d.ts +8 -1
  246. package/dist/src/renderer/app-paths/setup-app-paths.injectable.d.ts +1 -0
  247. package/dist/src/renderer/components/+catalog/catalog-menu.d.ts +2 -1
  248. package/dist/src/renderer/components/+cluster/cluster-overview-store/cluster-overview-store.d.ts +6 -5
  249. package/dist/src/renderer/components/+config-priority-classes/priority-classes-route-component.injectable.d.ts +2 -2
  250. package/dist/src/{common/k8s-api → renderer/components/+config-runtime-classes}/index.d.ts +2 -2
  251. package/dist/src/renderer/components/+config-runtime-classes/runtime-classes-details-tolerations.d.ts +13 -0
  252. package/dist/src/renderer/components/+config-runtime-classes/runtime-classes-details.d.ts +13 -0
  253. package/dist/src/renderer/components/+config-runtime-classes/runtime-classes-items.injectable.d.ts +10 -0
  254. package/dist/src/renderer/components/+config-runtime-classes/runtime-classes-route-component.injectable.d.ts +13 -0
  255. package/dist/src/renderer/components/+config-runtime-classes/runtime-classes-tolerations.d.ts +10 -0
  256. package/dist/src/renderer/components/+config-runtime-classes/runtime-classes.d.ts +11 -0
  257. package/dist/src/renderer/components/+config-runtime-classes/store.d.ts +8 -0
  258. package/dist/src/renderer/components/+config-runtime-classes/store.injectable.d.ts +3 -0
  259. package/dist/src/renderer/components/+extensions/attempt-install/attempt-install.d.ts +7 -5
  260. package/dist/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.injectable.d.ts +12 -1
  261. package/dist/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.injectable.d.ts +2 -1
  262. package/dist/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.injectable.d.ts +4 -1
  263. package/dist/src/renderer/components/+extensions/attempt-installs/attempt-installs.injectable.d.ts +2 -1
  264. package/dist/src/renderer/components/+extensions/install-extension-from-input.injectable.d.ts +3 -0
  265. package/dist/src/renderer/components/+extensions/read-file-notify/read-file-notify.injectable.d.ts +4 -0
  266. package/dist/src/renderer/components/+helm-charts/helm-charts/request-versions-of-chart-for-release.injectable.d.ts +10 -0
  267. package/dist/src/renderer/components/+helm-charts/helm-charts/request-versions.injectable.d.ts +5 -0
  268. package/dist/{__mocks__/windowMock.d.ts → src/renderer/components/+helm-charts/helm-charts/versions.d.ts} +5 -2
  269. package/dist/src/renderer/components/+helm-charts/helm-charts/versions.injectable.d.ts +3 -0
  270. package/dist/src/renderer/components/+helm-releases/create-release/create-release.injectable.d.ts +2 -2
  271. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/release-details-model.injectable.d.ts +11 -8
  272. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/request-detailed-helm-release.injectable.d.ts +10 -0
  273. package/dist/src/renderer/components/+helm-releases/releases.injectable.d.ts +1 -3
  274. package/dist/src/renderer/components/+helm-releases/rollback-release/rollback-release.injectable.d.ts +2 -1
  275. package/dist/src/renderer/components/+helm-releases/to-helm-release.injectable.d.ts +4 -0
  276. package/dist/src/renderer/components/+helm-releases/update-release/update-release.injectable.d.ts +2 -2
  277. package/dist/src/renderer/components/+network-ingresses/ingress-details.d.ts +1 -11
  278. package/dist/src/renderer/components/+nodes/nodes-route-component.injectable.d.ts +1 -2
  279. package/dist/src/renderer/components/+nodes/route.d.ts +1 -15
  280. package/dist/src/renderer/components/+storage-volume-claims/volume-claim-details.d.ts +2 -8
  281. package/dist/src/renderer/components/+user-management/+service-accounts/service-account-menu.d.ts +6 -1
  282. package/dist/src/renderer/components/+workloads-pods/pod-details.d.ts +1 -9
  283. package/dist/src/renderer/components/animate/animate.d.ts +0 -5
  284. package/dist/src/renderer/components/animate/default-enter-duration.injectable.d.ts +2 -0
  285. package/dist/src/renderer/components/animate/default-leave-duration.injectable.d.ts +2 -0
  286. package/dist/src/renderer/components/animate/request-animation-frame.injectable.d.ts +2 -1
  287. package/dist/src/renderer/components/delete-cluster-dialog/save-kubeconfig.global-override-for-injectable.d.ts +9 -0
  288. package/dist/src/renderer/components/delete-cluster-dialog/save-kubeconfig.injectable.d.ts +8 -0
  289. package/dist/src/renderer/components/delete-cluster-dialog/view.d.ts +0 -7
  290. package/dist/src/renderer/components/dock/create-resource/user-templates.injectable.d.ts +1 -2
  291. package/dist/src/renderer/components/dock/install-chart/install-chart-model.injectable.d.ts +6 -6
  292. package/dist/src/renderer/components/dock/logs/download-logs-dropdown.d.ts +2 -1
  293. package/dist/src/renderer/components/dock/upgrade-chart/store.injectable.d.ts +5 -2
  294. package/dist/src/renderer/components/dock/upgrade-chart/tab-data.injectable.d.ts +2 -0
  295. package/dist/src/renderer/components/dock/upgrade-chart/upgrade-chart-model.injectable.d.ts +25 -0
  296. package/dist/src/renderer/components/dock/upgrade-chart/view.d.ts +2 -20
  297. package/dist/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/ingress-detail-item.injectable.d.ts +2 -2
  298. package/dist/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/persistent-volume-claim-detail-item.injectable.d.ts +2 -2
  299. package/dist/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/pod-detail-item.injectable.d.ts +2 -2
  300. package/dist/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/runtime-class-detail-item.injectable.d.ts +7 -0
  301. package/dist/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog-cluster-frame-child-component.injectable.d.ts +2 -2
  302. package/dist/src/renderer/components/kubeconfig-dialog/kubeconfig-dialog.d.ts +2 -16
  303. package/dist/src/renderer/components/kubeconfig-dialog/open-service-account-kube-config-dialog.injectable.d.ts +4 -0
  304. package/dist/src/renderer/components/kubeconfig-dialog/open.injectable.d.ts +8 -0
  305. package/dist/src/renderer/components/kubeconfig-dialog/state.injectable.d.ts +3 -0
  306. package/dist/src/renderer/components/layout/top-bar/start-state-sync.injectable.d.ts +1 -0
  307. package/dist/src/renderer/components/menu/menu.d.ts +7 -39
  308. package/dist/src/renderer/components/render-delay/__tests__/render-delay.test.d.ts +1 -1
  309. package/dist/src/renderer/components/render-delay/cancel-idle-callback.global-override-for-injectable.d.ts +9 -0
  310. package/dist/src/renderer/components/render-delay/cancel-idle-callback.injectable.d.ts +3 -0
  311. package/dist/src/renderer/components/render-delay/idle-callback-timeout.injectable.d.ts +2 -0
  312. package/dist/src/renderer/components/render-delay/render-delay.d.ts +1 -8
  313. package/dist/src/renderer/components/render-delay/request-idle-callback.global-override-for-injectable.d.ts +9 -0
  314. package/dist/src/renderer/components/render-delay/request-idle-callback.injectable.d.ts +5 -0
  315. package/dist/src/renderer/components/resource-metrics/resource-metrics-text.d.ts +10 -2
  316. package/dist/src/renderer/components/resource-metrics/resource-metrics.d.ts +4 -3
  317. package/dist/src/renderer/components/test-utils/get-application-builder.d.ts +5 -0
  318. package/dist/src/renderer/frames/root-frame/setup-system-ca.injectable.d.ts +1 -0
  319. package/dist/src/renderer/ipc/index.d.ts +0 -3
  320. package/dist/src/renderer/k8s/api-base.injectable.d.ts +2 -0
  321. package/dist/src/renderer/k8s/api-kube.injectable.d.ts +1 -2
  322. package/dist/src/renderer/port-forward/port-forward-store/port-forward-store.d.ts +6 -2
  323. package/dist/src/renderer/port-forward/port-forward-store/request-active-port-forward.injectable.d.ts +8 -0
  324. package/dist/src/renderer/stores/init-user-store.injectable.d.ts +20 -1
  325. package/dist/src/renderer/utils/channel/channel-listeners/start-listening-of-channels.injectable.d.ts +1 -0
  326. package/dist/src/renderer/utils/channel/request-from-channel.injectable.d.ts +1 -1
  327. package/dist/src/renderer/utils/create-storage/create-storage.d.ts +3 -3
  328. package/dist/src/renderer/utils/sync-box/provide-initial-values-for-sync-boxes.injectable.d.ts +1 -0
  329. package/dist/src/renderer/vars/build-version/init.injectable.d.ts +1 -0
  330. package/dist/src/renderer/vars/default-update-channel/init.injectable.d.ts +17 -2
  331. package/dist/src/renderer/vars/release-channel/init.injectable.d.ts +12 -1
  332. package/dist/src/renderer/vars/semantic-build-version/init.injectable.d.ts +8 -1
  333. package/dist/src/test-utils/override-fs-with-fakes.d.ts +1 -1
  334. package/package.json +3 -3
  335. package/__mocks__/windowMock.ts +0 -19
  336. package/dist/integration/helpers/utils.d.ts +0 -16
  337. package/dist/src/common/fs/read-dir.injectable.d.ts +0 -2
  338. package/dist/src/common/k8s-api/endpoints/resource-applier.api.d.ts +0 -9
  339. package/dist/src/common/test-utils/get-absolute-path-fake.d.ts +0 -6
  340. package/dist/src/common/test-utils/join-paths-fake.d.ts +0 -6
  341. package/dist/src/main/helm/helm-service/get-helm-chart.injectable.d.ts +0 -5
  342. package/dist/src/main/routes/helm/charts/get-chart-route.injectable.d.ts +0 -8
  343. package/dist/src/main/routes/helm/charts/get-chart-values-route.injectable.d.ts +0 -2
  344. package/dist/src/main/routes/helm/charts/list-charts-route.injectable.d.ts +0 -2
  345. package/dist/src/main/routes/resource-applier/apply-resource-route.injectable.d.ts +0 -2
  346. package/dist/src/main/shell-session/local-shell-session/local-shell-session.injectable.d.ts +0 -10
  347. package/dist/src/main/shell-session/node-shell-session/node-shell-session.injectable.d.ts +0 -11
  348. package/dist/src/main/shell-session/shell-env-modifier/terminal-shell-env-modifiers.d.ts +0 -14
  349. package/dist/src/main/shell-session/shell-env-modifier/terminal-shell-env-modify.injectable.d.ts +0 -6
  350. package/dist/src/renderer/api/on-api-error.d.ts +0 -7
  351. package/dist/src/renderer/api/setup-on-api-errors.injectable.d.ts +0 -4
  352. package/dist/src/renderer/components/+extensions/attempt-install/create-temp-files-and-validate/create-temp-files-and-validate.d.ts +0 -16
  353. package/dist/src/renderer/components/+extensions/attempt-install/get-extension-dest-folder/get-extension-dest-folder.d.ts +0 -10
  354. package/dist/src/renderer/components/+extensions/attempt-install/unpack-extension/unpack-extension.d.ts +0 -15
  355. package/dist/src/renderer/components/+extensions/attempt-installs/attempt-installs.d.ts +0 -6
  356. package/dist/src/renderer/components/+extensions/install-from-input/install-from-input.d.ts +0 -16
  357. package/dist/src/renderer/components/+extensions/install-from-input/install-from-input.injectable.d.ts +0 -2
  358. package/dist/src/renderer/components/+extensions/read-file-notify/read-file-notify.d.ts +0 -2
  359. package/dist/src/renderer/components/+helm-charts/details/readme/call-for-helm-chart-readme.injectable.d.ts +0 -3
  360. package/dist/src/renderer/components/+helm-charts/details/versions/call-for-helm-chart-versions.injectable.d.ts +0 -4
  361. package/dist/src/renderer/components/+helm-charts/get-char-details.injectable.d.ts +0 -4
  362. package/dist/src/renderer/components/+helm-charts/helm-chart-store.injectable.d.ts +0 -3
  363. package/dist/src/renderer/components/+helm-charts/helm-chart.store.d.ts +0 -27
  364. package/dist/src/renderer/components/+helm-charts/helm-charts/call-for-helm-charts.injectable.d.ts +0 -4
  365. package/dist/src/renderer/components/+helm-releases/call-for-helm-releases/call-for-helm-releases.global-override-for-injectable.d.ts +0 -5
  366. package/dist/src/renderer/components/+helm-releases/call-for-helm-releases/call-for-helm-releases.injectable.d.ts +0 -4
  367. package/dist/src/renderer/components/+helm-releases/create-release/call-for-create-helm-release.injectable.d.ts +0 -12
  368. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/call-for-helm-release/call-for-helm-release-details/call-for-helm-release-details.global-override-for-injectable.d.ts +0 -5
  369. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/call-for-helm-release/call-for-helm-release.injectable.d.ts +0 -10
  370. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/call-for-helm-release-configuration/call-for-helm-release-configuration.global-override-for-injectable.d.ts +0 -5
  371. package/dist/src/renderer/components/+helm-releases/release-details/release-details-model/call-for-helm-release-configuration/call-for-helm-release-configuration.injectable.d.ts +0 -3
  372. package/dist/src/renderer/components/+helm-releases/update-release/call-for-helm-release-update/call-for-helm-release-update.global-override-for-injectable.d.ts +0 -5
  373. package/dist/src/renderer/components/delete-cluster-dialog/save-config.d.ts +0 -6
  374. package/dist/src/renderer/components/dock/install-chart/chart-data/call-for-helm-chart-values.injectable.d.ts +0 -3
  375. package/dist/src/renderer/components/dock/upgrade-chart/store.d.ts +0 -22
@@ -29594,7 +29594,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29594
29594
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29595
29595
 
29596
29596
  "use strict";
29597
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../path/get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst directoryForKubeConfigsInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"directory-for-kube-configs\",\n instantiate: (di) => {\n const getAbsolutePath = di.inject(_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const directoryForUserData = di.inject(_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return getAbsolutePath(directoryForUserData, \"kubeconfigs\");\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (directoryForKubeConfigsInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts?");
29597
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst directoryForKubeConfigsInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"directory-for-kube-configs\",\n instantiate: (di) => {\n const joinPaths = di.inject(_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const directoryForUserData = di.inject(_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return joinPaths(directoryForUserData, \"kubeconfigs\");\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (directoryForKubeConfigsInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts?");
29598
29598
 
29599
29599
  /***/ }),
29600
29600
 
@@ -29616,7 +29616,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29616
29616
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29617
29617
 
29618
29618
  "use strict";
29619
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../directory-for-kube-configs/directory-for-kube-configs.injectable */ \"./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts\");\n/* harmony import */ var _path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../path/get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst getCustomKubeConfigDirectoryInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"get-custom-kube-config-directory\",\n instantiate: (di) => {\n const directoryForKubeConfigs = di.inject(_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const getAbsolutePath = di.inject(_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return (directoryName) => getAbsolutePath(directoryForKubeConfigs, directoryName);\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getCustomKubeConfigDirectoryInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts?");
29619
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../directory-for-kube-configs/directory-for-kube-configs.injectable */ \"./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts\");\n/* harmony import */ var _path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst getCustomKubeConfigDirectoryInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"get-custom-kube-config-directory\",\n instantiate: (di) => {\n const directoryForKubeConfigs = di.inject(_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const joinPaths = di.inject(_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return (directoryName) => joinPaths(directoryForKubeConfigs, directoryName);\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getCustomKubeConfigDirectoryInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts?");
29620
29620
 
29621
29621
  /***/ }),
29622
29622
 
@@ -29847,7 +29847,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29847
29847
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29848
29848
 
29849
29849
  "use strict";
29850
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClusterMetadataKey\": () => (/* binding */ ClusterMetadataKey),\n/* harmony export */ \"ClusterMetricsResourceType\": () => (/* binding */ ClusterMetricsResourceType),\n/* harmony export */ \"ClusterStatus\": () => (/* binding */ ClusterStatus),\n/* harmony export */ \"initialNodeShellImage\": () => (/* binding */ initialNodeShellImage)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n/**\n * The options for the status of connection attempts to a cluster\n */\nvar ClusterStatus;\n(function (ClusterStatus) {\n ClusterStatus[ClusterStatus[\"AccessGranted\"] = 2] = \"AccessGranted\";\n ClusterStatus[ClusterStatus[\"AccessDenied\"] = 1] = \"AccessDenied\";\n ClusterStatus[ClusterStatus[\"Offline\"] = 0] = \"Offline\";\n})(ClusterStatus || (ClusterStatus = {}));\n/**\n * The OpenLens known static metadata keys\n */\nvar ClusterMetadataKey;\n(function (ClusterMetadataKey) {\n ClusterMetadataKey[\"VERSION\"] = \"version\";\n ClusterMetadataKey[\"CLUSTER_ID\"] = \"id\";\n ClusterMetadataKey[\"DISTRIBUTION\"] = \"distribution\";\n ClusterMetadataKey[\"NODES_COUNT\"] = \"nodes\";\n ClusterMetadataKey[\"LAST_SEEN\"] = \"lastSeen\";\n ClusterMetadataKey[\"PROMETHEUS\"] = \"prometheus\";\n})(ClusterMetadataKey || (ClusterMetadataKey = {}));\n/**\n * A shorthand enum for resource types that have metrics attached to them via OpenLens metrics stack\n */\nvar ClusterMetricsResourceType;\n(function (ClusterMetricsResourceType) {\n ClusterMetricsResourceType[\"Cluster\"] = \"Cluster\";\n ClusterMetricsResourceType[\"Node\"] = \"Node\";\n ClusterMetricsResourceType[\"Pod\"] = \"Pod\";\n ClusterMetricsResourceType[\"Deployment\"] = \"Deployment\";\n ClusterMetricsResourceType[\"StatefulSet\"] = \"StatefulSet\";\n ClusterMetricsResourceType[\"Container\"] = \"Container\";\n ClusterMetricsResourceType[\"Ingress\"] = \"Ingress\";\n ClusterMetricsResourceType[\"VolumeClaim\"] = \"VolumeClaim\";\n ClusterMetricsResourceType[\"ReplicaSet\"] = \"ReplicaSet\";\n ClusterMetricsResourceType[\"DaemonSet\"] = \"DaemonSet\";\n ClusterMetricsResourceType[\"Job\"] = \"Job\";\n ClusterMetricsResourceType[\"Namespace\"] = \"Namespace\";\n})(ClusterMetricsResourceType || (ClusterMetricsResourceType = {}));\n/**\n * The default node shell image\n */\nconst initialNodeShellImage = \"docker.io/alpine:3.13\";\n\n\n//# sourceURL=webpack://open-lens/./src/common/cluster-types.ts?");
29850
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClusterMetadataKey\": () => (/* binding */ ClusterMetadataKey),\n/* harmony export */ \"ClusterMetricsResourceType\": () => (/* binding */ ClusterMetricsResourceType),\n/* harmony export */ \"ClusterStatus\": () => (/* binding */ ClusterStatus),\n/* harmony export */ \"clusterModelIdChecker\": () => (/* binding */ clusterModelIdChecker),\n/* harmony export */ \"initialNodeShellImage\": () => (/* binding */ initialNodeShellImage),\n/* harmony export */ \"updateClusterModelChecker\": () => (/* binding */ updateClusterModelChecker)\n/* harmony export */ });\n/* harmony import */ var joi__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! joi */ \"./node_modules/joi/dist/joi-browser.min.js\");\n/* harmony import */ var joi__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(joi__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n/**\n * A type validator for `UpdateClusterModel` so that only expected types are present\n */\nconst updateClusterModelChecker = joi__WEBPACK_IMPORTED_MODULE_0___default().object({\n kubeConfigPath: joi__WEBPACK_IMPORTED_MODULE_0___default().string()\n .required()\n .min(1),\n contextName: joi__WEBPACK_IMPORTED_MODULE_0___default().string()\n .required()\n .min(1),\n workspace: joi__WEBPACK_IMPORTED_MODULE_0___default().string()\n .optional(),\n workspaces: joi__WEBPACK_IMPORTED_MODULE_0___default().array()\n .items(joi__WEBPACK_IMPORTED_MODULE_0___default().string()),\n preferences: joi__WEBPACK_IMPORTED_MODULE_0___default().object(),\n metadata: joi__WEBPACK_IMPORTED_MODULE_0___default().object(),\n accessibleNamespaces: joi__WEBPACK_IMPORTED_MODULE_0___default().array()\n .items(joi__WEBPACK_IMPORTED_MODULE_0___default().string()),\n labels: joi__WEBPACK_IMPORTED_MODULE_0___default().object().pattern(joi__WEBPACK_IMPORTED_MODULE_0___default().string(), joi__WEBPACK_IMPORTED_MODULE_0___default().string()),\n});\n/**\n * A type validator for just the `id` fields of `ClusterModel`. The rest is\n * covered by `updateClusterModelChecker`\n */\nconst clusterModelIdChecker = joi__WEBPACK_IMPORTED_MODULE_0___default().object({\n id: joi__WEBPACK_IMPORTED_MODULE_0___default().string()\n .required()\n .min(1),\n});\n/**\n * The options for the status of connection attempts to a cluster\n */\nvar ClusterStatus;\n(function (ClusterStatus) {\n ClusterStatus[ClusterStatus[\"AccessGranted\"] = 2] = \"AccessGranted\";\n ClusterStatus[ClusterStatus[\"AccessDenied\"] = 1] = \"AccessDenied\";\n ClusterStatus[ClusterStatus[\"Offline\"] = 0] = \"Offline\";\n})(ClusterStatus || (ClusterStatus = {}));\n/**\n * The OpenLens known static metadata keys\n */\nvar ClusterMetadataKey;\n(function (ClusterMetadataKey) {\n ClusterMetadataKey[\"VERSION\"] = \"version\";\n ClusterMetadataKey[\"CLUSTER_ID\"] = \"id\";\n ClusterMetadataKey[\"DISTRIBUTION\"] = \"distribution\";\n ClusterMetadataKey[\"NODES_COUNT\"] = \"nodes\";\n ClusterMetadataKey[\"LAST_SEEN\"] = \"lastSeen\";\n ClusterMetadataKey[\"PROMETHEUS\"] = \"prometheus\";\n})(ClusterMetadataKey || (ClusterMetadataKey = {}));\n/**\n * A shorthand enum for resource types that have metrics attached to them via OpenLens metrics stack\n */\nvar ClusterMetricsResourceType;\n(function (ClusterMetricsResourceType) {\n ClusterMetricsResourceType[\"Cluster\"] = \"Cluster\";\n ClusterMetricsResourceType[\"Node\"] = \"Node\";\n ClusterMetricsResourceType[\"Pod\"] = \"Pod\";\n ClusterMetricsResourceType[\"Deployment\"] = \"Deployment\";\n ClusterMetricsResourceType[\"StatefulSet\"] = \"StatefulSet\";\n ClusterMetricsResourceType[\"Container\"] = \"Container\";\n ClusterMetricsResourceType[\"Ingress\"] = \"Ingress\";\n ClusterMetricsResourceType[\"VolumeClaim\"] = \"VolumeClaim\";\n ClusterMetricsResourceType[\"ReplicaSet\"] = \"ReplicaSet\";\n ClusterMetricsResourceType[\"DaemonSet\"] = \"DaemonSet\";\n ClusterMetricsResourceType[\"Job\"] = \"Job\";\n ClusterMetricsResourceType[\"Namespace\"] = \"Namespace\";\n})(ClusterMetricsResourceType || (ClusterMetricsResourceType = {}));\n/**\n * The default node shell image\n */\nconst initialNodeShellImage = \"docker.io/alpine:3.13\";\n\n\n//# sourceURL=webpack://open-lens/./src/common/cluster-types.ts?");
29851
29851
 
29852
29852
  /***/ }),
29853
29853
 
@@ -29858,7 +29858,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29858
29858
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29859
29859
 
29860
29860
  "use strict";
29861
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cluster\": () => (/* binding */ Cluster)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @kubernetes/client-node */ \"./node_modules/@kubernetes/client-node/dist/index.js\");\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _kube_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _rbac__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../rbac */ \"./src/common/rbac.ts\");\n/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! p-limit */ \"./node_modules/p-limit/index.js\");\n/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(p_limit__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _cluster_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../cluster-types */ \"./src/common/cluster-types.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _ipc_cluster__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ipc/cluster */ \"./src/common/ipc/cluster.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_7__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n\n/**\n * Cluster\n *\n * @beta\n */\nclass Cluster {\n constructor(dependencies, model, configData) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n /** Unique id for a cluster */\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubeCtl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Context handler\n *\n * @internal\n */\n Object.defineProperty(this, \"_contextHandler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"_proxyKubeconfigManager\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"eventsDisposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.disposer)()\n });\n Object.defineProperty(this, \"activated\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"resourceAccessStatuses\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n /**\n * Kubeconfig context name\n *\n * @observable\n */\n Object.defineProperty(this, \"contextName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Path to kubeconfig\n *\n * @observable\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * @deprecated\n */\n Object.defineProperty(this, \"workspace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * @deprecated\n */\n Object.defineProperty(this, \"workspaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Kubernetes API server URL\n *\n * @observable\n */\n Object.defineProperty(this, \"apiUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n }); // cluster server url\n /**\n * Is cluster online\n *\n * @observable\n */\n Object.defineProperty(this, \"online\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n }); // describes if we can detect that cluster is online\n /**\n * Can user access cluster resources\n *\n * @observable\n */\n Object.defineProperty(this, \"accessible\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n }); // if user is able to access cluster resources\n /**\n * Is cluster instance in usable state\n *\n * @observable\n */\n Object.defineProperty(this, \"ready\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n }); // cluster is in usable state\n /**\n * Is cluster currently reconnecting\n *\n * @observable\n */\n Object.defineProperty(this, \"reconnecting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n /**\n * Is cluster disconnected. False if user has selected to connect.\n *\n * @observable\n */\n Object.defineProperty(this, \"disconnected\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n /**\n * Does user have admin like access\n *\n * @observable\n */\n Object.defineProperty(this, \"isAdmin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n /**\n * Global watch-api accessibility , e.g. \"/api/v1/services?watch=1\"\n *\n * @observable\n */\n Object.defineProperty(this, \"isGlobalWatchEnabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n /**\n * Preferences\n *\n * @observable\n */\n Object.defineProperty(this, \"preferences\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n /**\n * Metadata\n *\n * @observable\n */\n Object.defineProperty(this, \"metadata\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n /**\n * List of allowed namespaces verified via K8S::SelfSubjectAccessReview api\n *\n * @observable\n */\n Object.defineProperty(this, \"allowedNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * List of allowed resources\n *\n * @observable\n * @internal\n */\n Object.defineProperty(this, \"allowedResources\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * List of accessible namespaces provided by user in the Cluster Settings\n *\n * @observable\n */\n Object.defineProperty(this, \"accessibleNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * Labels for the catalog entity\n */\n Object.defineProperty(this, \"labels\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_8__.makeObservable)(this);\n this.id = model.id;\n this.updateModel(model);\n this.apiUrl = configData.clusterServerUrl;\n // for the time being, until renderer gets its own cluster type\n this._contextHandler = this.dependencies.createContextHandler(this);\n this._proxyKubeconfigManager = this.dependencies.createKubeconfigManager(this);\n this.dependencies.logger.debug(`[CLUSTER]: Cluster init success`, {\n id: this.id,\n context: this.contextName,\n apiUrl: this.apiUrl,\n });\n }\n get contextHandler() {\n // TODO: remove these once main/renderer are seperate classes\n assert__WEBPACK_IMPORTED_MODULE_7___default()(this._contextHandler, \"contextHandler is only defined in the main environment\");\n return this._contextHandler;\n }\n get proxyKubeconfigManager() {\n // TODO: remove these once main/renderer are seperate classes\n assert__WEBPACK_IMPORTED_MODULE_7___default()(this._proxyKubeconfigManager, \"proxyKubeconfigManager is only defined in the main environment\");\n return this._proxyKubeconfigManager;\n }\n get whenReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_8__.when)(() => this.ready);\n }\n /**\n * Is cluster available\n *\n * @computed\n */\n get available() {\n return this.accessible && !this.disconnected;\n }\n /**\n * Cluster name\n *\n * @computed\n */\n get name() {\n return this.preferences.clusterName || this.contextName;\n }\n /**\n * The detected kubernetes distribution\n */\n get distribution() {\n var _a;\n return ((_a = this.metadata[_cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterMetadataKey.DISTRIBUTION]) === null || _a === void 0 ? void 0 : _a.toString()) || \"unknown\";\n }\n /**\n * The detected kubernetes version\n */\n get version() {\n var _a;\n return ((_a = this.metadata[_cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterMetadataKey.VERSION]) === null || _a === void 0 ? void 0 : _a.toString()) || \"unknown\";\n }\n /**\n * Prometheus preferences\n *\n * @computed\n * @internal\n */\n get prometheusPreferences() {\n const { prometheus, prometheusProvider } = this.preferences;\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.toJS)({ prometheus, prometheusProvider });\n }\n /**\n * defaultNamespace preference\n *\n * @computed\n * @internal\n */\n get defaultNamespace() {\n return this.preferences.defaultNamespace;\n }\n /**\n * Update cluster data model\n *\n * @param model\n */\n updateModel(model) {\n // Note: do not assign ID as that should never be updated\n this.kubeConfigPath = model.kubeConfigPath;\n this.contextName = model.contextName;\n if (model.workspace) {\n this.workspace = model.workspace;\n }\n if (model.workspaces) {\n this.workspaces = model.workspaces;\n }\n if (model.preferences) {\n this.preferences = model.preferences;\n }\n if (model.metadata) {\n this.metadata = model.metadata;\n }\n if (model.accessibleNamespaces) {\n this.accessibleNamespaces = model.accessibleNamespaces;\n }\n if (model.labels) {\n this.labels = model.labels;\n }\n }\n /**\n * @internal\n */\n bindEvents() {\n this.dependencies.logger.info(`[CLUSTER]: bind events`, this.getMeta());\n const refreshTimer = setInterval(() => !this.disconnected && this.refresh(), 30000); // every 30s\n const refreshMetadataTimer = setInterval(() => !this.disconnected && this.refreshMetadata(), 900000); // every 15 minutes\n this.eventsDisposer.push((0,mobx__WEBPACK_IMPORTED_MODULE_8__.reaction)(() => this.getState(), state => this.pushState(state)), (0,mobx__WEBPACK_IMPORTED_MODULE_8__.reaction)(() => this.prometheusPreferences, prefs => this.contextHandler.setupPrometheus(prefs), { equals: mobx__WEBPACK_IMPORTED_MODULE_8__.comparer.structural }), () => clearInterval(refreshTimer), () => clearInterval(refreshMetadataTimer), (0,mobx__WEBPACK_IMPORTED_MODULE_8__.reaction)(() => this.defaultNamespace, () => this.recreateProxyKubeconfig()));\n }\n /**\n * @internal\n */\n async recreateProxyKubeconfig() {\n this.dependencies.logger.info(\"[CLUSTER]: Recreating proxy kubeconfig\");\n try {\n await this.proxyKubeconfigManager.clear();\n await this.getProxyKubeconfig();\n }\n catch (error) {\n this.dependencies.logger.error(`[CLUSTER]: failed to recreate proxy kubeconfig`, error);\n }\n }\n /**\n * @param force force activation\n * @internal\n */\n async activate(force = false) {\n if (this.activated && !force) {\n return this.pushState();\n }\n this.dependencies.logger.info(`[CLUSTER]: activate`, this.getMeta());\n if (!this.eventsDisposer.length) {\n this.bindEvents();\n }\n if (this.disconnected || !this.accessible) {\n try {\n this.broadcastConnectUpdate(\"Starting connection ...\");\n await this.reconnect();\n }\n catch (error) {\n this.broadcastConnectUpdate(`Failed to start connection: ${error}`, true);\n return;\n }\n }\n try {\n this.broadcastConnectUpdate(\"Refreshing connection status ...\");\n await this.refreshConnectionStatus();\n }\n catch (error) {\n this.broadcastConnectUpdate(`Failed to connection status: ${error}`, true);\n return;\n }\n if (this.accessible) {\n try {\n this.broadcastConnectUpdate(\"Refreshing cluster accessibility ...\");\n await this.refreshAccessibility();\n }\n catch (error) {\n this.broadcastConnectUpdate(`Failed to refresh accessibility: ${error}`, true);\n return;\n }\n // download kubectl in background, so it's not blocking dashboard\n this.ensureKubectl()\n .catch(error => this.dependencies.logger.warn(`[CLUSTER]: failed to download kubectl for clusterId=${this.id}`, error));\n this.broadcastConnectUpdate(\"Connected, waiting for view to load ...\");\n }\n this.activated = true;\n this.pushState();\n }\n /**\n * @internal\n */\n async ensureKubectl() {\n var _a;\n (_a = this.kubeCtl) !== null && _a !== void 0 ? _a : (this.kubeCtl = this.dependencies.createKubectl(this.version));\n await this.kubeCtl.ensureKubectl();\n return this.kubeCtl;\n }\n /**\n * @internal\n */\n async reconnect() {\n var _a;\n this.dependencies.logger.info(`[CLUSTER]: reconnect`, this.getMeta());\n await ((_a = this.contextHandler) === null || _a === void 0 ? void 0 : _a.restartServer());\n this.disconnected = false;\n }\n /**\n * @internal\n */\n disconnect() {\n var _a;\n if (this.disconnected) {\n return void this.dependencies.logger.debug(\"[CLUSTER]: already disconnected\", { id: this.id });\n }\n this.dependencies.logger.info(`[CLUSTER]: disconnecting`, { id: this.id });\n this.eventsDisposer();\n (_a = this.contextHandler) === null || _a === void 0 ? void 0 : _a.stopServer();\n this.disconnected = true;\n this.online = false;\n this.accessible = false;\n this.ready = false;\n this.activated = false;\n this.allowedNamespaces = [];\n this.resourceAccessStatuses.clear();\n this.pushState();\n this.dependencies.logger.info(`[CLUSTER]: disconnected`, { id: this.id });\n }\n /**\n * @internal\n * @param opts refresh options\n */\n async refresh(opts = {}) {\n this.dependencies.logger.info(`[CLUSTER]: refresh`, this.getMeta());\n await this.refreshConnectionStatus();\n if (this.accessible) {\n await this.refreshAccessibility();\n if (opts.refreshMetadata) {\n this.refreshMetadata();\n }\n }\n this.pushState();\n }\n /**\n * @internal\n */\n async refreshMetadata() {\n this.dependencies.logger.info(`[CLUSTER]: refreshMetadata`, this.getMeta());\n const metadata = await this.dependencies.detectorRegistry.detectForCluster(this);\n const existingMetadata = this.metadata;\n this.metadata = Object.assign(existingMetadata, metadata);\n }\n /**\n * @internal\n */\n async refreshAccessibility() {\n const proxyConfig = await this.getProxyKubeconfig();\n const canI = this.dependencies.createAuthorizationReview(proxyConfig);\n this.isAdmin = await canI({\n namespace: \"kube-system\",\n resource: \"*\",\n verb: \"create\",\n });\n this.isGlobalWatchEnabled = await canI({\n verb: \"watch\",\n resource: \"*\",\n });\n this.allowedNamespaces = await this.getAllowedNamespaces(proxyConfig);\n this.allowedResources = await this.getAllowedResources(canI);\n this.ready = true;\n }\n /**\n * @internal\n */\n async refreshConnectionStatus() {\n const connectionStatus = await this.getConnectionStatus();\n this.online = connectionStatus > _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.Offline;\n this.accessible = connectionStatus == _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.AccessGranted;\n }\n async getKubeconfig() {\n const { config } = await (0,_kube_helpers__WEBPACK_IMPORTED_MODULE_1__.loadConfigFromFile)(this.kubeConfigPath);\n return config;\n }\n /**\n * @internal\n */\n async getProxyKubeconfig() {\n const proxyKCPath = await this.getProxyKubeconfigPath();\n const { config } = await (0,_kube_helpers__WEBPACK_IMPORTED_MODULE_1__.loadConfigFromFile)(proxyKCPath);\n return config;\n }\n /**\n * @internal\n */\n async getProxyKubeconfigPath() {\n return this.proxyKubeconfigManager.getPath();\n }\n async getConnectionStatus() {\n try {\n const versionDetector = this.dependencies.createVersionDetector(this);\n const versionData = await versionDetector.detect();\n this.metadata.version = versionData.value;\n return _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.AccessGranted;\n }\n catch (error) {\n this.dependencies.logger.error(`[CLUSTER]: Failed to connect to \"${this.contextName}\": ${error}`);\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_5__.isRequestError)(error)) {\n if (error.statusCode) {\n if (error.statusCode >= 400 && error.statusCode < 500) {\n this.broadcastConnectUpdate(\"Invalid credentials\", true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.AccessDenied;\n }\n const message = String(error.error || error.message) || String(error);\n this.broadcastConnectUpdate(message, true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.Offline;\n }\n if (error.failed === true) {\n if (error.timedOut === true) {\n this.broadcastConnectUpdate(\"Connection timed out\", true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.Offline;\n }\n this.broadcastConnectUpdate(\"Failed to fetch credentials\", true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.AccessDenied;\n }\n const message = String(error.error || error.message) || String(error);\n this.broadcastConnectUpdate(message, true);\n }\n else {\n this.broadcastConnectUpdate(\"Unknown error has occurred\", true);\n }\n return _cluster_types__WEBPACK_IMPORTED_MODULE_4__.ClusterStatus.Offline;\n }\n }\n toJSON() {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.toJS)({\n id: this.id,\n contextName: this.contextName,\n kubeConfigPath: this.kubeConfigPath,\n workspace: this.workspace,\n workspaces: this.workspaces,\n preferences: this.preferences,\n metadata: this.metadata,\n accessibleNamespaces: this.accessibleNamespaces,\n labels: this.labels,\n });\n }\n /**\n * Serializable cluster-state used for sync btw main <-> renderer\n */\n getState() {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_5__.toJS)({\n apiUrl: this.apiUrl,\n online: this.online,\n ready: this.ready,\n disconnected: this.disconnected,\n accessible: this.accessible,\n isAdmin: this.isAdmin,\n allowedNamespaces: this.allowedNamespaces,\n allowedResources: this.allowedResources,\n isGlobalWatchEnabled: this.isGlobalWatchEnabled,\n });\n }\n /**\n * @internal\n * @param state cluster state\n */\n setState(state) {\n Object.assign(this, state);\n }\n /**\n * @internal\n * @param state cluster state\n */\n pushState(state = this.getState()) {\n this.dependencies.logger.silly(`[CLUSTER]: push-state`, state);\n this.dependencies.broadcastMessage(\"cluster:state\", this.id, state);\n }\n // get cluster system meta, e.g. use in \"logger\"\n getMeta() {\n return {\n id: this.id,\n name: this.contextName,\n ready: this.ready,\n online: this.online,\n accessible: this.accessible,\n disconnected: this.disconnected,\n };\n }\n /**\n * broadcast an authentication update concerning this cluster\n * @internal\n */\n broadcastConnectUpdate(message, isError = false) {\n const update = { message, isError };\n this.dependencies.logger.debug(`[CLUSTER]: broadcasting connection update`, { ...update, meta: this.getMeta() });\n this.dependencies.broadcastMessage(`cluster:${this.id}:connection-update`, update);\n }\n async getAllowedNamespaces(proxyConfig) {\n if (this.accessibleNamespaces.length) {\n return this.accessibleNamespaces;\n }\n try {\n const listNamespaces = this.dependencies.createListNamespaces(proxyConfig);\n return await listNamespaces();\n }\n catch (error) {\n const ctx = proxyConfig.getContextObject(this.contextName);\n const namespaceList = [ctx === null || ctx === void 0 ? void 0 : ctx.namespace].filter(_utils__WEBPACK_IMPORTED_MODULE_5__.isDefined);\n if (namespaceList.length === 0 && error instanceof _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__.HttpError && error.statusCode === 403) {\n const { response } = error;\n this.dependencies.logger.info(\"[CLUSTER]: listing namespaces is forbidden, broadcasting\", { clusterId: this.id, error: response.body });\n this.dependencies.broadcastMessage(_ipc_cluster__WEBPACK_IMPORTED_MODULE_6__.clusterListNamespaceForbiddenChannel, this.id);\n }\n return namespaceList;\n }\n }\n async getAllowedResources(canI) {\n try {\n if (!this.allowedNamespaces.length) {\n return [];\n }\n const resources = _rbac__WEBPACK_IMPORTED_MODULE_2__.apiResources.filter((resource) => this.resourceAccessStatuses.get(resource) === undefined);\n const apiLimit = p_limit__WEBPACK_IMPORTED_MODULE_3___default()(5); // 5 concurrent api requests\n const requests = [];\n for (const apiResource of resources) {\n requests.push(apiLimit(async () => {\n for (const namespace of this.allowedNamespaces.slice(0, 10)) {\n if (!this.resourceAccessStatuses.get(apiResource)) {\n const result = await canI({\n resource: apiResource.apiName,\n group: apiResource.group,\n verb: \"list\",\n namespace,\n });\n this.resourceAccessStatuses.set(apiResource, result);\n }\n }\n }));\n }\n await Promise.all(requests);\n return _rbac__WEBPACK_IMPORTED_MODULE_2__.apiResources.filter((resource) => this.resourceAccessStatuses.get(resource))\n .map(apiResource => apiResource.apiName);\n }\n catch (error) {\n return [];\n }\n }\n isAllowedResource(kind) {\n if (kind in _rbac__WEBPACK_IMPORTED_MODULE_2__.apiResourceRecord) {\n return this.allowedResources.includes(kind);\n }\n const apiResource = _rbac__WEBPACK_IMPORTED_MODULE_2__.apiResources.find(resource => resource.kind === kind);\n if (apiResource) {\n return this.allowedResources.includes(apiResource.apiName);\n }\n return true; // allowed by default for other resources\n }\n isMetricHidden(resource) {\n var _a;\n return Boolean((_a = this.preferences.hiddenMetrics) === null || _a === void 0 ? void 0 : _a.includes(resource));\n }\n get nodeShellImage() {\n var _a;\n return ((_a = this.preferences) === null || _a === void 0 ? void 0 : _a.nodeShellImage) || _cluster_types__WEBPACK_IMPORTED_MODULE_4__.initialNodeShellImage;\n }\n get imagePullSecret() {\n var _a;\n return (_a = this.preferences) === null || _a === void 0 ? void 0 : _a.imagePullSecret;\n }\n isInLocalKubeconfig() {\n return this.kubeConfigPath.startsWith(this.dependencies.directoryForKubeConfigs);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"contextName\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"workspace\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"workspaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"apiUrl\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"online\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"accessible\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"ready\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"reconnecting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"disconnected\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"isAdmin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"isGlobalWatchEnabled\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"preferences\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"metadata\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"allowedNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"allowedResources\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"accessibleNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"labels\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"available\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"name\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"distribution\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"version\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"prometheusPreferences\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"defaultNamespace\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Cluster.prototype, \"updateModel\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"activate\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"reconnect\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], Cluster.prototype, \"disconnect\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"refresh\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"refreshMetadata\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"refreshConnectionStatus\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_8__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Cluster.prototype, \"setState\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/cluster/cluster.ts?");
29861
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cluster\": () => (/* binding */ Cluster)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @kubernetes/client-node */ \"./node_modules/@kubernetes/client-node/dist/index.js\");\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _rbac__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rbac */ \"./src/common/rbac.ts\");\n/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! p-limit */ \"./node_modules/p-limit/index.js\");\n/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(p_limit__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _cluster_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cluster-types */ \"./src/common/cluster-types.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _ipc_cluster__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ipc/cluster */ \"./src/common/ipc/cluster.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_6__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\n/**\n * Cluster\n *\n * @beta\n */\nclass Cluster {\n constructor(dependencies, { id, ...model }, configData) {\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n /** Unique id for a cluster */\n Object.defineProperty(this, \"id\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubeCtl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Context handler\n *\n * @internal\n */\n Object.defineProperty(this, \"_contextHandler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"_proxyKubeconfigManager\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"eventsDisposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.disposer)()\n });\n Object.defineProperty(this, \"activated\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n Object.defineProperty(this, \"resourceAccessStatuses\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n /**\n * Kubeconfig context name\n *\n * @observable\n */\n Object.defineProperty(this, \"contextName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Path to kubeconfig\n *\n * @observable\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * @deprecated\n */\n Object.defineProperty(this, \"workspace\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * @deprecated\n */\n Object.defineProperty(this, \"workspaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Kubernetes API server URL\n *\n * @observable\n */\n Object.defineProperty(this, \"apiUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n }); // cluster server url\n /**\n * Is cluster online\n *\n * @observable\n */\n Object.defineProperty(this, \"online\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n }); // describes if we can detect that cluster is online\n /**\n * Can user access cluster resources\n *\n * @observable\n */\n Object.defineProperty(this, \"accessible\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n }); // if user is able to access cluster resources\n /**\n * Is cluster instance in usable state\n *\n * @observable\n */\n Object.defineProperty(this, \"ready\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n }); // cluster is in usable state\n /**\n * Is cluster currently reconnecting\n *\n * @observable\n */\n Object.defineProperty(this, \"reconnecting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n /**\n * Is cluster disconnected. False if user has selected to connect.\n *\n * @observable\n */\n Object.defineProperty(this, \"disconnected\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n });\n /**\n * Does user have admin like access\n *\n * @observable\n */\n Object.defineProperty(this, \"isAdmin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n /**\n * Global watch-api accessibility , e.g. \"/api/v1/services?watch=1\"\n *\n * @observable\n */\n Object.defineProperty(this, \"isGlobalWatchEnabled\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n /**\n * Preferences\n *\n * @observable\n */\n Object.defineProperty(this, \"preferences\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n /**\n * Metadata\n *\n * @observable\n */\n Object.defineProperty(this, \"metadata\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n /**\n * List of allowed namespaces verified via K8S::SelfSubjectAccessReview api\n *\n * @observable\n */\n Object.defineProperty(this, \"allowedNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * List of allowed resources\n *\n * @observable\n * @internal\n */\n Object.defineProperty(this, \"allowedResources\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * List of accessible namespaces provided by user in the Cluster Settings\n *\n * @observable\n */\n Object.defineProperty(this, \"accessibleNamespaces\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: []\n });\n /**\n * Labels for the catalog entity\n */\n Object.defineProperty(this, \"labels\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_7__.makeObservable)(this);\n const { error } = _cluster_types__WEBPACK_IMPORTED_MODULE_3__.clusterModelIdChecker.validate({ id });\n if (error) {\n throw error;\n }\n this.id = id;\n this.updateModel(model);\n this.apiUrl = configData.clusterServerUrl;\n // for the time being, until renderer gets its own cluster type\n this._contextHandler = this.dependencies.createContextHandler(this);\n this._proxyKubeconfigManager = this.dependencies.createKubeconfigManager(this);\n this.dependencies.logger.debug(`[CLUSTER]: Cluster init success`, {\n id: this.id,\n context: this.contextName,\n apiUrl: this.apiUrl,\n });\n }\n get contextHandler() {\n // TODO: remove these once main/renderer are seperate classes\n assert__WEBPACK_IMPORTED_MODULE_6___default()(this._contextHandler, \"contextHandler is only defined in the main environment\");\n return this._contextHandler;\n }\n get proxyKubeconfigManager() {\n // TODO: remove these once main/renderer are seperate classes\n assert__WEBPACK_IMPORTED_MODULE_6___default()(this._proxyKubeconfigManager, \"proxyKubeconfigManager is only defined in the main environment\");\n return this._proxyKubeconfigManager;\n }\n get whenReady() {\n return (0,mobx__WEBPACK_IMPORTED_MODULE_7__.when)(() => this.ready);\n }\n /**\n * Is cluster available\n *\n * @computed\n */\n get available() {\n return this.accessible && !this.disconnected;\n }\n /**\n * Cluster name\n *\n * @computed\n */\n get name() {\n return this.preferences.clusterName || this.contextName;\n }\n /**\n * The detected kubernetes distribution\n */\n get distribution() {\n var _a;\n return ((_a = this.metadata[_cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterMetadataKey.DISTRIBUTION]) === null || _a === void 0 ? void 0 : _a.toString()) || \"unknown\";\n }\n /**\n * The detected kubernetes version\n */\n get version() {\n var _a;\n return ((_a = this.metadata[_cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterMetadataKey.VERSION]) === null || _a === void 0 ? void 0 : _a.toString()) || \"unknown\";\n }\n /**\n * Prometheus preferences\n *\n * @computed\n * @internal\n */\n get prometheusPreferences() {\n const { prometheus, prometheusProvider } = this.preferences;\n return (0,_utils__WEBPACK_IMPORTED_MODULE_4__.toJS)({ prometheus, prometheusProvider });\n }\n /**\n * defaultNamespace preference\n *\n * @computed\n * @internal\n */\n get defaultNamespace() {\n return this.preferences.defaultNamespace;\n }\n /**\n * Update cluster data model\n *\n * @param model\n */\n updateModel(model) {\n // Note: do not assign ID as that should never be updated\n const { error } = _cluster_types__WEBPACK_IMPORTED_MODULE_3__.updateClusterModelChecker.validate(model, { allowUnknown: true });\n if (error) {\n throw error;\n }\n this.kubeConfigPath = model.kubeConfigPath;\n this.contextName = model.contextName;\n if (model.workspace) {\n this.workspace = model.workspace;\n }\n if (model.workspaces) {\n this.workspaces = model.workspaces;\n }\n if (model.preferences) {\n this.preferences = model.preferences;\n }\n if (model.metadata) {\n this.metadata = model.metadata;\n }\n if (model.accessibleNamespaces) {\n this.accessibleNamespaces = model.accessibleNamespaces;\n }\n if (model.labels) {\n this.labels = model.labels;\n }\n }\n /**\n * @internal\n */\n bindEvents() {\n this.dependencies.logger.info(`[CLUSTER]: bind events`, this.getMeta());\n const refreshTimer = setInterval(() => !this.disconnected && this.refresh(), 30000); // every 30s\n const refreshMetadataTimer = setInterval(() => !this.disconnected && this.refreshMetadata(), 900000); // every 15 minutes\n this.eventsDisposer.push((0,mobx__WEBPACK_IMPORTED_MODULE_7__.reaction)(() => this.getState(), state => this.pushState(state)), (0,mobx__WEBPACK_IMPORTED_MODULE_7__.reaction)(() => this.prometheusPreferences, prefs => this.contextHandler.setupPrometheus(prefs), { equals: mobx__WEBPACK_IMPORTED_MODULE_7__.comparer.structural }), () => clearInterval(refreshTimer), () => clearInterval(refreshMetadataTimer), (0,mobx__WEBPACK_IMPORTED_MODULE_7__.reaction)(() => this.defaultNamespace, () => this.recreateProxyKubeconfig()));\n }\n /**\n * @internal\n */\n async recreateProxyKubeconfig() {\n this.dependencies.logger.info(\"[CLUSTER]: Recreating proxy kubeconfig\");\n try {\n await this.proxyKubeconfigManager.clear();\n await this.getProxyKubeconfig();\n }\n catch (error) {\n this.dependencies.logger.error(`[CLUSTER]: failed to recreate proxy kubeconfig`, error);\n }\n }\n /**\n * @param force force activation\n * @internal\n */\n async activate(force = false) {\n if (this.activated && !force) {\n return this.pushState();\n }\n this.dependencies.logger.info(`[CLUSTER]: activate`, this.getMeta());\n if (!this.eventsDisposer.length) {\n this.bindEvents();\n }\n if (this.disconnected || !this.accessible) {\n try {\n this.broadcastConnectUpdate(\"Starting connection ...\");\n await this.reconnect();\n }\n catch (error) {\n this.broadcastConnectUpdate(`Failed to start connection: ${error}`, true);\n return;\n }\n }\n try {\n this.broadcastConnectUpdate(\"Refreshing connection status ...\");\n await this.refreshConnectionStatus();\n }\n catch (error) {\n this.broadcastConnectUpdate(`Failed to connection status: ${error}`, true);\n return;\n }\n if (this.accessible) {\n try {\n this.broadcastConnectUpdate(\"Refreshing cluster accessibility ...\");\n await this.refreshAccessibility();\n }\n catch (error) {\n this.broadcastConnectUpdate(`Failed to refresh accessibility: ${error}`, true);\n return;\n }\n // download kubectl in background, so it's not blocking dashboard\n this.ensureKubectl()\n .catch(error => this.dependencies.logger.warn(`[CLUSTER]: failed to download kubectl for clusterId=${this.id}`, error));\n this.broadcastConnectUpdate(\"Connected, waiting for view to load ...\");\n }\n this.activated = true;\n this.pushState();\n }\n /**\n * @internal\n */\n async ensureKubectl() {\n var _a;\n (_a = this.kubeCtl) !== null && _a !== void 0 ? _a : (this.kubeCtl = this.dependencies.createKubectl(this.version));\n await this.kubeCtl.ensureKubectl();\n return this.kubeCtl;\n }\n /**\n * @internal\n */\n async reconnect() {\n var _a;\n this.dependencies.logger.info(`[CLUSTER]: reconnect`, this.getMeta());\n await ((_a = this.contextHandler) === null || _a === void 0 ? void 0 : _a.restartServer());\n this.disconnected = false;\n }\n /**\n * @internal\n */\n disconnect() {\n var _a;\n if (this.disconnected) {\n return void this.dependencies.logger.debug(\"[CLUSTER]: already disconnected\", { id: this.id });\n }\n this.dependencies.logger.info(`[CLUSTER]: disconnecting`, { id: this.id });\n this.eventsDisposer();\n (_a = this.contextHandler) === null || _a === void 0 ? void 0 : _a.stopServer();\n this.disconnected = true;\n this.online = false;\n this.accessible = false;\n this.ready = false;\n this.activated = false;\n this.allowedNamespaces = [];\n this.resourceAccessStatuses.clear();\n this.pushState();\n this.dependencies.logger.info(`[CLUSTER]: disconnected`, { id: this.id });\n }\n /**\n * @internal\n * @param opts refresh options\n */\n async refresh(opts = {}) {\n this.dependencies.logger.info(`[CLUSTER]: refresh`, this.getMeta());\n await this.refreshConnectionStatus();\n if (this.accessible) {\n await this.refreshAccessibility();\n if (opts.refreshMetadata) {\n this.refreshMetadata();\n }\n }\n this.pushState();\n }\n /**\n * @internal\n */\n async refreshMetadata() {\n this.dependencies.logger.info(`[CLUSTER]: refreshMetadata`, this.getMeta());\n const metadata = await this.dependencies.detectorRegistry.detectForCluster(this);\n const existingMetadata = this.metadata;\n this.metadata = Object.assign(existingMetadata, metadata);\n }\n /**\n * @internal\n */\n async refreshAccessibility() {\n const proxyConfig = await this.getProxyKubeconfig();\n const canI = this.dependencies.createAuthorizationReview(proxyConfig);\n this.isAdmin = await canI({\n namespace: \"kube-system\",\n resource: \"*\",\n verb: \"create\",\n });\n this.isGlobalWatchEnabled = await canI({\n verb: \"watch\",\n resource: \"*\",\n });\n this.allowedNamespaces = await this.getAllowedNamespaces(proxyConfig);\n this.allowedResources = await this.getAllowedResources(canI);\n this.ready = true;\n }\n /**\n * @internal\n */\n async refreshConnectionStatus() {\n const connectionStatus = await this.getConnectionStatus();\n this.online = connectionStatus > _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.Offline;\n this.accessible = connectionStatus == _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.AccessGranted;\n }\n async getKubeconfig() {\n const { config } = await this.dependencies.loadConfigfromFile(this.kubeConfigPath);\n return config;\n }\n /**\n * @internal\n */\n async getProxyKubeconfig() {\n const proxyKCPath = await this.getProxyKubeconfigPath();\n const { config } = await this.dependencies.loadConfigfromFile(proxyKCPath);\n return config;\n }\n /**\n * @internal\n */\n async getProxyKubeconfigPath() {\n return this.proxyKubeconfigManager.getPath();\n }\n async getConnectionStatus() {\n try {\n const versionDetector = this.dependencies.createVersionDetector(this);\n const versionData = await versionDetector.detect();\n this.metadata.version = versionData.value;\n return _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.AccessGranted;\n }\n catch (error) {\n this.dependencies.logger.error(`[CLUSTER]: Failed to connect to \"${this.contextName}\": ${error}`);\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.isRequestError)(error)) {\n if (error.statusCode) {\n if (error.statusCode >= 400 && error.statusCode < 500) {\n this.broadcastConnectUpdate(\"Invalid credentials\", true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.AccessDenied;\n }\n const message = String(error.error || error.message) || String(error);\n this.broadcastConnectUpdate(message, true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.Offline;\n }\n if (error.failed === true) {\n if (error.timedOut === true) {\n this.broadcastConnectUpdate(\"Connection timed out\", true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.Offline;\n }\n this.broadcastConnectUpdate(\"Failed to fetch credentials\", true);\n return _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.AccessDenied;\n }\n const message = String(error.error || error.message) || String(error);\n this.broadcastConnectUpdate(message, true);\n }\n else {\n this.broadcastConnectUpdate(\"Unknown error has occurred\", true);\n }\n return _cluster_types__WEBPACK_IMPORTED_MODULE_3__.ClusterStatus.Offline;\n }\n }\n toJSON() {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_4__.toJS)({\n id: this.id,\n contextName: this.contextName,\n kubeConfigPath: this.kubeConfigPath,\n workspace: this.workspace,\n workspaces: this.workspaces,\n preferences: this.preferences,\n metadata: this.metadata,\n accessibleNamespaces: this.accessibleNamespaces,\n labels: this.labels,\n });\n }\n /**\n * Serializable cluster-state used for sync btw main <-> renderer\n */\n getState() {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_4__.toJS)({\n apiUrl: this.apiUrl,\n online: this.online,\n ready: this.ready,\n disconnected: this.disconnected,\n accessible: this.accessible,\n isAdmin: this.isAdmin,\n allowedNamespaces: this.allowedNamespaces,\n allowedResources: this.allowedResources,\n isGlobalWatchEnabled: this.isGlobalWatchEnabled,\n });\n }\n /**\n * @internal\n * @param state cluster state\n */\n setState(state) {\n Object.assign(this, state);\n }\n /**\n * @internal\n * @param state cluster state\n */\n pushState(state = this.getState()) {\n this.dependencies.logger.silly(`[CLUSTER]: push-state`, state);\n this.dependencies.broadcastMessage(\"cluster:state\", this.id, state);\n }\n // get cluster system meta, e.g. use in \"logger\"\n getMeta() {\n return {\n id: this.id,\n name: this.contextName,\n ready: this.ready,\n online: this.online,\n accessible: this.accessible,\n disconnected: this.disconnected,\n };\n }\n /**\n * broadcast an authentication update concerning this cluster\n * @internal\n */\n broadcastConnectUpdate(message, isError = false) {\n const update = { message, isError };\n this.dependencies.logger.debug(`[CLUSTER]: broadcasting connection update`, { ...update, meta: this.getMeta() });\n this.dependencies.broadcastMessage(`cluster:${this.id}:connection-update`, update);\n }\n async getAllowedNamespaces(proxyConfig) {\n if (this.accessibleNamespaces.length) {\n return this.accessibleNamespaces;\n }\n try {\n const listNamespaces = this.dependencies.createListNamespaces(proxyConfig);\n return await listNamespaces();\n }\n catch (error) {\n const ctx = proxyConfig.getContextObject(this.contextName);\n const namespaceList = [ctx === null || ctx === void 0 ? void 0 : ctx.namespace].filter(_utils__WEBPACK_IMPORTED_MODULE_4__.isDefined);\n if (namespaceList.length === 0 && error instanceof _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__.HttpError && error.statusCode === 403) {\n const { response } = error;\n this.dependencies.logger.info(\"[CLUSTER]: listing namespaces is forbidden, broadcasting\", { clusterId: this.id, error: response.body });\n this.dependencies.broadcastMessage(_ipc_cluster__WEBPACK_IMPORTED_MODULE_5__.clusterListNamespaceForbiddenChannel, this.id);\n }\n return namespaceList;\n }\n }\n async getAllowedResources(canI) {\n try {\n if (!this.allowedNamespaces.length) {\n return [];\n }\n const resources = _rbac__WEBPACK_IMPORTED_MODULE_1__.apiResources.filter((resource) => this.resourceAccessStatuses.get(resource) === undefined);\n const apiLimit = p_limit__WEBPACK_IMPORTED_MODULE_2___default()(5); // 5 concurrent api requests\n const requests = [];\n for (const apiResource of resources) {\n requests.push(apiLimit(async () => {\n for (const namespace of this.allowedNamespaces.slice(0, 10)) {\n if (!this.resourceAccessStatuses.get(apiResource)) {\n const result = await canI({\n resource: apiResource.apiName,\n group: apiResource.group,\n verb: \"list\",\n namespace,\n });\n this.resourceAccessStatuses.set(apiResource, result);\n }\n }\n }));\n }\n await Promise.all(requests);\n return _rbac__WEBPACK_IMPORTED_MODULE_1__.apiResources.filter((resource) => this.resourceAccessStatuses.get(resource))\n .map(apiResource => apiResource.apiName);\n }\n catch (error) {\n return [];\n }\n }\n isAllowedResource(kind) {\n if (kind in _rbac__WEBPACK_IMPORTED_MODULE_1__.apiResourceRecord) {\n return this.allowedResources.includes(kind);\n }\n const apiResource = _rbac__WEBPACK_IMPORTED_MODULE_1__.apiResources.find(resource => resource.kind === kind);\n if (apiResource) {\n return this.allowedResources.includes(apiResource.apiName);\n }\n return true; // allowed by default for other resources\n }\n isMetricHidden(resource) {\n var _a;\n return Boolean((_a = this.preferences.hiddenMetrics) === null || _a === void 0 ? void 0 : _a.includes(resource));\n }\n get nodeShellImage() {\n var _a;\n return ((_a = this.preferences) === null || _a === void 0 ? void 0 : _a.nodeShellImage) || _cluster_types__WEBPACK_IMPORTED_MODULE_3__.initialNodeShellImage;\n }\n get imagePullSecret() {\n var _a;\n return (_a = this.preferences) === null || _a === void 0 ? void 0 : _a.imagePullSecret;\n }\n isInLocalKubeconfig() {\n return this.kubeConfigPath.startsWith(this.dependencies.directoryForKubeConfigs);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"contextName\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"workspace\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"workspaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", String)\n], Cluster.prototype, \"apiUrl\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"online\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"accessible\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"ready\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"reconnecting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"disconnected\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"isAdmin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"isGlobalWatchEnabled\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"preferences\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"metadata\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"allowedNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"allowedResources\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Array)\n], Cluster.prototype, \"accessibleNamespaces\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], Cluster.prototype, \"labels\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"available\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"name\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"distribution\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"version\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"prometheusPreferences\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], Cluster.prototype, \"defaultNamespace\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Cluster.prototype, \"updateModel\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"activate\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"reconnect\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], Cluster.prototype, \"disconnect\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"refresh\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"refreshMetadata\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], Cluster.prototype, \"refreshConnectionStatus\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], Cluster.prototype, \"setState\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/cluster/cluster.ts?");
29862
29862
 
29863
29863
  /***/ }),
29864
29864
 
@@ -29880,7 +29880,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29880
29880
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29881
29881
 
29882
29882
  "use strict";
29883
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../path/get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst directoryForLensLocalStorageInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"directory-for-lens-local-storage\",\n instantiate: (di) => {\n const getAbsolutePath = di.inject(_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const directoryForUserData = di.inject(_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return getAbsolutePath(directoryForUserData, \"lens-local-storage\");\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (directoryForLensLocalStorageInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts?");
29883
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst directoryForLensLocalStorageInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"directory-for-lens-local-storage\",\n instantiate: (di) => {\n const joinPaths = di.inject(_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const directoryForUserData = di.inject(_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return joinPaths(directoryForUserData, \"lens-local-storage\");\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (directoryForLensLocalStorageInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts?");
29884
29884
 
29885
29885
  /***/ }),
29886
29886
 
@@ -29895,6 +29895,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
29895
29895
 
29896
29896
  /***/ }),
29897
29897
 
29898
+ /***/ "./src/common/fetch/fetch.injectable.ts":
29899
+ /*!**********************************************!*\
29900
+ !*** ./src/common/fetch/fetch.injectable.ts ***!
29901
+ \**********************************************/
29902
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
29903
+
29904
+ "use strict";
29905
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var node_fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! node-fetch */ \"./node_modules/node-fetch/browser.js\");\n/* harmony import */ var node_fetch__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(node_fetch__WEBPACK_IMPORTED_MODULE_1__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst fetchInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"fetch\",\n instantiate: () => (node_fetch__WEBPACK_IMPORTED_MODULE_1___default()),\n causesSideEffects: true,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (fetchInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/fetch/fetch.injectable.ts?");
29906
+
29907
+ /***/ }),
29908
+
29898
29909
  /***/ "./src/common/front-end-routing/front-end-route-injection-token.ts":
29899
29910
  /*!*************************************************************************!*\
29900
29911
  !*** ./src/common/front-end-routing/front-end-route-injection-token.ts ***!
@@ -30001,7 +30012,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30001
30012
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30002
30013
 
30003
30014
  "use strict";
30004
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _fs_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fs.injectable */ \"./src/common/fs/fs.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst writeJsonFile = ({ writeJson, ensureDir }) => async (filePath, content) => {\n await ensureDir(path__WEBPACK_IMPORTED_MODULE_1___default().dirname(filePath), { mode: 0o755 });\n await writeJson(filePath, content, {\n encoding: \"utf-8\",\n spaces: 2,\n });\n};\nconst writeJsonFileInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"write-json-file\",\n instantiate: (di) => {\n const { writeJson, ensureDir } = di.inject(_fs_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return writeJsonFile({\n writeJson,\n ensureDir,\n });\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (writeJsonFileInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/fs/write-json-file.injectable.ts?");
30015
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _path_get_dirname_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/get-dirname.injectable */ \"./src/common/path/get-dirname.injectable.ts\");\n/* harmony import */ var _fs_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./fs.injectable */ \"./src/common/fs/fs.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst writeJsonFileInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"write-json-file\",\n instantiate: (di) => {\n const { writeJson, ensureDir } = di.inject(_fs_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const getDirnameOfPath = di.inject(_path_get_dirname_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return async (filePath, content) => {\n await ensureDir(getDirnameOfPath(filePath), { mode: 0o755 });\n await writeJson(filePath, content, {\n encoding: \"utf-8\",\n spaces: 2,\n });\n };\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (writeJsonFileInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/fs/write-json-file.injectable.ts?");
30005
30016
 
30006
30017
  /***/ }),
30007
30018
 
@@ -30045,7 +30056,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30045
30056
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30046
30057
 
30047
30058
  "use strict";
30048
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"clusterActivateHandler\": () => (/* binding */ clusterActivateHandler),\n/* harmony export */ \"clusterClearDeletingHandler\": () => (/* binding */ clusterClearDeletingHandler),\n/* harmony export */ \"clusterDeleteHandler\": () => (/* binding */ clusterDeleteHandler),\n/* harmony export */ \"clusterDisconnectHandler\": () => (/* binding */ clusterDisconnectHandler),\n/* harmony export */ \"clusterKubectlApplyAllHandler\": () => (/* binding */ clusterKubectlApplyAllHandler),\n/* harmony export */ \"clusterKubectlDeleteAllHandler\": () => (/* binding */ clusterKubectlDeleteAllHandler),\n/* harmony export */ \"clusterListNamespaceForbiddenChannel\": () => (/* binding */ clusterListNamespaceForbiddenChannel),\n/* harmony export */ \"clusterRefreshHandler\": () => (/* binding */ clusterRefreshHandler),\n/* harmony export */ \"clusterSetDeletingHandler\": () => (/* binding */ clusterSetDeletingHandler),\n/* harmony export */ \"clusterSetFrameIdHandler\": () => (/* binding */ clusterSetFrameIdHandler),\n/* harmony export */ \"clusterStates\": () => (/* binding */ clusterStates),\n/* harmony export */ \"clusterVisibilityHandler\": () => (/* binding */ clusterVisibilityHandler),\n/* harmony export */ \"isListNamespaceForbiddenArgs\": () => (/* binding */ isListNamespaceForbiddenArgs)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nconst clusterActivateHandler = \"cluster:activate\";\nconst clusterSetFrameIdHandler = \"cluster:set-frame-id\";\nconst clusterVisibilityHandler = \"cluster:visibility\";\nconst clusterRefreshHandler = \"cluster:refresh\";\nconst clusterDisconnectHandler = \"cluster:disconnect\";\nconst clusterDeleteHandler = \"cluster:delete\";\nconst clusterSetDeletingHandler = \"cluster:deleting:set\";\nconst clusterClearDeletingHandler = \"cluster:deleting:clear\";\nconst clusterKubectlApplyAllHandler = \"cluster:kubectl-apply-all\";\nconst clusterKubectlDeleteAllHandler = \"cluster:kubectl-delete-all\";\nconst clusterStates = \"cluster:states\";\n/**\n * This channel is broadcast on whenever the cluster fails to list namespaces\n * during a refresh and no `accessibleNamespaces` have been set.\n */\nconst clusterListNamespaceForbiddenChannel = \"cluster:list-namespace-forbidden\";\nfunction isListNamespaceForbiddenArgs(args) {\n return args.length === 1 && typeof args[0] === \"string\";\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/ipc/cluster.ts?");
30059
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"clusterActivateHandler\": () => (/* binding */ clusterActivateHandler),\n/* harmony export */ \"clusterDisconnectHandler\": () => (/* binding */ clusterDisconnectHandler),\n/* harmony export */ \"clusterKubectlApplyAllHandler\": () => (/* binding */ clusterKubectlApplyAllHandler),\n/* harmony export */ \"clusterKubectlDeleteAllHandler\": () => (/* binding */ clusterKubectlDeleteAllHandler),\n/* harmony export */ \"clusterListNamespaceForbiddenChannel\": () => (/* binding */ clusterListNamespaceForbiddenChannel),\n/* harmony export */ \"clusterRefreshHandler\": () => (/* binding */ clusterRefreshHandler),\n/* harmony export */ \"clusterSetFrameIdHandler\": () => (/* binding */ clusterSetFrameIdHandler),\n/* harmony export */ \"clusterStates\": () => (/* binding */ clusterStates),\n/* harmony export */ \"clusterVisibilityHandler\": () => (/* binding */ clusterVisibilityHandler),\n/* harmony export */ \"isListNamespaceForbiddenArgs\": () => (/* binding */ isListNamespaceForbiddenArgs)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nconst clusterActivateHandler = \"cluster:activate\";\nconst clusterSetFrameIdHandler = \"cluster:set-frame-id\";\nconst clusterVisibilityHandler = \"cluster:visibility\";\nconst clusterRefreshHandler = \"cluster:refresh\";\nconst clusterDisconnectHandler = \"cluster:disconnect\";\nconst clusterKubectlApplyAllHandler = \"cluster:kubectl-apply-all\";\nconst clusterKubectlDeleteAllHandler = \"cluster:kubectl-delete-all\";\nconst clusterStates = \"cluster:states\";\n/**\n * This channel is broadcast on whenever the cluster fails to list namespaces\n * during a refresh and no `accessibleNamespaces` have been set.\n */\nconst clusterListNamespaceForbiddenChannel = \"cluster:list-namespace-forbidden\";\nfunction isListNamespaceForbiddenArgs(args) {\n return args.length === 1 && typeof args[0] === \"string\";\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/ipc/cluster.ts?");
30049
30060
 
30050
30061
  /***/ }),
30051
30062
 
@@ -30155,7 +30166,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30155
30166
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30156
30167
 
30157
30168
  "use strict";
30158
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiBase\": () => (/* binding */ apiBase)\n/* harmony export */ });\n/* harmony import */ var _json_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./json-api */ \"./src/common/k8s-api/json-api.ts\");\n/* harmony import */ var _vars__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nlet apiBase;\nif (typeof window === \"undefined\") {\n _app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_2__.appEventBus.addListener((event) => {\n if (event.name !== \"lens-proxy\" && event.action !== \"listen\")\n return;\n const params = event.params;\n if (!params.port)\n return;\n apiBase = new _json_api__WEBPACK_IMPORTED_MODULE_0__.JsonApi({\n serverAddress: `http://127.0.0.1:${params.port}`,\n apiBase: _vars__WEBPACK_IMPORTED_MODULE_1__.apiPrefix,\n debug: _vars__WEBPACK_IMPORTED_MODULE_1__.isDevelopment || _vars__WEBPACK_IMPORTED_MODULE_1__.isDebugging,\n }, {\n headers: {\n \"Host\": `localhost:${params.port}`,\n },\n });\n });\n}\nelse {\n apiBase = new _json_api__WEBPACK_IMPORTED_MODULE_0__.JsonApi({\n serverAddress: `http://127.0.0.1:${window.location.port}`,\n apiBase: _vars__WEBPACK_IMPORTED_MODULE_1__.apiPrefix,\n debug: _vars__WEBPACK_IMPORTED_MODULE_1__.isDevelopment || _vars__WEBPACK_IMPORTED_MODULE_1__.isDebugging,\n }, {\n headers: {\n \"Host\": window.location.host,\n },\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/api-base.ts?");
30169
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiBaseInjectionToken\": () => (/* binding */ apiBaseInjectionToken)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst apiBaseInjectionToken = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectionToken)({\n id: \"api-base-token\",\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/api-base.ts?");
30159
30170
 
30160
30171
  /***/ }),
30161
30172
 
@@ -30166,7 +30177,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30166
30177
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30167
30178
 
30168
30179
  "use strict";
30169
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiKube\": () => (/* binding */ apiKube),\n/* harmony export */ \"apiKubeInjectionToken\": () => (/* binding */ apiKubeInjectionToken)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst apiKubeInjectionToken = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectionToken)({\n id: \"api-kube-injection-token\",\n});\nconst apiKube = (0,_extensions_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_1__.asLegacyGlobalForExtensionApi)(apiKubeInjectionToken);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/api-kube.ts?");
30180
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiKubeInjectionToken\": () => (/* binding */ apiKubeInjectionToken)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst apiKubeInjectionToken = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectionToken)({\n id: \"api-kube-injection-token\",\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/api-kube.ts?");
30170
30181
 
30171
30182
  /***/ }),
30172
30183
 
@@ -30203,6 +30214,39 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30203
30214
 
30204
30215
  /***/ }),
30205
30216
 
30217
+ /***/ "./src/common/k8s-api/create-kube-api-for-cluster.injectable.ts":
30218
+ /*!**********************************************************************!*\
30219
+ !*** ./src/common/k8s-api/create-kube-api-for-cluster.injectable.ts ***!
30220
+ \**********************************************************************/
30221
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30222
+
30223
+ "use strict";
30224
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vars__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _vars_is_development_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vars/is-development.injectable */ \"./src/common/vars/is-development.injectable.ts\");\n/* harmony import */ var _api_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./api-base */ \"./src/common/k8s-api/api-base.ts\");\n/* harmony import */ var _create_kube_json_api_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./create-kube-json-api.injectable */ \"./src/common/k8s-api/create-kube-json-api.injectable.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\nconst createKubeApiForClusterInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-kube-api-for-cluster\",\n instantiate: (di) => {\n const apiBase = di.inject(_api_base__WEBPACK_IMPORTED_MODULE_3__.apiBaseInjectionToken);\n const isDevelopment = di.inject(_vars_is_development_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const createKubeJsonApi = di.inject(_create_kube_json_api_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n return (cluster, kubeClass, apiClass = _kube_api__WEBPACK_IMPORTED_MODULE_5__.KubeApi) => (new apiClass({\n objectConstructor: kubeClass,\n request: createKubeJsonApi({\n serverAddress: apiBase.config.serverAddress,\n apiBase: _vars__WEBPACK_IMPORTED_MODULE_1__.apiKubePrefix,\n debug: isDevelopment,\n }, {\n headers: {\n \"Host\": `${cluster.metadata.uid}.localhost:${new URL(apiBase.config.serverAddress).port}`,\n },\n }),\n }));\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createKubeApiForClusterInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/create-kube-api-for-cluster.injectable.ts?");
30225
+
30226
+ /***/ }),
30227
+
30228
+ /***/ "./src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts":
30229
+ /*!*****************************************************************************!*\
30230
+ !*** ./src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts ***!
30231
+ \*****************************************************************************/
30232
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30233
+
30234
+ "use strict";
30235
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vars_is_development_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vars/is-development.injectable */ \"./src/common/vars/is-development.injectable.ts\");\n/* harmony import */ var _create_kube_json_api_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./create-kube-json-api.injectable */ \"./src/common/k8s-api/create-kube-json-api.injectable.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\nconst createKubeApiForRemoteClusterInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-kube-api-for-remote-cluster\",\n instantiate: (di) => {\n const isDevelopment = di.inject(_vars_is_development_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const createKubeJsonApi = di.inject(_create_kube_json_api_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n return (config, kubeClass, apiClass = _kube_api__WEBPACK_IMPORTED_MODULE_4__.KubeApi) => {\n const reqInit = {};\n const agentOptions = {};\n if (config.cluster.skipTLSVerify === true) {\n agentOptions.rejectUnauthorized = false;\n }\n if (config.user.clientCertificateData) {\n agentOptions.cert = config.user.clientCertificateData;\n }\n if (config.user.clientKeyData) {\n agentOptions.key = config.user.clientKeyData;\n }\n if (config.cluster.caData) {\n agentOptions.ca = config.cluster.caData;\n }\n if (Object.keys(agentOptions).length > 0) {\n reqInit.agent = new https__WEBPACK_IMPORTED_MODULE_1__.Agent(agentOptions);\n }\n if (config.agent) {\n reqInit.agent = config.agent;\n }\n const token = config.user.token;\n const request = createKubeJsonApi({\n serverAddress: config.cluster.server,\n apiBase: \"\",\n debug: isDevelopment,\n ...(token ? {\n getRequestOptions: async () => ({\n headers: {\n \"Authorization\": `Bearer ${typeof token === \"function\" ? await token() : token}`,\n },\n }),\n } : {}),\n }, reqInit);\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n };\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createKubeApiForRemoteClusterInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts?");
30236
+
30237
+ /***/ }),
30238
+
30239
+ /***/ "./src/common/k8s-api/create-kube-json-api.injectable.ts":
30240
+ /*!***************************************************************!*\
30241
+ !*** ./src/common/k8s-api/create-kube-json-api.injectable.ts ***!
30242
+ \***************************************************************/
30243
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30244
+
30245
+ "use strict";
30246
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _fetch_fetch_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../fetch/fetch.injectable */ \"./src/common/fetch/fetch.injectable.ts\");\n/* harmony import */ var _logger_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logger.injectable */ \"./src/common/logger.injectable.ts\");\n/* harmony import */ var _kube_json_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kube-json-api */ \"./src/common/k8s-api/kube-json-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nconst createKubeJsonApiInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-kube-json-api\",\n instantiate: (di) => {\n const dependencies = {\n fetch: di.inject(_fetch_fetch_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n logger: di.inject(_logger_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n };\n return (config, reqInit) => new _kube_json_api__WEBPACK_IMPORTED_MODULE_3__.KubeJsonApi(dependencies, config, reqInit);\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createKubeJsonApiInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/create-kube-json-api.injectable.ts?");
30247
+
30248
+ /***/ }),
30249
+
30206
30250
  /***/ "./src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts":
30207
30251
  /*!*****************************************************************************!*\
30208
30252
  !*** ./src/common/k8s-api/endpoints/cluster-role-binding.api.injectable.ts ***!
@@ -30254,7 +30298,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30254
30298
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30255
30299
 
30256
30300
  "use strict";
30257
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cluster\": () => (/* binding */ Cluster),\n/* harmony export */ \"ClusterApi\": () => (/* binding */ ClusterApi),\n/* harmony export */ \"ClusterStatus\": () => (/* binding */ ClusterStatus),\n/* harmony export */ \"getMetricsByNodeNames\": () => (/* binding */ getMetricsByNodeNames)\n/* harmony export */ });\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass ClusterApi extends _kube_api__WEBPACK_IMPORTED_MODULE_2__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Cluster,\n });\n }\n}\n/**\n * @deprecated This field is legacy and never used.\n */\nObject.defineProperty(ClusterApi, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Cluster\"\n});\n/**\n * @deprecated This field is legacy and never used.\n */\nObject.defineProperty(ClusterApi, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nfunction getMetricsByNodeNames(nodeNames, params) {\n const nodes = nodeNames.join(\"|\");\n const opts = { category: \"cluster\", nodes };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_0__.metricsApi.getMetrics({\n memoryUsage: opts,\n workloadMemoryUsage: opts,\n memoryRequests: opts,\n memoryLimits: opts,\n memoryCapacity: opts,\n memoryAllocatableCapacity: opts,\n cpuUsage: opts,\n cpuRequests: opts,\n cpuLimits: opts,\n cpuCapacity: opts,\n cpuAllocatableCapacity: opts,\n podUsage: opts,\n podCapacity: opts,\n podAllocatableCapacity: opts,\n fsSize: opts,\n fsUsage: opts,\n }, params);\n}\nvar ClusterStatus;\n(function (ClusterStatus) {\n ClusterStatus[\"ACTIVE\"] = \"Active\";\n ClusterStatus[\"CREATING\"] = \"Creating\";\n ClusterStatus[\"REMOVING\"] = \"Removing\";\n ClusterStatus[\"ERROR\"] = \"Error\";\n})(ClusterStatus || (ClusterStatus = {}));\nclass Cluster extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getStatus() {\n if (this.metadata.deletionTimestamp)\n return ClusterStatus.REMOVING;\n if (!this.status || !this.status)\n return ClusterStatus.CREATING;\n if (this.status.errorMessage)\n return ClusterStatus.ERROR;\n return ClusterStatus.ACTIVE;\n }\n}\nObject.defineProperty(Cluster, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Cluster\"\n});\nObject.defineProperty(Cluster, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/cluster.k8s.io/v1alpha1/clusters\"\n});\nObject.defineProperty(Cluster, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/cluster.api.ts?");
30301
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cluster\": () => (/* binding */ Cluster),\n/* harmony export */ \"ClusterApi\": () => (/* binding */ ClusterApi),\n/* harmony export */ \"ClusterStatus\": () => (/* binding */ ClusterStatus)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nclass ClusterApi extends _kube_api__WEBPACK_IMPORTED_MODULE_1__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Cluster,\n });\n }\n}\n/**\n * @deprecated This field is legacy and never used.\n */\nObject.defineProperty(ClusterApi, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Cluster\"\n});\n/**\n * @deprecated This field is legacy and never used.\n */\nObject.defineProperty(ClusterApi, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nvar ClusterStatus;\n(function (ClusterStatus) {\n ClusterStatus[\"ACTIVE\"] = \"Active\";\n ClusterStatus[\"CREATING\"] = \"Creating\";\n ClusterStatus[\"REMOVING\"] = \"Removing\";\n ClusterStatus[\"ERROR\"] = \"Error\";\n})(ClusterStatus || (ClusterStatus = {}));\nclass Cluster extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n getStatus() {\n if (this.metadata.deletionTimestamp)\n return ClusterStatus.REMOVING;\n if (!this.status || !this.status)\n return ClusterStatus.CREATING;\n if (this.status.errorMessage)\n return ClusterStatus.ERROR;\n return ClusterStatus.ACTIVE;\n }\n}\nObject.defineProperty(Cluster, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Cluster\"\n});\nObject.defineProperty(Cluster, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/cluster.k8s.io/v1alpha1/clusters\"\n});\nObject.defineProperty(Cluster, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/cluster.api.ts?");
30258
30302
 
30259
30303
  /***/ }),
30260
30304
 
@@ -30342,7 +30386,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30342
30386
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30343
30387
 
30344
30388
  "use strict";
30345
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DaemonSet\": () => (/* binding */ DaemonSet),\n/* harmony export */ \"DaemonSetApi\": () => (/* binding */ DaemonSetApi),\n/* harmony export */ \"getMetricsForDaemonSets\": () => (/* binding */ getMetricsForDaemonSets)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass DaemonSet extends _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector);\n }\n getTemplateLabels() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_a = this.spec.template.metadata) === null || _a === void 0 ? void 0 : _a.labels);\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n getAffinity() {\n var _a;\n return (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getImages() {\n var _a, _b, _c, _d, _e, _f;\n const containers = (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.containers) !== null && _c !== void 0 ? _c : [];\n const initContainers = (_f = (_e = (_d = this.spec.template) === null || _d === void 0 ? void 0 : _d.spec) === null || _e === void 0 ? void 0 : _e.initContainers) !== null && _f !== void 0 ? _f : [];\n return [...containers, ...initContainers].map(container => container.image);\n }\n}\nObject.defineProperty(DaemonSet, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"DaemonSet\"\n});\nObject.defineProperty(DaemonSet, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(DaemonSet, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/daemonsets\"\n});\nclass DaemonSetApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: DaemonSet,\n });\n }\n}\nfunction getMetricsForDaemonSets(daemonsets, namespace, selector = \"\") {\n const podSelector = daemonsets.map(daemonset => `${daemonset.getName()}-[[:alnum:]]{5}`).join(\"|\");\n const opts = { category: \"pods\", pods: podSelector, namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_1__.metricsApi.getMetrics({\n cpuUsage: opts,\n memoryUsage: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/daemon-set.api.ts?");
30389
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DaemonSet\": () => (/* binding */ DaemonSet),\n/* harmony export */ \"DaemonSetApi\": () => (/* binding */ DaemonSetApi)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nclass DaemonSet extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector);\n }\n getTemplateLabels() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_a = this.spec.template.metadata) === null || _a === void 0 ? void 0 : _a.labels);\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n getAffinity() {\n var _a;\n return (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getImages() {\n var _a, _b, _c, _d, _e, _f;\n const containers = (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.containers) !== null && _c !== void 0 ? _c : [];\n const initContainers = (_f = (_e = (_d = this.spec.template) === null || _d === void 0 ? void 0 : _d.spec) === null || _e === void 0 ? void 0 : _e.initContainers) !== null && _f !== void 0 ? _f : [];\n return [...containers, ...initContainers].map(container => container.image);\n }\n}\nObject.defineProperty(DaemonSet, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"DaemonSet\"\n});\nObject.defineProperty(DaemonSet, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(DaemonSet, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/daemonsets\"\n});\nclass DaemonSetApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: DaemonSet,\n });\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/daemon-set.api.ts?");
30346
30390
 
30347
30391
  /***/ }),
30348
30392
 
@@ -30364,7 +30408,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30364
30408
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30365
30409
 
30366
30410
  "use strict";
30367
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Deployment\": () => (/* binding */ Deployment),\n/* harmony export */ \"DeploymentApi\": () => (/* binding */ DeploymentApi),\n/* harmony export */ \"getMetricsForDeployments\": () => (/* binding */ getMetricsForDeployments)\n/* harmony export */ });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\nclass DeploymentApi extends _kube_api__WEBPACK_IMPORTED_MODULE_1__.KubeApi {\n constructor(opts) {\n super({\n objectConstructor: Deployment,\n ...opts !== null && opts !== void 0 ? opts : {},\n });\n }\n getScaleApiUrl(params) {\n return `${this.getUrl(params)}/scale`;\n }\n async getReplicas(params) {\n const { status } = await this.request.get(this.getScaleApiUrl(params));\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.isObject)(status) && (0,_utils__WEBPACK_IMPORTED_MODULE_4__.hasTypedProperty)(status, \"replicas\", _utils__WEBPACK_IMPORTED_MODULE_4__.isNumber)) {\n return status.replicas;\n }\n return 0;\n }\n scale(params, replicas) {\n return this.request.patch(this.getScaleApiUrl(params), {\n data: {\n spec: {\n replicas,\n },\n },\n }, {\n headers: {\n \"content-type\": \"application/merge-patch+json\",\n },\n });\n }\n restart(params) {\n return this.request.patch(this.getUrl(params), {\n data: {\n spec: {\n template: {\n metadata: {\n annotations: { \"kubectl.kubernetes.io/restartedAt\": moment__WEBPACK_IMPORTED_MODULE_0___default().utc().format() },\n },\n },\n },\n },\n }, {\n headers: {\n \"content-type\": \"application/strategic-merge-patch+json\",\n },\n });\n }\n}\nfunction getMetricsForDeployments(deployments, namespace, selector = \"\") {\n const podSelector = deployments.map(deployment => `${deployment.getName()}-[[:alnum:]]{9,}-[[:alnum:]]{5}`).join(\"|\");\n const opts = { category: \"pods\", pods: podSelector, namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_2__.metricsApi.getMetrics({\n cpuUsage: opts,\n memoryUsage: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\nclass Deployment extends _kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject.stringifyLabels(this.spec.template.spec.nodeSelector);\n }\n getTemplateLabels() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject.stringifyLabels(this.spec.template.metadata.labels);\n }\n getTolerations() {\n var _a;\n return (_a = this.spec.template.spec.tolerations) !== null && _a !== void 0 ? _a : [];\n }\n getAffinity() {\n return this.spec.template.spec.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getConditions(activeOnly = false) {\n var _a;\n const { conditions = [] } = (_a = this.status) !== null && _a !== void 0 ? _a : {};\n if (activeOnly) {\n return conditions.filter(c => c.status === \"True\");\n }\n return conditions;\n }\n getConditionsText(activeOnly = true) {\n return this.getConditions(activeOnly)\n .map(({ type }) => type)\n .join(\" \");\n }\n getReplicas() {\n return this.spec.replicas || 0;\n }\n}\nObject.defineProperty(Deployment, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Deployment\"\n});\nObject.defineProperty(Deployment, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Deployment, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/deployments\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/deployment.api.ts?");
30411
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Deployment\": () => (/* binding */ Deployment),\n/* harmony export */ \"DeploymentApi\": () => (/* binding */ DeploymentApi)\n/* harmony export */ });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nclass DeploymentApi extends _kube_api__WEBPACK_IMPORTED_MODULE_1__.KubeApi {\n constructor(opts) {\n super({\n objectConstructor: Deployment,\n ...opts !== null && opts !== void 0 ? opts : {},\n });\n }\n getScaleApiUrl(params) {\n return `${this.getUrl(params)}/scale`;\n }\n async getReplicas(params) {\n const { status } = await this.request.get(this.getScaleApiUrl(params));\n if ((0,_utils__WEBPACK_IMPORTED_MODULE_3__.isObject)(status) && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.hasTypedProperty)(status, \"replicas\", _utils__WEBPACK_IMPORTED_MODULE_3__.isNumber)) {\n return status.replicas;\n }\n return 0;\n }\n scale(params, replicas) {\n return this.request.patch(this.getScaleApiUrl(params), {\n data: {\n spec: {\n replicas,\n },\n },\n }, {\n headers: {\n \"content-type\": \"application/merge-patch+json\",\n },\n });\n }\n restart(params) {\n return this.request.patch(this.getUrl(params), {\n data: {\n spec: {\n template: {\n metadata: {\n annotations: { \"kubectl.kubernetes.io/restartedAt\": moment__WEBPACK_IMPORTED_MODULE_0___default().utc().format() },\n },\n },\n },\n },\n }, {\n headers: {\n \"content-type\": \"application/strategic-merge-patch+json\",\n },\n });\n }\n}\nclass Deployment extends _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.template.spec.nodeSelector);\n }\n getTemplateLabels() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.template.metadata.labels);\n }\n getTolerations() {\n var _a;\n return (_a = this.spec.template.spec.tolerations) !== null && _a !== void 0 ? _a : [];\n }\n getAffinity() {\n return this.spec.template.spec.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getConditions(activeOnly = false) {\n var _a;\n const { conditions = [] } = (_a = this.status) !== null && _a !== void 0 ? _a : {};\n if (activeOnly) {\n return conditions.filter(c => c.status === \"True\");\n }\n return conditions;\n }\n getConditionsText(activeOnly = true) {\n return this.getConditions(activeOnly)\n .map(({ type }) => type)\n .join(\" \");\n }\n getReplicas() {\n return this.spec.replicas || 0;\n }\n}\nObject.defineProperty(Deployment, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Deployment\"\n});\nObject.defineProperty(Deployment, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Deployment, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/deployments\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/deployment.api.ts?");
30368
30412
 
30369
30413
  /***/ }),
30370
30414
 
@@ -30412,17 +30456,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30412
30456
 
30413
30457
  /***/ }),
30414
30458
 
30415
- /***/ "./src/common/k8s-api/endpoints/helm-releases.api.ts":
30416
- /*!***********************************************************!*\
30417
- !*** ./src/common/k8s-api/endpoints/helm-releases.api.ts ***!
30418
- \***********************************************************/
30419
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30420
-
30421
- "use strict";
30422
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"deleteRelease\": () => (/* binding */ deleteRelease),\n/* harmony export */ \"endpoint\": () => (/* binding */ endpoint),\n/* harmony export */ \"getReleaseHistory\": () => (/* binding */ getReleaseHistory),\n/* harmony export */ \"getReleaseValues\": () => (/* binding */ getReleaseValues),\n/* harmony export */ \"rollbackRelease\": () => (/* binding */ rollbackRelease)\n/* harmony export */ });\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../index */ \"./src/common/k8s-api/index.ts\");\n/* harmony import */ var _utils_buildUrl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/buildUrl */ \"./src/common/utils/buildUrl.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst endpoint = (0,_utils_buildUrl__WEBPACK_IMPORTED_MODULE_1__.buildURLPositional)(\"/v2/releases/:namespace?/:name?/:route?\");\nasync function deleteRelease(name, namespace) {\n const path = endpoint({ name, namespace });\n return _index__WEBPACK_IMPORTED_MODULE_0__.apiBase.del(path);\n}\nasync function getReleaseValues(name, namespace, all) {\n const route = \"values\";\n const path = endpoint({ name, namespace, route }, { all });\n return _index__WEBPACK_IMPORTED_MODULE_0__.apiBase.get(path);\n}\nasync function getReleaseHistory(name, namespace) {\n const route = \"history\";\n const path = endpoint({ name, namespace, route });\n return _index__WEBPACK_IMPORTED_MODULE_0__.apiBase.get(path);\n}\nasync function rollbackRelease(name, namespace, revision) {\n const route = \"rollback\";\n const path = endpoint({ name, namespace, route });\n const data = { revision };\n return _index__WEBPACK_IMPORTED_MODULE_0__.apiBase.put(path, { data });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/helm-releases.api.ts?");
30423
-
30424
- /***/ }),
30425
-
30426
30459
  /***/ "./src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts":
30427
30460
  /*!**********************************************************************************!*\
30428
30461
  !*** ./src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.injectable.ts ***!
@@ -30452,7 +30485,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30452
30485
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30453
30486
 
30454
30487
  "use strict";
30455
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cluster\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.Cluster),\n/* harmony export */ \"ClusterApi\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.ClusterApi),\n/* harmony export */ \"ClusterRole\": () => (/* reexport safe */ _cluster_role_api__WEBPACK_IMPORTED_MODULE_1__.ClusterRole),\n/* harmony export */ \"ClusterRoleApi\": () => (/* reexport safe */ _cluster_role_api__WEBPACK_IMPORTED_MODULE_1__.ClusterRoleApi),\n/* harmony export */ \"ClusterRoleBinding\": () => (/* reexport safe */ _cluster_role_binding_api__WEBPACK_IMPORTED_MODULE_2__.ClusterRoleBinding),\n/* harmony export */ \"ClusterRoleBindingApi\": () => (/* reexport safe */ _cluster_role_binding_api__WEBPACK_IMPORTED_MODULE_2__.ClusterRoleBindingApi),\n/* harmony export */ \"ClusterStatus\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.ClusterStatus),\n/* harmony export */ \"ConfigMap\": () => (/* reexport safe */ _config_map_api__WEBPACK_IMPORTED_MODULE_3__.ConfigMap),\n/* harmony export */ \"ConfigMapApi\": () => (/* reexport safe */ _config_map_api__WEBPACK_IMPORTED_MODULE_3__.ConfigMapApi),\n/* harmony export */ \"CronJob\": () => (/* reexport safe */ _cron_job_api__WEBPACK_IMPORTED_MODULE_5__.CronJob),\n/* harmony export */ \"CronJobApi\": () => (/* reexport safe */ _cron_job_api__WEBPACK_IMPORTED_MODULE_5__.CronJobApi),\n/* harmony export */ \"CustomResourceDefinition\": () => (/* reexport safe */ _custom_resource_definition_api__WEBPACK_IMPORTED_MODULE_4__.CustomResourceDefinition),\n/* harmony export */ \"CustomResourceDefinitionApi\": () => (/* reexport safe */ _custom_resource_definition_api__WEBPACK_IMPORTED_MODULE_4__.CustomResourceDefinitionApi),\n/* harmony export */ \"DaemonSet\": () => (/* reexport safe */ _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__.DaemonSet),\n/* harmony export */ \"DaemonSetApi\": () => (/* reexport safe */ _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__.DaemonSetApi),\n/* harmony export */ \"Deployment\": () => (/* reexport safe */ _deployment_api__WEBPACK_IMPORTED_MODULE_7__.Deployment),\n/* harmony export */ \"DeploymentApi\": () => (/* reexport safe */ _deployment_api__WEBPACK_IMPORTED_MODULE_7__.DeploymentApi),\n/* harmony export */ \"Endpoints\": () => (/* reexport safe */ _endpoint_api__WEBPACK_IMPORTED_MODULE_8__.Endpoints),\n/* harmony export */ \"EndpointsApi\": () => (/* reexport safe */ _endpoint_api__WEBPACK_IMPORTED_MODULE_8__.EndpointsApi),\n/* harmony export */ \"HorizontalPodAutoscaler\": () => (/* reexport safe */ _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__.HorizontalPodAutoscaler),\n/* harmony export */ \"HorizontalPodAutoscalerApi\": () => (/* reexport safe */ _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__.HorizontalPodAutoscalerApi),\n/* harmony export */ \"HpaMetricType\": () => (/* reexport safe */ _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__.HpaMetricType),\n/* harmony export */ \"Ingress\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.Ingress),\n/* harmony export */ \"IngressApi\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.IngressApi),\n/* harmony export */ \"Job\": () => (/* reexport safe */ _job_api__WEBPACK_IMPORTED_MODULE_12__.Job),\n/* harmony export */ \"JobApi\": () => (/* reexport safe */ _job_api__WEBPACK_IMPORTED_MODULE_12__.JobApi),\n/* harmony export */ \"KubeEvent\": () => (/* reexport safe */ _events_api__WEBPACK_IMPORTED_MODULE_9__.KubeEvent),\n/* harmony export */ \"KubeEventApi\": () => (/* reexport safe */ _events_api__WEBPACK_IMPORTED_MODULE_9__.KubeEventApi),\n/* harmony export */ \"LimitPart\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitPart),\n/* harmony export */ \"LimitRange\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitRange),\n/* harmony export */ \"LimitRangeApi\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitRangeApi),\n/* harmony export */ \"LimitType\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitType),\n/* harmony export */ \"Namespace\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.Namespace),\n/* harmony export */ \"NamespaceApi\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.NamespaceApi),\n/* harmony export */ \"NamespaceStatusKind\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.NamespaceStatusKind),\n/* harmony export */ \"NetworkPolicy\": () => (/* reexport safe */ _network_policy_api__WEBPACK_IMPORTED_MODULE_15__.NetworkPolicy),\n/* harmony export */ \"NetworkPolicyApi\": () => (/* reexport safe */ _network_policy_api__WEBPACK_IMPORTED_MODULE_15__.NetworkPolicyApi),\n/* harmony export */ \"Node\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.Node),\n/* harmony export */ \"NodeApi\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.NodeApi),\n/* harmony export */ \"PersistentVolume\": () => (/* reexport safe */ _persistent_volume_api__WEBPACK_IMPORTED_MODULE_17__.PersistentVolume),\n/* harmony export */ \"PersistentVolumeApi\": () => (/* reexport safe */ _persistent_volume_api__WEBPACK_IMPORTED_MODULE_17__.PersistentVolumeApi),\n/* harmony export */ \"PersistentVolumeClaim\": () => (/* reexport safe */ _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__.PersistentVolumeClaim),\n/* harmony export */ \"PersistentVolumeClaimApi\": () => (/* reexport safe */ _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__.PersistentVolumeClaimApi),\n/* harmony export */ \"Pod\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.Pod),\n/* harmony export */ \"PodApi\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.PodApi),\n/* harmony export */ \"PodDisruptionBudget\": () => (/* reexport safe */ _pod_disruption_budget_api__WEBPACK_IMPORTED_MODULE_20__.PodDisruptionBudget),\n/* harmony export */ \"PodDisruptionBudgetApi\": () => (/* reexport safe */ _pod_disruption_budget_api__WEBPACK_IMPORTED_MODULE_20__.PodDisruptionBudgetApi),\n/* harmony export */ \"PodMetrics\": () => (/* reexport safe */ _pod_metrics_api__WEBPACK_IMPORTED_MODULE_21__.PodMetrics),\n/* harmony export */ \"PodMetricsApi\": () => (/* reexport safe */ _pod_metrics_api__WEBPACK_IMPORTED_MODULE_21__.PodMetricsApi),\n/* harmony export */ \"PodSecurityPolicy\": () => (/* reexport safe */ _pod_security_policy_api__WEBPACK_IMPORTED_MODULE_22__.PodSecurityPolicy),\n/* harmony export */ \"PodSecurityPolicyApi\": () => (/* reexport safe */ _pod_security_policy_api__WEBPACK_IMPORTED_MODULE_22__.PodSecurityPolicyApi),\n/* harmony export */ \"PodStatusPhase\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.PodStatusPhase),\n/* harmony export */ \"PriorityClass\": () => (/* reexport safe */ _priority_class_api__WEBPACK_IMPORTED_MODULE_23__.PriorityClass),\n/* harmony export */ \"PriorityClassApi\": () => (/* reexport safe */ _priority_class_api__WEBPACK_IMPORTED_MODULE_23__.PriorityClassApi),\n/* harmony export */ \"ReplicaSet\": () => (/* reexport safe */ _replica_set_api__WEBPACK_IMPORTED_MODULE_24__.ReplicaSet),\n/* harmony export */ \"ReplicaSetApi\": () => (/* reexport safe */ _replica_set_api__WEBPACK_IMPORTED_MODULE_24__.ReplicaSetApi),\n/* harmony export */ \"Resource\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.Resource),\n/* harmony export */ \"ResourceQuota\": () => (/* reexport safe */ _resource_quota_api__WEBPACK_IMPORTED_MODULE_25__.ResourceQuota),\n/* harmony export */ \"ResourceQuotaApi\": () => (/* reexport safe */ _resource_quota_api__WEBPACK_IMPORTED_MODULE_25__.ResourceQuotaApi),\n/* harmony export */ \"Role\": () => (/* reexport safe */ _role_api__WEBPACK_IMPORTED_MODULE_26__.Role),\n/* harmony export */ \"RoleApi\": () => (/* reexport safe */ _role_api__WEBPACK_IMPORTED_MODULE_26__.RoleApi),\n/* harmony export */ \"RoleBinding\": () => (/* reexport safe */ _role_binding_api__WEBPACK_IMPORTED_MODULE_27__.RoleBinding),\n/* harmony export */ \"RoleBindingApi\": () => (/* reexport safe */ _role_binding_api__WEBPACK_IMPORTED_MODULE_27__.RoleBindingApi),\n/* harmony export */ \"Secret\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_28__.Secret),\n/* harmony export */ \"SecretApi\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_28__.SecretApi),\n/* harmony export */ \"SecretType\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_28__.SecretType),\n/* harmony export */ \"SelfSubjectRulesReview\": () => (/* reexport safe */ _self_subject_rules_reviews_api__WEBPACK_IMPORTED_MODULE_29__.SelfSubjectRulesReview),\n/* harmony export */ \"SelfSubjectRulesReviewApi\": () => (/* reexport safe */ _self_subject_rules_reviews_api__WEBPACK_IMPORTED_MODULE_29__.SelfSubjectRulesReviewApi),\n/* harmony export */ \"Service\": () => (/* reexport safe */ _service_api__WEBPACK_IMPORTED_MODULE_30__.Service),\n/* harmony export */ \"ServiceAccount\": () => (/* reexport safe */ _service_account_api__WEBPACK_IMPORTED_MODULE_31__.ServiceAccount),\n/* harmony export */ \"ServiceAccountApi\": () => (/* reexport safe */ _service_account_api__WEBPACK_IMPORTED_MODULE_31__.ServiceAccountApi),\n/* harmony export */ \"ServiceApi\": () => (/* reexport safe */ _service_api__WEBPACK_IMPORTED_MODULE_30__.ServiceApi),\n/* harmony export */ \"ServicePort\": () => (/* reexport safe */ _service_api__WEBPACK_IMPORTED_MODULE_30__.ServicePort),\n/* harmony export */ \"StatefulSet\": () => (/* reexport safe */ _stateful_set_api__WEBPACK_IMPORTED_MODULE_32__.StatefulSet),\n/* harmony export */ \"StatefulSetApi\": () => (/* reexport safe */ _stateful_set_api__WEBPACK_IMPORTED_MODULE_32__.StatefulSetApi),\n/* harmony export */ \"StorageClass\": () => (/* reexport safe */ _storage_class_api__WEBPACK_IMPORTED_MODULE_33__.StorageClass),\n/* harmony export */ \"StorageClassApi\": () => (/* reexport safe */ _storage_class_api__WEBPACK_IMPORTED_MODULE_33__.StorageClassApi),\n/* harmony export */ \"computeRouteDeclarations\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.computeRouteDeclarations),\n/* harmony export */ \"computeRuleDeclarations\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.computeRuleDeclarations),\n/* harmony export */ \"configMapApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.configMapApi),\n/* harmony export */ \"cronJobApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.cronJobApi),\n/* harmony export */ \"formatEndpointSubset\": () => (/* reexport safe */ _endpoint_api__WEBPACK_IMPORTED_MODULE_8__.formatEndpointSubset),\n/* harmony export */ \"formatNodeTaint\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.formatNodeTaint),\n/* harmony export */ \"getBackendServiceNamePort\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.getBackendServiceNamePort),\n/* harmony export */ \"getMetricsByNodeNames\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.getMetricsByNodeNames),\n/* harmony export */ \"getMetricsForAllNodes\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.getMetricsForAllNodes),\n/* harmony export */ \"getMetricsForDaemonSets\": () => (/* reexport safe */ _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__.getMetricsForDaemonSets),\n/* harmony export */ \"getMetricsForDeployments\": () => (/* reexport safe */ _deployment_api__WEBPACK_IMPORTED_MODULE_7__.getMetricsForDeployments),\n/* harmony export */ \"getMetricsForIngress\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.getMetricsForIngress),\n/* harmony export */ \"getMetricsForJobs\": () => (/* reexport safe */ _job_api__WEBPACK_IMPORTED_MODULE_12__.getMetricsForJobs),\n/* harmony export */ \"getMetricsForNamespace\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.getMetricsForNamespace),\n/* harmony export */ \"getMetricsForPods\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.getMetricsForPods),\n/* harmony export */ \"getMetricsForPvc\": () => (/* reexport safe */ _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__.getMetricsForPvc),\n/* harmony export */ \"getMetricsForReplicaSets\": () => (/* reexport safe */ _replica_set_api__WEBPACK_IMPORTED_MODULE_24__.getMetricsForReplicaSets),\n/* harmony export */ \"getMetricsForStatefulSets\": () => (/* reexport safe */ _stateful_set_api__WEBPACK_IMPORTED_MODULE_32__.getMetricsForStatefulSets),\n/* harmony export */ \"jobApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.jobApi),\n/* harmony export */ \"networkPolicyApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.networkPolicyApi),\n/* harmony export */ \"nodeApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.nodeApi),\n/* harmony export */ \"persistentVolumeClaimApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.persistentVolumeClaimApi),\n/* harmony export */ \"podApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.podApi),\n/* harmony export */ \"resourceQuotaApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.resourceQuotaApi),\n/* harmony export */ \"reverseSecretTypeMap\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_28__.reverseSecretTypeMap),\n/* harmony export */ \"roleApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.roleApi),\n/* harmony export */ \"secretApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.secretApi),\n/* harmony export */ \"serviceApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.serviceApi),\n/* harmony export */ \"storageClassApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_34__.storageClassApi)\n/* harmony export */ });\n/* harmony import */ var _cluster_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cluster.api */ \"./src/common/k8s-api/endpoints/cluster.api.ts\");\n/* harmony import */ var _cluster_role_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cluster-role.api */ \"./src/common/k8s-api/endpoints/cluster-role.api.ts\");\n/* harmony import */ var _cluster_role_binding_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cluster-role-binding.api */ \"./src/common/k8s-api/endpoints/cluster-role-binding.api.ts\");\n/* harmony import */ var _config_map_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config-map.api */ \"./src/common/k8s-api/endpoints/config-map.api.ts\");\n/* harmony import */ var _custom_resource_definition_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./custom-resource-definition.api */ \"./src/common/k8s-api/endpoints/custom-resource-definition.api.ts\");\n/* harmony import */ var _cron_job_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cron-job.api */ \"./src/common/k8s-api/endpoints/cron-job.api.ts\");\n/* harmony import */ var _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./daemon-set.api */ \"./src/common/k8s-api/endpoints/daemon-set.api.ts\");\n/* harmony import */ var _deployment_api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./deployment.api */ \"./src/common/k8s-api/endpoints/deployment.api.ts\");\n/* harmony import */ var _endpoint_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./endpoint.api */ \"./src/common/k8s-api/endpoints/endpoint.api.ts\");\n/* harmony import */ var _events_api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./events.api */ \"./src/common/k8s-api/endpoints/events.api.ts\");\n/* harmony import */ var _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./horizontal-pod-autoscaler.api */ \"./src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.ts\");\n/* harmony import */ var _ingress_api__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ingress.api */ \"./src/common/k8s-api/endpoints/ingress.api.ts\");\n/* harmony import */ var _job_api__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./job.api */ \"./src/common/k8s-api/endpoints/job.api.ts\");\n/* harmony import */ var _limit_range_api__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./limit-range.api */ \"./src/common/k8s-api/endpoints/limit-range.api.ts\");\n/* harmony import */ var _namespace_api__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./namespace.api */ \"./src/common/k8s-api/endpoints/namespace.api.ts\");\n/* harmony import */ var _network_policy_api__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./network-policy.api */ \"./src/common/k8s-api/endpoints/network-policy.api.ts\");\n/* harmony import */ var _node_api__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./node.api */ \"./src/common/k8s-api/endpoints/node.api.ts\");\n/* harmony import */ var _persistent_volume_api__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./persistent-volume.api */ \"./src/common/k8s-api/endpoints/persistent-volume.api.ts\");\n/* harmony import */ var _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./persistent-volume-claim.api */ \"./src/common/k8s-api/endpoints/persistent-volume-claim.api.ts\");\n/* harmony import */ var _pod_api__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pod.api */ \"./src/common/k8s-api/endpoints/pod.api.ts\");\n/* harmony import */ var _pod_disruption_budget_api__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./pod-disruption-budget.api */ \"./src/common/k8s-api/endpoints/pod-disruption-budget.api.ts\");\n/* harmony import */ var _pod_metrics_api__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./pod-metrics.api */ \"./src/common/k8s-api/endpoints/pod-metrics.api.ts\");\n/* harmony import */ var _pod_security_policy_api__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./pod-security-policy.api */ \"./src/common/k8s-api/endpoints/pod-security-policy.api.ts\");\n/* harmony import */ var _priority_class_api__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./priority-class.api */ \"./src/common/k8s-api/endpoints/priority-class.api.ts\");\n/* harmony import */ var _replica_set_api__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./replica-set.api */ \"./src/common/k8s-api/endpoints/replica-set.api.ts\");\n/* harmony import */ var _resource_quota_api__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./resource-quota.api */ \"./src/common/k8s-api/endpoints/resource-quota.api.ts\");\n/* harmony import */ var _role_api__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./role.api */ \"./src/common/k8s-api/endpoints/role.api.ts\");\n/* harmony import */ var _role_binding_api__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./role-binding.api */ \"./src/common/k8s-api/endpoints/role-binding.api.ts\");\n/* harmony import */ var _secret_api__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./secret.api */ \"./src/common/k8s-api/endpoints/secret.api.ts\");\n/* harmony import */ var _self_subject_rules_reviews_api__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./self-subject-rules-reviews.api */ \"./src/common/k8s-api/endpoints/self-subject-rules-reviews.api.ts\");\n/* harmony import */ var _service_api__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./service.api */ \"./src/common/k8s-api/endpoints/service.api.ts\");\n/* harmony import */ var _service_account_api__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./service-account.api */ \"./src/common/k8s-api/endpoints/service-account.api.ts\");\n/* harmony import */ var _stateful_set_api__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./stateful-set.api */ \"./src/common/k8s-api/endpoints/stateful-set.api.ts\");\n/* harmony import */ var _storage_class_api__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./storage-class.api */ \"./src/common/k8s-api/endpoints/storage-class.api.ts\");\n/* harmony import */ var _legacy_globals__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./legacy-globals */ \"./src/common/k8s-api/endpoints/legacy-globals.ts\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./types */ \"./src/common/k8s-api/endpoints/types/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Kubernetes apis\n// Docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/index.ts?");
30488
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Cluster\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.Cluster),\n/* harmony export */ \"ClusterApi\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.ClusterApi),\n/* harmony export */ \"ClusterRole\": () => (/* reexport safe */ _cluster_role_api__WEBPACK_IMPORTED_MODULE_1__.ClusterRole),\n/* harmony export */ \"ClusterRoleApi\": () => (/* reexport safe */ _cluster_role_api__WEBPACK_IMPORTED_MODULE_1__.ClusterRoleApi),\n/* harmony export */ \"ClusterRoleBinding\": () => (/* reexport safe */ _cluster_role_binding_api__WEBPACK_IMPORTED_MODULE_2__.ClusterRoleBinding),\n/* harmony export */ \"ClusterRoleBindingApi\": () => (/* reexport safe */ _cluster_role_binding_api__WEBPACK_IMPORTED_MODULE_2__.ClusterRoleBindingApi),\n/* harmony export */ \"ClusterStatus\": () => (/* reexport safe */ _cluster_api__WEBPACK_IMPORTED_MODULE_0__.ClusterStatus),\n/* harmony export */ \"ConfigMap\": () => (/* reexport safe */ _config_map_api__WEBPACK_IMPORTED_MODULE_3__.ConfigMap),\n/* harmony export */ \"ConfigMapApi\": () => (/* reexport safe */ _config_map_api__WEBPACK_IMPORTED_MODULE_3__.ConfigMapApi),\n/* harmony export */ \"CronJob\": () => (/* reexport safe */ _cron_job_api__WEBPACK_IMPORTED_MODULE_5__.CronJob),\n/* harmony export */ \"CronJobApi\": () => (/* reexport safe */ _cron_job_api__WEBPACK_IMPORTED_MODULE_5__.CronJobApi),\n/* harmony export */ \"CustomResourceDefinition\": () => (/* reexport safe */ _custom_resource_definition_api__WEBPACK_IMPORTED_MODULE_4__.CustomResourceDefinition),\n/* harmony export */ \"CustomResourceDefinitionApi\": () => (/* reexport safe */ _custom_resource_definition_api__WEBPACK_IMPORTED_MODULE_4__.CustomResourceDefinitionApi),\n/* harmony export */ \"DaemonSet\": () => (/* reexport safe */ _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__.DaemonSet),\n/* harmony export */ \"DaemonSetApi\": () => (/* reexport safe */ _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__.DaemonSetApi),\n/* harmony export */ \"Deployment\": () => (/* reexport safe */ _deployment_api__WEBPACK_IMPORTED_MODULE_7__.Deployment),\n/* harmony export */ \"DeploymentApi\": () => (/* reexport safe */ _deployment_api__WEBPACK_IMPORTED_MODULE_7__.DeploymentApi),\n/* harmony export */ \"Endpoints\": () => (/* reexport safe */ _endpoint_api__WEBPACK_IMPORTED_MODULE_8__.Endpoints),\n/* harmony export */ \"EndpointsApi\": () => (/* reexport safe */ _endpoint_api__WEBPACK_IMPORTED_MODULE_8__.EndpointsApi),\n/* harmony export */ \"HorizontalPodAutoscaler\": () => (/* reexport safe */ _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__.HorizontalPodAutoscaler),\n/* harmony export */ \"HorizontalPodAutoscalerApi\": () => (/* reexport safe */ _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__.HorizontalPodAutoscalerApi),\n/* harmony export */ \"HpaMetricType\": () => (/* reexport safe */ _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__.HpaMetricType),\n/* harmony export */ \"Ingress\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.Ingress),\n/* harmony export */ \"IngressApi\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.IngressApi),\n/* harmony export */ \"Job\": () => (/* reexport safe */ _job_api__WEBPACK_IMPORTED_MODULE_12__.Job),\n/* harmony export */ \"JobApi\": () => (/* reexport safe */ _job_api__WEBPACK_IMPORTED_MODULE_12__.JobApi),\n/* harmony export */ \"KubeEvent\": () => (/* reexport safe */ _events_api__WEBPACK_IMPORTED_MODULE_9__.KubeEvent),\n/* harmony export */ \"KubeEventApi\": () => (/* reexport safe */ _events_api__WEBPACK_IMPORTED_MODULE_9__.KubeEventApi),\n/* harmony export */ \"LimitPart\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitPart),\n/* harmony export */ \"LimitRange\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitRange),\n/* harmony export */ \"LimitRangeApi\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitRangeApi),\n/* harmony export */ \"LimitType\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.LimitType),\n/* harmony export */ \"Namespace\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.Namespace),\n/* harmony export */ \"NamespaceApi\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.NamespaceApi),\n/* harmony export */ \"NamespaceStatusKind\": () => (/* reexport safe */ _namespace_api__WEBPACK_IMPORTED_MODULE_14__.NamespaceStatusKind),\n/* harmony export */ \"NetworkPolicy\": () => (/* reexport safe */ _network_policy_api__WEBPACK_IMPORTED_MODULE_15__.NetworkPolicy),\n/* harmony export */ \"NetworkPolicyApi\": () => (/* reexport safe */ _network_policy_api__WEBPACK_IMPORTED_MODULE_15__.NetworkPolicyApi),\n/* harmony export */ \"Node\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.Node),\n/* harmony export */ \"NodeApi\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.NodeApi),\n/* harmony export */ \"PersistentVolume\": () => (/* reexport safe */ _persistent_volume_api__WEBPACK_IMPORTED_MODULE_17__.PersistentVolume),\n/* harmony export */ \"PersistentVolumeApi\": () => (/* reexport safe */ _persistent_volume_api__WEBPACK_IMPORTED_MODULE_17__.PersistentVolumeApi),\n/* harmony export */ \"PersistentVolumeClaim\": () => (/* reexport safe */ _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__.PersistentVolumeClaim),\n/* harmony export */ \"PersistentVolumeClaimApi\": () => (/* reexport safe */ _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__.PersistentVolumeClaimApi),\n/* harmony export */ \"Pod\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.Pod),\n/* harmony export */ \"PodApi\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.PodApi),\n/* harmony export */ \"PodDisruptionBudget\": () => (/* reexport safe */ _pod_disruption_budget_api__WEBPACK_IMPORTED_MODULE_20__.PodDisruptionBudget),\n/* harmony export */ \"PodDisruptionBudgetApi\": () => (/* reexport safe */ _pod_disruption_budget_api__WEBPACK_IMPORTED_MODULE_20__.PodDisruptionBudgetApi),\n/* harmony export */ \"PodMetrics\": () => (/* reexport safe */ _pod_metrics_api__WEBPACK_IMPORTED_MODULE_21__.PodMetrics),\n/* harmony export */ \"PodMetricsApi\": () => (/* reexport safe */ _pod_metrics_api__WEBPACK_IMPORTED_MODULE_21__.PodMetricsApi),\n/* harmony export */ \"PodSecurityPolicy\": () => (/* reexport safe */ _pod_security_policy_api__WEBPACK_IMPORTED_MODULE_22__.PodSecurityPolicy),\n/* harmony export */ \"PodSecurityPolicyApi\": () => (/* reexport safe */ _pod_security_policy_api__WEBPACK_IMPORTED_MODULE_22__.PodSecurityPolicyApi),\n/* harmony export */ \"PodStatusPhase\": () => (/* reexport safe */ _pod_api__WEBPACK_IMPORTED_MODULE_19__.PodStatusPhase),\n/* harmony export */ \"PriorityClass\": () => (/* reexport safe */ _priority_class_api__WEBPACK_IMPORTED_MODULE_23__.PriorityClass),\n/* harmony export */ \"PriorityClassApi\": () => (/* reexport safe */ _priority_class_api__WEBPACK_IMPORTED_MODULE_23__.PriorityClassApi),\n/* harmony export */ \"ReplicaSet\": () => (/* reexport safe */ _replica_set_api__WEBPACK_IMPORTED_MODULE_24__.ReplicaSet),\n/* harmony export */ \"ReplicaSetApi\": () => (/* reexport safe */ _replica_set_api__WEBPACK_IMPORTED_MODULE_24__.ReplicaSetApi),\n/* harmony export */ \"Resource\": () => (/* reexport safe */ _limit_range_api__WEBPACK_IMPORTED_MODULE_13__.Resource),\n/* harmony export */ \"ResourceQuota\": () => (/* reexport safe */ _resource_quota_api__WEBPACK_IMPORTED_MODULE_25__.ResourceQuota),\n/* harmony export */ \"ResourceQuotaApi\": () => (/* reexport safe */ _resource_quota_api__WEBPACK_IMPORTED_MODULE_25__.ResourceQuotaApi),\n/* harmony export */ \"Role\": () => (/* reexport safe */ _role_api__WEBPACK_IMPORTED_MODULE_26__.Role),\n/* harmony export */ \"RoleApi\": () => (/* reexport safe */ _role_api__WEBPACK_IMPORTED_MODULE_26__.RoleApi),\n/* harmony export */ \"RoleBinding\": () => (/* reexport safe */ _role_binding_api__WEBPACK_IMPORTED_MODULE_27__.RoleBinding),\n/* harmony export */ \"RoleBindingApi\": () => (/* reexport safe */ _role_binding_api__WEBPACK_IMPORTED_MODULE_27__.RoleBindingApi),\n/* harmony export */ \"RuntimeClass\": () => (/* reexport safe */ _runtime_class_api__WEBPACK_IMPORTED_MODULE_28__.RuntimeClass),\n/* harmony export */ \"RuntimeClassApi\": () => (/* reexport safe */ _runtime_class_api__WEBPACK_IMPORTED_MODULE_28__.RuntimeClassApi),\n/* harmony export */ \"Secret\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_29__.Secret),\n/* harmony export */ \"SecretApi\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_29__.SecretApi),\n/* harmony export */ \"SecretType\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_29__.SecretType),\n/* harmony export */ \"SelfSubjectRulesReview\": () => (/* reexport safe */ _self_subject_rules_reviews_api__WEBPACK_IMPORTED_MODULE_30__.SelfSubjectRulesReview),\n/* harmony export */ \"SelfSubjectRulesReviewApi\": () => (/* reexport safe */ _self_subject_rules_reviews_api__WEBPACK_IMPORTED_MODULE_30__.SelfSubjectRulesReviewApi),\n/* harmony export */ \"Service\": () => (/* reexport safe */ _service_api__WEBPACK_IMPORTED_MODULE_31__.Service),\n/* harmony export */ \"ServiceAccount\": () => (/* reexport safe */ _service_account_api__WEBPACK_IMPORTED_MODULE_32__.ServiceAccount),\n/* harmony export */ \"ServiceAccountApi\": () => (/* reexport safe */ _service_account_api__WEBPACK_IMPORTED_MODULE_32__.ServiceAccountApi),\n/* harmony export */ \"ServiceApi\": () => (/* reexport safe */ _service_api__WEBPACK_IMPORTED_MODULE_31__.ServiceApi),\n/* harmony export */ \"ServicePort\": () => (/* reexport safe */ _service_api__WEBPACK_IMPORTED_MODULE_31__.ServicePort),\n/* harmony export */ \"StatefulSet\": () => (/* reexport safe */ _stateful_set_api__WEBPACK_IMPORTED_MODULE_33__.StatefulSet),\n/* harmony export */ \"StatefulSetApi\": () => (/* reexport safe */ _stateful_set_api__WEBPACK_IMPORTED_MODULE_33__.StatefulSetApi),\n/* harmony export */ \"StorageClass\": () => (/* reexport safe */ _storage_class_api__WEBPACK_IMPORTED_MODULE_34__.StorageClass),\n/* harmony export */ \"StorageClassApi\": () => (/* reexport safe */ _storage_class_api__WEBPACK_IMPORTED_MODULE_34__.StorageClassApi),\n/* harmony export */ \"computeRouteDeclarations\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.computeRouteDeclarations),\n/* harmony export */ \"computeRuleDeclarations\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.computeRuleDeclarations),\n/* harmony export */ \"configMapApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.configMapApi),\n/* harmony export */ \"cronJobApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.cronJobApi),\n/* harmony export */ \"formatEndpointSubset\": () => (/* reexport safe */ _endpoint_api__WEBPACK_IMPORTED_MODULE_8__.formatEndpointSubset),\n/* harmony export */ \"formatNodeTaint\": () => (/* reexport safe */ _node_api__WEBPACK_IMPORTED_MODULE_16__.formatNodeTaint),\n/* harmony export */ \"getBackendServiceNamePort\": () => (/* reexport safe */ _ingress_api__WEBPACK_IMPORTED_MODULE_11__.getBackendServiceNamePort),\n/* harmony export */ \"jobApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.jobApi),\n/* harmony export */ \"networkPolicyApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.networkPolicyApi),\n/* harmony export */ \"nodeApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.nodeApi),\n/* harmony export */ \"persistentVolumeClaimApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.persistentVolumeClaimApi),\n/* harmony export */ \"podApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.podApi),\n/* harmony export */ \"resourceQuotaApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.resourceQuotaApi),\n/* harmony export */ \"reverseSecretTypeMap\": () => (/* reexport safe */ _secret_api__WEBPACK_IMPORTED_MODULE_29__.reverseSecretTypeMap),\n/* harmony export */ \"roleApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.roleApi),\n/* harmony export */ \"secretApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.secretApi),\n/* harmony export */ \"serviceApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.serviceApi),\n/* harmony export */ \"storageClassApi\": () => (/* reexport safe */ _legacy_globals__WEBPACK_IMPORTED_MODULE_35__.storageClassApi)\n/* harmony export */ });\n/* harmony import */ var _cluster_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cluster.api */ \"./src/common/k8s-api/endpoints/cluster.api.ts\");\n/* harmony import */ var _cluster_role_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./cluster-role.api */ \"./src/common/k8s-api/endpoints/cluster-role.api.ts\");\n/* harmony import */ var _cluster_role_binding_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cluster-role-binding.api */ \"./src/common/k8s-api/endpoints/cluster-role-binding.api.ts\");\n/* harmony import */ var _config_map_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./config-map.api */ \"./src/common/k8s-api/endpoints/config-map.api.ts\");\n/* harmony import */ var _custom_resource_definition_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./custom-resource-definition.api */ \"./src/common/k8s-api/endpoints/custom-resource-definition.api.ts\");\n/* harmony import */ var _cron_job_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cron-job.api */ \"./src/common/k8s-api/endpoints/cron-job.api.ts\");\n/* harmony import */ var _daemon_set_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./daemon-set.api */ \"./src/common/k8s-api/endpoints/daemon-set.api.ts\");\n/* harmony import */ var _deployment_api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./deployment.api */ \"./src/common/k8s-api/endpoints/deployment.api.ts\");\n/* harmony import */ var _endpoint_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./endpoint.api */ \"./src/common/k8s-api/endpoints/endpoint.api.ts\");\n/* harmony import */ var _events_api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./events.api */ \"./src/common/k8s-api/endpoints/events.api.ts\");\n/* harmony import */ var _horizontal_pod_autoscaler_api__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./horizontal-pod-autoscaler.api */ \"./src/common/k8s-api/endpoints/horizontal-pod-autoscaler.api.ts\");\n/* harmony import */ var _ingress_api__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./ingress.api */ \"./src/common/k8s-api/endpoints/ingress.api.ts\");\n/* harmony import */ var _job_api__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./job.api */ \"./src/common/k8s-api/endpoints/job.api.ts\");\n/* harmony import */ var _limit_range_api__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./limit-range.api */ \"./src/common/k8s-api/endpoints/limit-range.api.ts\");\n/* harmony import */ var _namespace_api__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./namespace.api */ \"./src/common/k8s-api/endpoints/namespace.api.ts\");\n/* harmony import */ var _network_policy_api__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./network-policy.api */ \"./src/common/k8s-api/endpoints/network-policy.api.ts\");\n/* harmony import */ var _node_api__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./node.api */ \"./src/common/k8s-api/endpoints/node.api.ts\");\n/* harmony import */ var _persistent_volume_api__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./persistent-volume.api */ \"./src/common/k8s-api/endpoints/persistent-volume.api.ts\");\n/* harmony import */ var _persistent_volume_claim_api__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./persistent-volume-claim.api */ \"./src/common/k8s-api/endpoints/persistent-volume-claim.api.ts\");\n/* harmony import */ var _pod_api__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./pod.api */ \"./src/common/k8s-api/endpoints/pod.api.ts\");\n/* harmony import */ var _pod_disruption_budget_api__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./pod-disruption-budget.api */ \"./src/common/k8s-api/endpoints/pod-disruption-budget.api.ts\");\n/* harmony import */ var _pod_metrics_api__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./pod-metrics.api */ \"./src/common/k8s-api/endpoints/pod-metrics.api.ts\");\n/* harmony import */ var _pod_security_policy_api__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./pod-security-policy.api */ \"./src/common/k8s-api/endpoints/pod-security-policy.api.ts\");\n/* harmony import */ var _priority_class_api__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./priority-class.api */ \"./src/common/k8s-api/endpoints/priority-class.api.ts\");\n/* harmony import */ var _replica_set_api__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./replica-set.api */ \"./src/common/k8s-api/endpoints/replica-set.api.ts\");\n/* harmony import */ var _resource_quota_api__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./resource-quota.api */ \"./src/common/k8s-api/endpoints/resource-quota.api.ts\");\n/* harmony import */ var _role_api__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./role.api */ \"./src/common/k8s-api/endpoints/role.api.ts\");\n/* harmony import */ var _role_binding_api__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./role-binding.api */ \"./src/common/k8s-api/endpoints/role-binding.api.ts\");\n/* harmony import */ var _runtime_class_api__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./runtime-class.api */ \"./src/common/k8s-api/endpoints/runtime-class.api.ts\");\n/* harmony import */ var _secret_api__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./secret.api */ \"./src/common/k8s-api/endpoints/secret.api.ts\");\n/* harmony import */ var _self_subject_rules_reviews_api__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./self-subject-rules-reviews.api */ \"./src/common/k8s-api/endpoints/self-subject-rules-reviews.api.ts\");\n/* harmony import */ var _service_api__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./service.api */ \"./src/common/k8s-api/endpoints/service.api.ts\");\n/* harmony import */ var _service_account_api__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./service-account.api */ \"./src/common/k8s-api/endpoints/service-account.api.ts\");\n/* harmony import */ var _stateful_set_api__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./stateful-set.api */ \"./src/common/k8s-api/endpoints/stateful-set.api.ts\");\n/* harmony import */ var _storage_class_api__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./storage-class.api */ \"./src/common/k8s-api/endpoints/storage-class.api.ts\");\n/* harmony import */ var _legacy_globals__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./legacy-globals */ \"./src/common/k8s-api/endpoints/legacy-globals.ts\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./types */ \"./src/common/k8s-api/endpoints/types/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Kubernetes apis\n// Docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/index.ts?");
30456
30489
 
30457
30490
  /***/ }),
30458
30491
 
@@ -30474,7 +30507,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30474
30507
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30475
30508
 
30476
30509
  "use strict";
30477
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ingress\": () => (/* binding */ Ingress),\n/* harmony export */ \"IngressApi\": () => (/* binding */ IngressApi),\n/* harmony export */ \"computeRouteDeclarations\": () => (/* binding */ computeRouteDeclarations),\n/* harmony export */ \"computeRuleDeclarations\": () => (/* binding */ computeRuleDeclarations),\n/* harmony export */ \"getBackendServiceNamePort\": () => (/* binding */ getBackendServiceNamePort),\n/* harmony export */ \"getMetricsForIngress\": () => (/* binding */ getMetricsForIngress)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nclass IngressApi extends _kube_api__WEBPACK_IMPORTED_MODULE_3__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Ingress,\n // Add fallback for Kubernetes <1.19\n checkPreferredVersion: true,\n fallbackApiBases: [\"/apis/extensions/v1beta1/ingresses\"],\n });\n }\n}\nfunction getMetricsForIngress(ingress, namespace) {\n const opts = { category: \"ingress\", ingress, namespace };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_2__.metricsApi.getMetrics({\n bytesSentSuccess: opts,\n bytesSentFailure: opts,\n requestDurationSeconds: opts,\n responseDurationSeconds: opts,\n }, {\n namespace,\n });\n}\nfunction isExtensionsBackend(backend) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(backend, \"serviceName\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString);\n}\n/**\n * Format an ingress backend into the name of the service and port\n * @param backend The ingress target\n */\nfunction getBackendServiceNamePort(backend) {\n var _a;\n if (!backend) {\n return \"<unknown>\";\n }\n if (isExtensionsBackend(backend)) {\n return `${backend.serviceName}:${backend.servicePort}`;\n }\n if (backend.service) {\n const { name, port } = backend.service;\n return `${name}:${(_a = port.number) !== null && _a !== void 0 ? _a : port.name}`;\n }\n return \"<unknown>\";\n}\nclass Ingress extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n getRules() {\n var _a;\n return (_a = this.spec.rules) !== null && _a !== void 0 ? _a : [];\n }\n getRoutes() {\n return computeRouteDeclarations(this).map(({ url, service }) => `${url} ⇢ ${service}`);\n }\n getServiceNamePort() {\n var _a, _b, _c, _d, _e, _f;\n const { spec: { backend, defaultBackend } = {} } = this;\n const serviceName = (_b = (_a = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : backend === null || backend === void 0 ? void 0 : backend.serviceName;\n const servicePort = (_f = (_d = (_c = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _c === void 0 ? void 0 : _c.port.number) !== null && _d !== void 0 ? _d : (_e = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _e === void 0 ? void 0 : _e.port.name) !== null && _f !== void 0 ? _f : backend === null || backend === void 0 ? void 0 : backend.servicePort;\n if (!serviceName || !servicePort) {\n return undefined;\n }\n return {\n serviceName,\n servicePort,\n };\n }\n getHosts() {\n const { spec: { rules = [] } } = this;\n return [..._utils__WEBPACK_IMPORTED_MODULE_1__.iter.filterMap(rules, rule => rule.host)];\n }\n getPorts() {\n var _a, _b;\n const ports = [];\n const { spec: { tls, rules = [], backend, defaultBackend } } = this;\n const httpPort = 80;\n const tlsPort = 443;\n // Note: not using the port name (string)\n const servicePort = (_b = (_a = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _a === void 0 ? void 0 : _a.port.number) !== null && _b !== void 0 ? _b : backend === null || backend === void 0 ? void 0 : backend.servicePort;\n if (rules.length > 0) {\n if (rules.some(rule => rule.http)) {\n ports.push(httpPort);\n }\n }\n else if (servicePort !== undefined) {\n ports.push(Number(servicePort));\n }\n if (tls && tls.length > 0) {\n ports.push(tlsPort);\n }\n return ports.join(\", \");\n }\n getLoadBalancers() {\n var _a, _b, _c, _d;\n return (_d = (_c = (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.loadBalancer) === null || _b === void 0 ? void 0 : _b.ingress) === null || _c === void 0 ? void 0 : _c.map(address => (address.hostname || address.ip))) !== null && _d !== void 0 ? _d : [];\n }\n}\nObject.defineProperty(Ingress, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Ingress\"\n});\nObject.defineProperty(Ingress, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Ingress, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/networking.k8s.io/v1/ingresses\"\n});\nfunction computeRuleDeclarations(ingress, rule) {\n var _a, _b, _c;\n const { host = \"*\", http: { paths } = { paths: [] } } = rule;\n const protocol = ((_c = (_b = (_a = ingress.spec) === null || _a === void 0 ? void 0 : _a.tls) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) === 0\n ? \"http\"\n : \"https\";\n return paths.map(({ path = \"/\", backend }) => ({\n displayAsLink: !host.includes(\"*\"),\n pathname: path,\n url: `${protocol}://${host}${path}`,\n service: getBackendServiceNamePort(backend),\n }));\n}\nfunction computeRouteDeclarations(ingress) {\n return ingress.getRules().flatMap(rule => computeRuleDeclarations(ingress, rule));\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/ingress.api.ts?");
30510
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ingress\": () => (/* binding */ Ingress),\n/* harmony export */ \"IngressApi\": () => (/* binding */ IngressApi),\n/* harmony export */ \"computeRouteDeclarations\": () => (/* binding */ computeRouteDeclarations),\n/* harmony export */ \"computeRuleDeclarations\": () => (/* binding */ computeRuleDeclarations),\n/* harmony export */ \"getBackendServiceNamePort\": () => (/* binding */ getBackendServiceNamePort)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass IngressApi extends _kube_api__WEBPACK_IMPORTED_MODULE_2__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Ingress,\n // Add fallback for Kubernetes <1.19\n checkPreferredVersion: true,\n fallbackApiBases: [\"/apis/extensions/v1beta1/ingresses\"],\n });\n }\n}\nfunction isExtensionsBackend(backend) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(backend, \"serviceName\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString);\n}\n/**\n * Format an ingress backend into the name of the service and port\n * @param backend The ingress target\n */\nfunction getBackendServiceNamePort(backend) {\n var _a;\n if (!backend) {\n return \"<unknown>\";\n }\n if (isExtensionsBackend(backend)) {\n return `${backend.serviceName}:${backend.servicePort}`;\n }\n if (backend.service) {\n const { name, port } = backend.service;\n return `${name}:${(_a = port.number) !== null && _a !== void 0 ? _a : port.name}`;\n }\n return \"<unknown>\";\n}\nclass Ingress extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n getRules() {\n var _a;\n return (_a = this.spec.rules) !== null && _a !== void 0 ? _a : [];\n }\n getRoutes() {\n return computeRouteDeclarations(this).map(({ url, service }) => `${url} ⇢ ${service}`);\n }\n getServiceNamePort() {\n var _a, _b, _c, _d, _e, _f;\n const { spec: { backend, defaultBackend } = {} } = this;\n const serviceName = (_b = (_a = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : backend === null || backend === void 0 ? void 0 : backend.serviceName;\n const servicePort = (_f = (_d = (_c = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _c === void 0 ? void 0 : _c.port.number) !== null && _d !== void 0 ? _d : (_e = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _e === void 0 ? void 0 : _e.port.name) !== null && _f !== void 0 ? _f : backend === null || backend === void 0 ? void 0 : backend.servicePort;\n if (!serviceName || !servicePort) {\n return undefined;\n }\n return {\n serviceName,\n servicePort,\n };\n }\n getHosts() {\n const { spec: { rules = [] } } = this;\n return [..._utils__WEBPACK_IMPORTED_MODULE_1__.iter.filterMap(rules, rule => rule.host)];\n }\n getPorts() {\n var _a, _b;\n const ports = [];\n const { spec: { tls, rules = [], backend, defaultBackend } } = this;\n const httpPort = 80;\n const tlsPort = 443;\n // Note: not using the port name (string)\n const servicePort = (_b = (_a = defaultBackend === null || defaultBackend === void 0 ? void 0 : defaultBackend.service) === null || _a === void 0 ? void 0 : _a.port.number) !== null && _b !== void 0 ? _b : backend === null || backend === void 0 ? void 0 : backend.servicePort;\n if (rules.length > 0) {\n if (rules.some(rule => rule.http)) {\n ports.push(httpPort);\n }\n }\n else if (servicePort !== undefined) {\n ports.push(Number(servicePort));\n }\n if (tls && tls.length > 0) {\n ports.push(tlsPort);\n }\n return ports.join(\", \");\n }\n getLoadBalancers() {\n var _a, _b, _c, _d;\n return (_d = (_c = (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.loadBalancer) === null || _b === void 0 ? void 0 : _b.ingress) === null || _c === void 0 ? void 0 : _c.map(address => (address.hostname || address.ip))) !== null && _d !== void 0 ? _d : [];\n }\n}\nObject.defineProperty(Ingress, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Ingress\"\n});\nObject.defineProperty(Ingress, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Ingress, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/networking.k8s.io/v1/ingresses\"\n});\nfunction computeRuleDeclarations(ingress, rule) {\n var _a, _b, _c;\n const { host = \"*\", http: { paths } = { paths: [] } } = rule;\n const protocol = ((_c = (_b = (_a = ingress.spec) === null || _a === void 0 ? void 0 : _a.tls) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) === 0\n ? \"http\"\n : \"https\";\n return paths.map(({ path = \"/\", backend }) => ({\n displayAsLink: !host.includes(\"*\"),\n pathname: path,\n url: `${protocol}://${host}${path}`,\n service: getBackendServiceNamePort(backend),\n }));\n}\nfunction computeRouteDeclarations(ingress) {\n return ingress.getRules().flatMap(rule => computeRuleDeclarations(ingress, rule));\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/ingress.api.ts?");
30478
30511
 
30479
30512
  /***/ }),
30480
30513
 
@@ -30496,7 +30529,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30496
30529
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30497
30530
 
30498
30531
  "use strict";
30499
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Job\": () => (/* binding */ Job),\n/* harmony export */ \"JobApi\": () => (/* binding */ JobApi),\n/* harmony export */ \"getMetricsForJobs\": () => (/* binding */ getMetricsForJobs)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass Job extends _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject {\n getSelectors() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_a = this.spec.selector) === null || _a === void 0 ? void 0 : _a.matchLabels);\n }\n getNodeSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.template.spec.nodeSelector);\n }\n getTemplateLabels() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.template.metadata.labels);\n }\n getTolerations() {\n var _a;\n return (_a = this.spec.template.spec.tolerations) !== null && _a !== void 0 ? _a : [];\n }\n getAffinity() {\n return this.spec.template.spec.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getDesiredCompletions() {\n var _a;\n return (_a = this.spec.completions) !== null && _a !== void 0 ? _a : 0;\n }\n getCompletions() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.succeeded) !== null && _b !== void 0 ? _b : 0;\n }\n getParallelism() {\n return this.spec.parallelism;\n }\n getCondition() {\n var _a, _b;\n // Type of Job condition could be only Complete or Failed\n // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#jobcondition-v1-batch\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions) === null || _b === void 0 ? void 0 : _b.find(({ status }) => status === \"True\");\n }\n getImages() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec.containers) === null || _a === void 0 ? void 0 : _a.map(container => container.image)) !== null && _b !== void 0 ? _b : [];\n }\n}\nObject.defineProperty(Job, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Job\"\n});\nObject.defineProperty(Job, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Job, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/batch/v1/jobs\"\n});\nclass JobApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Job,\n });\n }\n}\nfunction getMetricsForJobs(jobs, namespace, selector = \"\") {\n const podSelector = jobs.map(job => `${job.getName()}-[[:alnum:]]{5}`).join(\"|\");\n const opts = { category: \"pods\", pods: podSelector, namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_1__.metricsApi.getMetrics({\n cpuUsage: opts,\n memoryUsage: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/job.api.ts?");
30532
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Job\": () => (/* binding */ Job),\n/* harmony export */ \"JobApi\": () => (/* binding */ JobApi)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nclass Job extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getSelectors() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_a = this.spec.selector) === null || _a === void 0 ? void 0 : _a.matchLabels);\n }\n getNodeSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels(this.spec.template.spec.nodeSelector);\n }\n getTemplateLabels() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels(this.spec.template.metadata.labels);\n }\n getTolerations() {\n var _a;\n return (_a = this.spec.template.spec.tolerations) !== null && _a !== void 0 ? _a : [];\n }\n getAffinity() {\n return this.spec.template.spec.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getDesiredCompletions() {\n var _a;\n return (_a = this.spec.completions) !== null && _a !== void 0 ? _a : 0;\n }\n getCompletions() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.succeeded) !== null && _b !== void 0 ? _b : 0;\n }\n getParallelism() {\n return this.spec.parallelism;\n }\n getCondition() {\n var _a, _b;\n // Type of Job condition could be only Complete or Failed\n // https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#jobcondition-v1-batch\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions) === null || _b === void 0 ? void 0 : _b.find(({ status }) => status === \"True\");\n }\n getImages() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec.containers) === null || _a === void 0 ? void 0 : _a.map(container => container.image)) !== null && _b !== void 0 ? _b : [];\n }\n}\nObject.defineProperty(Job, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Job\"\n});\nObject.defineProperty(Job, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Job, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/batch/v1/jobs\"\n});\nclass JobApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Job,\n });\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/job.api.ts?");
30500
30533
 
30501
30534
  /***/ }),
30502
30535
 
@@ -30533,17 +30566,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30533
30566
 
30534
30567
  /***/ }),
30535
30568
 
30536
- /***/ "./src/common/k8s-api/endpoints/metrics.api.ts":
30537
- /*!*****************************************************!*\
30538
- !*** ./src/common/k8s-api/endpoints/metrics.api.ts ***!
30539
- \*****************************************************/
30540
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30541
-
30542
- "use strict";
30543
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getItemMetrics\": () => (/* binding */ getItemMetrics),\n/* harmony export */ \"getMetricLastPoints\": () => (/* binding */ getMetricLastPoints),\n/* harmony export */ \"isMetricsEmpty\": () => (/* binding */ isMetricsEmpty),\n/* harmony export */ \"metricsApi\": () => (/* binding */ metricsApi),\n/* harmony export */ \"normalizeMetrics\": () => (/* binding */ normalizeMetrics)\n/* harmony export */ });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./src/common/k8s-api/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Metrics api\n\n\nasync function getMetrics(query, reqParams = {}) {\n const { range = 3600, step = 60, namespace } = reqParams;\n let { start, end } = reqParams;\n if (!start && !end) {\n const timeNow = Date.now() / 1000;\n const now = moment__WEBPACK_IMPORTED_MODULE_0___default().unix(timeNow).startOf(\"minute\").unix(); // round date to minutes\n start = now - range;\n end = now;\n }\n return _index__WEBPACK_IMPORTED_MODULE_1__.apiBase.post(\"/metrics\", {\n data: query,\n query: {\n start, end, step,\n \"kubernetes_namespace\": namespace,\n },\n });\n}\nconst metricsApi = {\n getMetrics,\n async getMetricProviders() {\n return _index__WEBPACK_IMPORTED_MODULE_1__.apiBase.get(\"/metrics/providers\");\n },\n};\nfunction normalizeMetrics(metrics, frames = 60) {\n var _a;\n if (!((_a = metrics === null || metrics === void 0 ? void 0 : metrics.data) === null || _a === void 0 ? void 0 : _a.result)) {\n return {\n data: {\n resultType: \"\",\n result: [{\n metric: {},\n values: [],\n }],\n },\n status: \"\",\n };\n }\n const { result } = metrics.data;\n if (result.length) {\n if (frames > 0) {\n // fill the gaps\n result.forEach(res => {\n if (!res.values || !res.values.length)\n return;\n let now = moment__WEBPACK_IMPORTED_MODULE_0___default()().startOf(\"minute\").subtract(1, \"minute\").unix();\n let timestamp = res.values[0][0];\n while (timestamp <= now) {\n timestamp = moment__WEBPACK_IMPORTED_MODULE_0___default().unix(timestamp).add(1, \"minute\").unix();\n if (!res.values.find((value) => value[0] === timestamp)) {\n res.values.push([timestamp, \"0\"]);\n }\n }\n while (res.values.length < frames) {\n const timestamp = moment__WEBPACK_IMPORTED_MODULE_0___default().unix(res.values[0][0]).subtract(1, \"minute\").unix();\n if (!res.values.find((value) => value[0] === timestamp)) {\n res.values.unshift([timestamp, \"0\"]);\n }\n now = timestamp;\n }\n });\n }\n }\n else {\n // always return at least empty values array\n result.push({\n metric: {},\n values: [],\n });\n }\n return metrics;\n}\nfunction isMetricsEmpty(metrics) {\n return Object.values(metrics).every(metric => { var _a, _b; return !((_b = (_a = metric === null || metric === void 0 ? void 0 : metric.data) === null || _a === void 0 ? void 0 : _a.result) === null || _b === void 0 ? void 0 : _b.length); });\n}\nfunction getItemMetrics(metrics, itemName) {\n var _a, _b, _c;\n if (!metrics) {\n return undefined;\n }\n const itemMetrics = { ...metrics };\n for (const metric in metrics) {\n if (!((_b = (_a = metrics[metric]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.result)) {\n continue;\n }\n const results = (_c = metrics[metric]) === null || _c === void 0 ? void 0 : _c.data.result;\n const result = results === null || results === void 0 ? void 0 : results.find(res => Object.values(res.metric)[0] == itemName);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n itemMetrics[metric].data.result = result ? [result] : [];\n }\n return itemMetrics;\n}\nfunction getMetricLastPoints(metrics) {\n const result = {};\n Object.keys(metrics).forEach(metricName => {\n try {\n const metric = metrics[metricName];\n if (metric === null || metric === void 0 ? void 0 : metric.data.result.length) {\n result[metricName] = +metric.data.result[0].values.slice(-1)[0][1];\n }\n }\n catch {\n // ignore error\n }\n return result;\n }, {});\n return result;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/metrics.api.ts?");
30544
-
30545
- /***/ }),
30546
-
30547
30569
  /***/ "./src/common/k8s-api/endpoints/namespace.api.injectable.ts":
30548
30570
  /*!******************************************************************!*\
30549
30571
  !*** ./src/common/k8s-api/endpoints/namespace.api.injectable.ts ***!
@@ -30562,7 +30584,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30562
30584
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30563
30585
 
30564
30586
  "use strict";
30565
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Namespace\": () => (/* binding */ Namespace),\n/* harmony export */ \"NamespaceApi\": () => (/* binding */ NamespaceApi),\n/* harmony export */ \"NamespaceStatusKind\": () => (/* binding */ NamespaceStatusKind),\n/* harmony export */ \"getMetricsForNamespace\": () => (/* binding */ getMetricsForNamespace)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nvar NamespaceStatusKind;\n(function (NamespaceStatusKind) {\n NamespaceStatusKind[\"ACTIVE\"] = \"Active\";\n NamespaceStatusKind[\"TERMINATING\"] = \"Terminating\";\n})(NamespaceStatusKind || (NamespaceStatusKind = {}));\nclass Namespace extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getStatus() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.phase) !== null && _b !== void 0 ? _b : \"-\";\n }\n}\nObject.defineProperty(Namespace, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Namespace\"\n});\nObject.defineProperty(Namespace, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(Namespace, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/namespaces\"\n});\nclass NamespaceApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Namespace,\n });\n }\n}\nfunction getMetricsForNamespace(namespace, selector = \"\") {\n const opts = { category: \"pods\", pods: \".*\", namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_2__.metricsApi.getMetrics({\n cpuUsage: opts,\n memoryUsage: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/namespace.api.ts?");
30587
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Namespace\": () => (/* binding */ Namespace),\n/* harmony export */ \"NamespaceApi\": () => (/* binding */ NamespaceApi),\n/* harmony export */ \"NamespaceStatusKind\": () => (/* binding */ NamespaceStatusKind)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nvar NamespaceStatusKind;\n(function (NamespaceStatusKind) {\n NamespaceStatusKind[\"ACTIVE\"] = \"Active\";\n NamespaceStatusKind[\"TERMINATING\"] = \"Terminating\";\n})(NamespaceStatusKind || (NamespaceStatusKind = {}));\nclass Namespace extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getStatus() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.phase) !== null && _b !== void 0 ? _b : \"-\";\n }\n}\nObject.defineProperty(Namespace, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Namespace\"\n});\nObject.defineProperty(Namespace, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(Namespace, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/namespaces\"\n});\nclass NamespaceApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Namespace,\n });\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/namespace.api.ts?");
30566
30588
 
30567
30589
  /***/ }),
30568
30590
 
@@ -30606,7 +30628,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30606
30628
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30607
30629
 
30608
30630
  "use strict";
30609
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Node\": () => (/* binding */ Node),\n/* harmony export */ \"NodeApi\": () => (/* binding */ NodeApi),\n/* harmony export */ \"formatNodeTaint\": () => (/* binding */ formatNodeTaint),\n/* harmony export */ \"getMetricsForAllNodes\": () => (/* binding */ getMetricsForAllNodes)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var typed_regex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! typed-regex */ \"./node_modules/typed-regex/dist/lib/index.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\nclass NodeApi extends _kube_api__WEBPACK_IMPORTED_MODULE_3__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Node,\n });\n }\n}\nfunction getMetricsForAllNodes() {\n const opts = { category: \"nodes\" };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_2__.metricsApi.getMetrics({\n memoryUsage: opts,\n workloadMemoryUsage: opts,\n memoryCapacity: opts,\n memoryAllocatableCapacity: opts,\n cpuUsage: opts,\n cpuCapacity: opts,\n fsSize: opts,\n fsUsage: opts,\n });\n}\nfunction formatNodeTaint(taint) {\n if (taint.value) {\n return `${taint.key}=${taint.value}:${taint.effect}`;\n }\n return `${taint.key}:${taint.effect}`;\n}\n/**\n * These role label prefixs are the ones that are for master nodes\n *\n * The `master` label has been deprecated in Kubernetes 1.20, and will be removed in 1.25 so we\n * have to also use the newer `control-plane` label\n */\nconst masterNodeLabels = [\n \"master\",\n \"control-plane\",\n];\n/**\n * This regex is used in the `getRoleLabels()` method bellow, but placed here\n * as factoring out regexes is best practice.\n */\nconst nodeRoleLabelKeyMatcher = (0,typed_regex__WEBPACK_IMPORTED_MODULE_4__.TypedRegEx)(\"^.*node-role.kubernetes.io/+(?<role>.+)$\");\nclass Node extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n /**\n * Returns the concatination of all current condition types which have a status\n * of `\"True\"`\n */\n getNodeConditionText() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions)) {\n return \"\";\n }\n return this.status.conditions\n .filter(condition => condition.status === \"True\")\n .map(condition => condition.type)\n .join(\" \");\n }\n getTaints() {\n return this.spec.taints || [];\n }\n isMasterNode() {\n return this.getRoleLabelItems()\n .some(roleLabel => masterNodeLabels.includes(roleLabel));\n }\n getRoleLabelItems() {\n const { labels } = this.metadata;\n const roleLabels = [];\n if (!(0,_renderer_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(labels)) {\n return roleLabels;\n }\n for (const labelKey of Object.keys(labels)) {\n const match = nodeRoleLabelKeyMatcher.match(labelKey);\n if (match === null || match === void 0 ? void 0 : match.groups) {\n roleLabels.push(match.groups.role);\n }\n }\n if (typeof labels[\"kubernetes.io/role\"] === \"string\") {\n roleLabels.push(labels[\"kubernetes.io/role\"]);\n }\n if (typeof labels[\"node.kubernetes.io/role\"] === \"string\") {\n roleLabels.push(labels[\"node.kubernetes.io/role\"]);\n }\n return roleLabels;\n }\n getRoleLabels() {\n return this.getRoleLabelItems().join(\", \");\n }\n getCpuCapacity() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.capacity) || !this.status.capacity.cpu)\n return 0;\n return (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_1__.cpuUnitsToNumber)(this.status.capacity.cpu);\n }\n getMemoryCapacity() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.capacity) || !this.status.capacity.memory)\n return 0;\n return (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_1__.unitsToBytes)(this.status.capacity.memory);\n }\n getConditions() {\n var _a;\n const conditions = ((_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions) || [];\n if (this.isUnschedulable()) {\n return [{ type: \"SchedulingDisabled\", status: \"True\" }, ...conditions];\n }\n return conditions;\n }\n getActiveConditions() {\n return this.getConditions().filter(c => c.status === \"True\");\n }\n getWarningConditions() {\n const goodConditions = [\"Ready\", \"HostUpgrades\", \"SchedulingDisabled\"];\n return this.getActiveConditions().filter(condition => {\n return !goodConditions.includes(condition.type);\n });\n }\n getKubeletVersion() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.nodeInfo) === null || _b === void 0 ? void 0 : _b.kubeletVersion) !== null && _c !== void 0 ? _c : \"<unknown>\";\n }\n getOperatingSystem() {\n var _a, _b, _c, _d, _e, _f;\n return ((_b = (_a = this.metadata) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b[\"kubernetes.io/os\"])\n || ((_d = (_c = this.metadata) === null || _c === void 0 ? void 0 : _c.labels) === null || _d === void 0 ? void 0 : _d[\"beta.kubernetes.io/os\"])\n || ((_f = (_e = this.status) === null || _e === void 0 ? void 0 : _e.nodeInfo) === null || _f === void 0 ? void 0 : _f.operatingSystem)\n || \"linux\";\n }\n isUnschedulable() {\n return this.spec.unschedulable;\n }\n}\nObject.defineProperty(Node, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Node\"\n});\nObject.defineProperty(Node, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(Node, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/nodes\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/node.api.ts?");
30631
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Node\": () => (/* binding */ Node),\n/* harmony export */ \"NodeApi\": () => (/* binding */ NodeApi),\n/* harmony export */ \"formatNodeTaint\": () => (/* binding */ formatNodeTaint)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var typed_regex__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! typed-regex */ \"./node_modules/typed-regex/dist/lib/index.js\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nclass NodeApi extends _kube_api__WEBPACK_IMPORTED_MODULE_2__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Node,\n });\n }\n}\nfunction formatNodeTaint(taint) {\n if (taint.value) {\n return `${taint.key}=${taint.value}:${taint.effect}`;\n }\n return `${taint.key}:${taint.effect}`;\n}\n/**\n * These role label prefixs are the ones that are for master nodes\n *\n * The `master` label has been deprecated in Kubernetes 1.20, and will be removed in 1.25 so we\n * have to also use the newer `control-plane` label\n */\nconst masterNodeLabels = [\n \"master\",\n \"control-plane\",\n];\n/**\n * This regex is used in the `getRoleLabels()` method bellow, but placed here\n * as factoring out regexes is best practice.\n */\nconst nodeRoleLabelKeyMatcher = (0,typed_regex__WEBPACK_IMPORTED_MODULE_3__.TypedRegEx)(\"^.*node-role.kubernetes.io/+(?<role>.+)$\");\nclass Node extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n /**\n * Returns the concatination of all current condition types which have a status\n * of `\"True\"`\n */\n getNodeConditionText() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions)) {\n return \"\";\n }\n return this.status.conditions\n .filter(condition => condition.status === \"True\")\n .map(condition => condition.type)\n .join(\" \");\n }\n getTaints() {\n return this.spec.taints || [];\n }\n isMasterNode() {\n return this.getRoleLabelItems()\n .some(roleLabel => masterNodeLabels.includes(roleLabel));\n }\n getRoleLabelItems() {\n const { labels } = this.metadata;\n const roleLabels = [];\n if (!(0,_renderer_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(labels)) {\n return roleLabels;\n }\n for (const labelKey of Object.keys(labels)) {\n const match = nodeRoleLabelKeyMatcher.match(labelKey);\n if (match === null || match === void 0 ? void 0 : match.groups) {\n roleLabels.push(match.groups.role);\n }\n }\n if (typeof labels[\"kubernetes.io/role\"] === \"string\") {\n roleLabels.push(labels[\"kubernetes.io/role\"]);\n }\n if (typeof labels[\"node.kubernetes.io/role\"] === \"string\") {\n roleLabels.push(labels[\"node.kubernetes.io/role\"]);\n }\n return roleLabels;\n }\n getRoleLabels() {\n return this.getRoleLabelItems().join(\", \");\n }\n getCpuCapacity() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.capacity) || !this.status.capacity.cpu)\n return 0;\n return (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_1__.cpuUnitsToNumber)(this.status.capacity.cpu);\n }\n getMemoryCapacity() {\n var _a;\n if (!((_a = this.status) === null || _a === void 0 ? void 0 : _a.capacity) || !this.status.capacity.memory)\n return 0;\n return (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_1__.unitsToBytes)(this.status.capacity.memory);\n }\n getConditions() {\n var _a;\n const conditions = ((_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions) || [];\n if (this.isUnschedulable()) {\n return [{ type: \"SchedulingDisabled\", status: \"True\" }, ...conditions];\n }\n return conditions;\n }\n getActiveConditions() {\n return this.getConditions().filter(c => c.status === \"True\");\n }\n getWarningConditions() {\n const goodConditions = [\"Ready\", \"HostUpgrades\", \"SchedulingDisabled\"];\n return this.getActiveConditions().filter(condition => {\n return !goodConditions.includes(condition.type);\n });\n }\n getKubeletVersion() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.nodeInfo) === null || _b === void 0 ? void 0 : _b.kubeletVersion) !== null && _c !== void 0 ? _c : \"<unknown>\";\n }\n getOperatingSystem() {\n var _a, _b, _c, _d, _e, _f;\n return ((_b = (_a = this.metadata) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b[\"kubernetes.io/os\"])\n || ((_d = (_c = this.metadata) === null || _c === void 0 ? void 0 : _c.labels) === null || _d === void 0 ? void 0 : _d[\"beta.kubernetes.io/os\"])\n || ((_f = (_e = this.status) === null || _e === void 0 ? void 0 : _e.nodeInfo) === null || _f === void 0 ? void 0 : _f.operatingSystem)\n || \"linux\";\n }\n isUnschedulable() {\n return this.spec.unschedulable;\n }\n}\nObject.defineProperty(Node, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Node\"\n});\nObject.defineProperty(Node, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(Node, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/nodes\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/node.api.ts?");
30610
30632
 
30611
30633
  /***/ }),
30612
30634
 
@@ -30628,7 +30650,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30628
30650
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30629
30651
 
30630
30652
  "use strict";
30631
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PersistentVolumeClaim\": () => (/* binding */ PersistentVolumeClaim),\n/* harmony export */ \"PersistentVolumeClaimApi\": () => (/* binding */ PersistentVolumeClaimApi),\n/* harmony export */ \"getMetricsForPvc\": () => (/* binding */ getMetricsForPvc)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nclass PersistentVolumeClaimApi extends _kube_api__WEBPACK_IMPORTED_MODULE_2__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: PersistentVolumeClaim,\n });\n }\n}\nfunction getMetricsForPvc(pvc) {\n const opts = { category: \"pvc\", pvc: pvc.getName(), namespace: pvc.getNs() };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_1__.metricsApi.getMetrics({\n diskUsage: opts,\n diskCapacity: opts,\n }, {\n namespace: opts.namespace,\n });\n}\nclass PersistentVolumeClaim extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n getPods(pods) {\n return pods\n .filter(pod => pod.getNs() === this.getNs())\n .filter(pod => (pod.getVolumes()\n .filter(volume => { var _a; return ((_a = volume.persistentVolumeClaim) === null || _a === void 0 ? void 0 : _a.claimName) === this.getName(); })\n .length > 0));\n }\n getStorage() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.spec.resources) === null || _a === void 0 ? void 0 : _a.requests) === null || _b === void 0 ? void 0 : _b.storage) !== null && _c !== void 0 ? _c : \"-\";\n }\n getMatchLabels() {\n var _a;\n return _utils__WEBPACK_IMPORTED_MODULE_3__.object.entries((_a = this.spec.selector) === null || _a === void 0 ? void 0 : _a.matchLabels)\n .map(([name, val]) => `${name}:${val}`);\n }\n getMatchExpressions() {\n var _a, _b;\n return (_b = (_a = this.spec.selector) === null || _a === void 0 ? void 0 : _a.matchExpressions) !== null && _b !== void 0 ? _b : [];\n }\n getStatus() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.phase) !== null && _b !== void 0 ? _b : \"-\";\n }\n}\nObject.defineProperty(PersistentVolumeClaim, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"PersistentVolumeClaim\"\n});\nObject.defineProperty(PersistentVolumeClaim, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(PersistentVolumeClaim, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/persistentvolumeclaims\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/persistent-volume-claim.api.ts?");
30653
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"PersistentVolumeClaim\": () => (/* binding */ PersistentVolumeClaim),\n/* harmony export */ \"PersistentVolumeClaimApi\": () => (/* binding */ PersistentVolumeClaimApi)\n/* harmony export */ });\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass PersistentVolumeClaimApi extends _kube_api__WEBPACK_IMPORTED_MODULE_1__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: PersistentVolumeClaim,\n });\n }\n}\nclass PersistentVolumeClaim extends _kube_object__WEBPACK_IMPORTED_MODULE_0__.KubeObject {\n getPods(pods) {\n return pods\n .filter(pod => pod.getNs() === this.getNs())\n .filter(pod => (pod.getVolumes()\n .filter(volume => { var _a; return ((_a = volume.persistentVolumeClaim) === null || _a === void 0 ? void 0 : _a.claimName) === this.getName(); })\n .length > 0));\n }\n getStorage() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.spec.resources) === null || _a === void 0 ? void 0 : _a.requests) === null || _b === void 0 ? void 0 : _b.storage) !== null && _c !== void 0 ? _c : \"-\";\n }\n getMatchLabels() {\n var _a;\n return _utils__WEBPACK_IMPORTED_MODULE_2__.object.entries((_a = this.spec.selector) === null || _a === void 0 ? void 0 : _a.matchLabels)\n .map(([name, val]) => `${name}:${val}`);\n }\n getMatchExpressions() {\n var _a, _b;\n return (_b = (_a = this.spec.selector) === null || _a === void 0 ? void 0 : _a.matchExpressions) !== null && _b !== void 0 ? _b : [];\n }\n getStatus() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.phase) !== null && _b !== void 0 ? _b : \"-\";\n }\n}\nObject.defineProperty(PersistentVolumeClaim, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"PersistentVolumeClaim\"\n});\nObject.defineProperty(PersistentVolumeClaim, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(PersistentVolumeClaim, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/persistentvolumeclaims\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/persistent-volume-claim.api.ts?");
30632
30654
 
30633
30655
  /***/ }),
30634
30656
 
@@ -30727,7 +30749,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30727
30749
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30728
30750
 
30729
30751
  "use strict";
30730
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Pod\": () => (/* binding */ Pod),\n/* harmony export */ \"PodApi\": () => (/* binding */ PodApi),\n/* harmony export */ \"PodStatusPhase\": () => (/* binding */ PodStatusPhase),\n/* harmony export */ \"getMetricsForPods\": () => (/* binding */ getMetricsForPods)\n/* harmony export */ });\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nclass PodApi extends _kube_api__WEBPACK_IMPORTED_MODULE_1__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Pod,\n });\n }\n async getLogs(params, query) {\n const path = `${this.getUrl(params)}/log`;\n return this.request.get(path, { query });\n }\n}\nfunction getMetricsForPods(pods, namespace, selector = \"pod, namespace\") {\n const podSelector = pods.map(pod => pod.getName()).join(\"|\");\n const opts = { category: \"pods\", pods: podSelector, namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_0__.metricsApi.getMetrics({\n cpuUsage: opts,\n cpuRequests: opts,\n cpuLimits: opts,\n memoryUsage: opts,\n memoryRequests: opts,\n memoryLimits: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\nvar PodStatusPhase;\n(function (PodStatusPhase) {\n PodStatusPhase[\"TERMINATED\"] = \"Terminated\";\n PodStatusPhase[\"FAILED\"] = \"Failed\";\n PodStatusPhase[\"PENDING\"] = \"Pending\";\n PodStatusPhase[\"RUNNING\"] = \"Running\";\n PodStatusPhase[\"SUCCEEDED\"] = \"Succeeded\";\n PodStatusPhase[\"EVICTED\"] = \"Evicted\";\n})(PodStatusPhase || (PodStatusPhase = {}));\nclass Pod extends _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject {\n getAffinityNumber() {\n return Object.keys(this.getAffinity()).length;\n }\n getInitContainers() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.initContainers) !== null && _b !== void 0 ? _b : [];\n }\n getContainers() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.containers) !== null && _b !== void 0 ? _b : [];\n }\n getAllContainers() {\n return [...this.getContainers(), ...this.getInitContainers()];\n }\n getRunningContainers() {\n const runningContainerNames = new Set(this.getContainerStatuses()\n .filter(({ state }) => state === null || state === void 0 ? void 0 : state.running)\n .map(({ name }) => name));\n return this.getAllContainers()\n .filter(({ name }) => runningContainerNames.has(name));\n }\n getContainerStatuses(includeInitContainers = true) {\n var _a;\n const { containerStatuses = [], initContainerStatuses = [] } = (_a = this.status) !== null && _a !== void 0 ? _a : {};\n if (includeInitContainers) {\n return [...containerStatuses, ...initContainerStatuses];\n }\n return [...containerStatuses];\n }\n getRestartsCount() {\n var _a;\n const { containerStatuses = [] } = (_a = this.status) !== null && _a !== void 0 ? _a : {};\n return containerStatuses.reduce((totalCount, { restartCount }) => totalCount + restartCount, 0);\n }\n getQosClass() {\n var _a;\n return ((_a = this.status) === null || _a === void 0 ? void 0 : _a.qosClass) || \"\";\n }\n getReason() {\n var _a;\n return ((_a = this.status) === null || _a === void 0 ? void 0 : _a.reason) || \"\";\n }\n getPriorityClassName() {\n var _a;\n return ((_a = this.spec) === null || _a === void 0 ? void 0 : _a.priorityClassName) || \"\";\n }\n getServiceAccountName() {\n var _a;\n return ((_a = this.spec) === null || _a === void 0 ? void 0 : _a.serviceAccountName) || \"\";\n }\n getStatus() {\n const phase = this.getStatusPhase();\n const reason = this.getReason();\n const trueConditionTypes = new Set(this.getConditions()\n .filter(({ status }) => status === \"True\")\n .map(({ type }) => type));\n const isInGoodCondition = [\"Initialized\", \"Ready\"].every(condition => trueConditionTypes.has(condition));\n if (reason === PodStatusPhase.EVICTED) {\n return PodStatusPhase.EVICTED;\n }\n if (phase === PodStatusPhase.FAILED) {\n return PodStatusPhase.FAILED;\n }\n if (phase === PodStatusPhase.SUCCEEDED) {\n return PodStatusPhase.SUCCEEDED;\n }\n if (phase === PodStatusPhase.RUNNING && isInGoodCondition) {\n return PodStatusPhase.RUNNING;\n }\n return PodStatusPhase.PENDING;\n }\n // Returns pod phase or container error if occurred\n getStatusMessage() {\n if (this.getReason() === PodStatusPhase.EVICTED) {\n return \"Evicted\";\n }\n if (this.metadata.deletionTimestamp) {\n return \"Terminating\";\n }\n return this.getStatusPhase() || \"Waiting\";\n }\n getStatusPhase() {\n var _a;\n return (_a = this.status) === null || _a === void 0 ? void 0 : _a.phase;\n }\n getConditions() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions) !== null && _b !== void 0 ? _b : [];\n }\n getVolumes() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.volumes) !== null && _b !== void 0 ? _b : [];\n }\n getSecrets() {\n return this.getVolumes()\n .map(vol => { var _a; return (_a = vol.secret) === null || _a === void 0 ? void 0 : _a.secretName; })\n .filter(_utils__WEBPACK_IMPORTED_MODULE_3__.isDefined);\n }\n getNodeSelectors() {\n var _a, _b;\n return Object.entries((_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector) !== null && _b !== void 0 ? _b : {})\n .map(values => values.join(\": \"));\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n getAffinity() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.affinity) !== null && _b !== void 0 ? _b : {};\n }\n hasIssues() {\n var _a;\n for (const { type, status } of this.getConditions()) {\n if (type === \"Ready\" && status !== \"True\") {\n return true;\n }\n }\n for (const { state } of this.getContainerStatuses()) {\n if (((_a = state === null || state === void 0 ? void 0 : state.waiting) === null || _a === void 0 ? void 0 : _a.reason) === \"CrashLookBackOff\") {\n return true;\n }\n }\n return this.getStatusPhase() !== \"Running\";\n }\n getLivenessProbe(container) {\n return this.getProbe(container, container.livenessProbe);\n }\n getReadinessProbe(container) {\n return this.getProbe(container, container.readinessProbe);\n }\n getStartupProbe(container) {\n return this.getProbe(container, container.startupProbe);\n }\n getProbe(container, probe) {\n var _a, _b;\n const probeItems = [];\n if (!probe) {\n return probeItems;\n }\n const { httpGet, exec, tcpSocket, initialDelaySeconds = 0, timeoutSeconds = 0, periodSeconds = 0, successThreshold = 0, failureThreshold = 0, } = probe;\n // HTTP Request\n if (httpGet) {\n const { path = \"\", port, host = \"\", scheme = \"HTTP\" } = httpGet;\n const resolvedPort = typeof port === \"number\"\n ? port\n // Try and find the port number associated witht the name or fallback to the name itself\n : ((_b = (_a = container.ports) === null || _a === void 0 ? void 0 : _a.find(containerPort => containerPort.name === port)) === null || _b === void 0 ? void 0 : _b.containerPort) || port;\n probeItems.push(\"http-get\", `${scheme.toLowerCase()}://${host}:${resolvedPort}${path}`);\n }\n // Command\n if (exec === null || exec === void 0 ? void 0 : exec.command) {\n probeItems.push(`exec [${exec.command.join(\" \")}]`);\n }\n // TCP Probe\n if (tcpSocket === null || tcpSocket === void 0 ? void 0 : tcpSocket.port) {\n probeItems.push(`tcp-socket :${tcpSocket.port}`);\n }\n probeItems.push(`delay=${initialDelaySeconds}s`, `timeout=${timeoutSeconds}s`, `period=${periodSeconds}s`, `#success=${successThreshold}`, `#failure=${failureThreshold}`);\n return probeItems;\n }\n getNodeName() {\n var _a;\n return (_a = this.spec) === null || _a === void 0 ? void 0 : _a.nodeName;\n }\n getSelectedNodeOs() {\n var _a, _b, _c, _d;\n return ((_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector) === null || _b === void 0 ? void 0 : _b[\"kubernetes.io/os\"]) || ((_d = (_c = this.spec) === null || _c === void 0 ? void 0 : _c.nodeSelector) === null || _d === void 0 ? void 0 : _d[\"beta.kubernetes.io/os\"]);\n }\n getIPs() {\n var _a, _b;\n const podIPs = (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.podIPs) !== null && _b !== void 0 ? _b : [];\n return podIPs.map(value => value.ip);\n }\n}\nObject.defineProperty(Pod, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Pod\"\n});\nObject.defineProperty(Pod, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Pod, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/pods\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/pod.api.ts?");
30752
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Pod\": () => (/* binding */ Pod),\n/* harmony export */ \"PodApi\": () => (/* binding */ PodApi),\n/* harmony export */ \"PodStatusPhase\": () => (/* binding */ PodStatusPhase)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass PodApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: Pod,\n });\n }\n async getLogs(params, query) {\n const path = `${this.getUrl(params)}/log`;\n return this.request.get(path, { query });\n }\n}\nvar PodStatusPhase;\n(function (PodStatusPhase) {\n PodStatusPhase[\"TERMINATED\"] = \"Terminated\";\n PodStatusPhase[\"FAILED\"] = \"Failed\";\n PodStatusPhase[\"PENDING\"] = \"Pending\";\n PodStatusPhase[\"RUNNING\"] = \"Running\";\n PodStatusPhase[\"SUCCEEDED\"] = \"Succeeded\";\n PodStatusPhase[\"EVICTED\"] = \"Evicted\";\n})(PodStatusPhase || (PodStatusPhase = {}));\nclass Pod extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getAffinityNumber() {\n return Object.keys(this.getAffinity()).length;\n }\n getInitContainers() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.initContainers) !== null && _b !== void 0 ? _b : [];\n }\n getContainers() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.containers) !== null && _b !== void 0 ? _b : [];\n }\n getAllContainers() {\n return [...this.getContainers(), ...this.getInitContainers()];\n }\n getRunningContainers() {\n const runningContainerNames = new Set(this.getContainerStatuses()\n .filter(({ state }) => state === null || state === void 0 ? void 0 : state.running)\n .map(({ name }) => name));\n return this.getAllContainers()\n .filter(({ name }) => runningContainerNames.has(name));\n }\n getContainerStatuses(includeInitContainers = true) {\n var _a;\n const { containerStatuses = [], initContainerStatuses = [] } = (_a = this.status) !== null && _a !== void 0 ? _a : {};\n if (includeInitContainers) {\n return [...containerStatuses, ...initContainerStatuses];\n }\n return [...containerStatuses];\n }\n getRestartsCount() {\n var _a;\n const { containerStatuses = [] } = (_a = this.status) !== null && _a !== void 0 ? _a : {};\n return containerStatuses.reduce((totalCount, { restartCount }) => totalCount + restartCount, 0);\n }\n getQosClass() {\n var _a;\n return ((_a = this.status) === null || _a === void 0 ? void 0 : _a.qosClass) || \"\";\n }\n getReason() {\n var _a;\n return ((_a = this.status) === null || _a === void 0 ? void 0 : _a.reason) || \"\";\n }\n getPriorityClassName() {\n var _a;\n return ((_a = this.spec) === null || _a === void 0 ? void 0 : _a.priorityClassName) || \"\";\n }\n getRuntimeClassName() {\n var _a;\n return ((_a = this.spec) === null || _a === void 0 ? void 0 : _a.runtimeClassName) || \"\";\n }\n getServiceAccountName() {\n var _a;\n return ((_a = this.spec) === null || _a === void 0 ? void 0 : _a.serviceAccountName) || \"\";\n }\n getStatus() {\n const phase = this.getStatusPhase();\n const reason = this.getReason();\n const trueConditionTypes = new Set(this.getConditions()\n .filter(({ status }) => status === \"True\")\n .map(({ type }) => type));\n const isInGoodCondition = [\"Initialized\", \"Ready\"].every(condition => trueConditionTypes.has(condition));\n if (reason === PodStatusPhase.EVICTED) {\n return PodStatusPhase.EVICTED;\n }\n if (phase === PodStatusPhase.FAILED) {\n return PodStatusPhase.FAILED;\n }\n if (phase === PodStatusPhase.SUCCEEDED) {\n return PodStatusPhase.SUCCEEDED;\n }\n if (phase === PodStatusPhase.RUNNING && isInGoodCondition) {\n return PodStatusPhase.RUNNING;\n }\n return PodStatusPhase.PENDING;\n }\n // Returns pod phase or container error if occurred\n getStatusMessage() {\n if (this.getReason() === PodStatusPhase.EVICTED) {\n return \"Evicted\";\n }\n if (this.metadata.deletionTimestamp) {\n return \"Terminating\";\n }\n return this.getStatusPhase() || \"Waiting\";\n }\n getStatusPhase() {\n var _a;\n return (_a = this.status) === null || _a === void 0 ? void 0 : _a.phase;\n }\n getConditions() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.conditions) !== null && _b !== void 0 ? _b : [];\n }\n getVolumes() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.volumes) !== null && _b !== void 0 ? _b : [];\n }\n getSecrets() {\n return this.getVolumes()\n .map(vol => { var _a; return (_a = vol.secret) === null || _a === void 0 ? void 0 : _a.secretName; })\n .filter(_utils__WEBPACK_IMPORTED_MODULE_2__.isDefined);\n }\n getNodeSelectors() {\n var _a, _b;\n return Object.entries((_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector) !== null && _b !== void 0 ? _b : {})\n .map(values => values.join(\": \"));\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n getAffinity() {\n var _a, _b;\n return (_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.affinity) !== null && _b !== void 0 ? _b : {};\n }\n hasIssues() {\n var _a;\n for (const { type, status } of this.getConditions()) {\n if (type === \"Ready\" && status !== \"True\") {\n return true;\n }\n }\n for (const { state } of this.getContainerStatuses()) {\n if (((_a = state === null || state === void 0 ? void 0 : state.waiting) === null || _a === void 0 ? void 0 : _a.reason) === \"CrashLookBackOff\") {\n return true;\n }\n }\n return this.getStatusPhase() !== \"Running\";\n }\n getLivenessProbe(container) {\n return this.getProbe(container, container.livenessProbe);\n }\n getReadinessProbe(container) {\n return this.getProbe(container, container.readinessProbe);\n }\n getStartupProbe(container) {\n return this.getProbe(container, container.startupProbe);\n }\n getProbe(container, probe) {\n var _a, _b;\n const probeItems = [];\n if (!probe) {\n return probeItems;\n }\n const { httpGet, exec, tcpSocket, initialDelaySeconds = 0, timeoutSeconds = 0, periodSeconds = 0, successThreshold = 0, failureThreshold = 0, } = probe;\n // HTTP Request\n if (httpGet) {\n const { path = \"\", port, host = \"\", scheme = \"HTTP\" } = httpGet;\n const resolvedPort = typeof port === \"number\"\n ? port\n // Try and find the port number associated witht the name or fallback to the name itself\n : ((_b = (_a = container.ports) === null || _a === void 0 ? void 0 : _a.find(containerPort => containerPort.name === port)) === null || _b === void 0 ? void 0 : _b.containerPort) || port;\n probeItems.push(\"http-get\", `${scheme.toLowerCase()}://${host}:${resolvedPort}${path}`);\n }\n // Command\n if (exec === null || exec === void 0 ? void 0 : exec.command) {\n probeItems.push(`exec [${exec.command.join(\" \")}]`);\n }\n // TCP Probe\n if (tcpSocket === null || tcpSocket === void 0 ? void 0 : tcpSocket.port) {\n probeItems.push(`tcp-socket :${tcpSocket.port}`);\n }\n probeItems.push(`delay=${initialDelaySeconds}s`, `timeout=${timeoutSeconds}s`, `period=${periodSeconds}s`, `#success=${successThreshold}`, `#failure=${failureThreshold}`);\n return probeItems;\n }\n getNodeName() {\n var _a;\n return (_a = this.spec) === null || _a === void 0 ? void 0 : _a.nodeName;\n }\n getSelectedNodeOs() {\n var _a, _b, _c, _d;\n return ((_b = (_a = this.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector) === null || _b === void 0 ? void 0 : _b[\"kubernetes.io/os\"]) || ((_d = (_c = this.spec) === null || _c === void 0 ? void 0 : _c.nodeSelector) === null || _d === void 0 ? void 0 : _d[\"beta.kubernetes.io/os\"]);\n }\n getIPs() {\n var _a, _b;\n const podIPs = (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.podIPs) !== null && _b !== void 0 ? _b : [];\n return podIPs.map(value => value.ip);\n }\n}\nObject.defineProperty(Pod, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Pod\"\n});\nObject.defineProperty(Pod, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(Pod, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/api/v1/pods\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/pod.api.ts?");
30731
30753
 
30732
30754
  /***/ }),
30733
30755
 
@@ -30771,18 +30793,29 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30771
30793
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30772
30794
 
30773
30795
  "use strict";
30774
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ReplicaSet\": () => (/* binding */ ReplicaSet),\n/* harmony export */ \"ReplicaSetApi\": () => (/* binding */ ReplicaSetApi),\n/* harmony export */ \"getMetricsForReplicaSets\": () => (/* binding */ getMetricsForReplicaSets)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass ReplicaSetApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: ReplicaSet,\n });\n }\n getScaleApiUrl(params) {\n return `${this.getUrl(params)}/scale`;\n }\n async getReplicas(params) {\n const { status } = await this.request.get(this.getScaleApiUrl(params));\n return status === null || status === void 0 ? void 0 : status.replicas;\n }\n scale(params, replicas) {\n return this.request.put(this.getScaleApiUrl(params), {\n data: {\n metadata: params,\n spec: {\n replicas,\n },\n },\n });\n }\n}\nfunction getMetricsForReplicaSets(replicasets, namespace, selector = \"\") {\n const podSelector = replicasets.map(replicaset => `${replicaset.getName()}-[[:alnum:]]{5}`).join(\"|\");\n const opts = { category: \"pods\", pods: podSelector, namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_1__.metricsApi.getMetrics({\n cpuUsage: opts,\n memoryUsage: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\nclass ReplicaSet extends _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n var _a, _b;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.nodeSelector);\n }\n getTemplateLabels() {\n var _a, _b;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.labels);\n }\n getTolerations() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.tolerations) !== null && _c !== void 0 ? _c : [];\n }\n getAffinity() {\n var _a, _b;\n return (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getDesired() {\n var _a;\n return (_a = this.spec.replicas) !== null && _a !== void 0 ? _a : 0;\n }\n getCurrent() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.availableReplicas) !== null && _b !== void 0 ? _b : 0;\n }\n getReady() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.readyReplicas) !== null && _b !== void 0 ? _b : 0;\n }\n getImages() {\n var _a, _b, _c;\n const containers = (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.containers) !== null && _c !== void 0 ? _c : [];\n return containers.map(container => container.image);\n }\n}\nObject.defineProperty(ReplicaSet, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"ReplicaSet\"\n});\nObject.defineProperty(ReplicaSet, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(ReplicaSet, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/replicasets\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/replica-set.api.ts?");
30796
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ReplicaSet\": () => (/* binding */ ReplicaSet),\n/* harmony export */ \"ReplicaSetApi\": () => (/* binding */ ReplicaSetApi)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nclass ReplicaSetApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: ReplicaSet,\n });\n }\n getScaleApiUrl(params) {\n return `${this.getUrl(params)}/scale`;\n }\n async getReplicas(params) {\n const { status } = await this.request.get(this.getScaleApiUrl(params));\n return status === null || status === void 0 ? void 0 : status.replicas;\n }\n scale(params, replicas) {\n return this.request.put(this.getScaleApiUrl(params), {\n data: {\n metadata: params,\n spec: {\n replicas,\n },\n },\n });\n }\n}\nclass ReplicaSet extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n var _a, _b;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.nodeSelector);\n }\n getTemplateLabels() {\n var _a, _b;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.labels);\n }\n getTolerations() {\n var _a, _b, _c;\n return (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.tolerations) !== null && _c !== void 0 ? _c : [];\n }\n getAffinity() {\n var _a, _b;\n return (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.affinity;\n }\n getAffinityNumber() {\n var _a;\n return Object.keys((_a = this.getAffinity()) !== null && _a !== void 0 ? _a : {}).length;\n }\n getDesired() {\n var _a;\n return (_a = this.spec.replicas) !== null && _a !== void 0 ? _a : 0;\n }\n getCurrent() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.availableReplicas) !== null && _b !== void 0 ? _b : 0;\n }\n getReady() {\n var _a, _b;\n return (_b = (_a = this.status) === null || _a === void 0 ? void 0 : _a.readyReplicas) !== null && _b !== void 0 ? _b : 0;\n }\n getImages() {\n var _a, _b, _c;\n const containers = (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.containers) !== null && _c !== void 0 ? _c : [];\n return containers.map(container => container.image);\n }\n}\nObject.defineProperty(ReplicaSet, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"ReplicaSet\"\n});\nObject.defineProperty(ReplicaSet, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(ReplicaSet, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/replicasets\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/replica-set.api.ts?");
30775
30797
 
30776
30798
  /***/ }),
30777
30799
 
30778
- /***/ "./src/common/k8s-api/endpoints/resource-applier.api.ts":
30779
- /*!**************************************************************!*\
30780
- !*** ./src/common/k8s-api/endpoints/resource-applier.api.ts ***!
30781
- \**************************************************************/
30800
+ /***/ "./src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.ts":
30801
+ /*!***************************************************************************************!*\
30802
+ !*** ./src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.ts ***!
30803
+ \***************************************************************************************/
30804
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30805
+
30806
+ "use strict";
30807
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _api_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../api-base */ \"./src/common/k8s-api/api-base.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst requestKubeObjectPatchInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"request-kube-object-patch\",\n instantiate: (di) => {\n const apiBase = di.inject(_api_base__WEBPACK_IMPORTED_MODULE_1__.apiBaseInjectionToken);\n return (name, kind, ns, patch) => (apiBase.patch(\"/stack\", {\n data: {\n name,\n kind,\n ns,\n patch,\n },\n }));\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (requestKubeObjectPatchInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.ts?");
30808
+
30809
+ /***/ }),
30810
+
30811
+ /***/ "./src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.ts":
30812
+ /*!****************************************************************************************!*\
30813
+ !*** ./src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.ts ***!
30814
+ \****************************************************************************************/
30782
30815
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30783
30816
 
30784
30817
  "use strict";
30785
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"annotations\": () => (/* binding */ annotations),\n/* harmony export */ \"patch\": () => (/* binding */ patch),\n/* harmony export */ \"update\": () => (/* binding */ update)\n/* harmony export */ });\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../index */ \"./src/common/k8s-api/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst annotations = [\n \"kubectl.kubernetes.io/last-applied-configuration\",\n];\nasync function update(resource) {\n if (typeof resource === \"string\") {\n const parsed = js_yaml__WEBPACK_IMPORTED_MODULE_0__[\"default\"].load(resource);\n if (!parsed || typeof parsed !== \"object\") {\n throw new Error(\"Cannot update resource to string or number\");\n }\n resource = parsed;\n }\n return _index__WEBPACK_IMPORTED_MODULE_1__.apiBase.post(\"/stack\", { data: resource });\n}\nasync function patch(name, kind, ns, patch) {\n return _index__WEBPACK_IMPORTED_MODULE_1__.apiBase.patch(\"/stack\", {\n data: {\n name,\n kind,\n ns,\n patch,\n },\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/resource-applier.api.ts?");
30818
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _api_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../api-base */ \"./src/common/k8s-api/api-base.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst requestKubeObjectCreationInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"request-kube-object-creation\",\n instantiate: (di) => {\n const apiBase = di.inject(_api_base__WEBPACK_IMPORTED_MODULE_1__.apiBaseInjectionToken);\n return (data) => apiBase.post(\"/stack\", { data });\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (requestKubeObjectCreationInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.ts?");
30786
30819
 
30787
30820
  /***/ }),
30788
30821
 
@@ -30852,6 +30885,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30852
30885
 
30853
30886
  /***/ }),
30854
30887
 
30888
+ /***/ "./src/common/k8s-api/endpoints/runtime-class.api.ts":
30889
+ /*!***********************************************************!*\
30890
+ !*** ./src/common/k8s-api/endpoints/runtime-class.api.ts ***!
30891
+ \***********************************************************/
30892
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30893
+
30894
+ "use strict";
30895
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"RuntimeClass\": () => (/* binding */ RuntimeClass),\n/* harmony export */ \"RuntimeClassApi\": () => (/* binding */ RuntimeClassApi)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nclass RuntimeClass extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n constructor({ handler, overhead, scheduling, ...rest }) {\n super(rest);\n Object.defineProperty(this, \"handler\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"overhead\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"scheduling\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.handler = handler;\n this.overhead = overhead;\n this.scheduling = scheduling;\n }\n getHandler() {\n return this.handler;\n }\n getPodFixed() {\n var _a, _b;\n return (_b = (_a = this.overhead) === null || _a === void 0 ? void 0 : _a.podFixed) !== null && _b !== void 0 ? _b : \"\";\n }\n getNodeSelectors() {\n var _a, _b;\n return Object.entries((_b = (_a = this.scheduling) === null || _a === void 0 ? void 0 : _a.nodeSelector) !== null && _b !== void 0 ? _b : {})\n .map(values => values.join(\": \"));\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.scheduling) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n}\nObject.defineProperty(RuntimeClass, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"RuntimeClass\"\n});\nObject.defineProperty(RuntimeClass, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n});\nObject.defineProperty(RuntimeClass, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/node.k8s.io/v1/runtimeclasses\"\n});\nclass RuntimeClassApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n objectConstructor: RuntimeClass,\n ...opts,\n });\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/runtime-class.api.ts?");
30896
+
30897
+ /***/ }),
30898
+
30855
30899
  /***/ "./src/common/k8s-api/endpoints/secret.api.injectable.ts":
30856
30900
  /*!***************************************************************!*\
30857
30901
  !*** ./src/common/k8s-api/endpoints/secret.api.injectable.ts ***!
@@ -30947,7 +30991,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
30947
30991
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30948
30992
 
30949
30993
  "use strict";
30950
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"StatefulSet\": () => (/* binding */ StatefulSet),\n/* harmony export */ \"StatefulSetApi\": () => (/* binding */ StatefulSetApi),\n/* harmony export */ \"getMetricsForStatefulSets\": () => (/* binding */ getMetricsForStatefulSets)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _metrics_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./metrics.api */ \"./src/common/k8s-api/endpoints/metrics.api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass StatefulSetApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: StatefulSet,\n });\n }\n getScaleApiUrl(params) {\n return `${this.getUrl(params)}/scale`;\n }\n getReplicas(params) {\n return this.request\n .get(this.getScaleApiUrl(params))\n .then(({ status }) => status === null || status === void 0 ? void 0 : status.replicas);\n }\n scale(params, replicas) {\n return this.request.patch(this.getScaleApiUrl(params), {\n data: {\n spec: {\n replicas,\n },\n },\n }, {\n headers: {\n \"content-type\": \"application/merge-patch+json\",\n },\n });\n }\n}\nfunction getMetricsForStatefulSets(statefulSets, namespace, selector = \"\") {\n const podSelector = statefulSets.map(statefulset => `${statefulset.getName()}-[[:digit:]]+`).join(\"|\");\n const opts = { category: \"pods\", pods: podSelector, namespace, selector };\n return _metrics_api__WEBPACK_IMPORTED_MODULE_1__.metricsApi.getMetrics({\n cpuUsage: opts,\n memoryUsage: opts,\n fsUsage: opts,\n fsWrites: opts,\n fsReads: opts,\n networkReceive: opts,\n networkTransmit: opts,\n }, {\n namespace,\n });\n}\nclass StatefulSet extends _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector);\n }\n getTemplateLabels() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_2__.KubeObject.stringifyLabels((_a = this.spec.template.metadata) === null || _a === void 0 ? void 0 : _a.labels);\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n getAffinity() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.affinity) !== null && _b !== void 0 ? _b : {};\n }\n getAffinityNumber() {\n return Object.keys(this.getAffinity()).length;\n }\n getReplicas() {\n return this.spec.replicas || 0;\n }\n getImages() {\n var _a, _b, _c;\n const containers = (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.containers) !== null && _c !== void 0 ? _c : [];\n return containers.map(container => container.image);\n }\n}\nObject.defineProperty(StatefulSet, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"StatefulSet\"\n});\nObject.defineProperty(StatefulSet, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(StatefulSet, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/statefulsets\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/stateful-set.api.ts?");
30994
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"StatefulSet\": () => (/* binding */ StatefulSet),\n/* harmony export */ \"StatefulSetApi\": () => (/* binding */ StatefulSetApi)\n/* harmony export */ });\n/* harmony import */ var _kube_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nclass StatefulSetApi extends _kube_api__WEBPACK_IMPORTED_MODULE_0__.KubeApi {\n constructor(opts = {}) {\n super({\n ...opts,\n objectConstructor: StatefulSet,\n });\n }\n getScaleApiUrl(params) {\n return `${this.getUrl(params)}/scale`;\n }\n getReplicas(params) {\n return this.request\n .get(this.getScaleApiUrl(params))\n .then(({ status }) => status === null || status === void 0 ? void 0 : status.replicas);\n }\n scale(params, replicas) {\n return this.request.patch(this.getScaleApiUrl(params), {\n data: {\n spec: {\n replicas,\n },\n },\n }, {\n headers: {\n \"content-type\": \"application/merge-patch+json\",\n },\n });\n }\n}\nclass StatefulSet extends _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject {\n getSelectors() {\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels(this.spec.selector.matchLabels);\n }\n getNodeSelectors() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.nodeSelector);\n }\n getTemplateLabels() {\n var _a;\n return _kube_object__WEBPACK_IMPORTED_MODULE_1__.KubeObject.stringifyLabels((_a = this.spec.template.metadata) === null || _a === void 0 ? void 0 : _a.labels);\n }\n getTolerations() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.tolerations) !== null && _b !== void 0 ? _b : [];\n }\n getAffinity() {\n var _a, _b;\n return (_b = (_a = this.spec.template.spec) === null || _a === void 0 ? void 0 : _a.affinity) !== null && _b !== void 0 ? _b : {};\n }\n getAffinityNumber() {\n return Object.keys(this.getAffinity()).length;\n }\n getReplicas() {\n return this.spec.replicas || 0;\n }\n getImages() {\n var _a, _b, _c;\n const containers = (_c = (_b = (_a = this.spec.template) === null || _a === void 0 ? void 0 : _a.spec) === null || _b === void 0 ? void 0 : _b.containers) !== null && _c !== void 0 ? _c : [];\n return containers.map(container => container.image);\n }\n}\nObject.defineProperty(StatefulSet, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"StatefulSet\"\n});\nObject.defineProperty(StatefulSet, \"namespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: true\n});\nObject.defineProperty(StatefulSet, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"/apis/apps/v1/statefulsets\"\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/endpoints/stateful-set.api.ts?");
30951
30995
 
30952
30996
  /***/ }),
30953
30997
 
@@ -31325,17 +31369,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copyright (c) OpenLen
31325
31369
 
31326
31370
  /***/ }),
31327
31371
 
31328
- /***/ "./src/common/k8s-api/index.ts":
31329
- /*!*************************************!*\
31330
- !*** ./src/common/k8s-api/index.ts ***!
31331
- \*************************************/
31332
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31333
-
31334
- "use strict";
31335
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiBase\": () => (/* reexport safe */ _api_base__WEBPACK_IMPORTED_MODULE_0__.apiBase),\n/* harmony export */ \"apiKube\": () => (/* reexport safe */ _api_kube__WEBPACK_IMPORTED_MODULE_1__.apiKube)\n/* harmony export */ });\n/* harmony import */ var _api_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./api-base */ \"./src/common/k8s-api/api-base.ts\");\n/* harmony import */ var _api_kube__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./api-kube */ \"./src/common/k8s-api/api-kube.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/index.ts?");
31336
-
31337
- /***/ }),
31338
-
31339
31372
  /***/ "./src/common/k8s-api/json-api.ts":
31340
31373
  /*!****************************************!*\
31341
31374
  !*** ./src/common/k8s-api/json-api.ts ***!
@@ -31343,7 +31376,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31343
31376
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31344
31377
 
31345
31378
  "use strict";
31346
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JsonApi\": () => (/* binding */ JsonApi),\n/* harmony export */ \"JsonApiErrorParsed\": () => (/* binding */ JsonApiErrorParsed)\n/* harmony export */ });\n/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! http */ \"http\");\n/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(http__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var node_fetch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! node-fetch */ \"./node_modules/node-fetch/browser.js\");\n/* harmony import */ var node_fetch__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(node_fetch__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! querystring */ \"querystring\");\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony import */ var _common_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/logger */ \"./src/common/logger.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Base http-service / json-api class\n\n\n\n\n\n\n\n\nconst httpAgent = new http__WEBPACK_IMPORTED_MODULE_0__.Agent({ keepAlive: true });\nconst httpsAgent = new https__WEBPACK_IMPORTED_MODULE_1__.Agent({ keepAlive: true });\nclass JsonApi {\n constructor(config, reqInit) {\n var _a;\n Object.defineProperty(this, \"config\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: config\n });\n Object.defineProperty(this, \"reqInit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new _common_event_emitter__WEBPACK_IMPORTED_MODULE_5__.EventEmitter()\n });\n Object.defineProperty(this, \"onError\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new _common_event_emitter__WEBPACK_IMPORTED_MODULE_5__.EventEmitter()\n });\n Object.defineProperty(this, \"getRequestOptions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.config = Object.assign({}, JsonApi.configDefault, config);\n this.reqInit = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.merge)({}, JsonApi.reqInitDefault, reqInit);\n this.parseResponse = this.parseResponse.bind(this);\n this.getRequestOptions = (_a = config.getRequestOptions) !== null && _a !== void 0 ? _a : (() => Promise.resolve({}));\n }\n async getResponse(path, params, init = {}) {\n let reqUrl = `${this.config.serverAddress}${this.config.apiBase}${path}`;\n const reqInit = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.merge)({\n method: \"get\",\n agent: reqUrl.startsWith(\"https:\") ? httpsAgent : httpAgent,\n }, this.reqInit, await this.getRequestOptions(), init);\n const { query } = params !== null && params !== void 0 ? params : {};\n if (query) {\n const queryString = (0,querystring__WEBPACK_IMPORTED_MODULE_4__.stringify)(query);\n reqUrl += (reqUrl.includes(\"?\") ? \"&\" : \"?\") + queryString;\n }\n return node_fetch__WEBPACK_IMPORTED_MODULE_3___default()(reqUrl, reqInit);\n }\n get(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"get\" });\n }\n post(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"post\" });\n }\n put(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"put\" });\n }\n patch(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"patch\" });\n }\n del(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"delete\" });\n }\n async request(path, params, init) {\n let reqUrl = `${this.config.serverAddress}${this.config.apiBase}${path}`;\n const reqInit = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.merge)({}, this.reqInit, await this.getRequestOptions(), init);\n const { data, query } = params || {};\n if (data && !reqInit.body) {\n reqInit.body = JSON.stringify(data);\n }\n if (query) {\n const queryString = (0,querystring__WEBPACK_IMPORTED_MODULE_4__.stringify)(query);\n reqUrl += (reqUrl.includes(\"?\") ? \"&\" : \"?\") + queryString;\n }\n const infoLog = {\n method: reqInit.method.toUpperCase(),\n reqUrl,\n reqInit,\n };\n const res = await node_fetch__WEBPACK_IMPORTED_MODULE_3___default()(reqUrl, reqInit);\n return this.parseResponse(res, infoLog);\n }\n async parseResponse(res, log) {\n const { status } = res;\n const text = await res.text();\n let data;\n try {\n data = text ? _utils__WEBPACK_IMPORTED_MODULE_7__.json.parse(text) : \"\"; // DELETE-requests might not have response-body\n }\n catch (e) {\n data = text;\n }\n if (status >= 200 && status < 300) {\n this.onData.emit(data, res);\n this.writeLog({ ...log, data });\n return data;\n }\n if (log.method === \"GET\" && res.status === 403) {\n this.writeLog({ ...log, error: data });\n throw data;\n }\n const error = new JsonApiErrorParsed(data, this.parseError(data, res));\n this.onError.emit(error, res);\n this.writeLog({ ...log, error });\n throw error;\n }\n parseError(error, res) {\n if (typeof error === \"string\") {\n return [error];\n }\n if (Array.isArray(error.errors)) {\n return error.errors.map(error => error.title);\n }\n if (error.message) {\n return [error.message];\n }\n return [res.statusText || \"Error!\"];\n }\n writeLog(log) {\n const { method, reqUrl, ...params } = log;\n _common_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].debug(`[JSON-API] request ${method} ${reqUrl}`, params);\n }\n}\nObject.defineProperty(JsonApi, \"reqInitDefault\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n headers: {\n \"content-type\": \"application/json\",\n },\n }\n});\nObject.defineProperty(JsonApi, \"configDefault\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n debug: false,\n }\n});\nclass JsonApiErrorParsed {\n constructor(error, messages) {\n Object.defineProperty(this, \"error\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: error\n });\n Object.defineProperty(this, \"messages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: messages\n });\n Object.defineProperty(this, \"isUsedForNotification\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n }\n get isAborted() {\n return this.error.code === DOMException.ABORT_ERR;\n }\n toString() {\n return this.messages.join(\"\\n\");\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/json-api.ts?");
31379
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"JsonApi\": () => (/* binding */ JsonApi),\n/* harmony export */ \"JsonApiErrorParsed\": () => (/* binding */ JsonApiErrorParsed)\n/* harmony export */ });\n/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! http */ \"http\");\n/* harmony import */ var http__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(http__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! querystring */ \"querystring\");\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Base http-service / json-api class\n\n\n\n\n\n\nconst httpAgent = new http__WEBPACK_IMPORTED_MODULE_0__.Agent({ keepAlive: true });\nconst httpsAgent = new https__WEBPACK_IMPORTED_MODULE_1__.Agent({ keepAlive: true });\nclass JsonApi {\n constructor(dependencies, config, reqInit) {\n var _a;\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"config\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: config\n });\n Object.defineProperty(this, \"reqInit\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"onData\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new _common_event_emitter__WEBPACK_IMPORTED_MODULE_4__.EventEmitter()\n });\n Object.defineProperty(this, \"onError\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new _common_event_emitter__WEBPACK_IMPORTED_MODULE_4__.EventEmitter()\n });\n Object.defineProperty(this, \"getRequestOptions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.config = Object.assign({}, JsonApi.configDefault, config);\n this.reqInit = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.merge)({}, JsonApi.reqInitDefault, reqInit);\n this.parseResponse = this.parseResponse.bind(this);\n this.getRequestOptions = (_a = config.getRequestOptions) !== null && _a !== void 0 ? _a : (() => Promise.resolve({}));\n }\n async getResponse(path, params, init = {}) {\n let reqUrl = `${this.config.serverAddress}${this.config.apiBase}${path}`;\n const reqInit = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.merge)({\n method: \"get\",\n agent: reqUrl.startsWith(\"https:\") ? httpsAgent : httpAgent,\n }, this.reqInit, await this.getRequestOptions(), init);\n const { query } = params !== null && params !== void 0 ? params : {};\n if (query) {\n const queryString = (0,querystring__WEBPACK_IMPORTED_MODULE_3__.stringify)(query);\n reqUrl += (reqUrl.includes(\"?\") ? \"&\" : \"?\") + queryString;\n }\n return this.dependencies.fetch(reqUrl, reqInit);\n }\n get(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"get\" });\n }\n post(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"post\" });\n }\n put(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"put\" });\n }\n patch(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"patch\" });\n }\n del(path, params, reqInit = {}) {\n return this.request(path, params, { ...reqInit, method: \"delete\" });\n }\n async request(path, params, init) {\n let reqUrl = `${this.config.serverAddress}${this.config.apiBase}${path}`;\n const reqInit = (0,lodash__WEBPACK_IMPORTED_MODULE_2__.merge)({}, this.reqInit, await this.getRequestOptions(), init);\n const { data, query } = params || {};\n if (data && !reqInit.body) {\n reqInit.body = JSON.stringify(data);\n }\n if (query) {\n const queryString = (0,querystring__WEBPACK_IMPORTED_MODULE_3__.stringify)(query);\n reqUrl += (reqUrl.includes(\"?\") ? \"&\" : \"?\") + queryString;\n }\n const infoLog = {\n method: reqInit.method.toUpperCase(),\n reqUrl,\n reqInit,\n };\n const res = await this.dependencies.fetch(reqUrl, reqInit);\n return this.parseResponse(res, infoLog);\n }\n async parseResponse(res, log) {\n const { status } = res;\n const text = await res.text();\n let data;\n try {\n data = text ? _utils__WEBPACK_IMPORTED_MODULE_5__.json.parse(text) : \"\"; // DELETE-requests might not have response-body\n }\n catch (e) {\n data = text;\n }\n if (status >= 200 && status < 300) {\n this.onData.emit(data, res);\n this.writeLog({ ...log, data });\n return data;\n }\n if (log.method === \"GET\" && res.status === 403) {\n this.writeLog({ ...log, error: data });\n throw data;\n }\n const error = new JsonApiErrorParsed(data, this.parseError(data, res));\n this.onError.emit(error, res);\n this.writeLog({ ...log, error });\n throw error;\n }\n parseError(error, res) {\n if (typeof error === \"string\") {\n return [error];\n }\n if (Array.isArray(error.errors)) {\n return error.errors.map(error => error.title);\n }\n if (error.message) {\n return [error.message];\n }\n return [res.statusText || \"Error!\"];\n }\n writeLog(log) {\n const { method, reqUrl, ...params } = log;\n this.dependencies.logger.debug(`[JSON-API] request ${method} ${reqUrl}`, params);\n }\n}\nObject.defineProperty(JsonApi, \"reqInitDefault\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n headers: {\n \"content-type\": \"application/json\",\n },\n }\n});\nObject.defineProperty(JsonApi, \"configDefault\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n debug: false,\n }\n});\nclass JsonApiErrorParsed {\n constructor(error, messages) {\n Object.defineProperty(this, \"error\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: error\n });\n Object.defineProperty(this, \"messages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: messages\n });\n Object.defineProperty(this, \"isUsedForNotification\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: false\n });\n }\n get isAborted() {\n return this.error.code === DOMException.ABORT_ERR;\n }\n toString() {\n return this.messages.join(\"\\n\");\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/json-api.ts?");
31347
31380
 
31348
31381
  /***/ }),
31349
31382
 
@@ -31365,7 +31398,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31365
31398
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31366
31399
 
31367
31400
  "use strict";
31368
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeApi\": () => (/* binding */ KubeApi),\n/* harmony export */ \"forCluster\": () => (/* binding */ forCluster),\n/* harmony export */ \"forRemoteCluster\": () => (/* binding */ forRemoteCluster)\n/* harmony export */ });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! querystring */ \"querystring\");\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index */ \"./src/common/k8s-api/index.ts\");\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! byline */ \"./node_modules/byline/lib/byline.js\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(byline__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _kube_json_api__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./kube-json-api */ \"./src/common/k8s-api/kube-json-api.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! https */ \"https\");\n/* harmony import */ var https__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _api_manager_auto_registration_emitter_injectable__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./api-manager/auto-registration-emitter.injectable */ \"./src/common/k8s-api/api-manager/auto-registration-emitter.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Base class for building all kubernetes apis\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction forCluster(cluster, kubeClass, apiClass = KubeApi) {\n const url = new URL(_index__WEBPACK_IMPORTED_MODULE_3__.apiBase.config.serverAddress);\n const request = new _kube_json_api__WEBPACK_IMPORTED_MODULE_7__.KubeJsonApi({\n serverAddress: _index__WEBPACK_IMPORTED_MODULE_3__.apiBase.config.serverAddress,\n apiBase: _common_vars__WEBPACK_IMPORTED_MODULE_2__.apiKubePrefix,\n debug: _common_vars__WEBPACK_IMPORTED_MODULE_2__.isDevelopment,\n }, {\n headers: {\n \"Host\": `${cluster.metadata.uid}.localhost:${url.port}`,\n },\n });\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n}\nfunction forRemoteCluster(config, kubeClass, apiClass = KubeApi) {\n const reqInit = {};\n const agentOptions = {};\n if (config.cluster.skipTLSVerify === true) {\n agentOptions.rejectUnauthorized = false;\n }\n if (config.user.clientCertificateData) {\n agentOptions.cert = config.user.clientCertificateData;\n }\n if (config.user.clientKeyData) {\n agentOptions.key = config.user.clientKeyData;\n }\n if (config.cluster.caData) {\n agentOptions.ca = config.cluster.caData;\n }\n if (Object.keys(agentOptions).length > 0) {\n reqInit.agent = new https__WEBPACK_IMPORTED_MODULE_9__.Agent(agentOptions);\n }\n if (config.agent) {\n reqInit.agent = config.agent;\n }\n const token = config.user.token;\n const request = new _kube_json_api__WEBPACK_IMPORTED_MODULE_7__.KubeJsonApi({\n serverAddress: config.cluster.server,\n apiBase: \"\",\n debug: _common_vars__WEBPACK_IMPORTED_MODULE_2__.isDevelopment,\n ...(token ? {\n getRequestOptions: async () => ({\n headers: {\n \"Authorization\": `Bearer ${(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(token) ? await token() : token}`,\n },\n }),\n } : {}),\n }, reqInit);\n if (!apiClass) {\n apiClass = KubeApi;\n }\n return new apiClass({\n objectConstructor: kubeClass,\n request,\n });\n}\nconst patchTypeHeaders = {\n \"merge\": \"application/merge-patch+json\",\n \"json\": \"application/json-patch+json\",\n \"strategic\": \"application/strategic-merge-patch+json\",\n};\n/**\n * @deprecated In the new extension API, don't expose `KubeApi`'s constructor\n */\nfunction legacyRegisterApi(api) {\n try {\n /**\n * This function throws if called in `main`, so the `try..catch` is to make sure that doesn't\n * leak.\n *\n * However, we need this code to be run in `renderer` so that the auto registering of `KubeApi`\n * instances still works. That auto registering never worked or was applicable in `main` because\n * there is no \"single cluster\" on `main`.\n *\n * TODO: rearchitect this design pattern in the new extension API\n */\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_12__.getEnvironmentSpecificLegacyGlobalDiForExtensionApi)(_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_12__.Environments.renderer);\n const autoRegistrationEmitter = di.inject(_api_manager_auto_registration_emitter_injectable__WEBPACK_IMPORTED_MODULE_13__[\"default\"]);\n autoRegistrationEmitter.emit(\"kubeApi\", api);\n }\n catch {\n // ignore error\n }\n}\nclass KubeApi {\n constructor(opts) {\n var _a;\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiPrefix\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiGroup\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersionPreferred\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiResource\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isNamespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"objectConstructor\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"resourceVersions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"watchDisposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"watchId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"doCheckPreferredVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fullApiPathname\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fallbackApiBases\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n const { objectConstructor, request = _index__WEBPACK_IMPORTED_MODULE_3__.apiKube, kind = objectConstructor.kind, isNamespaced, apiBase: fullApiPathname = objectConstructor.apiBase, checkPreferredVersion: doCheckPreferredVersion = false, fallbackApiBases, } = opts;\n assert__WEBPACK_IMPORTED_MODULE_10___default()(fullApiPathname, \"apiBase MUST be provied either via KubeApiOptions.apiBase or KubeApiOptions.objectConstructor.apiBase\");\n assert__WEBPACK_IMPORTED_MODULE_10___default()(request, \"request MUST be provided if not in a cluster page frame context\");\n const { apiBase, apiPrefix, apiGroup, apiVersion, resource } = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_4__.parseKubeApi)(fullApiPathname);\n assert__WEBPACK_IMPORTED_MODULE_10___default()(kind, \"kind MUST be provied either via KubeApiOptions.kind or KubeApiOptions.objectConstructor.kind\");\n assert__WEBPACK_IMPORTED_MODULE_10___default()(apiPrefix, \"apiBase MUST be parsable as a kubeApi selfLink style string\");\n this.doCheckPreferredVersion = doCheckPreferredVersion;\n this.fallbackApiBases = fallbackApiBases;\n this.fullApiPathname = fullApiPathname;\n this.kind = kind;\n this.isNamespaced = (_a = isNamespaced !== null && isNamespaced !== void 0 ? isNamespaced : objectConstructor.namespaced) !== null && _a !== void 0 ? _a : false;\n this.apiBase = apiBase;\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n this.apiVersion = apiVersion;\n this.apiResource = resource;\n this.request = request;\n this.objectConstructor = objectConstructor;\n legacyRegisterApi(this);\n }\n get apiVersionWithGroup() {\n var _a;\n return [this.apiGroup, (_a = this.apiVersionPreferred) !== null && _a !== void 0 ? _a : this.apiVersion]\n .filter(Boolean)\n .join(\"/\");\n }\n /**\n * Returns the latest API prefix/group that contains the required resource.\n * First tries fullApiPathname, then urls in order from fallbackApiBases.\n */\n async getLatestApiPrefixGroup() {\n var _a;\n // Note that this.fullApiPathname is the \"full\" url, whereas this.apiBase is parsed\n const apiBases = [this.fullApiPathname, this.objectConstructor.apiBase, ...(_a = this.fallbackApiBases) !== null && _a !== void 0 ? _a : []];\n for (const apiUrl of apiBases) {\n if (!apiUrl) {\n continue;\n }\n try {\n // Split e.g. \"/apis/extensions/v1beta1/ingresses\" to parts\n const { apiPrefix, apiGroup, apiVersionWithGroup, resource } = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_4__.parseKubeApi)(apiUrl);\n // Request available resources\n const { resources } = (await this.request.get(`${apiPrefix}/${apiVersionWithGroup}`));\n // If the resource is found in the group, use this apiUrl\n if (resources.find(({ name }) => name === resource)) {\n return { apiPrefix, apiGroup };\n }\n }\n catch (error) {\n // Exception is ignored as we can try the next url\n }\n }\n throw new Error(`Can't find working API for the Kubernetes resource ${this.apiResource}`);\n }\n /**\n * Get the apiPrefix and apiGroup to be used for fetching the preferred version.\n */\n async getPreferredVersionPrefixGroup() {\n if (this.fallbackApiBases) {\n try {\n return await this.getLatestApiPrefixGroup();\n }\n catch (error) {\n // If valid API wasn't found, log the error and return defaults below\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].error(`[KUBE-API]: ${error}`);\n }\n }\n return {\n apiPrefix: this.apiPrefix,\n apiGroup: this.apiGroup,\n };\n }\n async checkPreferredVersion() {\n var _a;\n if (this.fallbackApiBases && !this.doCheckPreferredVersion) {\n throw new Error(\"checkPreferredVersion must be enabled if fallbackApiBases is set in KubeApi\");\n }\n if (this.doCheckPreferredVersion && this.apiVersionPreferred === undefined) {\n const { apiPrefix, apiGroup } = await this.getPreferredVersionPrefixGroup();\n assert__WEBPACK_IMPORTED_MODULE_10___default()(apiPrefix);\n // The apiPrefix and apiGroup might change due to fallbackApiBases, so we must override them\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n const url = [apiPrefix, apiGroup].filter(Boolean).join(\"/\");\n const res = await this.request.get(url);\n this.apiVersionPreferred = (_a = res === null || res === void 0 ? void 0 : res.preferredVersion) === null || _a === void 0 ? void 0 : _a.version;\n if (this.apiVersionPreferred) {\n this.apiBase = this.computeApiBase();\n legacyRegisterApi(this);\n }\n }\n }\n setResourceVersion(namespace = \"\", newVersion) {\n this.resourceVersions.set(namespace, newVersion);\n }\n getResourceVersion(namespace = \"\") {\n return this.resourceVersions.get(namespace);\n }\n async refreshResourceVersion(params) {\n return this.list(params, { limit: 1 });\n }\n computeApiBase() {\n return (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_4__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n });\n }\n getUrl({ name, namespace } = {}, query) {\n const resourcePath = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_4__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: this.isNamespaced ? namespace !== null && namespace !== void 0 ? namespace : \"default\" : undefined,\n name,\n });\n return resourcePath + (query ? `?${(0,querystring__WEBPACK_IMPORTED_MODULE_1__.stringify)(this.normalizeQuery(query))}` : \"\");\n }\n normalizeQuery(query = {}) {\n if (query.labelSelector) {\n query.labelSelector = [query.labelSelector].flat().join(\",\");\n }\n if (query.fieldSelector) {\n query.fieldSelector = [query.fieldSelector].flat().join(\",\");\n }\n return query;\n }\n parseResponse(data, namespace) {\n if (!data) {\n return null;\n }\n const KubeObjectConstructor = this.objectConstructor;\n // process items list response, check before single item since there is overlap\n if (_kube_object__WEBPACK_IMPORTED_MODULE_5__.KubeObject.isJsonApiDataList(data, _kube_object__WEBPACK_IMPORTED_MODULE_5__.KubeObject.isPartialJsonApiData)) {\n const { apiVersion, items, metadata } = data;\n this.setResourceVersion(namespace, metadata.resourceVersion);\n this.setResourceVersion(\"\", metadata.resourceVersion);\n return items\n .map((item) => {\n if (item.metadata) {\n this.ensureMetadataSelfLink(item.metadata);\n }\n else {\n return undefined;\n }\n const object = new KubeObjectConstructor({\n ...item,\n kind: this.kind,\n apiVersion,\n });\n return object;\n })\n .filter(_utils__WEBPACK_IMPORTED_MODULE_8__.isDefined);\n }\n // process a single item\n if (_kube_object__WEBPACK_IMPORTED_MODULE_5__.KubeObject.isJsonApiData(data)) {\n this.ensureMetadataSelfLink(data.metadata);\n return new KubeObjectConstructor(data);\n }\n // custom apis might return array for list response, e.g. users, groups, etc.\n if (Array.isArray(data)) {\n return data.map(data => {\n this.ensureMetadataSelfLink(data.metadata);\n return new KubeObjectConstructor(data);\n });\n }\n return null;\n }\n ensureMetadataSelfLink(metadata) {\n metadata.selfLink || (metadata.selfLink = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_4__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: metadata.namespace,\n name: metadata.name,\n }));\n }\n async list({ namespace = \"\", reqInit } = {}, query) {\n await this.checkPreferredVersion();\n const url = this.getUrl({ namespace });\n const res = await this.request.get(url, { query }, reqInit);\n const parsed = this.parseResponse(res, namespace);\n if (Array.isArray(parsed)) {\n return parsed;\n }\n if (!parsed) {\n return null;\n }\n throw new Error(`GET multiple request to ${url} returned not an array: ${JSON.stringify(parsed)}`);\n }\n async get(desc, query) {\n await this.checkPreferredVersion();\n const url = this.getUrl(desc);\n const res = await this.request.get(url, { query });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`GET single request to ${url} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async create({ name, namespace }, partialData) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl({ namespace });\n const data = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.merge)(partialData, {\n kind: this.kind,\n apiVersion: this.apiVersionWithGroup,\n metadata: {\n name,\n namespace,\n },\n });\n const res = await this.request.post(apiUrl, { data });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`POST request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async update({ name, namespace }, data) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl({ namespace, name });\n const res = await this.request.put(apiUrl, {\n data: (0,lodash__WEBPACK_IMPORTED_MODULE_0__.merge)(data, {\n metadata: {\n name,\n namespace,\n },\n }),\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PUT request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async patch(desc, data, strategy = \"strategic\") {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl(desc);\n const res = await this.request.patch(apiUrl, { data }, {\n headers: {\n \"content-type\": patchTypeHeaders[strategy],\n },\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PATCH request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async delete({ propagationPolicy = \"Background\", ...desc }) {\n await this.checkPreferredVersion();\n const apiUrl = this.getUrl(desc);\n return this.request.del(apiUrl, {\n query: {\n propagationPolicy,\n },\n });\n }\n getWatchUrl(namespace = \"\", query = {}) {\n return this.getUrl({ namespace }, {\n watch: 1,\n resourceVersion: this.getResourceVersion(namespace),\n ...query,\n });\n }\n watch(opts = { namespace: \"\", retry: false }) {\n let errorReceived = false;\n let timedRetry;\n const { namespace, callback = _utils__WEBPACK_IMPORTED_MODULE_8__.noop, retry, timeout } = opts;\n const { watchId = `${this.kind.toLowerCase()}-${this.watchId++}` } = opts;\n // Create AbortController for this request\n const abortController = new _utils__WEBPACK_IMPORTED_MODULE_8__.WrappedAbortController(opts.abortController);\n abortController.signal.addEventListener(\"abort\", () => {\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].info(`[KUBE-API] watch (${watchId}) aborted ${watchUrl}`);\n clearTimeout(timedRetry);\n });\n const requestParams = timeout ? { query: { timeoutSeconds: timeout } } : {};\n const watchUrl = this.getWatchUrl(namespace);\n const responsePromise = this.request.getResponse(watchUrl, requestParams, {\n signal: abortController.signal,\n timeout: 600000,\n });\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${retry === true ? \"retried\" : \"started\"} ${watchUrl}`);\n responsePromise\n .then(response => {\n // True if the current watch request was retried\n let requestRetried = false;\n if (!response.ok) {\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].warn(`[KUBE-API] watch (${watchId}) error response ${watchUrl}`, { status: response.status });\n return callback(null, response);\n }\n // Add mechanism to retry in case timeoutSeconds is set but the watch wasn't timed out.\n // This can happen if e.g. network is offline and AWS NLB is used.\n if (timeout) {\n setTimeout(() => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n // Close current request\n abortController.abort();\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].info(`[KUBE-API] Watch timeout set, but not retried, retrying now`);\n requestRetried = true;\n // Clearing out any possible timeout, although we don't expect this to be set\n clearTimeout(timedRetry);\n this.watch({ ...opts, namespace, callback, watchId, retry: true });\n // We wait longer than the timeout, as we expect the request to be retried with timeoutSeconds\n }, timeout * 1000 * 1.1);\n }\n [\"end\", \"close\", \"error\"].forEach((eventName) => {\n response.body.on(eventName, () => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n // kubernetes errors (=errorReceived set) should be handled in a callback\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${eventName} ${watchUrl}`);\n requestRetried = true;\n clearTimeout(timedRetry);\n timedRetry = setTimeout(() => {\n this.watch({ ...opts, namespace, callback, watchId, retry: true });\n }, 1000);\n });\n });\n byline__WEBPACK_IMPORTED_MODULE_6___default()(response.body).on(\"data\", (line) => {\n try {\n const event = JSON.parse(line);\n if (event.type === \"ERROR\" && (0,_kube_object__WEBPACK_IMPORTED_MODULE_5__.isKubeStatusData)(event.object)) {\n errorReceived = true;\n return callback(null, new _kube_object__WEBPACK_IMPORTED_MODULE_5__.KubeStatus(event.object));\n }\n this.modifyWatchEvent(event);\n callback(event, null);\n }\n catch (ignore) {\n // ignore parse errors\n }\n });\n })\n .catch(error => {\n _logger__WEBPACK_IMPORTED_MODULE_11__[\"default\"].error(`[KUBE-API] watch (${watchId}) throwed ${watchUrl}`, error);\n callback(null, error);\n });\n return () => {\n abortController.abort();\n };\n }\n modifyWatchEvent(event) {\n if (event.type === \"ERROR\") {\n return;\n }\n this.ensureMetadataSelfLink(event.object.metadata);\n const { namespace, resourceVersion } = event.object.metadata;\n assert__WEBPACK_IMPORTED_MODULE_10___default()(resourceVersion, \"watch events failed to return resourceVersion from kube api\");\n this.setResourceVersion(namespace, resourceVersion);\n this.setResourceVersion(\"\", resourceVersion);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-api.ts?");
31401
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeApi\": () => (/* binding */ KubeApi)\n/* harmony export */ });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"./node_modules/lodash/lodash.js\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! querystring */ \"querystring\");\n/* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _kube_api_parse__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./kube-api-parse */ \"./src/common/k8s-api/kube-api-parse.ts\");\n/* harmony import */ var _kube_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! byline */ \"./node_modules/byline/lib/byline.js\");\n/* harmony import */ var byline__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(byline__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _api_manager_auto_registration_emitter_injectable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./api-manager/auto-registration-emitter.injectable */ \"./src/common/k8s-api/api-manager/auto-registration-emitter.injectable.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/* harmony import */ var _api_kube__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./api-kube */ \"./src/common/k8s-api/api-kube.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Base class for building all kubernetes apis\n\n\n\n\n\n\n\n\n\n\n\n\nconst patchTypeHeaders = {\n \"merge\": \"application/merge-patch+json\",\n \"json\": \"application/json-patch+json\",\n \"strategic\": \"application/strategic-merge-patch+json\",\n};\n/**\n * @deprecated In the new extension API, don't expose `KubeApi`'s constructor\n */\nfunction legacyRegisterApi(api) {\n try {\n /**\n * This function throws if called in `main`, so the `try..catch` is to make sure that doesn't\n * leak.\n *\n * However, we need this code to be run in `renderer` so that the auto registering of `KubeApi`\n * instances still works. That auto registering never worked or was applicable in `main` because\n * there is no \"single cluster\" on `main`.\n *\n * TODO: rearchitect this design pattern in the new extension API\n */\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_8__.getEnvironmentSpecificLegacyGlobalDiForExtensionApi)(_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_8__.Environments.renderer);\n const autoRegistrationEmitter = di.inject(_api_manager_auto_registration_emitter_injectable__WEBPACK_IMPORTED_MODULE_9__[\"default\"]);\n autoRegistrationEmitter.emit(\"kubeApi\", api);\n }\n catch {\n // ignore error\n }\n}\nclass KubeApi {\n constructor(opts) {\n var _a;\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiBase\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiPrefix\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiGroup\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiVersionPreferred\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"apiResource\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"isNamespaced\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"objectConstructor\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"request\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"resourceVersions\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Map()\n });\n Object.defineProperty(this, \"watchDisposer\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"watchId\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 1\n });\n Object.defineProperty(this, \"doCheckPreferredVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fullApiPathname\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"fallbackApiBases\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n const { objectConstructor, request = (0,_extensions_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_10__.asLegacyGlobalForExtensionApi)(_api_kube__WEBPACK_IMPORTED_MODULE_11__.apiKubeInjectionToken), kind = objectConstructor.kind, isNamespaced, apiBase: fullApiPathname = objectConstructor.apiBase, checkPreferredVersion: doCheckPreferredVersion = false, fallbackApiBases, } = opts;\n assert__WEBPACK_IMPORTED_MODULE_6___default()(fullApiPathname, \"apiBase MUST be provied either via KubeApiOptions.apiBase or KubeApiOptions.objectConstructor.apiBase\");\n assert__WEBPACK_IMPORTED_MODULE_6___default()(request, \"request MUST be provided if not in a cluster page frame context\");\n const { apiBase, apiPrefix, apiGroup, apiVersion, resource } = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_2__.parseKubeApi)(fullApiPathname);\n assert__WEBPACK_IMPORTED_MODULE_6___default()(kind, \"kind MUST be provied either via KubeApiOptions.kind or KubeApiOptions.objectConstructor.kind\");\n assert__WEBPACK_IMPORTED_MODULE_6___default()(apiPrefix, \"apiBase MUST be parsable as a kubeApi selfLink style string\");\n this.doCheckPreferredVersion = doCheckPreferredVersion;\n this.fallbackApiBases = fallbackApiBases;\n this.fullApiPathname = fullApiPathname;\n this.kind = kind;\n this.isNamespaced = (_a = isNamespaced !== null && isNamespaced !== void 0 ? isNamespaced : objectConstructor.namespaced) !== null && _a !== void 0 ? _a : false;\n this.apiBase = apiBase;\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n this.apiVersion = apiVersion;\n this.apiResource = resource;\n this.request = request;\n this.objectConstructor = objectConstructor;\n legacyRegisterApi(this);\n }\n get apiVersionWithGroup() {\n var _a;\n return [this.apiGroup, (_a = this.apiVersionPreferred) !== null && _a !== void 0 ? _a : this.apiVersion]\n .filter(Boolean)\n .join(\"/\");\n }\n /**\n * Returns the latest API prefix/group that contains the required resource.\n * First tries fullApiPathname, then urls in order from fallbackApiBases.\n */\n async getLatestApiPrefixGroup() {\n var _a;\n // Note that this.fullApiPathname is the \"full\" url, whereas this.apiBase is parsed\n const rawApiBases = [\n this.fullApiPathname,\n this.objectConstructor.apiBase,\n ...(_a = this.fallbackApiBases) !== null && _a !== void 0 ? _a : [],\n ].filter(_utils__WEBPACK_IMPORTED_MODULE_5__.isDefined);\n const apiBases = new Set(rawApiBases);\n for (const apiUrl of apiBases) {\n try {\n // Split e.g. \"/apis/extensions/v1beta1/ingresses\" to parts\n const { apiPrefix, apiGroup, apiVersionWithGroup, resource } = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_2__.parseKubeApi)(apiUrl);\n // Request available resources\n const { resources } = (await this.request.get(`${apiPrefix}/${apiVersionWithGroup}`));\n // If the resource is found in the group, use this apiUrl\n if (resources.find(({ name }) => name === resource)) {\n return { apiPrefix, apiGroup };\n }\n }\n catch (error) {\n // Exception is ignored as we can try the next url\n }\n }\n throw new Error(`Can't find working API for the Kubernetes resource ${this.apiResource}`);\n }\n /**\n * Get the apiPrefix and apiGroup to be used for fetching the preferred version.\n */\n async getPreferredVersionPrefixGroup() {\n if (this.fallbackApiBases) {\n try {\n return await this.getLatestApiPrefixGroup();\n }\n catch (error) {\n // If valid API wasn't found, log the error and return defaults below\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`[KUBE-API]: ${error}`);\n }\n }\n return {\n apiPrefix: this.apiPrefix,\n apiGroup: this.apiGroup,\n };\n }\n async checkPreferredVersion() {\n var _a;\n if (this.fallbackApiBases && !this.doCheckPreferredVersion) {\n throw new Error(\"checkPreferredVersion must be enabled if fallbackApiBases is set in KubeApi\");\n }\n if (this.doCheckPreferredVersion && this.apiVersionPreferred === undefined) {\n const { apiPrefix, apiGroup } = await this.getPreferredVersionPrefixGroup();\n assert__WEBPACK_IMPORTED_MODULE_6___default()(apiPrefix);\n // The apiPrefix and apiGroup might change due to fallbackApiBases, so we must override them\n this.apiPrefix = apiPrefix;\n this.apiGroup = apiGroup;\n const url = [apiPrefix, apiGroup].filter(Boolean).join(\"/\");\n const res = await this.request.get(url);\n this.apiVersionPreferred = (_a = res === null || res === void 0 ? void 0 : res.preferredVersion) === null || _a === void 0 ? void 0 : _a.version;\n if (this.apiVersionPreferred) {\n this.apiBase = this.computeApiBase();\n legacyRegisterApi(this);\n }\n }\n }\n setResourceVersion(namespace = \"\", newVersion) {\n this.resourceVersions.set(namespace, newVersion);\n }\n getResourceVersion(namespace = \"\") {\n return this.resourceVersions.get(namespace);\n }\n async refreshResourceVersion(params) {\n return this.list(params, { limit: 1 });\n }\n computeApiBase() {\n return (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_2__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n });\n }\n /**\n * This method differs from {@link formatUrlForNotListing} because this treats `\"\"` as \"all namespaces\"\n * @param namespace The namespace to list in or `\"\"` for all namespaces\n */\n formatUrlForListing(namespace) {\n return (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_2__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: this.isNamespaced\n ? namespace !== null && namespace !== void 0 ? namespace : \"default\"\n : undefined,\n });\n }\n formatUrlForNotListing({ name, namespace } = {}, query) {\n const resourcePath = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_2__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: this.isNamespaced\n ? namespace || \"default\"\n : undefined,\n name,\n });\n return resourcePath + (query ? `?${(0,querystring__WEBPACK_IMPORTED_MODULE_1__.stringify)(this.normalizeQuery(query))}` : \"\");\n }\n /**\n * @deprecated use {@link formatUrlForNotListing} instead\n */\n getUrl(resource, query) {\n return this.formatUrlForNotListing(resource, query);\n }\n normalizeQuery(query = {}) {\n if (query.labelSelector) {\n query.labelSelector = [query.labelSelector].flat().join(\",\");\n }\n if (query.fieldSelector) {\n query.fieldSelector = [query.fieldSelector].flat().join(\",\");\n }\n return query;\n }\n parseResponse(data, namespace) {\n if (!data) {\n return null;\n }\n const KubeObjectConstructor = this.objectConstructor;\n // process items list response, check before single item since there is overlap\n if (_kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject.isJsonApiDataList(data, _kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject.isPartialJsonApiData)) {\n const { apiVersion, items, metadata } = data;\n this.setResourceVersion(namespace, metadata.resourceVersion);\n this.setResourceVersion(\"\", metadata.resourceVersion);\n return items\n .map((item) => {\n if (item.metadata) {\n this.ensureMetadataSelfLink(item.metadata);\n }\n else {\n return undefined;\n }\n const object = new KubeObjectConstructor({\n ...item,\n kind: this.kind,\n apiVersion,\n });\n return object;\n })\n .filter(_utils__WEBPACK_IMPORTED_MODULE_5__.isDefined);\n }\n // process a single item\n if (_kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeObject.isJsonApiData(data)) {\n this.ensureMetadataSelfLink(data.metadata);\n return new KubeObjectConstructor(data);\n }\n // custom apis might return array for list response, e.g. users, groups, etc.\n if (Array.isArray(data)) {\n return data.map(data => {\n this.ensureMetadataSelfLink(data.metadata);\n return new KubeObjectConstructor(data);\n });\n }\n return null;\n }\n ensureMetadataSelfLink(metadata) {\n metadata.selfLink || (metadata.selfLink = (0,_kube_api_parse__WEBPACK_IMPORTED_MODULE_2__.createKubeApiURL)({\n apiPrefix: this.apiPrefix,\n apiVersion: this.apiVersionWithGroup,\n resource: this.apiResource,\n namespace: metadata.namespace,\n name: metadata.name,\n }));\n }\n async list({ namespace = \"\", reqInit } = {}, query) {\n await this.checkPreferredVersion();\n const url = this.formatUrlForListing(namespace);\n const res = await this.request.get(url, { query }, reqInit);\n const parsed = this.parseResponse(res, namespace);\n if (Array.isArray(parsed)) {\n return parsed;\n }\n if (!parsed) {\n return null;\n }\n throw new Error(`GET multiple request to ${url} returned not an array: ${JSON.stringify(parsed)}`);\n }\n async get(desc, query) {\n await this.checkPreferredVersion();\n const url = this.formatUrlForNotListing(desc);\n const res = await this.request.get(url, { query });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`GET single request to ${url} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async create({ name, namespace }, partialData) {\n await this.checkPreferredVersion();\n const apiUrl = this.formatUrlForNotListing({ namespace });\n const data = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.merge)(partialData, {\n kind: this.kind,\n apiVersion: this.apiVersionWithGroup,\n metadata: {\n name,\n namespace,\n },\n });\n const res = await this.request.post(apiUrl, { data });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`POST request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async update({ name, namespace }, data) {\n await this.checkPreferredVersion();\n const apiUrl = this.formatUrlForNotListing({ namespace, name });\n const res = await this.request.put(apiUrl, {\n data: (0,lodash__WEBPACK_IMPORTED_MODULE_0__.merge)(data, {\n metadata: {\n name,\n namespace,\n },\n }),\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PUT request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async patch(desc, data, strategy = \"strategic\") {\n await this.checkPreferredVersion();\n const apiUrl = this.formatUrlForNotListing(desc);\n const res = await this.request.patch(apiUrl, { data }, {\n headers: {\n \"content-type\": patchTypeHeaders[strategy],\n },\n });\n const parsed = this.parseResponse(res);\n if (Array.isArray(parsed)) {\n throw new Error(`PATCH request to ${apiUrl} returned an array: ${JSON.stringify(parsed)}`);\n }\n return parsed;\n }\n async delete({ propagationPolicy = \"Background\", ...desc }) {\n await this.checkPreferredVersion();\n const apiUrl = this.formatUrlForNotListing(desc);\n return this.request.del(apiUrl, {\n query: {\n propagationPolicy,\n },\n });\n }\n getWatchUrl(namespace, query = {}) {\n return this.formatUrlForNotListing({ namespace }, {\n watch: 1,\n resourceVersion: this.getResourceVersion(namespace),\n ...query,\n });\n }\n watch(opts) {\n let errorReceived = false;\n let timedRetry;\n const { namespace, callback = _utils__WEBPACK_IMPORTED_MODULE_5__.noop, retry = false, timeout, watchId = `${this.kind.toLowerCase()}-${this.watchId++}`, } = opts !== null && opts !== void 0 ? opts : {};\n // Create AbortController for this request\n const abortController = new _utils__WEBPACK_IMPORTED_MODULE_5__.WrappedAbortController(opts === null || opts === void 0 ? void 0 : opts.abortController);\n abortController.signal.addEventListener(\"abort\", () => {\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].info(`[KUBE-API] watch (${watchId}) aborted ${watchUrl}`);\n clearTimeout(timedRetry);\n });\n const requestParams = timeout ? { query: { timeoutSeconds: timeout } } : {};\n const watchUrl = this.getWatchUrl(namespace);\n const responsePromise = this.request.getResponse(watchUrl, requestParams, {\n signal: abortController.signal,\n timeout: 600000,\n });\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${retry === true ? \"retried\" : \"started\"} ${watchUrl}`);\n responsePromise\n .then(response => {\n // True if the current watch request was retried\n let requestRetried = false;\n if (!response.ok) {\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].warn(`[KUBE-API] watch (${watchId}) error response ${watchUrl}`, { status: response.status });\n return callback(null, response);\n }\n // Add mechanism to retry in case timeoutSeconds is set but the watch wasn't timed out.\n // This can happen if e.g. network is offline and AWS NLB is used.\n if (timeout) {\n setTimeout(() => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n // Close current request\n abortController.abort();\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].info(`[KUBE-API] Watch timeout set, but not retried, retrying now`);\n requestRetried = true;\n // Clearing out any possible timeout, although we don't expect this to be set\n clearTimeout(timedRetry);\n this.watch({ ...opts, namespace, callback, watchId, retry: true });\n // We wait longer than the timeout, as we expect the request to be retried with timeoutSeconds\n }, timeout * 1000 * 1.1);\n }\n [\"end\", \"close\", \"error\"].forEach((eventName) => {\n response.body.on(eventName, () => {\n // We only retry if we haven't retried, haven't aborted and haven't received k8s error\n // kubernetes errors (=errorReceived set) should be handled in a callback\n if (requestRetried || abortController.signal.aborted || errorReceived) {\n return;\n }\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].info(`[KUBE-API] watch (${watchId}) ${eventName} ${watchUrl}`);\n requestRetried = true;\n clearTimeout(timedRetry);\n timedRetry = setTimeout(() => {\n this.watch({ ...opts, namespace, callback, watchId, retry: true });\n }, 1000);\n });\n });\n byline__WEBPACK_IMPORTED_MODULE_4___default()(response.body).on(\"data\", (line) => {\n try {\n const event = JSON.parse(line);\n if (event.type === \"ERROR\" && (0,_kube_object__WEBPACK_IMPORTED_MODULE_3__.isKubeStatusData)(event.object)) {\n errorReceived = true;\n return callback(null, new _kube_object__WEBPACK_IMPORTED_MODULE_3__.KubeStatus(event.object));\n }\n this.modifyWatchEvent(event);\n callback(event, null);\n }\n catch (ignore) {\n // ignore parse errors\n }\n });\n })\n .catch(error => {\n _logger__WEBPACK_IMPORTED_MODULE_7__[\"default\"].error(`[KUBE-API] watch (${watchId}) throwed ${watchUrl}`, error);\n callback(null, error);\n });\n return () => {\n abortController.abort();\n };\n }\n modifyWatchEvent(event) {\n if (event.type === \"ERROR\") {\n return;\n }\n this.ensureMetadataSelfLink(event.object.metadata);\n const { namespace, resourceVersion } = event.object.metadata;\n assert__WEBPACK_IMPORTED_MODULE_6___default()(resourceVersion, \"watch events failed to return resourceVersion from kube api\");\n this.setResourceVersion(namespace, resourceVersion);\n this.setResourceVersion(\"\", resourceVersion);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-api.ts?");
31369
31402
 
31370
31403
  /***/ }),
31371
31404
 
@@ -31387,7 +31420,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31387
31420
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31388
31421
 
31389
31422
  "use strict";
31390
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeJsonApi\": () => (/* binding */ KubeJsonApi)\n/* harmony export */ });\n/* harmony import */ var _json_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./json-api */ \"./src/common/k8s-api/json-api.ts\");\n/* harmony import */ var _vars__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vars */ \"./src/common/vars.ts\");\n/* harmony import */ var _api_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./api-base */ \"./src/common/k8s-api/api-base.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nclass KubeJsonApi extends _json_api__WEBPACK_IMPORTED_MODULE_0__.JsonApi {\n static forCluster(clusterId) {\n const url = new URL(_api_base__WEBPACK_IMPORTED_MODULE_2__.apiBase.config.serverAddress);\n return new this({\n serverAddress: _api_base__WEBPACK_IMPORTED_MODULE_2__.apiBase.config.serverAddress,\n apiBase: _vars__WEBPACK_IMPORTED_MODULE_1__.apiKubePrefix,\n debug: _vars__WEBPACK_IMPORTED_MODULE_1__.isDebugging,\n }, {\n headers: {\n \"Host\": `${clusterId}.localhost:${url.port}`,\n },\n });\n }\n parseError(error, res) {\n if (typeof error === \"string\") {\n return [error];\n }\n const { status, reason, message } = error;\n if (status && reason) {\n return [message || `${status}: ${reason}`];\n }\n return super.parseError(error, res);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-json-api.ts?");
31423
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeJsonApi\": () => (/* binding */ KubeJsonApi)\n/* harmony export */ });\n/* harmony import */ var _json_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./json-api */ \"./src/common/k8s-api/json-api.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nclass KubeJsonApi extends _json_api__WEBPACK_IMPORTED_MODULE_0__.JsonApi {\n parseError(error, res) {\n if (typeof error === \"string\") {\n return [error];\n }\n const { status, reason, message } = error;\n if (status && reason) {\n return [message || `${status}: ${reason}`];\n }\n return super.parseError(error, res);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-json-api.ts?");
31391
31424
 
31392
31425
  /***/ }),
31393
31426
 
@@ -31420,7 +31453,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31420
31453
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31421
31454
 
31422
31455
  "use strict";
31423
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeCreationError\": () => (/* binding */ KubeCreationError),\n/* harmony export */ \"KubeObject\": () => (/* binding */ KubeObject),\n/* harmony export */ \"KubeObjectScope\": () => (/* binding */ KubeObjectScope),\n/* harmony export */ \"KubeStatus\": () => (/* binding */ KubeStatus),\n/* harmony export */ \"isKubeStatusData\": () => (/* binding */ isKubeStatusData)\n/* harmony export */ });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index */ \"./src/common/k8s-api/index.ts\");\n/* harmony import */ var _endpoints_resource_applier_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./endpoints/resource-applier.api */ \"./src/common/k8s-api/endpoints/resource-applier.api.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_4__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Base class for all kubernetes objects\n\n\n\n\n\nfunction isKubeStatusData(object) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"code\", _utils__WEBPACK_IMPORTED_MODULE_1__.isNumber)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"message\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"reason\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && object.kind === \"Status\";\n}\nclass KubeStatus {\n constructor(data) {\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Status\"\n });\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"message\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"reason\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.apiVersion = data.apiVersion;\n this.code = data.code;\n this.message = data.message || \"\";\n this.reason = data.reason || \"\";\n }\n}\nclass KubeCreationError extends Error {\n constructor(message, data) {\n super(message);\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: data\n });\n }\n}\nvar KubeObjectScope;\n(function (KubeObjectScope) {\n KubeObjectScope[KubeObjectScope[\"Namespace\"] = 0] = \"Namespace\";\n KubeObjectScope[KubeObjectScope[\"Cluster\"] = 1] = \"Cluster\";\n})(KubeObjectScope || (KubeObjectScope = {}));\nclass KubeObject {\n constructor(data) {\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metadata\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"spec\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n if (typeof data !== \"object\") {\n throw new TypeError(`Cannot create a KubeObject from ${typeof data}`);\n }\n if (!data.metadata || typeof data.metadata !== \"object\") {\n throw new KubeCreationError(`Cannot create a KubeObject from an object without metadata`, data);\n }\n Object.assign(this, data);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.autoBind)(this);\n }\n static create(data) {\n return new KubeObject(data);\n }\n static isNonSystem(item) {\n var _a;\n return !((_a = item.metadata.name) === null || _a === void 0 ? void 0 : _a.startsWith(\"system:\"));\n }\n static isJsonApiData(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"metadata\", KubeObject.isKubeJsonApiMetadata));\n }\n static isKubeJsonApiListMetadata(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"resourceVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"selfLink\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString));\n }\n static isKubeJsonApiMetadata(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"uid\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"name\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"resourceVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"selfLink\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"namespace\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"creationTimestamp\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"continue\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"finalizers\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isTypedArray, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"labels\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"annotations\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString)));\n }\n static isPartialJsonApiMetadata(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"uid\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"name\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"resourceVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"selfLink\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"namespace\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"creationTimestamp\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"continue\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"finalizers\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isTypedArray, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"labels\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"annotations\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString)));\n }\n static isPartialJsonApiData(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"metadata\", KubeObject.isPartialJsonApiMetadata));\n }\n static isJsonApiDataList(object, verifyItem) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"metadata\", KubeObject.isKubeJsonApiListMetadata)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"items\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isTypedArray, verifyItem)));\n }\n static stringifyLabels(labels) {\n if (!labels)\n return [];\n return Object.entries(labels).map(([name, value]) => `${name}=${value}`);\n }\n get selfLink() {\n return this.metadata.selfLink;\n }\n getId() {\n return this.metadata.uid;\n }\n getResourceVersion() {\n return this.metadata.resourceVersion;\n }\n getScopedName() {\n const ns = this.getNs();\n const res = ns ? `${ns}/` : \"\";\n return res + this.getName();\n }\n getName() {\n return this.metadata.name;\n }\n getNs() {\n // avoid \"null\" serialization via JSON.stringify when post data\n return (this.metadata.namespace || undefined);\n }\n /**\n * This function computes the number of milliseconds from the UNIX EPOCH to the\n * creation timestamp of this object.\n */\n getCreationTimestamp() {\n if (!this.metadata.creationTimestamp) {\n return Date.now();\n }\n return new Date(this.metadata.creationTimestamp).getTime();\n }\n /**\n * @deprecated This function computes a new \"now\" on every call which might cause subtle issues if called multiple times\n *\n * NOTE: Generally you can use `getCreationTimestamp` instead.\n */\n getTimeDiffFromNow() {\n if (!this.metadata.creationTimestamp) {\n return 0;\n }\n return Date.now() - new Date(this.metadata.creationTimestamp).getTime();\n }\n /**\n * @deprecated This function computes a new \"now\" on every call might cause subtle issues if called multiple times\n *\n * NOTE: this function also is not reactive to updates in the current time so it should not be used for renderering\n */\n getAge(humanize = true, compact = true, fromNow = false) {\n if (fromNow) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(this.metadata.creationTimestamp).fromNow(); // \"string\", getTimeDiffFromNow() cannot be used\n }\n const diff = this.getTimeDiffFromNow();\n if (humanize) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.formatDuration)(diff, compact);\n }\n return diff;\n }\n getFinalizers() {\n return this.metadata.finalizers || [];\n }\n getLabels() {\n return KubeObject.stringifyLabels(this.metadata.labels);\n }\n getAnnotations(filter = false) {\n const labels = KubeObject.stringifyLabels(this.metadata.annotations);\n return filter ? labels.filter(label => {\n const skip = _endpoints_resource_applier_api__WEBPACK_IMPORTED_MODULE_3__.annotations.some(key => label.startsWith(key));\n return !skip;\n }) : labels;\n }\n getOwnerRefs() {\n const refs = this.metadata.ownerReferences || [];\n const namespace = this.getNs();\n return refs.map(ownerRef => ({ ...ownerRef, namespace }));\n }\n getSearchFields() {\n const { getName, getId, getNs, getAnnotations, getLabels } = this;\n return [\n getName(),\n getNs(),\n getId(),\n ...getLabels(),\n ...getAnnotations(true),\n ];\n }\n toPlainObject() {\n return _utils__WEBPACK_IMPORTED_MODULE_1__.json.parse(JSON.stringify(this));\n }\n /**\n * @deprecated use KubeApi.patch instead\n */\n async patch(patch) {\n for (const op of patch) {\n if (KubeObject.nonEditablePaths.has(op.path)) {\n throw new Error(`Failed to update ${this.kind}: JSON pointer ${op.path} has been modified`);\n }\n for (const pathPrefix of KubeObject.nonEditablePathPrefixes) {\n if (op.path.startsWith(`${pathPrefix}/`)) {\n throw new Error(`Failed to update ${this.kind}: Child JSON pointer of ${op.path} has been modified`);\n }\n }\n }\n return _endpoints_resource_applier_api__WEBPACK_IMPORTED_MODULE_3__.patch(this.getName(), this.kind, this.getNs(), patch);\n }\n /**\n * Perform a full update (or more specifically a replace)\n *\n * Note: this is brittle if `data` is not actually partial (but instead whole).\n * As fields such as `resourceVersion` will probably out of date. This is a\n * common race condition.\n *\n * @deprecated use KubeApi.update instead\n */\n async update(data) {\n // use unified resource-applier api for updating all k8s objects\n return _endpoints_resource_applier_api__WEBPACK_IMPORTED_MODULE_3__.update({\n ...this.toPlainObject(),\n ...data,\n });\n }\n /**\n * @deprecated use KubeApi.delete instead\n */\n delete(params) {\n assert__WEBPACK_IMPORTED_MODULE_4___default()(this.selfLink, \"selfLink must be present to delete self\");\n return _index__WEBPACK_IMPORTED_MODULE_2__.apiKube.del(this.selfLink, params);\n }\n}\n/**\n * These must be RFC6902 compliant paths\n */\nObject.defineProperty(KubeObject, \"nonEditablePathPrefixes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\n \"/metadata/managedFields\",\n \"/status\",\n ]\n});\nObject.defineProperty(KubeObject, \"nonEditablePaths\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Set([\n \"/apiVersion\",\n \"/kind\",\n \"/metadata/name\",\n \"/metadata/selfLink\",\n \"/metadata/resourceVersion\",\n \"/metadata/uid\",\n ...KubeObject.nonEditablePathPrefixes,\n ])\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-object.ts?");
31456
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"KubeCreationError\": () => (/* binding */ KubeCreationError),\n/* harmony export */ \"KubeObject\": () => (/* binding */ KubeObject),\n/* harmony export */ \"KubeObjectScope\": () => (/* binding */ KubeObjectScope),\n/* harmony export */ \"KubeStatus\": () => (/* binding */ KubeStatus),\n/* harmony export */ \"isKubeStatusData\": () => (/* binding */ isKubeStatusData)\n/* harmony export */ });\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment */ \"./node_modules/moment/moment.js\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_as_legacy_global_function_for_extension_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api.ts\");\n/* harmony import */ var _endpoints_resource_applier_api_request_patch_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./endpoints/resource-applier.api/request-patch.injectable */ \"./src/common/k8s-api/endpoints/resource-applier.api/request-patch.injectable.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/* harmony import */ var _api_kube__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./api-kube */ \"./src/common/k8s-api/api-kube.ts\");\n/* harmony import */ var _endpoints_resource_applier_api_request_update_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./endpoints/resource-applier.api/request-update.injectable */ \"./src/common/k8s-api/endpoints/resource-applier.api/request-update.injectable.ts\");\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Base class for all kubernetes objects\n\n\n\n\n\n\n\n\n\nfunction isKubeStatusData(object) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"code\", _utils__WEBPACK_IMPORTED_MODULE_1__.isNumber)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"message\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"reason\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && object.kind === \"Status\";\n}\nclass KubeStatus {\n constructor(data) {\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"Status\"\n });\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"message\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"reason\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.apiVersion = data.apiVersion;\n this.code = data.code;\n this.message = data.message || \"\";\n this.reason = data.reason || \"\";\n }\n}\nclass KubeCreationError extends Error {\n constructor(message, data) {\n super(message);\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: data\n });\n }\n}\nvar KubeObjectScope;\n(function (KubeObjectScope) {\n KubeObjectScope[KubeObjectScope[\"Namespace\"] = 0] = \"Namespace\";\n KubeObjectScope[KubeObjectScope[\"Cluster\"] = 1] = \"Cluster\";\n})(KubeObjectScope || (KubeObjectScope = {}));\nconst resourceApplierAnnotationsForFiltering = [\n \"kubectl.kubernetes.io/last-applied-configuration\",\n];\nconst filterOutResourceApplierAnnotations = (label) => !resourceApplierAnnotationsForFiltering.some(key => label.startsWith(key));\nclass KubeObject {\n constructor(data) {\n Object.defineProperty(this, \"apiVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kind\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metadata\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"spec\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n if (typeof data !== \"object\") {\n throw new TypeError(`Cannot create a KubeObject from ${typeof data}`);\n }\n if (!data.metadata || typeof data.metadata !== \"object\") {\n throw new KubeCreationError(`Cannot create a KubeObject from an object without metadata`, data);\n }\n Object.assign(this, data);\n (0,_utils__WEBPACK_IMPORTED_MODULE_1__.autoBind)(this);\n }\n static create(data) {\n return new KubeObject(data);\n }\n static isNonSystem(item) {\n var _a;\n return !((_a = item.metadata.name) === null || _a === void 0 ? void 0 : _a.startsWith(\"system:\"));\n }\n static isJsonApiData(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"metadata\", KubeObject.isKubeJsonApiMetadata));\n }\n static isKubeJsonApiListMetadata(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"resourceVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"selfLink\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString));\n }\n static isKubeJsonApiMetadata(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"uid\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"name\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"resourceVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"selfLink\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"namespace\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"creationTimestamp\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"continue\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"finalizers\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isTypedArray, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"labels\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"annotations\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString)));\n }\n static isPartialJsonApiMetadata(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"uid\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"name\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"resourceVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"selfLink\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"namespace\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"creationTimestamp\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"continue\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"finalizers\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isTypedArray, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"labels\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString))\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"annotations\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isRecord, _utils__WEBPACK_IMPORTED_MODULE_1__.isString, _utils__WEBPACK_IMPORTED_MODULE_1__.isString)));\n }\n static isPartialJsonApiData(object) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasOptionalTypedProperty)(object, \"metadata\", KubeObject.isPartialJsonApiMetadata));\n }\n static isJsonApiDataList(object, verifyItem) {\n return ((0,_utils__WEBPACK_IMPORTED_MODULE_1__.isObject)(object)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"kind\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"apiVersion\", _utils__WEBPACK_IMPORTED_MODULE_1__.isString)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"metadata\", KubeObject.isKubeJsonApiListMetadata)\n && (0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasTypedProperty)(object, \"items\", (0,_utils__WEBPACK_IMPORTED_MODULE_1__.bindPredicate)(_utils__WEBPACK_IMPORTED_MODULE_1__.isTypedArray, verifyItem)));\n }\n static stringifyLabels(labels) {\n if (!labels)\n return [];\n return Object.entries(labels).map(([name, value]) => `${name}=${value}`);\n }\n get selfLink() {\n return this.metadata.selfLink;\n }\n getId() {\n return this.metadata.uid;\n }\n getResourceVersion() {\n return this.metadata.resourceVersion;\n }\n getScopedName() {\n const ns = this.getNs();\n const res = ns ? `${ns}/` : \"\";\n return res + this.getName();\n }\n getName() {\n return this.metadata.name;\n }\n getNs() {\n // avoid \"null\" serialization via JSON.stringify when post data\n return (this.metadata.namespace || undefined);\n }\n /**\n * This function computes the number of milliseconds from the UNIX EPOCH to the\n * creation timestamp of this object.\n */\n getCreationTimestamp() {\n if (!this.metadata.creationTimestamp) {\n return Date.now();\n }\n return new Date(this.metadata.creationTimestamp).getTime();\n }\n /**\n * @deprecated This function computes a new \"now\" on every call which might cause subtle issues if called multiple times\n *\n * NOTE: Generally you can use `getCreationTimestamp` instead.\n */\n getTimeDiffFromNow() {\n if (!this.metadata.creationTimestamp) {\n return 0;\n }\n return Date.now() - new Date(this.metadata.creationTimestamp).getTime();\n }\n /**\n * @deprecated This function computes a new \"now\" on every call might cause subtle issues if called multiple times\n *\n * NOTE: this function also is not reactive to updates in the current time so it should not be used for renderering\n */\n getAge(humanize = true, compact = true, fromNow = false) {\n if (fromNow) {\n return moment__WEBPACK_IMPORTED_MODULE_0___default()(this.metadata.creationTimestamp).fromNow(); // \"string\", getTimeDiffFromNow() cannot be used\n }\n const diff = this.getTimeDiffFromNow();\n if (humanize) {\n return (0,_utils__WEBPACK_IMPORTED_MODULE_1__.formatDuration)(diff, compact);\n }\n return diff;\n }\n getFinalizers() {\n return this.metadata.finalizers || [];\n }\n getLabels() {\n return KubeObject.stringifyLabels(this.metadata.labels);\n }\n getAnnotations(filter = false) {\n const labels = KubeObject.stringifyLabels(this.metadata.annotations);\n if (!filter) {\n return labels;\n }\n return labels.filter(filterOutResourceApplierAnnotations);\n }\n getOwnerRefs() {\n const refs = this.metadata.ownerReferences || [];\n const namespace = this.getNs();\n return refs.map(ownerRef => ({ ...ownerRef, namespace }));\n }\n getSearchFields() {\n const { getName, getId, getNs, getAnnotations, getLabels } = this;\n return [\n getName(),\n getNs(),\n getId(),\n ...getLabels(),\n ...getAnnotations(true),\n ];\n }\n toPlainObject() {\n return _utils__WEBPACK_IMPORTED_MODULE_1__.json.parse(JSON.stringify(this));\n }\n /**\n * @deprecated use KubeApi.patch instead\n */\n async patch(patch) {\n for (const op of patch) {\n if (KubeObject.nonEditablePaths.has(op.path)) {\n throw new Error(`Failed to update ${this.kind}: JSON pointer ${op.path} has been modified`);\n }\n for (const pathPrefix of KubeObject.nonEditablePathPrefixes) {\n if (op.path.startsWith(`${pathPrefix}/`)) {\n throw new Error(`Failed to update ${this.kind}: Child JSON pointer of ${op.path} has been modified`);\n }\n }\n }\n const requestKubeObjectPatch = (0,_extensions_as_legacy_globals_for_extension_api_as_legacy_global_function_for_extension_api__WEBPACK_IMPORTED_MODULE_3__.asLegacyGlobalFunctionForExtensionApi)(_endpoints_resource_applier_api_request_patch_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n return requestKubeObjectPatch(this.getName(), this.kind, this.getNs(), patch);\n }\n /**\n * Perform a full update (or more specifically a replace)\n *\n * Note: this is brittle if `data` is not actually partial (but instead whole).\n * As fields such as `resourceVersion` will probably out of date. This is a\n * common race condition.\n *\n * @deprecated use KubeApi.update instead\n */\n async update(data) {\n const requestKubeObjectCreation = (0,_extensions_as_legacy_globals_for_extension_api_as_legacy_global_function_for_extension_api__WEBPACK_IMPORTED_MODULE_3__.asLegacyGlobalFunctionForExtensionApi)(_endpoints_resource_applier_api_request_update_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n const descriptor = (0,js_yaml__WEBPACK_IMPORTED_MODULE_8__.dump)({\n ...this.toPlainObject(),\n ...data,\n });\n return requestKubeObjectCreation(descriptor);\n }\n /**\n * @deprecated use KubeApi.delete instead\n */\n delete(params) {\n assert__WEBPACK_IMPORTED_MODULE_2___default()(this.selfLink, \"selfLink must be present to delete self\");\n const apiKube = (0,_extensions_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.asLegacyGlobalForExtensionApi)(_api_kube__WEBPACK_IMPORTED_MODULE_6__.apiKubeInjectionToken);\n return apiKube.del(this.selfLink, params);\n }\n}\n/**\n * These must be RFC6902 compliant paths\n */\nObject.defineProperty(KubeObject, \"nonEditablePathPrefixes\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: [\n \"/metadata/managedFields\",\n \"/status\",\n ]\n});\nObject.defineProperty(KubeObject, \"nonEditablePaths\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: new Set([\n \"/apiVersion\",\n \"/kind\",\n \"/metadata/name\",\n \"/metadata/selfLink\",\n \"/metadata/resourceVersion\",\n \"/metadata/uid\",\n ...KubeObject.nonEditablePathPrefixes,\n ])\n});\n\n\n//# sourceURL=webpack://open-lens/./src/common/k8s-api/kube-object.ts?");
31424
31457
 
31425
31458
  /***/ }),
31426
31459
 
@@ -31464,7 +31497,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31464
31497
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31465
31498
 
31466
31499
  "use strict";
31467
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"dumpConfigYaml\": () => (/* binding */ dumpConfigYaml),\n/* harmony export */ \"kubeConfigDefaultPath\": () => (/* binding */ kubeConfigDefaultPath),\n/* harmony export */ \"loadConfigFromFile\": () => (/* binding */ loadConfigFromFile),\n/* harmony export */ \"loadConfigFromFileSync\": () => (/* binding */ loadConfigFromFileSync),\n/* harmony export */ \"loadConfigFromString\": () => (/* binding */ loadConfigFromString),\n/* harmony export */ \"loadFromOptions\": () => (/* binding */ loadFromOptions),\n/* harmony export */ \"splitConfig\": () => (/* binding */ splitConfig),\n/* harmony export */ \"validateKubeConfig\": () => (/* binding */ validateKubeConfig)\n/* harmony export */ });\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @kubernetes/client-node */ \"./node_modules/@kubernetes/client-node/dist/index.js\");\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @kubernetes/client-node/dist/config_types */ \"./node_modules/@kubernetes/client-node/dist/config_types.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var joi__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! joi */ \"./node_modules/joi/dist/joi-browser.min.js\");\n/* harmony import */ var joi__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(joi__WEBPACK_IMPORTED_MODULE_8__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\nconst kubeConfigDefaultPath = path__WEBPACK_IMPORTED_MODULE_2___default().join(os__WEBPACK_IMPORTED_MODULE_3___default().homedir(), \".kube\", \"config\");\nfunction loadConfigFromFileSync(filePath) {\n const content = fs_extra__WEBPACK_IMPORTED_MODULE_1___default().readFileSync((0,_utils__WEBPACK_IMPORTED_MODULE_7__.resolvePath)(filePath), \"utf-8\");\n return loadConfigFromString(content);\n}\nasync function loadConfigFromFile(filePath) {\n const content = await fs_extra__WEBPACK_IMPORTED_MODULE_1___default().readFile((0,_utils__WEBPACK_IMPORTED_MODULE_7__.resolvePath)(filePath), \"utf-8\");\n return loadConfigFromString(content);\n}\nconst clusterSchema = joi__WEBPACK_IMPORTED_MODULE_8___default().object({\n name: joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .required(),\n cluster: joi__WEBPACK_IMPORTED_MODULE_8___default().object({\n server: joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .required(),\n })\n .required(),\n});\nconst userSchema = joi__WEBPACK_IMPORTED_MODULE_8___default().object({\n name: joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .required(),\n});\nconst contextSchema = joi__WEBPACK_IMPORTED_MODULE_8___default().object({\n name: joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .required(),\n context: joi__WEBPACK_IMPORTED_MODULE_8___default().object({\n cluster: joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .required(),\n user: joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .required(),\n }),\n});\nconst kubeConfigSchema = joi__WEBPACK_IMPORTED_MODULE_8___default().object({\n users: joi__WEBPACK_IMPORTED_MODULE_8___default().array()\n .items(userSchema)\n .optional(),\n clusters: joi__WEBPACK_IMPORTED_MODULE_8___default().array()\n .items(clusterSchema)\n .optional(),\n contexts: joi__WEBPACK_IMPORTED_MODULE_8___default().array()\n .items(contextSchema)\n .optional(),\n \"current-context\": joi__WEBPACK_IMPORTED_MODULE_8___default().string()\n .min(1)\n .optional(),\n})\n .required();\nfunction loadToOptions(rawYaml) {\n const parsed = js_yaml__WEBPACK_IMPORTED_MODULE_4__[\"default\"].load(rawYaml);\n const { error } = kubeConfigSchema.validate(parsed, {\n abortEarly: false,\n allowUnknown: true,\n });\n const { value } = kubeConfigSchema.validate(parsed, {\n abortEarly: false,\n allowUnknown: true,\n stripUnknown: {\n arrays: true,\n },\n });\n const { clusters: rawClusters, users: rawUsers, contexts: rawContexts, \"current-context\": currentContext, } = value !== null && value !== void 0 ? value : {};\n const clusters = (0,_kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_6__.newClusters)(rawClusters);\n const users = (0,_kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_6__.newUsers)(rawUsers);\n const contexts = (0,_kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_6__.newContexts)(rawContexts);\n return {\n options: { clusters, users, contexts, currentContext },\n error,\n };\n}\nfunction loadFromOptions(options) {\n const kc = new _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__.KubeConfig();\n // need to load using the kubernetes client to generate a kubeconfig object\n kc.loadFromOptions(options);\n return kc;\n}\nfunction loadConfigFromString(content) {\n const { options, error } = loadToOptions(content);\n return {\n config: loadFromOptions(options),\n error,\n };\n}\n/**\n * Breaks kube config into several configs. Each context as it own KubeConfig object\n */\nfunction splitConfig(kubeConfig) {\n return kubeConfig.getContexts().map(ctx => {\n const config = new _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__.KubeConfig();\n const cluster = kubeConfig.getCluster(ctx.cluster);\n const user = kubeConfig.getUser(ctx.user);\n const context = kubeConfig.getContextObject(ctx.name);\n if (cluster) {\n config.addCluster(cluster);\n }\n if (user) {\n config.addUser(user);\n }\n if (context) {\n config.addContext(context);\n }\n config.setCurrentContext(ctx.name);\n return {\n config,\n validationResult: validateKubeConfig(config, ctx.name),\n };\n });\n}\n/**\n * Pretty format the object as human readable yaml, such as would be on the filesystem\n * @param kubeConfig The kubeconfig object to format as pretty yaml\n * @returns The yaml representation of the kubeconfig object\n */\nfunction dumpConfigYaml(kubeConfig) {\n var _a, _b, _c;\n const clusters = (_a = kubeConfig.clusters) === null || _a === void 0 ? void 0 : _a.filter(_utils__WEBPACK_IMPORTED_MODULE_7__.isDefined).map(cluster => ({\n name: cluster.name,\n cluster: {\n \"certificate-authority-data\": cluster.caData,\n \"certificate-authority\": cluster.caFile,\n server: cluster.server,\n \"insecure-skip-tls-verify\": cluster.skipTLSVerify,\n },\n }));\n const contexts = (_b = kubeConfig.contexts) === null || _b === void 0 ? void 0 : _b.filter(_utils__WEBPACK_IMPORTED_MODULE_7__.isDefined).map(context => ({\n name: context.name,\n context: {\n cluster: context.cluster,\n user: context.user,\n namespace: context.namespace,\n },\n }));\n const users = (_c = kubeConfig.users) === null || _c === void 0 ? void 0 : _c.filter(_utils__WEBPACK_IMPORTED_MODULE_7__.isDefined).map(user => ({\n name: user.name,\n user: {\n \"client-certificate-data\": user.certData,\n \"client-certificate\": user.certFile,\n \"client-key-data\": user.keyData,\n \"client-key\": user.keyFile,\n \"auth-provider\": user.authProvider,\n exec: user.exec,\n token: user.token,\n username: user.username,\n password: user.password,\n },\n }));\n const config = {\n apiVersion: \"v1\",\n kind: \"Config\",\n preferences: {},\n \"current-context\": kubeConfig.currentContext,\n clusters,\n contexts,\n users,\n };\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].debug(\"Dumping KubeConfig:\", config);\n // skipInvalid: true makes dump ignore undefined values\n return js_yaml__WEBPACK_IMPORTED_MODULE_4__[\"default\"].dump(config, { skipInvalid: true });\n}\n/**\n * Checks if `config` has valid `Context`, `User`, `Cluster`, and `exec` fields (if present when required)\n *\n * Note: This function returns an error instead of throwing it, returning `undefined` if the validation passes\n */\nfunction validateKubeConfig(config, contextName) {\n const context = config.getContextObject(contextName);\n if (!context) {\n return {\n error: new Error(`No valid context object provided in kubeconfig for context '${contextName}'`),\n };\n }\n const cluster = config.getCluster(context.cluster);\n if (!cluster) {\n return {\n error: new Error(`No valid cluster object provided in kubeconfig for context '${contextName}'`),\n };\n }\n const user = config.getUser(context.user);\n if (!user) {\n return {\n error: new Error(`No valid user object provided in kubeconfig for context '${contextName}'`),\n };\n }\n return { cluster, user, context };\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/kube-helpers.ts?");
31500
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"dumpConfigYaml\": () => (/* binding */ dumpConfigYaml),\n/* harmony export */ \"loadConfigFromString\": () => (/* binding */ loadConfigFromString),\n/* harmony export */ \"loadFromOptions\": () => (/* binding */ loadFromOptions),\n/* harmony export */ \"splitConfig\": () => (/* binding */ splitConfig),\n/* harmony export */ \"validateKubeConfig\": () => (/* binding */ validateKubeConfig)\n/* harmony export */ });\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @kubernetes/client-node */ \"./node_modules/@kubernetes/client-node/dist/index.js\");\n/* harmony import */ var _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../main/logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @kubernetes/client-node/dist/config_types */ \"./node_modules/@kubernetes/client-node/dist/config_types.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var joi__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joi */ \"./node_modules/joi/dist/joi-browser.min.js\");\n/* harmony import */ var joi__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(joi__WEBPACK_IMPORTED_MODULE_5__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\nconst clusterSchema = joi__WEBPACK_IMPORTED_MODULE_5___default().object({\n name: joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .required(),\n cluster: joi__WEBPACK_IMPORTED_MODULE_5___default().object({\n server: joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .required(),\n })\n .required(),\n});\nconst userSchema = joi__WEBPACK_IMPORTED_MODULE_5___default().object({\n name: joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .required(),\n});\nconst contextSchema = joi__WEBPACK_IMPORTED_MODULE_5___default().object({\n name: joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .required(),\n context: joi__WEBPACK_IMPORTED_MODULE_5___default().object({\n cluster: joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .required(),\n user: joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .required(),\n }),\n});\nconst kubeConfigSchema = joi__WEBPACK_IMPORTED_MODULE_5___default().object({\n users: joi__WEBPACK_IMPORTED_MODULE_5___default().array()\n .items(userSchema)\n .optional(),\n clusters: joi__WEBPACK_IMPORTED_MODULE_5___default().array()\n .items(clusterSchema)\n .optional(),\n contexts: joi__WEBPACK_IMPORTED_MODULE_5___default().array()\n .items(contextSchema)\n .optional(),\n \"current-context\": joi__WEBPACK_IMPORTED_MODULE_5___default().string()\n .min(1)\n .optional(),\n})\n .required();\nfunction loadToOptions(rawYaml) {\n const parsed = js_yaml__WEBPACK_IMPORTED_MODULE_1__[\"default\"].load(rawYaml);\n const { error } = kubeConfigSchema.validate(parsed, {\n abortEarly: false,\n allowUnknown: true,\n });\n const { value } = kubeConfigSchema.validate(parsed, {\n abortEarly: false,\n allowUnknown: true,\n stripUnknown: {\n arrays: true,\n },\n });\n const { clusters: rawClusters, users: rawUsers, contexts: rawContexts, \"current-context\": currentContext, } = value !== null && value !== void 0 ? value : {};\n const clusters = (0,_kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_3__.newClusters)(rawClusters);\n const users = (0,_kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_3__.newUsers)(rawUsers);\n const contexts = (0,_kubernetes_client_node_dist_config_types__WEBPACK_IMPORTED_MODULE_3__.newContexts)(rawContexts);\n return {\n options: { clusters, users, contexts, currentContext },\n error,\n };\n}\nfunction loadFromOptions(options) {\n const kc = new _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__.KubeConfig();\n // need to load using the kubernetes client to generate a kubeconfig object\n kc.loadFromOptions(options);\n return kc;\n}\nfunction loadConfigFromString(content) {\n const { options, error } = loadToOptions(content);\n return {\n config: loadFromOptions(options),\n error,\n };\n}\n/**\n * Breaks kube config into several configs. Each context as it own KubeConfig object\n */\nfunction splitConfig(kubeConfig) {\n return kubeConfig.getContexts().map(ctx => {\n const config = new _kubernetes_client_node__WEBPACK_IMPORTED_MODULE_0__.KubeConfig();\n const cluster = kubeConfig.getCluster(ctx.cluster);\n const user = kubeConfig.getUser(ctx.user);\n const context = kubeConfig.getContextObject(ctx.name);\n if (cluster) {\n config.addCluster(cluster);\n }\n if (user) {\n config.addUser(user);\n }\n if (context) {\n config.addContext(context);\n }\n config.setCurrentContext(ctx.name);\n return {\n config,\n validationResult: validateKubeConfig(config, ctx.name),\n };\n });\n}\n/**\n * Pretty format the object as human readable yaml, such as would be on the filesystem\n * @param kubeConfig The kubeconfig object to format as pretty yaml\n * @returns The yaml representation of the kubeconfig object\n */\nfunction dumpConfigYaml(kubeConfig) {\n var _a, _b, _c;\n const clusters = (_a = kubeConfig.clusters) === null || _a === void 0 ? void 0 : _a.filter(_utils__WEBPACK_IMPORTED_MODULE_4__.isDefined).map(cluster => ({\n name: cluster.name,\n cluster: {\n \"certificate-authority-data\": cluster.caData,\n \"certificate-authority\": cluster.caFile,\n server: cluster.server,\n \"insecure-skip-tls-verify\": cluster.skipTLSVerify,\n },\n }));\n const contexts = (_b = kubeConfig.contexts) === null || _b === void 0 ? void 0 : _b.filter(_utils__WEBPACK_IMPORTED_MODULE_4__.isDefined).map(context => ({\n name: context.name,\n context: {\n cluster: context.cluster,\n user: context.user,\n namespace: context.namespace,\n },\n }));\n const users = (_c = kubeConfig.users) === null || _c === void 0 ? void 0 : _c.filter(_utils__WEBPACK_IMPORTED_MODULE_4__.isDefined).map(user => ({\n name: user.name,\n user: {\n \"client-certificate-data\": user.certData,\n \"client-certificate\": user.certFile,\n \"client-key-data\": user.keyData,\n \"client-key\": user.keyFile,\n \"auth-provider\": user.authProvider,\n exec: user.exec,\n token: user.token,\n username: user.username,\n password: user.password,\n },\n }));\n const config = {\n apiVersion: \"v1\",\n kind: \"Config\",\n preferences: {},\n \"current-context\": kubeConfig.currentContext,\n clusters,\n contexts,\n users,\n };\n _main_logger__WEBPACK_IMPORTED_MODULE_2__[\"default\"].debug(\"Dumping KubeConfig:\", config);\n // skipInvalid: true makes dump ignore undefined values\n return js_yaml__WEBPACK_IMPORTED_MODULE_1__[\"default\"].dump(config, { skipInvalid: true });\n}\n/**\n * Checks if `config` has valid `Context`, `User`, `Cluster`, and `exec` fields (if present when required)\n *\n * Note: This function returns an error instead of throwing it, returning `undefined` if the validation passes\n */\nfunction validateKubeConfig(config, contextName) {\n const context = config.getContextObject(contextName);\n if (!context) {\n return {\n error: new Error(`No valid context object provided in kubeconfig for context '${contextName}'`),\n };\n }\n const cluster = config.getCluster(context.cluster);\n if (!cluster) {\n return {\n error: new Error(`No valid cluster object provided in kubeconfig for context '${contextName}'`),\n };\n }\n const user = config.getUser(context.user);\n if (!user) {\n return {\n error: new Error(`No valid user object provided in kubeconfig for context '${contextName}'`),\n };\n }\n return { cluster, user, context };\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/kube-helpers.ts?");
31468
31501
 
31469
31502
  /***/ }),
31470
31503
 
@@ -31501,6 +31534,39 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31501
31534
 
31502
31535
  /***/ }),
31503
31536
 
31537
+ /***/ "./src/common/path/get-dirname.injectable.ts":
31538
+ /*!***************************************************!*\
31539
+ !*** ./src/common/path/get-dirname.injectable.ts ***!
31540
+ \***************************************************/
31541
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31542
+
31543
+ "use strict";
31544
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst getDirnameOfPathInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"get-dirname-of-path\",\n instantiate: () => (path__WEBPACK_IMPORTED_MODULE_1___default().dirname),\n causesSideEffects: true,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getDirnameOfPathInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/path/get-dirname.injectable.ts?");
31545
+
31546
+ /***/ }),
31547
+
31548
+ /***/ "./src/common/path/is-logical-child-path.injectable.ts":
31549
+ /*!*************************************************************!*\
31550
+ !*** ./src/common/path/is-logical-child-path.injectable.ts ***!
31551
+ \*************************************************************/
31552
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31553
+
31554
+ "use strict";
31555
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/* harmony import */ var _get_dirname_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-dirname.injectable */ \"./src/common/path/get-dirname.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst isLogicalChildPathInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"is-logical-child-path\",\n instantiate: (di) => {\n const getAbsolutePath = di.inject(_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const getDirnameOfPath = di.inject(_get_dirname_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return (parentPath, testPath) => {\n const resolvedParentPath = getAbsolutePath(parentPath);\n let resolvedTestPath = getAbsolutePath(testPath);\n if (resolvedParentPath === resolvedTestPath) {\n return false;\n }\n while (resolvedTestPath.length >= resolvedParentPath.length) {\n if (resolvedTestPath === resolvedParentPath) {\n return true;\n }\n resolvedTestPath = getDirnameOfPath(resolvedTestPath);\n }\n return false;\n };\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isLogicalChildPathInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/path/is-logical-child-path.injectable.ts?");
31556
+
31557
+ /***/ }),
31558
+
31559
+ /***/ "./src/common/path/join-paths.injectable.ts":
31560
+ /*!**************************************************!*\
31561
+ !*** ./src/common/path/join-paths.injectable.ts ***!
31562
+ \**************************************************/
31563
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31564
+
31565
+ "use strict";
31566
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst joinPathsInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"join-paths\",\n instantiate: () => (path__WEBPACK_IMPORTED_MODULE_1___default().join),\n // This causes side effect e.g. Windows uses different separator than e.g. linux\n causesSideEffects: true,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (joinPathsInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/path/join-paths.injectable.ts?");
31567
+
31568
+ /***/ }),
31569
+
31504
31570
  /***/ "./src/common/rbac.ts":
31505
31571
  /*!****************************!*\
31506
31572
  !*** ./src/common/rbac.ts ***!
@@ -31508,7 +31574,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31508
31574
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31509
31575
 
31510
31576
  "use strict";
31511
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiResourceRecord\": () => (/* binding */ apiResourceRecord),\n/* harmony export */ \"apiResources\": () => (/* binding */ apiResources)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nconst apiResourceRecord = {\n \"clusterroles\": { kind: \"ClusterRole\", group: \"rbac.authorization.k8s.io\" },\n \"clusterrolebindings\": { kind: \"ClusterRoleBinding\", group: \"rbac.authorization.k8s.io\" },\n \"configmaps\": { kind: \"ConfigMap\" },\n \"cronjobs\": { kind: \"CronJob\", group: \"batch\" },\n \"customresourcedefinitions\": { kind: \"CustomResourceDefinition\", group: \"apiextensions.k8s.io\" },\n \"daemonsets\": { kind: \"DaemonSet\", group: \"apps\" },\n \"deployments\": { kind: \"Deployment\", group: \"apps\" },\n \"endpoints\": { kind: \"Endpoint\" },\n \"events\": { kind: \"Event\" },\n \"horizontalpodautoscalers\": { kind: \"HorizontalPodAutoscaler\", group: \"autoscaling\" },\n \"ingresses\": { kind: \"Ingress\", group: \"networking.k8s.io\" },\n \"jobs\": { kind: \"Job\", group: \"batch\" },\n \"namespaces\": { kind: \"Namespace\" },\n \"limitranges\": { kind: \"LimitRange\" },\n \"networkpolicies\": { kind: \"NetworkPolicy\", group: \"networking.k8s.io\" },\n \"nodes\": { kind: \"Node\" },\n \"persistentvolumes\": { kind: \"PersistentVolume\" },\n \"persistentvolumeclaims\": { kind: \"PersistentVolumeClaim\" },\n \"pods\": { kind: \"Pod\" },\n \"poddisruptionbudgets\": { kind: \"PodDisruptionBudget\", group: \"policy\" },\n \"podsecuritypolicies\": { kind: \"PodSecurityPolicy\", group: \"policy\" },\n \"priorityclasses\": { kind: \"PriorityClass\", group: \"scheduling.k8s.io\" },\n \"resourcequotas\": { kind: \"ResourceQuota\" },\n \"replicasets\": { kind: \"ReplicaSet\", group: \"apps\" },\n \"roles\": { kind: \"Role\", group: \"rbac.authorization.k8s.io\" },\n \"rolebindings\": { kind: \"RoleBinding\", group: \"rbac.authorization.k8s.io\" },\n \"secrets\": { kind: \"Secret\" },\n \"serviceaccounts\": { kind: \"ServiceAccount\" },\n \"services\": { kind: \"Service\" },\n \"statefulsets\": { kind: \"StatefulSet\", group: \"apps\" },\n \"storageclasses\": { kind: \"StorageClass\", group: \"storage.k8s.io\" },\n};\n// TODO: auto-populate all resources dynamically (see: kubectl api-resources -o=wide -v=7)\nconst apiResources = Object.entries(apiResourceRecord)\n .map(([apiName, data]) => ({ apiName: apiName, ...data }));\n\n\n//# sourceURL=webpack://open-lens/./src/common/rbac.ts?");
31577
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiResourceRecord\": () => (/* binding */ apiResourceRecord),\n/* harmony export */ \"apiResources\": () => (/* binding */ apiResources)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nconst apiResourceRecord = {\n \"clusterroles\": { kind: \"ClusterRole\", group: \"rbac.authorization.k8s.io\" },\n \"clusterrolebindings\": { kind: \"ClusterRoleBinding\", group: \"rbac.authorization.k8s.io\" },\n \"configmaps\": { kind: \"ConfigMap\" },\n \"cronjobs\": { kind: \"CronJob\", group: \"batch\" },\n \"customresourcedefinitions\": { kind: \"CustomResourceDefinition\", group: \"apiextensions.k8s.io\" },\n \"daemonsets\": { kind: \"DaemonSet\", group: \"apps\" },\n \"deployments\": { kind: \"Deployment\", group: \"apps\" },\n \"endpoints\": { kind: \"Endpoint\" },\n \"events\": { kind: \"Event\" },\n \"horizontalpodautoscalers\": { kind: \"HorizontalPodAutoscaler\", group: \"autoscaling\" },\n \"ingresses\": { kind: \"Ingress\", group: \"networking.k8s.io\" },\n \"jobs\": { kind: \"Job\", group: \"batch\" },\n \"namespaces\": { kind: \"Namespace\" },\n \"limitranges\": { kind: \"LimitRange\" },\n \"networkpolicies\": { kind: \"NetworkPolicy\", group: \"networking.k8s.io\" },\n \"nodes\": { kind: \"Node\" },\n \"persistentvolumes\": { kind: \"PersistentVolume\" },\n \"persistentvolumeclaims\": { kind: \"PersistentVolumeClaim\" },\n \"pods\": { kind: \"Pod\" },\n \"poddisruptionbudgets\": { kind: \"PodDisruptionBudget\", group: \"policy\" },\n \"podsecuritypolicies\": { kind: \"PodSecurityPolicy\", group: \"policy\" },\n \"priorityclasses\": { kind: \"PriorityClass\", group: \"scheduling.k8s.io\" },\n \"runtimeclasses\": { kind: \"RuntimeClass\", group: \"node.k8s.io\" },\n \"resourcequotas\": { kind: \"ResourceQuota\" },\n \"replicasets\": { kind: \"ReplicaSet\", group: \"apps\" },\n \"roles\": { kind: \"Role\", group: \"rbac.authorization.k8s.io\" },\n \"rolebindings\": { kind: \"RoleBinding\", group: \"rbac.authorization.k8s.io\" },\n \"secrets\": { kind: \"Secret\" },\n \"serviceaccounts\": { kind: \"ServiceAccount\" },\n \"services\": { kind: \"Service\" },\n \"statefulsets\": { kind: \"StatefulSet\", group: \"apps\" },\n \"storageclasses\": { kind: \"StorageClass\", group: \"storage.k8s.io\" },\n};\n// TODO: auto-populate all resources dynamically (see: kubectl api-resources -o=wide -v=7)\nconst apiResources = Object.entries(apiResourceRecord)\n .map(([apiName, data]) => ({ apiName: apiName, ...data }));\n\n\n//# sourceURL=webpack://open-lens/./src/common/rbac.ts?");
31512
31578
 
31513
31579
  /***/ }),
31514
31580
 
@@ -31585,7 +31651,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31585
31651
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31586
31652
 
31587
31653
  "use strict";
31588
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"UserStore\": () => (/* binding */ UserStore)\n/* harmony export */ });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _base_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base-store */ \"./src/common/base-store.ts\");\n/* harmony import */ var _migrations_user_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../migrations/user-store */ \"./src/migrations/user-store/index.ts\");\n/* harmony import */ var _kube_helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _preferences_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./preferences-helpers */ \"./src/common/user-store/preferences-helpers.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\n\nclass UserStore extends _base_store__WEBPACK_IMPORTED_MODULE_1__.BaseStore /* implements UserStoreFlatModel (when strict null is enabled) */ {\n constructor(dependencies) {\n super({\n configName: \"lens-user-store\",\n migrations: _migrations_user_store__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n });\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"displayName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"UserStore\"\n });\n Object.defineProperty(this, \"lastSeenAppVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"0.0.0\"\n });\n /**\n * used in add-cluster page for providing context\n * @deprecated No longer used\n */\n Object.defineProperty(this, \"kubeConfigPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: _kube_helpers__WEBPACK_IMPORTED_MODULE_3__.kubeConfigDefaultPath\n });\n /**\n * @deprecated No longer used\n */\n Object.defineProperty(this, \"seenContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_7__.observable.set()\n });\n /**\n * @deprecated No longer used\n */\n Object.defineProperty(this, \"newContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_7__.observable.set()\n });\n Object.defineProperty(this, \"allowErrorReporting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowUntrustedCAs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"colorTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"localeTimezone\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadMirror\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"httpsProxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shell\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubectlBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalCopyOnSelect\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalConfig\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"extensionRegistryUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Download kubectl binaries matching cluster version\n */\n Object.defineProperty(this, \"downloadKubectlBinaries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Whether the application should open itself at login.\n */\n Object.defineProperty(this, \"openAtLogin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The column IDs under each configurable table ID that have been configured\n * to not be shown\n */\n Object.defineProperty(this, \"hiddenTableColumns\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Monaco editor configs\n */\n Object.defineProperty(this, \"editorConfiguration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The set of file/folder paths to be synced\n */\n Object.defineProperty(this, \"syncKubeconfigEntries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_7__.makeObservable)(this);\n }\n get resolvedShell() {\n return this.shell || process.env.SHELL || process.env.PTYSHELL;\n }\n startMainReactions() {\n // open at system start-up\n (0,mobx__WEBPACK_IMPORTED_MODULE_7__.reaction)(() => this.openAtLogin, openAtLogin => {\n electron__WEBPACK_IMPORTED_MODULE_0__.app.setLoginItemSettings({\n openAtLogin,\n openAsHidden: true,\n args: [\"--hidden\"],\n });\n }, {\n fireImmediately: true,\n });\n }\n /**\n * Checks if a column (by ID) for a table (by ID) is configured to be hidden\n * @param tableId The ID of the table to be checked against\n * @param columnIds The list of IDs the check if one is hidden\n * @returns true if at least one column under the table is set to hidden\n */\n isTableColumnHidden(tableId, ...columnIds) {\n if (columnIds.length === 0) {\n return false;\n }\n const config = this.hiddenTableColumns.get(tableId);\n if (!config) {\n return false;\n }\n return columnIds.some(columnId => columnId && config.has(columnId));\n }\n /**\n * Toggles the hidden configuration of a table's column\n */\n toggleTableColumnVisibility(tableId, columnId) {\n (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_4__.toggle)((0,_renderer_utils__WEBPACK_IMPORTED_MODULE_4__.getOrInsertSet)(this.hiddenTableColumns, tableId), columnId);\n }\n resetTheme() {\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_5__.DESCRIPTORS.colorTheme.fromStore(undefined);\n }\n fromStore({ lastSeenAppVersion, preferences } = {}) {\n var _a;\n _main_logger__WEBPACK_IMPORTED_MODULE_6__[\"default\"].debug(\"UserStore.fromStore()\", { lastSeenAppVersion, preferences });\n if (lastSeenAppVersion) {\n this.lastSeenAppVersion = lastSeenAppVersion;\n }\n for (const [key, { fromStore }] of _renderer_utils__WEBPACK_IMPORTED_MODULE_4__.object.entries(_preferences_helpers__WEBPACK_IMPORTED_MODULE_5__.DESCRIPTORS)) {\n const curVal = this[key];\n const newVal = fromStore((_a = (preferences)) === null || _a === void 0 ? void 0 : _a[key]);\n if ((0,mobx__WEBPACK_IMPORTED_MODULE_7__.isObservableArray)(curVal)) {\n curVal.replace(newVal);\n }\n else if ((0,mobx__WEBPACK_IMPORTED_MODULE_7__.isObservableSet)(curVal) || (0,mobx__WEBPACK_IMPORTED_MODULE_7__.isObservableMap)(curVal)) {\n curVal.replace(newVal);\n }\n else {\n this[key] = newVal;\n }\n }\n // TODO: Switch to action-based saving instead saving stores by reaction\n if (preferences === null || preferences === void 0 ? void 0 : preferences.updateChannel) {\n this.dependencies.selectedUpdateChannel.setValue(preferences === null || preferences === void 0 ? void 0 : preferences.updateChannel);\n }\n }\n toJSON() {\n const preferences = _renderer_utils__WEBPACK_IMPORTED_MODULE_4__.object.fromEntries(_renderer_utils__WEBPACK_IMPORTED_MODULE_4__.object.entries(_preferences_helpers__WEBPACK_IMPORTED_MODULE_5__.DESCRIPTORS)\n .map(([key, { toStore }]) => [key, toStore(this[key])]));\n return (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_4__.toJS)({\n lastSeenAppVersion: this.lastSeenAppVersion,\n preferences: {\n ...preferences,\n updateChannel: this.dependencies.selectedUpdateChannel.value.get().id,\n },\n });\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"lastSeenAppVersion\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubeConfigPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"seenContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"newContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"allowErrorReporting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"allowUntrustedCAs\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"colorTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"localeTimezone\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"downloadMirror\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"httpsProxy\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"shell\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"downloadBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubectlBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalCopyOnSelect\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalConfig\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"extensionRegistryUrl\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"downloadKubectlBinaries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"openAtLogin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"hiddenTableColumns\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"editorConfiguration\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"syncKubeconfigEntries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"resolvedShell\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"resetTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_7__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"fromStore\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/user-store/user-store.ts?");
31654
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"UserStore\": () => (/* binding */ UserStore)\n/* harmony export */ });\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! electron */ \"electron\");\n/* harmony import */ var electron__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(electron__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _base_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../base-store */ \"./src/common/base-store.ts\");\n/* harmony import */ var _migrations_user_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../migrations/user-store */ \"./src/migrations/user-store/index.ts\");\n/* harmony import */ var _renderer_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../renderer/utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _preferences_helpers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./preferences-helpers */ \"./src/common/user-store/preferences-helpers.ts\");\n/* harmony import */ var _main_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../main/logger */ \"./src/main/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\n\n\n\nclass UserStore extends _base_store__WEBPACK_IMPORTED_MODULE_1__.BaseStore /* implements UserStoreFlatModel (when strict null is enabled) */ {\n constructor(dependencies) {\n super({\n configName: \"lens-user-store\",\n migrations: _migrations_user_store__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n });\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n Object.defineProperty(this, \"displayName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"UserStore\"\n });\n Object.defineProperty(this, \"lastSeenAppVersion\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: \"0.0.0\"\n });\n /**\n * @deprecated No longer used\n */\n Object.defineProperty(this, \"seenContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_6__.observable.set()\n });\n /**\n * @deprecated No longer used\n */\n Object.defineProperty(this, \"newContexts\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: mobx__WEBPACK_IMPORTED_MODULE_6__.observable.set()\n });\n Object.defineProperty(this, \"allowErrorReporting\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"allowUntrustedCAs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"colorTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalTheme\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"localeTimezone\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadMirror\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"httpsProxy\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shell\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"downloadBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"kubectlBinariesPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalCopyOnSelect\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"terminalConfig\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"extensionRegistryUrl\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Download kubectl binaries matching cluster version\n */\n Object.defineProperty(this, \"downloadKubectlBinaries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Whether the application should open itself at login.\n */\n Object.defineProperty(this, \"openAtLogin\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The column IDs under each configurable table ID that have been configured\n * to not be shown\n */\n Object.defineProperty(this, \"hiddenTableColumns\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * Monaco editor configs\n */\n Object.defineProperty(this, \"editorConfiguration\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n /**\n * The set of file/folder paths to be synced\n */\n Object.defineProperty(this, \"syncKubeconfigEntries\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_6__.makeObservable)(this);\n }\n get resolvedShell() {\n return this.shell || process.env.SHELL || process.env.PTYSHELL;\n }\n startMainReactions() {\n // open at system start-up\n (0,mobx__WEBPACK_IMPORTED_MODULE_6__.reaction)(() => this.openAtLogin, openAtLogin => {\n electron__WEBPACK_IMPORTED_MODULE_0__.app.setLoginItemSettings({\n openAtLogin,\n openAsHidden: true,\n args: [\"--hidden\"],\n });\n }, {\n fireImmediately: true,\n });\n }\n /**\n * Checks if a column (by ID) for a table (by ID) is configured to be hidden\n * @param tableId The ID of the table to be checked against\n * @param columnIds The list of IDs the check if one is hidden\n * @returns true if at least one column under the table is set to hidden\n */\n isTableColumnHidden(tableId, ...columnIds) {\n if (columnIds.length === 0) {\n return false;\n }\n const config = this.hiddenTableColumns.get(tableId);\n if (!config) {\n return false;\n }\n return columnIds.some(columnId => columnId && config.has(columnId));\n }\n /**\n * Toggles the hidden configuration of a table's column\n */\n toggleTableColumnVisibility(tableId, columnId) {\n (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_3__.toggle)((0,_renderer_utils__WEBPACK_IMPORTED_MODULE_3__.getOrInsertSet)(this.hiddenTableColumns, tableId), columnId);\n }\n resetTheme() {\n this.colorTheme = _preferences_helpers__WEBPACK_IMPORTED_MODULE_4__.DESCRIPTORS.colorTheme.fromStore(undefined);\n }\n fromStore({ lastSeenAppVersion, preferences } = {}) {\n var _a;\n _main_logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].debug(\"UserStore.fromStore()\", { lastSeenAppVersion, preferences });\n if (lastSeenAppVersion) {\n this.lastSeenAppVersion = lastSeenAppVersion;\n }\n for (const [key, { fromStore }] of _renderer_utils__WEBPACK_IMPORTED_MODULE_3__.object.entries(_preferences_helpers__WEBPACK_IMPORTED_MODULE_4__.DESCRIPTORS)) {\n const curVal = this[key];\n const newVal = fromStore((_a = (preferences)) === null || _a === void 0 ? void 0 : _a[key]);\n if ((0,mobx__WEBPACK_IMPORTED_MODULE_6__.isObservableArray)(curVal)) {\n curVal.replace(newVal);\n }\n else if ((0,mobx__WEBPACK_IMPORTED_MODULE_6__.isObservableSet)(curVal) || (0,mobx__WEBPACK_IMPORTED_MODULE_6__.isObservableMap)(curVal)) {\n curVal.replace(newVal);\n }\n else {\n this[key] = newVal;\n }\n }\n // TODO: Switch to action-based saving instead saving stores by reaction\n if (preferences === null || preferences === void 0 ? void 0 : preferences.updateChannel) {\n this.dependencies.selectedUpdateChannel.setValue(preferences === null || preferences === void 0 ? void 0 : preferences.updateChannel);\n }\n }\n toJSON() {\n const preferences = _renderer_utils__WEBPACK_IMPORTED_MODULE_3__.object.fromEntries(_renderer_utils__WEBPACK_IMPORTED_MODULE_3__.object.entries(_preferences_helpers__WEBPACK_IMPORTED_MODULE_4__.DESCRIPTORS)\n .map(([key, { toStore }]) => [key, toStore(this[key])]));\n return (0,_renderer_utils__WEBPACK_IMPORTED_MODULE_3__.toJS)({\n lastSeenAppVersion: this.lastSeenAppVersion,\n preferences: {\n ...preferences,\n updateChannel: this.dependencies.selectedUpdateChannel.value.get().id,\n },\n });\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"lastSeenAppVersion\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"seenContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"newContexts\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"allowErrorReporting\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"allowUntrustedCAs\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"colorTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalTheme\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"localeTimezone\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"downloadMirror\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"httpsProxy\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"shell\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"downloadBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"kubectlBinariesPath\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalCopyOnSelect\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"terminalConfig\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"extensionRegistryUrl\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"downloadKubectlBinaries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"openAtLogin\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"hiddenTableColumns\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"editorConfiguration\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.observable,\n __metadata(\"design:type\", Object)\n], UserStore.prototype, \"syncKubeconfigEntries\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.computed,\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n], UserStore.prototype, \"resolvedShell\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"resetTheme\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_6__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], UserStore.prototype, \"fromStore\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/common/user-store/user-store.ts?");
31589
31655
 
31590
31656
  /***/ }),
31591
31657
 
@@ -31651,7 +31717,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31651
31717
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31652
31718
 
31653
31719
  "use strict";
31654
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"buildURL\": () => (/* binding */ buildURL),\n/* harmony export */ \"buildURLPositional\": () => (/* binding */ buildURLPositional)\n/* harmony export */ });\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/path-to-regexp/dist.es2015/index.js\");\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nfunction buildURL(path, { params, query, fragment } = {}) {\n const pathBuilder = (0,path_to_regexp__WEBPACK_IMPORTED_MODULE_1__.compile)(String(path));\n const queryParams = query ? new URLSearchParams(Object.entries(query)).toString() : \"\";\n const parts = [\n pathBuilder(params),\n queryParams && `?${queryParams}`,\n fragment && `#${fragment}`,\n ];\n return parts.filter(_type_narrowing__WEBPACK_IMPORTED_MODULE_0__.isDefined).join(\"\");\n}\nfunction buildURLPositional(path) {\n return function (params, query, fragment) {\n return buildURL(path, { params, query, fragment });\n };\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/buildUrl.ts?");
31720
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"buildURL\": () => (/* binding */ buildURL),\n/* harmony export */ \"buildURLPositional\": () => (/* binding */ buildURLPositional),\n/* harmony export */ \"urlBuilderFor\": () => (/* binding */ urlBuilderFor)\n/* harmony export */ });\n/* harmony import */ var path_to_regexp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path-to-regexp */ \"./node_modules/path-to-regexp/dist.es2015/index.js\");\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nfunction buildURL(path, { params, query, fragment } = {}) {\n const pathBuilder = (0,path_to_regexp__WEBPACK_IMPORTED_MODULE_1__.compile)(String(path));\n const queryParams = query ? new URLSearchParams(Object.entries(query)).toString() : \"\";\n const parts = [\n pathBuilder(params),\n queryParams && `?${queryParams}`,\n fragment && `#${fragment}`,\n ];\n return parts.filter(_type_narrowing__WEBPACK_IMPORTED_MODULE_0__.isDefined).join(\"\");\n}\nfunction buildURLPositional(path) {\n return function (params, query, fragment) {\n return buildURL(path, { params, query, fragment });\n };\n}\nfunction urlBuilderFor(pathname) {\n return {\n compile: buildURLPositional(pathname),\n };\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/buildUrl.ts?");
31655
31721
 
31656
31722
  /***/ }),
31657
31723
 
@@ -31827,7 +31893,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31827
31893
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31828
31894
 
31829
31895
  "use strict";
31830
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_15__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_15__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_23__.Singleton),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _abort_controller__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport module object */ _array__WEBPACK_IMPORTED_MODULE_33__),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _autobind__WEBPACK_IMPORTED_MODULE_2__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport module object */ _base64__WEBPACK_IMPORTED_MODULE_35__),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_25__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_7__.bytesToUnits),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _convertCpu__WEBPACK_IMPORTED_MODULE_6__.cpuUnitsToNumber),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _debouncePromise__WEBPACK_IMPORTED_MODULE_8__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay__WEBPACK_IMPORTED_MODULE_9__.delay),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _disposer__WEBPACK_IMPORTED_MODULE_10__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_11__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_11__.downloadJson),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _escapeRegExp__WEBPACK_IMPORTED_MODULE_12__.escapeRegExp),\n/* harmony export */ \"extractTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.extractTar),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _formatDuration__WEBPACK_IMPORTED_MODULE_13__.formatDuration),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getAppVersionFromProxyServer),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_4__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_4__.getClusterIdFromHost),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertWithAsync),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _getRandId__WEBPACK_IMPORTED_MODULE_14__.getRandId),\n/* harmony export */ \"hasDefinedTupleValue\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasDefinedTupleValue),\n/* harmony export */ \"hasDefiniteField\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasDefiniteField),\n/* harmony export */ \"hasOptionalTypedProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOptionalTypedProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.hasTypedProperty),\n/* harmony export */ \"includes\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.includes),\n/* harmony export */ \"isBoolean\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isBoolean),\n/* harmony export */ \"isBuffer\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isBuffer),\n/* harmony export */ \"isChildProcessError\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isChildProcessError),\n/* harmony export */ \"isDefined\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isDefined),\n/* harmony export */ \"isErrnoException\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isErrnoException),\n/* harmony export */ \"isExecException\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isExecException),\n/* harmony export */ \"isExecFileException\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isExecFileException),\n/* harmony export */ \"isLogicalChildPath\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_19__.isLogicalChildPath),\n/* harmony export */ \"isNumber\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isNumber),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isObject),\n/* harmony export */ \"isPromiseSettledFulfilled\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isPromiseSettledFulfilled),\n/* harmony export */ \"isPromiseSettledRejected\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isPromiseSettledRejected),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isRecord),\n/* harmony export */ \"isRequestError\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isRequestError),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_28__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport module object */ _iter__WEBPACK_IMPORTED_MODULE_32__),\n/* harmony export */ \"json\": () => (/* reexport module object */ _json__WEBPACK_IMPORTED_MODULE_37__),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_15__.makeIterableIterator),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _n_fircate__WEBPACK_IMPORTED_MODULE_16__.nFircate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _noop__WEBPACK_IMPORTED_MODULE_17__.noop),\n/* harmony export */ \"object\": () => (/* reexport module object */ _objects__WEBPACK_IMPORTED_MODULE_36__),\n/* harmony export */ \"observableCrate\": () => (/* reexport safe */ _observable_crate_impl__WEBPACK_IMPORTED_MODULE_18__.observableCrate),\n/* harmony export */ \"onceDefined\": () => (/* reexport safe */ _wait__WEBPACK_IMPORTED_MODULE_31__.onceDefined),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _promise_exec__WEBPACK_IMPORTED_MODULE_20__.promiseExecFile),\n/* harmony export */ \"put\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.put),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_26__.readFileFromTar),\n/* harmony export */ \"readonly\": () => (/* reexport safe */ _readonly__WEBPACK_IMPORTED_MODULE_21__.readonly),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _reject_promise__WEBPACK_IMPORTED_MODULE_22__.rejectPromiseBy),\n/* harmony export */ \"resolvePath\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_19__.resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* reexport safe */ _paths__WEBPACK_IMPORTED_MODULE_19__.resolveTilde),\n/* harmony export */ \"sortCharts\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_24__.sortCompareChartVersions),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_25__.splitArray),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _camelCase__WEBPACK_IMPORTED_MODULE_3__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _toJS__WEBPACK_IMPORTED_MODULE_27__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport module object */ _tuple__WEBPACK_IMPORTED_MODULE_34__),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_7__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _wait_for_path__WEBPACK_IMPORTED_MODULE_30__.waitForPath),\n/* harmony export */ \"waitUntilDefined\": () => (/* reexport safe */ _wait__WEBPACK_IMPORTED_MODULE_31__.waitUntilDefined)\n/* harmony export */ });\n/* harmony import */ var _abort_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort-controller */ \"./src/common/utils/abort-controller.ts\");\n/* harmony import */ var _app_version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _autobind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autobind */ \"./src/common/utils/autobind.ts\");\n/* harmony import */ var _camelCase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camelCase */ \"./src/common/utils/camelCase.ts\");\n/* harmony import */ var _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/* harmony import */ var _collection_functions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./collection-functions */ \"./src/common/utils/collection-functions.ts\");\n/* harmony import */ var _convertCpu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./convertCpu */ \"./src/common/utils/convertCpu.ts\");\n/* harmony import */ var _convertMemory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convertMemory */ \"./src/common/utils/convertMemory.ts\");\n/* harmony import */ var _debouncePromise__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./debouncePromise */ \"./src/common/utils/debouncePromise.ts\");\n/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./delay */ \"./src/common/utils/delay.ts\");\n/* harmony import */ var _disposer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./disposer */ \"./src/common/utils/disposer.ts\");\n/* harmony import */ var _downloadFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./downloadFile */ \"./src/common/utils/downloadFile.ts\");\n/* harmony import */ var _escapeRegExp__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./escapeRegExp */ \"./src/common/utils/escapeRegExp.ts\");\n/* harmony import */ var _formatDuration__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./formatDuration */ \"./src/common/utils/formatDuration.ts\");\n/* harmony import */ var _getRandId__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./getRandId */ \"./src/common/utils/getRandId.ts\");\n/* harmony import */ var _hash_set__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hash-set */ \"./src/common/utils/hash-set.ts\");\n/* harmony import */ var _n_fircate__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./n-fircate */ \"./src/common/utils/n-fircate.ts\");\n/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./noop */ \"./src/common/utils/noop.ts\");\n/* harmony import */ var _observable_crate_impl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./observable-crate/impl */ \"./src/common/utils/observable-crate/impl.ts\");\n/* harmony import */ var _paths__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./paths */ \"./src/common/utils/paths.ts\");\n/* harmony import */ var _promise_exec__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/* harmony import */ var _readonly__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./readonly */ \"./src/common/utils/readonly.ts\");\n/* harmony import */ var _reject_promise__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./reject-promise */ \"./src/common/utils/reject-promise.ts\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./singleton */ \"./src/common/utils/singleton.ts\");\n/* harmony import */ var _sort_compare__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./sort-compare */ \"./src/common/utils/sort-compare.ts\");\n/* harmony import */ var _splitArray__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./splitArray */ \"./src/common/utils/splitArray.ts\");\n/* harmony import */ var _tar__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./tar */ \"./src/common/utils/tar.ts\");\n/* harmony import */ var _toJS__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./toJS */ \"./src/common/utils/toJS.ts\");\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./types */ \"./src/common/utils/types.ts\");\n/* harmony import */ var _wait_for_path__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./wait-for-path */ \"./src/common/utils/wait-for-path.ts\");\n/* harmony import */ var _wait__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./wait */ \"./src/common/utils/wait.ts\");\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./array */ \"./src/common/utils/array.ts\");\n/* harmony import */ var _tuple__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./tuple */ \"./src/common/utils/tuple.ts\");\n/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./base64 */ \"./src/common/utils/base64.ts\");\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./objects */ \"./src/common/utils/objects.ts\");\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./json */ \"./src/common/utils/json.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/index.ts?");
31896
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_15__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_15__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_23__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _singleton__WEBPACK_IMPORTED_MODULE_22__.Singleton),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _abort_controller__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport module object */ _array__WEBPACK_IMPORTED_MODULE_32__),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _autobind__WEBPACK_IMPORTED_MODULE_2__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport module object */ _base64__WEBPACK_IMPORTED_MODULE_34__),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_24__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_7__.bytesToUnits),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _convertCpu__WEBPACK_IMPORTED_MODULE_6__.cpuUnitsToNumber),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _debouncePromise__WEBPACK_IMPORTED_MODULE_8__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _delay__WEBPACK_IMPORTED_MODULE_9__.delay),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _disposer__WEBPACK_IMPORTED_MODULE_10__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_11__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _downloadFile__WEBPACK_IMPORTED_MODULE_11__.downloadJson),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _escapeRegExp__WEBPACK_IMPORTED_MODULE_12__.escapeRegExp),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _formatDuration__WEBPACK_IMPORTED_MODULE_13__.formatDuration),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _app_version__WEBPACK_IMPORTED_MODULE_1__.getAppVersionFromProxyServer),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_4__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_4__.getClusterIdFromHost),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.getOrInsertWithAsync),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _getRandId__WEBPACK_IMPORTED_MODULE_14__.getRandId),\n/* harmony export */ \"hasDefinedTupleValue\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.hasDefinedTupleValue),\n/* harmony export */ \"hasDefiniteField\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.hasDefiniteField),\n/* harmony export */ \"hasOptionalTypedProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.hasOptionalTypedProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.hasTypedProperty),\n/* harmony export */ \"includes\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.includes),\n/* harmony export */ \"isBoolean\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isBoolean),\n/* harmony export */ \"isBuffer\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isBuffer),\n/* harmony export */ \"isChildProcessError\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isChildProcessError),\n/* harmony export */ \"isDefined\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isDefined),\n/* harmony export */ \"isErrnoException\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isErrnoException),\n/* harmony export */ \"isExecException\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isExecException),\n/* harmony export */ \"isExecFileException\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isExecFileException),\n/* harmony export */ \"isNumber\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isNumber),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isObject),\n/* harmony export */ \"isPromiseSettledFulfilled\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isPromiseSettledFulfilled),\n/* harmony export */ \"isPromiseSettledRejected\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isPromiseSettledRejected),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isRecord),\n/* harmony export */ \"isRequestError\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isRequestError),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _type_narrowing__WEBPACK_IMPORTED_MODULE_27__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport module object */ _iter__WEBPACK_IMPORTED_MODULE_31__),\n/* harmony export */ \"json\": () => (/* reexport module object */ _json__WEBPACK_IMPORTED_MODULE_36__),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_25__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _hash_set__WEBPACK_IMPORTED_MODULE_15__.makeIterableIterator),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _n_fircate__WEBPACK_IMPORTED_MODULE_16__.nFircate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _noop__WEBPACK_IMPORTED_MODULE_17__.noop),\n/* harmony export */ \"object\": () => (/* reexport module object */ _objects__WEBPACK_IMPORTED_MODULE_35__),\n/* harmony export */ \"observableCrate\": () => (/* reexport safe */ _observable_crate_impl__WEBPACK_IMPORTED_MODULE_18__.observableCrate),\n/* harmony export */ \"onceDefined\": () => (/* reexport safe */ _wait__WEBPACK_IMPORTED_MODULE_30__.onceDefined),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _promise_exec__WEBPACK_IMPORTED_MODULE_19__.promiseExecFile),\n/* harmony export */ \"put\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.put),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _tar__WEBPACK_IMPORTED_MODULE_25__.readFileFromTar),\n/* harmony export */ \"readonly\": () => (/* reexport safe */ _readonly__WEBPACK_IMPORTED_MODULE_20__.readonly),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_23__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _reject_promise__WEBPACK_IMPORTED_MODULE_21__.rejectPromiseBy),\n/* harmony export */ \"sortBySemverVersion\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_23__.sortBySemverVersion),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _sort_compare__WEBPACK_IMPORTED_MODULE_23__.sortCompare),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _splitArray__WEBPACK_IMPORTED_MODULE_24__.splitArray),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _camelCase__WEBPACK_IMPORTED_MODULE_3__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _toJS__WEBPACK_IMPORTED_MODULE_26__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _collection_functions__WEBPACK_IMPORTED_MODULE_5__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport module object */ _tuple__WEBPACK_IMPORTED_MODULE_33__),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _convertMemory__WEBPACK_IMPORTED_MODULE_7__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _wait_for_path__WEBPACK_IMPORTED_MODULE_29__.waitForPath),\n/* harmony export */ \"waitUntilDefined\": () => (/* reexport safe */ _wait__WEBPACK_IMPORTED_MODULE_30__.waitUntilDefined)\n/* harmony export */ });\n/* harmony import */ var _abort_controller__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./abort-controller */ \"./src/common/utils/abort-controller.ts\");\n/* harmony import */ var _app_version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-version */ \"./src/common/utils/app-version.ts\");\n/* harmony import */ var _autobind__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./autobind */ \"./src/common/utils/autobind.ts\");\n/* harmony import */ var _camelCase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./camelCase */ \"./src/common/utils/camelCase.ts\");\n/* harmony import */ var _cluster_id_url_parsing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./cluster-id-url-parsing */ \"./src/common/utils/cluster-id-url-parsing.ts\");\n/* harmony import */ var _collection_functions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./collection-functions */ \"./src/common/utils/collection-functions.ts\");\n/* harmony import */ var _convertCpu__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./convertCpu */ \"./src/common/utils/convertCpu.ts\");\n/* harmony import */ var _convertMemory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convertMemory */ \"./src/common/utils/convertMemory.ts\");\n/* harmony import */ var _debouncePromise__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./debouncePromise */ \"./src/common/utils/debouncePromise.ts\");\n/* harmony import */ var _delay__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./delay */ \"./src/common/utils/delay.ts\");\n/* harmony import */ var _disposer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./disposer */ \"./src/common/utils/disposer.ts\");\n/* harmony import */ var _downloadFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./downloadFile */ \"./src/common/utils/downloadFile.ts\");\n/* harmony import */ var _escapeRegExp__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./escapeRegExp */ \"./src/common/utils/escapeRegExp.ts\");\n/* harmony import */ var _formatDuration__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./formatDuration */ \"./src/common/utils/formatDuration.ts\");\n/* harmony import */ var _getRandId__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./getRandId */ \"./src/common/utils/getRandId.ts\");\n/* harmony import */ var _hash_set__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hash-set */ \"./src/common/utils/hash-set.ts\");\n/* harmony import */ var _n_fircate__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./n-fircate */ \"./src/common/utils/n-fircate.ts\");\n/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./noop */ \"./src/common/utils/noop.ts\");\n/* harmony import */ var _observable_crate_impl__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./observable-crate/impl */ \"./src/common/utils/observable-crate/impl.ts\");\n/* harmony import */ var _promise_exec__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/* harmony import */ var _readonly__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./readonly */ \"./src/common/utils/readonly.ts\");\n/* harmony import */ var _reject_promise__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./reject-promise */ \"./src/common/utils/reject-promise.ts\");\n/* harmony import */ var _singleton__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./singleton */ \"./src/common/utils/singleton.ts\");\n/* harmony import */ var _sort_compare__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./sort-compare */ \"./src/common/utils/sort-compare.ts\");\n/* harmony import */ var _splitArray__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./splitArray */ \"./src/common/utils/splitArray.ts\");\n/* harmony import */ var _tar__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./tar */ \"./src/common/utils/tar.ts\");\n/* harmony import */ var _toJS__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./toJS */ \"./src/common/utils/toJS.ts\");\n/* harmony import */ var _type_narrowing__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./type-narrowing */ \"./src/common/utils/type-narrowing.ts\");\n/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./types */ \"./src/common/utils/types.ts\");\n/* harmony import */ var _wait_for_path__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./wait-for-path */ \"./src/common/utils/wait-for-path.ts\");\n/* harmony import */ var _wait__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./wait */ \"./src/common/utils/wait.ts\");\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./array */ \"./src/common/utils/array.ts\");\n/* harmony import */ var _tuple__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./tuple */ \"./src/common/utils/tuple.ts\");\n/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./base64 */ \"./src/common/utils/base64.ts\");\n/* harmony import */ var _objects__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./objects */ \"./src/common/utils/objects.ts\");\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./json */ \"./src/common/utils/json.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/index.ts?");
31831
31897
 
31832
31898
  /***/ }),
31833
31899
 
@@ -31849,7 +31915,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31849
31915
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31850
31916
 
31851
31917
  "use strict";
31852
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"every\": () => (/* binding */ every),\n/* harmony export */ \"filter\": () => (/* binding */ filter),\n/* harmony export */ \"filterFlatMap\": () => (/* binding */ filterFlatMap),\n/* harmony export */ \"filterMap\": () => (/* binding */ filterMap),\n/* harmony export */ \"filterMapStrict\": () => (/* binding */ filterMapStrict),\n/* harmony export */ \"find\": () => (/* binding */ find),\n/* harmony export */ \"first\": () => (/* binding */ first),\n/* harmony export */ \"flatMap\": () => (/* binding */ flatMap),\n/* harmony export */ \"join\": () => (/* binding */ join),\n/* harmony export */ \"map\": () => (/* binding */ map),\n/* harmony export */ \"newEmpty\": () => (/* binding */ newEmpty),\n/* harmony export */ \"nth\": () => (/* binding */ nth),\n/* harmony export */ \"pipeline\": () => (/* binding */ pipeline),\n/* harmony export */ \"reduce\": () => (/* binding */ reduce),\n/* harmony export */ \"take\": () => (/* binding */ take)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nfunction pipeline(src) {\n return {\n filter: (fn) => pipeline(filter(src, fn)),\n filterMap: (fn) => pipeline(filterMap(src, fn)),\n map: (fn) => pipeline(map(src, fn)),\n find: (fn) => find(src, fn),\n join: (sep) => join(src, sep),\n collect: (fn) => fn(src),\n };\n}\n/**\n * Create a new type safe empty Iterable\n * @returns An `Iterable` that yields 0 items\n */\nfunction* newEmpty() { }\n/**\n * Creates a new `Iterable` that yields at most n items from src.\n * Does not modify `src` which can be used later.\n * @param src An initial iterator\n * @param n The maximum number of elements to take from src. Yields up to the floor of `n` and 0 items if n < 0\n */\nfunction* take(src, n) {\n outer: for (let i = 0; i < n; i += 1) {\n for (const item of src) {\n yield item;\n continue outer;\n }\n // if we are here that means that `src` has been exhausted. Don't bother trying again.\n break outer;\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * result of `fn` for each item.\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* map(src, fn) {\n for (const from of src) {\n yield fn(from);\n }\n}\n/**\n * The single layer flattening of an iterator, discarding `Falsey` values.\n * @param src A type that can be iterated over\n * @param fn The function that returns either an iterable over items that should be filtered out or a `Falsey` value indicating that it should be ignored\n */\nfunction* filterFlatMap(src, fn) {\n for (const from of src) {\n if (!from) {\n continue;\n }\n const mapping = fn(from);\n if (!mapping) {\n continue;\n }\n for (const mapped of mapping) {\n if (mapped) {\n yield mapped;\n }\n }\n }\n}\n/**\n * Returns a new iterator that yields the items that each call to `fn` would produce\n * @param src A type that can be iterated over\n * @param fn A function that returns an iterator\n */\nfunction* flatMap(src, fn) {\n for (const from of src) {\n yield* fn(from);\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * items that return a `truthy` value from `fn`.\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* filter(src, fn) {\n for (const from of src) {\n if (fn(from)) {\n yield from;\n }\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * result of `fn` when it is `truthy`\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* filterMap(src, fn) {\n for (const from of src) {\n const res = fn(from);\n if (res) {\n yield res;\n }\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * result of `fn` when it is not null or undefined\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* filterMapStrict(src, fn) {\n for (const from of src) {\n const res = fn(from);\n if (res != null) {\n yield res;\n }\n }\n}\n/**\n * Iterate through `src` until `match` returns a truthy value\n * @param src A type that can be iterated over\n * @param match A function that should return a truthy value for the item that you want to find\n * @returns The first entry that `match` returns a truthy value for, or `undefined`\n */\nfunction find(src, match) {\n for (const from of src) {\n if (match(from)) {\n return from;\n }\n }\n return void 0;\n}\nfunction reduce(src, reducer, initial) {\n let acc = initial;\n for (const item of src) {\n acc = reducer(acc, item);\n }\n return acc;\n}\n/**\n * A convenience function for reducing over an iterator of strings and concatenating them together\n * @param src The value to iterate over\n * @param connector The string value to intersperse between the yielded values\n * @returns The concatenated entries of `src` interspersed with copies of `connector`\n */\nfunction join(src, connector = \",\") {\n const iterSrc = src[Symbol.iterator]();\n const first = iterSrc.next();\n if (first.done === true) {\n return \"\";\n }\n return reduce(iterSrc, (acc, cur) => `${acc}${connector}${cur}`, `${first.value}`);\n}\n/**\n * Iterate `n` times and then return the next value.\n * @param src The value to iterate over\n * @param n The zero-index value for the item to return to.\n */\nfunction nth(src, n) {\n const iterator = src[Symbol.iterator]();\n while (n-- > 0) {\n iterator.next();\n }\n return iterator.next().value;\n}\n/**\n * A convenience function to get the first item of an iterator\n * @param src The value to iterate over\n */\nfunction first(src) {\n return nth(src, 0);\n}\n/**\n * Iterate through `src` and return `true` if `fn` returns a thruthy value for every yielded value.\n * Otherwise, return `false`. This function short circuits.\n * @param src The type to be iterated over\n * @param fn A function to check each iteration\n */\nfunction every(src, fn) {\n for (const val of src) {\n if (!fn(val)) {\n return false;\n }\n }\n return true;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/iter.ts?");
31918
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"every\": () => (/* binding */ every),\n/* harmony export */ \"filter\": () => (/* binding */ filter),\n/* harmony export */ \"filterFlatMap\": () => (/* binding */ filterFlatMap),\n/* harmony export */ \"filterMap\": () => (/* binding */ filterMap),\n/* harmony export */ \"filterMapStrict\": () => (/* binding */ filterMapStrict),\n/* harmony export */ \"find\": () => (/* binding */ find),\n/* harmony export */ \"first\": () => (/* binding */ first),\n/* harmony export */ \"flatMap\": () => (/* binding */ flatMap),\n/* harmony export */ \"join\": () => (/* binding */ join),\n/* harmony export */ \"map\": () => (/* binding */ map),\n/* harmony export */ \"newEmpty\": () => (/* binding */ newEmpty),\n/* harmony export */ \"nth\": () => (/* binding */ nth),\n/* harmony export */ \"pipeline\": () => (/* binding */ pipeline),\n/* harmony export */ \"reduce\": () => (/* binding */ reduce),\n/* harmony export */ \"take\": () => (/* binding */ take)\n/* harmony export */ });\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nfunction pipeline(src) {\n return {\n filter: (fn) => pipeline(filter(src, fn)),\n filterMap: (fn) => pipeline(filterMap(src, fn)),\n map: (fn) => pipeline(map(src, fn)),\n flatMap: (fn) => pipeline(flatMap(src, fn)),\n find: (fn) => find(src, fn),\n join: (sep) => join(src, sep),\n collect: (fn) => fn(src),\n };\n}\n/**\n * Create a new type safe empty Iterable\n * @returns An `Iterable` that yields 0 items\n */\nfunction* newEmpty() { }\n/**\n * Creates a new `Iterable` that yields at most n items from src.\n * Does not modify `src` which can be used later.\n * @param src An initial iterator\n * @param n The maximum number of elements to take from src. Yields up to the floor of `n` and 0 items if n < 0\n */\nfunction* take(src, n) {\n outer: for (let i = 0; i < n; i += 1) {\n for (const item of src) {\n yield item;\n continue outer;\n }\n // if we are here that means that `src` has been exhausted. Don't bother trying again.\n break outer;\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * result of `fn` for each item.\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* map(src, fn) {\n for (const from of src) {\n yield fn(from);\n }\n}\n/**\n * The single layer flattening of an iterator, discarding `Falsey` values.\n * @param src A type that can be iterated over\n * @param fn The function that returns either an iterable over items that should be filtered out or a `Falsey` value indicating that it should be ignored\n */\nfunction* filterFlatMap(src, fn) {\n for (const from of src) {\n if (!from) {\n continue;\n }\n const mapping = fn(from);\n if (!mapping) {\n continue;\n }\n for (const mapped of mapping) {\n if (mapped) {\n yield mapped;\n }\n }\n }\n}\n/**\n * Returns a new iterator that yields the items that each call to `fn` would produce\n * @param src A type that can be iterated over\n * @param fn A function that returns an iterator\n */\nfunction* flatMap(src, fn) {\n for (const from of src) {\n yield* fn(from);\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * items that return a `truthy` value from `fn`.\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* filter(src, fn) {\n for (const from of src) {\n if (fn(from)) {\n yield from;\n }\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * result of `fn` when it is `truthy`\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* filterMap(src, fn) {\n for (const from of src) {\n const res = fn(from);\n if (res) {\n yield res;\n }\n }\n}\n/**\n * Creates a new iterator that iterates (lazily) over its input and yields the\n * result of `fn` when it is not null or undefined\n * @param src A type that can be iterated over\n * @param fn The function that is called for each value\n */\nfunction* filterMapStrict(src, fn) {\n for (const from of src) {\n const res = fn(from);\n if (res != null) {\n yield res;\n }\n }\n}\n/**\n * Iterate through `src` until `match` returns a truthy value\n * @param src A type that can be iterated over\n * @param match A function that should return a truthy value for the item that you want to find\n * @returns The first entry that `match` returns a truthy value for, or `undefined`\n */\nfunction find(src, match) {\n for (const from of src) {\n if (match(from)) {\n return from;\n }\n }\n return void 0;\n}\nfunction reduce(src, reducer, initial) {\n let acc = initial;\n for (const item of src) {\n acc = reducer(acc, item);\n }\n return acc;\n}\n/**\n * A convenience function for reducing over an iterator of strings and concatenating them together\n * @param src The value to iterate over\n * @param connector The string value to intersperse between the yielded values\n * @returns The concatenated entries of `src` interspersed with copies of `connector`\n */\nfunction join(src, connector = \",\") {\n const iterSrc = src[Symbol.iterator]();\n const first = iterSrc.next();\n if (first.done === true) {\n return \"\";\n }\n return reduce(iterSrc, (acc, cur) => `${acc}${connector}${cur}`, `${first.value}`);\n}\n/**\n * Iterate `n` times and then return the next value.\n * @param src The value to iterate over\n * @param n The zero-index value for the item to return to.\n */\nfunction nth(src, n) {\n const iterator = src[Symbol.iterator]();\n while (n-- > 0) {\n iterator.next();\n }\n return iterator.next().value;\n}\n/**\n * A convenience function to get the first item of an iterator\n * @param src The value to iterate over\n */\nfunction first(src) {\n return nth(src, 0);\n}\n/**\n * Iterate through `src` and return `true` if `fn` returns a thruthy value for every yielded value.\n * Otherwise, return `false`. This function short circuits.\n * @param src The type to be iterated over\n * @param fn A function to check each iteration\n */\nfunction every(src, fn) {\n for (const val of src) {\n if (!fn(val)) {\n return false;\n }\n }\n return true;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/iter.ts?");
31853
31919
 
31854
31920
  /***/ }),
31855
31921
 
@@ -31930,17 +31996,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
31930
31996
 
31931
31997
  /***/ }),
31932
31998
 
31933
- /***/ "./src/common/utils/paths.ts":
31934
- /*!***********************************!*\
31935
- !*** ./src/common/utils/paths.ts ***!
31936
- \***********************************/
31937
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
31938
-
31939
- "use strict";
31940
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isLogicalChildPath\": () => (/* binding */ isLogicalChildPath),\n/* harmony export */ \"resolvePath\": () => (/* binding */ resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* binding */ resolveTilde)\n/* harmony export */ });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_1__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nfunction resolveTilde(filePath) {\n if (filePath === \"~\") {\n return os__WEBPACK_IMPORTED_MODULE_1___default().homedir();\n }\n if (filePath.startsWith(\"~/\")) {\n return `${os__WEBPACK_IMPORTED_MODULE_1___default().homedir()}${filePath.slice(1)}`;\n }\n return filePath;\n}\nfunction resolvePath(filePath) {\n return path__WEBPACK_IMPORTED_MODULE_0___default().resolve(resolveTilde(filePath));\n}\n/**\n * Checks if `testPath` represents a potential filesystem entry that would be\n * logically \"within\" the `parentPath` directory.\n *\n * This function will return `true` in the above case, and `false` otherwise.\n * It will return `false` if the two paths are the same (after resolving them).\n *\n * The function makes no FS calls and is platform dependant. Meaning that the\n * results are only guaranteed to be correct for the platform you are running\n * on.\n * @param parentPath The known path of a directory\n * @param testPath The path that is to be tested\n */\nfunction isLogicalChildPath(parentPath, testPath) {\n parentPath = path__WEBPACK_IMPORTED_MODULE_0___default().resolve(parentPath);\n testPath = path__WEBPACK_IMPORTED_MODULE_0___default().resolve(testPath);\n if (parentPath === testPath) {\n return false;\n }\n while (testPath.length >= parentPath.length) {\n if (testPath === parentPath) {\n return true;\n }\n testPath = path__WEBPACK_IMPORTED_MODULE_0___default().dirname(testPath);\n }\n return false;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/paths.ts?");
31941
-
31942
- /***/ }),
31943
-
31944
31999
  /***/ "./src/common/utils/promise-exec.ts":
31945
32000
  /*!******************************************!*\
31946
32001
  !*** ./src/common/utils/promise-exec.ts ***!
@@ -32014,7 +32069,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32014
32069
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32015
32070
 
32016
32071
  "use strict";
32017
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ordering\": () => (/* binding */ Ordering),\n/* harmony export */ \"rectifyOrdering\": () => (/* binding */ rectifyOrdering),\n/* harmony export */ \"sortCharts\": () => (/* binding */ sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* binding */ sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* binding */ sortCompareChartVersions)\n/* harmony export */ });\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _iter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iter */ \"./src/common/utils/iter.ts\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logger */ \"./src/common/logger.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nvar Ordering;\n(function (Ordering) {\n Ordering[Ordering[\"LESS\"] = -1] = \"LESS\";\n Ordering[Ordering[\"EQUAL\"] = 0] = \"EQUAL\";\n Ordering[Ordering[\"GREATER\"] = 1] = \"GREATER\";\n})(Ordering || (Ordering = {}));\n/**\n * This function switches the direction of `ordering` if `direction` is `\"desc\"`\n * @param ordering The original ordering (assumed to be an \"asc\" ordering)\n * @param direction The new desired direction\n */\nfunction rectifyOrdering(ordering, direction) {\n if (direction === \"desc\") {\n return -ordering;\n }\n return ordering;\n}\n/**\n * An ascending sorting function\n * @param left An item from an array\n * @param right An item from an array\n * @returns The relative ordering in an ascending manner.\n * - Less if left < right\n * - Equal if left == right\n * - Greater if left > right\n */\nfunction sortCompare(left, right) {\n if (left < right) {\n return Ordering.LESS;\n }\n if (left === right) {\n return Ordering.EQUAL;\n }\n return Ordering.GREATER;\n}\nfunction sortCompareChartVersions(left, right) {\n if (left.__version && right.__version) {\n return semver__WEBPACK_IMPORTED_MODULE_0___default().compare(right.__version, left.__version);\n }\n if (!left.__version && right.__version) {\n return Ordering.GREATER;\n }\n if (left.__version && !right.__version) {\n return Ordering.LESS;\n }\n return sortCompare(left.version, right.version);\n}\nfunction sortCharts(charts) {\n const chartsWithVersion = Array.from(_iter__WEBPACK_IMPORTED_MODULE_1__.map(charts, chart => {\n const __version = (0,semver__WEBPACK_IMPORTED_MODULE_0__.coerce)(chart.version, { loose: true });\n if (!__version) {\n _logger__WEBPACK_IMPORTED_MODULE_2__[\"default\"].warn(`[HELM-SERVICE]: Version from helm chart is not loosely coercable to semver.`, { name: chart.name, version: chart.version, repo: chart.repo });\n }\n chart.__version = __version;\n return chart;\n }));\n return chartsWithVersion\n .sort(sortCompareChartVersions)\n .map(chart => (delete chart.__version, chart));\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/sort-compare.ts?");
32072
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Ordering\": () => (/* binding */ Ordering),\n/* harmony export */ \"rectifyOrdering\": () => (/* binding */ rectifyOrdering),\n/* harmony export */ \"sortBySemverVersion\": () => (/* binding */ sortBySemverVersion),\n/* harmony export */ \"sortCompare\": () => (/* binding */ sortCompare)\n/* harmony export */ });\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! semver */ \"./node_modules/semver/index.js\");\n/* harmony import */ var semver__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(semver__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nvar Ordering;\n(function (Ordering) {\n Ordering[Ordering[\"LESS\"] = -1] = \"LESS\";\n Ordering[Ordering[\"EQUAL\"] = 0] = \"EQUAL\";\n Ordering[Ordering[\"GREATER\"] = 1] = \"GREATER\";\n})(Ordering || (Ordering = {}));\n/**\n * This function switches the direction of `ordering` if `direction` is `\"desc\"`\n * @param ordering The original ordering (assumed to be an \"asc\" ordering)\n * @param direction The new desired direction\n */\nfunction rectifyOrdering(ordering, direction) {\n if (direction === \"desc\") {\n return -ordering;\n }\n return ordering;\n}\n/**\n * An ascending sorting function\n * @param left An item from an array\n * @param right An item from an array\n * @returns The relative ordering in an ascending manner.\n * - Less if left < right\n * - Equal if left == right\n * - Greater if left > right\n */\nfunction sortCompare(left, right) {\n if (left < right) {\n return Ordering.LESS;\n }\n if (left === right) {\n return Ordering.EQUAL;\n }\n return Ordering.GREATER;\n}\n/**\n * This function sorts of list of items that have what should be a semver version formated string\n * as the field `version` but if it is not loosely coercable to semver falls back to sorting them\n * alphanumerically\n */\nfunction sortBySemverVersion(versioneds) {\n return versioneds\n .map(versioned => ({\n __version: (0,semver__WEBPACK_IMPORTED_MODULE_0__.coerce)(versioned.version, { loose: true }),\n raw: versioned,\n }))\n .sort((left, right) => {\n if (left.__version && right.__version) {\n return semver__WEBPACK_IMPORTED_MODULE_0___default().compare(right.__version, left.__version);\n }\n if (!left.__version && right.__version) {\n return Ordering.GREATER;\n }\n if (left.__version && !right.__version) {\n return Ordering.LESS;\n }\n return sortCompare(left.raw.version, right.raw.version);\n })\n .map(({ raw }) => raw);\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/sort-compare.ts?");
32018
32073
 
32019
32074
  /***/ }),
32020
32075
 
@@ -32036,7 +32091,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32036
32091
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32037
32092
 
32038
32093
  "use strict";
32039
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"extractTar\": () => (/* binding */ extractTar),\n/* harmony export */ \"listTarEntries\": () => (/* binding */ listTarEntries),\n/* harmony export */ \"readFileFromTar\": () => (/* binding */ readFileFromTar)\n/* harmony export */ });\n/* harmony import */ var tar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tar */ \"./node_modules/tar/index.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./json */ \"./src/common/utils/json.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nfunction readFileFromTar({ tarPath, filePath, parseJson = false }) {\n return new Promise((resolve, reject) => {\n const fileChunks = [];\n tar__WEBPACK_IMPORTED_MODULE_0__.list({\n file: tarPath,\n filter: entryPath => path__WEBPACK_IMPORTED_MODULE_1___default().normalize(entryPath) === filePath,\n sync: true,\n onentry(entry) {\n entry.on(\"data\", chunk => {\n fileChunks.push(chunk);\n });\n entry.once(\"error\", err => {\n reject(new Error(`reading file has failed ${entry.path}: ${err}`));\n });\n entry.once(\"end\", () => {\n const data = Buffer.concat(fileChunks);\n const result = parseJson ? (0,_json__WEBPACK_IMPORTED_MODULE_2__.parse)(data.toString(\"utf8\")) : data;\n resolve(result);\n });\n },\n });\n if (!fileChunks.length) {\n reject(new Error(\"Not found\"));\n }\n });\n}\nasync function listTarEntries(filePath) {\n const entries = [];\n await tar__WEBPACK_IMPORTED_MODULE_0__.list({\n file: filePath,\n onentry: (entry) => {\n entries.push(path__WEBPACK_IMPORTED_MODULE_1___default().normalize(entry.path));\n },\n });\n return entries;\n}\nfunction extractTar(filePath, opts = {}) {\n return tar__WEBPACK_IMPORTED_MODULE_0__.extract({\n file: filePath,\n cwd: path__WEBPACK_IMPORTED_MODULE_1___default().dirname(filePath),\n ...opts,\n });\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/tar.ts?");
32094
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"listTarEntries\": () => (/* binding */ listTarEntries),\n/* harmony export */ \"readFileFromTar\": () => (/* binding */ readFileFromTar)\n/* harmony export */ });\n/* harmony import */ var tar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tar */ \"./node_modules/tar/index.js\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./json */ \"./src/common/utils/json.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nfunction readFileFromTar({ tarPath, filePath, parseJson = false }) {\n return new Promise((resolve, reject) => {\n const fileChunks = [];\n tar__WEBPACK_IMPORTED_MODULE_0__.list({\n file: tarPath,\n filter: entryPath => path__WEBPACK_IMPORTED_MODULE_1___default().normalize(entryPath) === filePath,\n sync: true,\n onentry(entry) {\n entry.on(\"data\", chunk => {\n fileChunks.push(chunk);\n });\n entry.once(\"error\", err => {\n reject(new Error(`reading file has failed ${entry.path}: ${err}`));\n });\n entry.once(\"end\", () => {\n const data = Buffer.concat(fileChunks);\n const result = parseJson ? (0,_json__WEBPACK_IMPORTED_MODULE_2__.parse)(data.toString(\"utf8\")) : data;\n resolve(result);\n });\n },\n });\n if (!fileChunks.length) {\n reject(new Error(\"Not found\"));\n }\n });\n}\nasync function listTarEntries(filePath) {\n const entries = [];\n await tar__WEBPACK_IMPORTED_MODULE_0__.list({\n file: filePath,\n onentry: (entry) => {\n entries.push(path__WEBPACK_IMPORTED_MODULE_1___default().normalize(entry.path));\n },\n });\n return entries;\n}\n\n\n//# sourceURL=webpack://open-lens/./src/common/utils/tar.ts?");
32040
32095
 
32041
32096
  /***/ }),
32042
32097
 
@@ -32113,7 +32168,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32113
32168
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32114
32169
 
32115
32170
  "use strict";
32116
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiKubePrefix\": () => (/* binding */ apiKubePrefix),\n/* harmony export */ \"apiPrefix\": () => (/* binding */ apiPrefix),\n/* harmony export */ \"baseBinariesDir\": () => (/* binding */ baseBinariesDir),\n/* harmony export */ \"defaultEditorFontFamily\": () => (/* binding */ defaultEditorFontFamily),\n/* harmony export */ \"defaultFontSize\": () => (/* binding */ defaultFontSize),\n/* harmony export */ \"defaultTerminalFontFamily\": () => (/* binding */ defaultTerminalFontFamily),\n/* harmony export */ \"defaultThemeId\": () => (/* binding */ defaultThemeId),\n/* harmony export */ \"docsUrl\": () => (/* binding */ docsUrl),\n/* harmony export */ \"getBinaryName\": () => (/* binding */ getBinaryName),\n/* harmony export */ \"helmBinaryName\": () => (/* binding */ helmBinaryName),\n/* harmony export */ \"helmBinaryPath\": () => (/* binding */ helmBinaryPath),\n/* harmony export */ \"isDebugging\": () => (/* binding */ isDebugging),\n/* harmony export */ \"isDevelopment\": () => (/* binding */ isDevelopment),\n/* harmony export */ \"isLinux\": () => (/* binding */ isLinux),\n/* harmony export */ \"isMac\": () => (/* binding */ isMac),\n/* harmony export */ \"isProduction\": () => (/* binding */ isProduction),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isWindows\": () => (/* binding */ isWindows),\n/* harmony export */ \"issuesTrackerUrl\": () => (/* binding */ issuesTrackerUrl),\n/* harmony export */ \"kubeAuthProxyBinaryName\": () => (/* binding */ kubeAuthProxyBinaryName),\n/* harmony export */ \"kubernetesDocumentationWeblinkId\": () => (/* binding */ kubernetesDocumentationWeblinkId),\n/* harmony export */ \"lensBlogWeblinkId\": () => (/* binding */ lensBlogWeblinkId),\n/* harmony export */ \"lensDocumentationWeblinkId\": () => (/* binding */ lensDocumentationWeblinkId),\n/* harmony export */ \"lensSlackWeblinkId\": () => (/* binding */ lensSlackWeblinkId),\n/* harmony export */ \"lensTwitterWeblinkId\": () => (/* binding */ lensTwitterWeblinkId),\n/* harmony export */ \"lensWebsiteWeblinkId\": () => (/* binding */ lensWebsiteWeblinkId),\n/* harmony export */ \"normalizedArch\": () => (/* binding */ normalizedArch),\n/* harmony export */ \"normalizedPlatform\": () => (/* binding */ normalizedPlatform),\n/* harmony export */ \"publicPath\": () => (/* binding */ publicPath),\n/* harmony export */ \"slackUrl\": () => (/* binding */ slackUrl),\n/* harmony export */ \"supportUrl\": () => (/* binding */ supportUrl)\n/* harmony export */ });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/lazy-initialized */ \"./src/common/utils/lazy-initialized.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar _a;\n// App's common configuration for any process (main, renderer, build pipeline, etc.)\n\n\n/**\n * @deprecated Switch to using isMacInjectable\n */\nconst isMac = process.platform === \"darwin\";\n/**\n * @deprecated Switch to using isWindowsInjectable\n */\nconst isWindows = process.platform === \"win32\";\n/**\n * @deprecated Switch to using isLinuxInjectable\n */\nconst isLinux = process.platform === \"linux\";\nconst isDebugging = [\"true\", \"1\", \"yes\", \"y\", \"on\"].includes(((_a = process.env.DEBUG) !== null && _a !== void 0 ? _a : \"\").toLowerCase());\n/**\n * @deprecated Switch to using isTestEnvInjectable\n */\nconst isTestEnv = !!process.env.JEST_WORKER_ID;\n/**\n * @deprecated Switch to using isProductionInjectable\n */\nconst isProduction = \"development\" === \"production\";\n/**\n * @deprecated Switch to using isDevelopmentInjectable\n */\nconst isDevelopment = !isTestEnv && !isProduction;\nconst publicPath = \"/build/\";\nconst defaultThemeId = \"lens-dark\";\nconst defaultFontSize = 12;\nconst defaultTerminalFontFamily = \"RobotoMono\";\nconst defaultEditorFontFamily = \"RobotoMono\";\n/**\n * @deprecated use `di.inject(normalizedPlatformInjectable)` instead\n */\nconst normalizedPlatform = (() => {\n switch (process.platform) {\n case \"darwin\":\n return \"darwin\";\n case \"linux\":\n return \"linux\";\n case \"win32\":\n return \"windows\";\n default:\n throw new Error(`platform=${process.platform} is unsupported`);\n }\n})();\n/**\n * @deprecated use `di.inject(bundledBinariesNormalizedArchInjectable)` instead\n */\nconst normalizedArch = (() => {\n switch (process.arch) {\n case \"arm64\":\n return \"arm64\";\n case \"x64\":\n case \"amd64\":\n return \"x64\";\n case \"386\":\n case \"x32\":\n case \"ia32\":\n return \"ia32\";\n default:\n throw new Error(`arch=${process.arch} is unsupported`);\n }\n})();\nfunction getBinaryName(name, { forPlatform = normalizedPlatform } = {}) {\n if (forPlatform === \"windows\") {\n return `${name}.exe`;\n }\n return name;\n}\nconst resourcesDir = (0,_utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__.lazyInitialized)(() => (isProduction\n ? process.resourcesPath\n : path__WEBPACK_IMPORTED_MODULE_0___default().join(process.cwd(), \"binaries\", \"client\", normalizedPlatform)));\n/**\n * @deprecated for being explicit side effect.\n */\nconst baseBinariesDir = (0,_utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__.lazyInitialized)(() => path__WEBPACK_IMPORTED_MODULE_0___default().join(resourcesDir.get(), normalizedArch));\n/**\n * @deprecated for being explicit side effect.\n */\nconst kubeAuthProxyBinaryName = getBinaryName(\"lens-k8s-proxy\");\n/**\n * @deprecated for being explicit side effect.\n */\nconst helmBinaryName = getBinaryName(\"helm\");\n/**\n * @deprecated for being explicit side effect.\n */\nconst helmBinaryPath = (0,_utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__.lazyInitialized)(() => path__WEBPACK_IMPORTED_MODULE_0___default().join(baseBinariesDir.get(), helmBinaryName));\n// Apis\nconst apiPrefix = \"/api\"; // local router apis\nconst apiKubePrefix = \"/api-kube\"; // k8s cluster apis\n// Links\nconst issuesTrackerUrl = \"https://github.com/lensapp/lens/issues\";\nconst slackUrl = \"https://join.slack.com/t/k8slens/shared_invite/zt-wcl8jq3k-68R5Wcmk1o95MLBE5igUDQ\";\nconst supportUrl = \"https://docs.k8slens.dev/latest/support/\";\nconst lensWebsiteWeblinkId = \"lens-website-link\";\nconst lensDocumentationWeblinkId = \"lens-documentation-link\";\nconst lensSlackWeblinkId = \"lens-slack-link\";\nconst lensTwitterWeblinkId = \"lens-twitter-link\";\nconst lensBlogWeblinkId = \"lens-blog-link\";\nconst kubernetesDocumentationWeblinkId = \"kubernetes-documentation-link\";\nconst docsUrl = \"https://docs.k8slens.dev/main\";\n\n\n//# sourceURL=webpack://open-lens/./src/common/vars.ts?");
32171
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"apiKubePrefix\": () => (/* binding */ apiKubePrefix),\n/* harmony export */ \"apiPrefix\": () => (/* binding */ apiPrefix),\n/* harmony export */ \"baseBinariesDir\": () => (/* binding */ baseBinariesDir),\n/* harmony export */ \"defaultEditorFontFamily\": () => (/* binding */ defaultEditorFontFamily),\n/* harmony export */ \"defaultFontSize\": () => (/* binding */ defaultFontSize),\n/* harmony export */ \"defaultTerminalFontFamily\": () => (/* binding */ defaultTerminalFontFamily),\n/* harmony export */ \"defaultThemeId\": () => (/* binding */ defaultThemeId),\n/* harmony export */ \"docsUrl\": () => (/* binding */ docsUrl),\n/* harmony export */ \"getBinaryName\": () => (/* binding */ getBinaryName),\n/* harmony export */ \"helmBinaryName\": () => (/* binding */ helmBinaryName),\n/* harmony export */ \"helmBinaryPath\": () => (/* binding */ helmBinaryPath),\n/* harmony export */ \"isDebugging\": () => (/* binding */ isDebugging),\n/* harmony export */ \"isDevelopment\": () => (/* binding */ isDevelopment),\n/* harmony export */ \"isLinux\": () => (/* binding */ isLinux),\n/* harmony export */ \"isMac\": () => (/* binding */ isMac),\n/* harmony export */ \"isProduction\": () => (/* binding */ isProduction),\n/* harmony export */ \"isTestEnv\": () => (/* binding */ isTestEnv),\n/* harmony export */ \"isWindows\": () => (/* binding */ isWindows),\n/* harmony export */ \"issuesTrackerUrl\": () => (/* binding */ issuesTrackerUrl),\n/* harmony export */ \"kubeAuthProxyBinaryName\": () => (/* binding */ kubeAuthProxyBinaryName),\n/* harmony export */ \"kubernetesDocumentationWeblinkId\": () => (/* binding */ kubernetesDocumentationWeblinkId),\n/* harmony export */ \"lensBlogWeblinkId\": () => (/* binding */ lensBlogWeblinkId),\n/* harmony export */ \"lensDocumentationWeblinkId\": () => (/* binding */ lensDocumentationWeblinkId),\n/* harmony export */ \"lensSlackWeblinkId\": () => (/* binding */ lensSlackWeblinkId),\n/* harmony export */ \"lensTwitterWeblinkId\": () => (/* binding */ lensTwitterWeblinkId),\n/* harmony export */ \"lensWebsiteWeblinkId\": () => (/* binding */ lensWebsiteWeblinkId),\n/* harmony export */ \"normalizedArch\": () => (/* binding */ normalizedArch),\n/* harmony export */ \"normalizedPlatform\": () => (/* binding */ normalizedPlatform),\n/* harmony export */ \"publicPath\": () => (/* binding */ publicPath),\n/* harmony export */ \"slackUrl\": () => (/* binding */ slackUrl),\n/* harmony export */ \"supportUrl\": () => (/* binding */ supportUrl)\n/* harmony export */ });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/lazy-initialized */ \"./src/common/utils/lazy-initialized.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar _a;\n// App's common configuration for any process (main, renderer, build pipeline, etc.)\n\n\n/**\n * @deprecated Switch to using isMacInjectable\n */\nconst isMac = process.platform === \"darwin\";\n/**\n * @deprecated Switch to using isWindowsInjectable\n */\nconst isWindows = process.platform === \"win32\";\n/**\n * @deprecated Switch to using isLinuxInjectable\n */\nconst isLinux = process.platform === \"linux\";\n/**\n * @deprecated switch to using `isDebuggingInjectable`\n */\nconst isDebugging = [\"true\", \"1\", \"yes\", \"y\", \"on\"].includes(((_a = process.env.DEBUG) !== null && _a !== void 0 ? _a : \"\").toLowerCase());\n/**\n * @deprecated Switch to using isTestEnvInjectable\n */\nconst isTestEnv = !!process.env.JEST_WORKER_ID;\n/**\n * @deprecated Switch to using isProductionInjectable\n */\nconst isProduction = \"development\" === \"production\";\n/**\n * @deprecated Switch to using isDevelopmentInjectable\n */\nconst isDevelopment = !isTestEnv && !isProduction;\nconst publicPath = \"/build/\";\nconst defaultThemeId = \"lens-dark\";\nconst defaultFontSize = 12;\nconst defaultTerminalFontFamily = \"RobotoMono\";\nconst defaultEditorFontFamily = \"RobotoMono\";\n/**\n * @deprecated use `di.inject(normalizedPlatformInjectable)` instead\n */\nconst normalizedPlatform = (() => {\n switch (process.platform) {\n case \"darwin\":\n return \"darwin\";\n case \"linux\":\n return \"linux\";\n case \"win32\":\n return \"windows\";\n default:\n throw new Error(`platform=${process.platform} is unsupported`);\n }\n})();\n/**\n * @deprecated use `di.inject(bundledBinariesNormalizedArchInjectable)` instead\n */\nconst normalizedArch = (() => {\n switch (process.arch) {\n case \"arm64\":\n return \"arm64\";\n case \"x64\":\n case \"amd64\":\n return \"x64\";\n case \"386\":\n case \"x32\":\n case \"ia32\":\n return \"ia32\";\n default:\n throw new Error(`arch=${process.arch} is unsupported`);\n }\n})();\nfunction getBinaryName(name, { forPlatform = normalizedPlatform } = {}) {\n if (forPlatform === \"windows\") {\n return `${name}.exe`;\n }\n return name;\n}\nconst resourcesDir = (0,_utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__.lazyInitialized)(() => (isProduction\n ? process.resourcesPath\n : path__WEBPACK_IMPORTED_MODULE_0___default().join(process.cwd(), \"binaries\", \"client\", normalizedPlatform)));\n/**\n * @deprecated for being explicit side effect.\n */\nconst baseBinariesDir = (0,_utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__.lazyInitialized)(() => path__WEBPACK_IMPORTED_MODULE_0___default().join(resourcesDir.get(), normalizedArch));\n/**\n * @deprecated for being explicit side effect.\n */\nconst kubeAuthProxyBinaryName = getBinaryName(\"lens-k8s-proxy\");\n/**\n * @deprecated for being explicit side effect.\n */\nconst helmBinaryName = getBinaryName(\"helm\");\n/**\n * @deprecated for being explicit side effect.\n */\nconst helmBinaryPath = (0,_utils_lazy_initialized__WEBPACK_IMPORTED_MODULE_1__.lazyInitialized)(() => path__WEBPACK_IMPORTED_MODULE_0___default().join(baseBinariesDir.get(), helmBinaryName));\n// Apis\nconst apiPrefix = \"/api\"; // local router apis\nconst apiKubePrefix = \"/api-kube\"; // k8s cluster apis\n// Links\nconst issuesTrackerUrl = \"https://github.com/lensapp/lens/issues\";\nconst slackUrl = \"https://join.slack.com/t/k8slens/shared_invite/zt-wcl8jq3k-68R5Wcmk1o95MLBE5igUDQ\";\nconst supportUrl = \"https://docs.k8slens.dev/latest/support/\";\nconst lensWebsiteWeblinkId = \"lens-website-link\";\nconst lensDocumentationWeblinkId = \"lens-documentation-link\";\nconst lensSlackWeblinkId = \"lens-slack-link\";\nconst lensTwitterWeblinkId = \"lens-twitter-link\";\nconst lensBlogWeblinkId = \"lens-blog-link\";\nconst kubernetesDocumentationWeblinkId = \"kubernetes-documentation-link\";\nconst docsUrl = \"https://docs.k8slens.dev/main\";\n\n\n//# sourceURL=webpack://open-lens/./src/common/vars.ts?");
32117
32172
 
32118
32173
  /***/ }),
32119
32174
 
@@ -32278,7 +32333,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32278
32333
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32279
32334
 
32280
32335
  "use strict";
32281
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/* harmony import */ var _lens_resources_dir_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens-resources-dir.injectable */ \"./src/common/vars/lens-resources-dir.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst staticFilesDirectoryInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"static-files-directory\",\n instantiate: (di) => {\n const getAbsolutePath = di.inject(_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const lensResourcesDir = di.inject(_lens_resources_dir_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return getAbsolutePath(lensResourcesDir, \"static\");\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (staticFilesDirectoryInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/vars/static-files-directory.injectable.ts?");
32336
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/* harmony import */ var _lens_resources_dir_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lens-resources-dir.injectable */ \"./src/common/vars/lens-resources-dir.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\nconst staticFilesDirectoryInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"static-files-directory\",\n instantiate: (di) => {\n const joinPaths = di.inject(_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const lensResourcesDir = di.inject(_lens_resources_dir_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return joinPaths(lensResourcesDir, \"static\");\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (staticFilesDirectoryInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/common/vars/static-files-directory.injectable.ts?");
32282
32337
 
32283
32338
  /***/ }),
32284
32339
 
@@ -32410,7 +32465,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32410
32465
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32411
32466
 
32412
32467
  "use strict";
32413
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClusterRole\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.ClusterRole),\n/* harmony export */ \"ClusterRoleBinding\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.ClusterRoleBinding),\n/* harmony export */ \"ConfigMap\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.ConfigMap),\n/* harmony export */ \"CronJob\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.CronJob),\n/* harmony export */ \"CustomResourceDefinition\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.CustomResourceDefinition),\n/* harmony export */ \"DaemonSet\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.DaemonSet),\n/* harmony export */ \"Deployment\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Deployment),\n/* harmony export */ \"DeploymentApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.DeploymentApi),\n/* harmony export */ \"Endpoint\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Endpoints),\n/* harmony export */ \"HorizontalPodAutoscaler\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.HorizontalPodAutoscaler),\n/* harmony export */ \"Ingress\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Ingress),\n/* harmony export */ \"IngressApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.IngressApi),\n/* harmony export */ \"Job\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Job),\n/* harmony export */ \"KubeApi\": () => (/* reexport safe */ _common_k8s_api_kube_api__WEBPACK_IMPORTED_MODULE_3__.KubeApi),\n/* harmony export */ \"KubeEvent\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.KubeEvent),\n/* harmony export */ \"KubeJsonApi\": () => (/* reexport safe */ _common_k8s_api_kube_json_api__WEBPACK_IMPORTED_MODULE_5__.KubeJsonApi),\n/* harmony export */ \"KubeObject\": () => (/* reexport safe */ _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_4__.KubeObject),\n/* harmony export */ \"KubeObjectStore\": () => (/* reexport safe */ _common_k8s_api_kube_object_store__WEBPACK_IMPORTED_MODULE_6__.KubeObjectStore),\n/* harmony export */ \"KubeStatus\": () => (/* reexport safe */ _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_4__.KubeStatus),\n/* harmony export */ \"LimitRange\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.LimitRange),\n/* harmony export */ \"Namespace\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Namespace),\n/* harmony export */ \"NetworkPolicy\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.NetworkPolicy),\n/* harmony export */ \"Node\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Node),\n/* harmony export */ \"NodesApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.NodeApi),\n/* harmony export */ \"PersistentVolume\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.PersistentVolume),\n/* harmony export */ \"PersistentVolumeClaim\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.PersistentVolumeClaim),\n/* harmony export */ \"PersistentVolumeClaimsApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.PersistentVolumeClaimApi),\n/* harmony export */ \"Pod\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Pod),\n/* harmony export */ \"PodDisruptionBudget\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.PodDisruptionBudget),\n/* harmony export */ \"PodsApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.PodApi),\n/* harmony export */ \"PriorityClass\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.PriorityClass),\n/* harmony export */ \"ReplicaSet\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.ReplicaSet),\n/* harmony export */ \"ResourceQuota\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.ResourceQuota),\n/* harmony export */ \"ResourceStack\": () => (/* reexport safe */ _common_k8s_resource_stack__WEBPACK_IMPORTED_MODULE_0__.ResourceStack),\n/* harmony export */ \"Role\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Role),\n/* harmony export */ \"RoleBinding\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.RoleBinding),\n/* harmony export */ \"Secret\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Secret),\n/* harmony export */ \"Service\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.Service),\n/* harmony export */ \"ServiceAccount\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.ServiceAccount),\n/* harmony export */ \"StatefulSet\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.StatefulSet),\n/* harmony export */ \"StorageClass\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__.StorageClass),\n/* harmony export */ \"apiManager\": () => (/* binding */ apiManager),\n/* harmony export */ \"forCluster\": () => (/* reexport safe */ _common_k8s_api_kube_api__WEBPACK_IMPORTED_MODULE_3__.forCluster),\n/* harmony export */ \"forRemoteCluster\": () => (/* reexport safe */ _common_k8s_api_kube_api__WEBPACK_IMPORTED_MODULE_3__.forRemoteCluster)\n/* harmony export */ });\n/* harmony import */ var _common_k8s_resource_stack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/k8s/resource-stack */ \"./src/common/k8s/resource-stack.ts\");\n/* harmony import */ var _common_k8s_api_api_manager_manager_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/k8s-api/api-manager/manager.injectable */ \"./src/common/k8s-api/api-manager/manager.injectable.ts\");\n/* harmony import */ var _as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/* harmony import */ var _common_k8s_api_kube_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/k8s-api/kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/k8s-api/kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _common_k8s_api_kube_json_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/k8s-api/kube-json-api */ \"./src/common/k8s-api/kube-json-api.ts\");\n/* harmony import */ var _common_k8s_api_kube_object_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/k8s-api/kube-object.store */ \"./src/common/k8s-api/kube-object.store.ts\");\n/* harmony import */ var _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/k8s-api/endpoints */ \"./src/common/k8s-api/endpoints/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// NOTE: this file is not currently exported as part of `Common`, but should be.\n// It is here to consolidate the common parts which are exported to `Main`\n// and to `Renderer`\n\n\n\nconst apiManager = (0,_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_2__.asLegacyGlobalForExtensionApi)(_common_k8s_api_api_manager_manager_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/common-api/k8s-api.ts?");
32468
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClusterRole\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.ClusterRole),\n/* harmony export */ \"ClusterRoleBinding\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.ClusterRoleBinding),\n/* harmony export */ \"ConfigMap\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.ConfigMap),\n/* harmony export */ \"CronJob\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.CronJob),\n/* harmony export */ \"CustomResourceDefinition\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.CustomResourceDefinition),\n/* harmony export */ \"DaemonSet\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.DaemonSet),\n/* harmony export */ \"Deployment\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Deployment),\n/* harmony export */ \"DeploymentApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.DeploymentApi),\n/* harmony export */ \"Endpoint\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Endpoints),\n/* harmony export */ \"HorizontalPodAutoscaler\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.HorizontalPodAutoscaler),\n/* harmony export */ \"Ingress\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Ingress),\n/* harmony export */ \"IngressApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.IngressApi),\n/* harmony export */ \"Job\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Job),\n/* harmony export */ \"KubeApi\": () => (/* reexport safe */ _common_k8s_api_kube_api__WEBPACK_IMPORTED_MODULE_6__.KubeApi),\n/* harmony export */ \"KubeEvent\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.KubeEvent),\n/* harmony export */ \"KubeJsonApi\": () => (/* reexport safe */ _common_k8s_api_kube_json_api__WEBPACK_IMPORTED_MODULE_8__.KubeJsonApi),\n/* harmony export */ \"KubeObject\": () => (/* reexport safe */ _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_7__.KubeObject),\n/* harmony export */ \"KubeObjectStore\": () => (/* reexport safe */ _common_k8s_api_kube_object_store__WEBPACK_IMPORTED_MODULE_9__.KubeObjectStore),\n/* harmony export */ \"KubeStatus\": () => (/* reexport safe */ _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_7__.KubeStatus),\n/* harmony export */ \"LimitRange\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.LimitRange),\n/* harmony export */ \"Namespace\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Namespace),\n/* harmony export */ \"NetworkPolicy\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.NetworkPolicy),\n/* harmony export */ \"Node\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Node),\n/* harmony export */ \"NodesApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.NodeApi),\n/* harmony export */ \"PersistentVolume\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.PersistentVolume),\n/* harmony export */ \"PersistentVolumeClaim\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.PersistentVolumeClaim),\n/* harmony export */ \"PersistentVolumeClaimsApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.PersistentVolumeClaimApi),\n/* harmony export */ \"Pod\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Pod),\n/* harmony export */ \"PodDisruptionBudget\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.PodDisruptionBudget),\n/* harmony export */ \"PodsApi\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.PodApi),\n/* harmony export */ \"PriorityClass\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.PriorityClass),\n/* harmony export */ \"ReplicaSet\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.ReplicaSet),\n/* harmony export */ \"ResourceQuota\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.ResourceQuota),\n/* harmony export */ \"ResourceStack\": () => (/* reexport safe */ _common_k8s_resource_stack__WEBPACK_IMPORTED_MODULE_0__.ResourceStack),\n/* harmony export */ \"Role\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Role),\n/* harmony export */ \"RoleBinding\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.RoleBinding),\n/* harmony export */ \"Secret\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Secret),\n/* harmony export */ \"Service\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.Service),\n/* harmony export */ \"ServiceAccount\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.ServiceAccount),\n/* harmony export */ \"StatefulSet\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.StatefulSet),\n/* harmony export */ \"StorageClass\": () => (/* reexport safe */ _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__.StorageClass),\n/* harmony export */ \"apiManager\": () => (/* binding */ apiManager),\n/* harmony export */ \"forCluster\": () => (/* binding */ forCluster),\n/* harmony export */ \"forRemoteCluster\": () => (/* binding */ forRemoteCluster)\n/* harmony export */ });\n/* harmony import */ var _common_k8s_resource_stack__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/k8s/resource-stack */ \"./src/common/k8s/resource-stack.ts\");\n/* harmony import */ var _common_k8s_api_api_manager_manager_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/k8s-api/api-manager/manager.injectable */ \"./src/common/k8s-api/api-manager/manager.injectable.ts\");\n/* harmony import */ var _common_k8s_api_create_kube_api_for_cluster_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/k8s-api/create-kube-api-for-cluster.injectable */ \"./src/common/k8s-api/create-kube-api-for-cluster.injectable.ts\");\n/* harmony import */ var _common_k8s_api_create_kube_api_for_remote_cluster_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/k8s-api/create-kube-api-for-remote-cluster.injectable */ \"./src/common/k8s-api/create-kube-api-for-remote-cluster.injectable.ts\");\n/* harmony import */ var _as_legacy_globals_for_extension_api_as_legacy_global_function_for_extension_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api.ts\");\n/* harmony import */ var _as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api.ts\");\n/* harmony import */ var _common_k8s_api_kube_api__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/k8s-api/kube-api */ \"./src/common/k8s-api/kube-api.ts\");\n/* harmony import */ var _common_k8s_api_kube_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/k8s-api/kube-object */ \"./src/common/k8s-api/kube-object.ts\");\n/* harmony import */ var _common_k8s_api_kube_json_api__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../common/k8s-api/kube-json-api */ \"./src/common/k8s-api/kube-json-api.ts\");\n/* harmony import */ var _common_k8s_api_kube_object_store__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../common/k8s-api/kube-object.store */ \"./src/common/k8s-api/kube-object.store.ts\");\n/* harmony import */ var _common_k8s_api_endpoints__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../common/k8s-api/endpoints */ \"./src/common/k8s-api/endpoints/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// NOTE: this file is not currently exported as part of `Common`, but should be.\n// It is here to consolidate the common parts which are exported to `Main`\n// and to `Renderer`\n\n\n\n\n\n\nconst apiManager = (0,_as_legacy_globals_for_extension_api_as_legacy_global_object_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.asLegacyGlobalForExtensionApi)(_common_k8s_api_api_manager_manager_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\nconst forCluster = (0,_as_legacy_globals_for_extension_api_as_legacy_global_function_for_extension_api__WEBPACK_IMPORTED_MODULE_4__.asLegacyGlobalFunctionForExtensionApi)(_common_k8s_api_create_kube_api_for_cluster_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\nconst forRemoteCluster = (0,_as_legacy_globals_for_extension_api_as_legacy_global_function_for_extension_api__WEBPACK_IMPORTED_MODULE_4__.asLegacyGlobalFunctionForExtensionApi)(_common_k8s_api_create_kube_api_for_remote_cluster_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/extensions/common-api/k8s-api.ts?");
32414
32469
 
32415
32470
  /***/ }),
32416
32471
 
@@ -32817,7 +32872,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32817
32872
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32818
32873
 
32819
32874
  "use strict";
32820
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ResourceApplier\": () => (/* binding */ ResourceApplier)\n/* harmony export */ });\n/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ \"child_process\");\n/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var tempy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tempy */ \"./node_modules/tempy/index.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_utils_promise_exec__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/utils/promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\nclass ResourceApplier {\n constructor(cluster) {\n Object.defineProperty(this, \"cluster\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: cluster\n });\n }\n /**\n * Patch a kube resource's manifest, throwing any error that occurs.\n * @param name The name of the kube resource\n * @param kind The kind of the kube resource\n * @param patch The list of JSON operations\n * @param ns The optional namespace of the kube resource\n */\n async patch(name, kind, patch, ns) {\n var _a;\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_6__.appEventBus.emit({ name: \"resource\", action: \"patch\" });\n const kubectl = await this.cluster.ensureKubectl();\n const kubectlPath = await kubectl.getPath();\n const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();\n const args = [\n \"--kubeconfig\", proxyKubeconfigPath,\n \"patch\",\n kind,\n name,\n ];\n if (ns) {\n args.push(\"--namespace\", ns);\n }\n args.push(\"--type\", \"json\", \"--patch\", JSON.stringify(patch), \"-o\", \"json\");\n try {\n const { stdout } = await (0,_common_utils_promise_exec__WEBPACK_IMPORTED_MODULE_8__.promiseExecFile)(kubectlPath, args);\n return stdout;\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_7__.isChildProcessError)(error)) {\n throw (_a = error.stderr) !== null && _a !== void 0 ? _a : error;\n }\n throw error;\n }\n }\n async apply(resource) {\n resource = this.sanitizeObject(resource);\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_6__.appEventBus.emit({ name: \"resource\", action: \"apply\" });\n return this.kubectlApply(js_yaml__WEBPACK_IMPORTED_MODULE_2__.dump(resource));\n }\n async kubectlApply(content) {\n var _a, _b;\n const kubectl = await this.cluster.ensureKubectl();\n const kubectlPath = await kubectl.getPath();\n const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();\n const fileName = tempy__WEBPACK_IMPORTED_MODULE_4__.file({ name: \"resource.yaml\" });\n const args = [\n \"apply\",\n \"--kubeconfig\", proxyKubeconfigPath,\n \"-o\", \"json\",\n \"-f\", fileName,\n ];\n _logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].debug(`shooting manifests with ${kubectlPath}`, { args });\n const execEnv = { ...process.env };\n const httpsProxy = (_a = this.cluster.preferences) === null || _a === void 0 ? void 0 : _a.httpsProxy;\n if (httpsProxy) {\n execEnv.HTTPS_PROXY = httpsProxy;\n }\n try {\n await fs_extra__WEBPACK_IMPORTED_MODULE_1___default().writeFile(fileName, content);\n const { stdout } = await (0,_common_utils_promise_exec__WEBPACK_IMPORTED_MODULE_8__.promiseExecFile)(kubectlPath, args);\n return stdout;\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_7__.isChildProcessError)(error)) {\n throw (_b = error.stderr) !== null && _b !== void 0 ? _b : error;\n }\n throw error;\n }\n finally {\n await fs_extra__WEBPACK_IMPORTED_MODULE_1___default().unlink(fileName);\n }\n }\n async kubectlApplyAll(resources, extraArgs = [\"-o\", \"json\"]) {\n return this.kubectlCmdAll(\"apply\", resources, extraArgs);\n }\n async kubectlDeleteAll(resources, extraArgs) {\n return this.kubectlCmdAll(\"delete\", resources, extraArgs);\n }\n async kubectlCmdAll(subCmd, resources, args = []) {\n const kubectl = await this.cluster.ensureKubectl();\n const kubectlPath = await kubectl.getPath();\n const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();\n return new Promise((resolve, reject) => {\n const tmpDir = tempy__WEBPACK_IMPORTED_MODULE_4__.directory();\n // Dump each resource into tmpDir\n resources.forEach((resource, index) => {\n fs_extra__WEBPACK_IMPORTED_MODULE_1___default().writeFileSync(path__WEBPACK_IMPORTED_MODULE_3___default().join(tmpDir, `${index}.yaml`), resource);\n });\n args.push(\"-f\", `\"${tmpDir}\"`);\n const cmd = `\"${kubectlPath}\" ${subCmd} --kubeconfig \"${proxyKubeconfigPath}\" ${args.join(\" \")}`;\n _logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].info(`[RESOURCE-APPLIER] running cmd ${cmd}`);\n (0,child_process__WEBPACK_IMPORTED_MODULE_0__.exec)(cmd, (error, stdout) => {\n if (error) {\n _logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].error(`[RESOURCE-APPLIER] cmd errored: ${error}`);\n const splitError = error.toString().split(`.yaml\": `);\n if (splitError[1]) {\n reject(splitError[1]);\n }\n else {\n reject(error);\n }\n return;\n }\n resolve(stdout);\n });\n });\n }\n sanitizeObject(resource) {\n var _a, _b;\n const res = JSON.parse(JSON.stringify(resource));\n delete res.status;\n (_a = res.metadata) === null || _a === void 0 ? true : delete _a.resourceVersion;\n const annotations = (_b = res.metadata) === null || _b === void 0 ? void 0 : _b.annotations;\n if (annotations) {\n delete annotations[\"kubectl.kubernetes.io/last-applied-configuration\"];\n }\n return res;\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/main/resource-applier.ts?");
32875
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ResourceApplier\": () => (/* binding */ ResourceApplier)\n/* harmony export */ });\n/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! child_process */ \"child_process\");\n/* harmony import */ var child_process__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(child_process__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var js_yaml__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! js-yaml */ \"./node_modules/js-yaml/dist/js-yaml.mjs\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var tempy__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tempy */ \"./node_modules/tempy/index.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./logger */ \"./src/main/logger.ts\");\n/* harmony import */ var _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../common/app-event-bus/event-bus */ \"./src/common/app-event-bus/event-bus.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_utils_promise_exec__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../common/utils/promise-exec */ \"./src/common/utils/promise-exec.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\nclass ResourceApplier {\n constructor(cluster) {\n Object.defineProperty(this, \"cluster\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: cluster\n });\n }\n /**\n * Patch a kube resource's manifest, throwing any error that occurs.\n * @param name The name of the kube resource\n * @param kind The kind of the kube resource\n * @param patch The list of JSON operations\n * @param ns The optional namespace of the kube resource\n */\n async patch(name, kind, patch, ns) {\n var _a;\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_6__.appEventBus.emit({ name: \"resource\", action: \"patch\" });\n const kubectl = await this.cluster.ensureKubectl();\n const kubectlPath = await kubectl.getPath();\n const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();\n const args = [\n \"--kubeconfig\", proxyKubeconfigPath,\n \"patch\",\n kind,\n name,\n ];\n if (ns) {\n args.push(\"--namespace\", ns);\n }\n args.push(\"--type\", \"json\", \"--patch\", JSON.stringify(patch), \"-o\", \"json\");\n try {\n const { stdout } = await (0,_common_utils_promise_exec__WEBPACK_IMPORTED_MODULE_8__.promiseExecFile)(kubectlPath, args);\n return stdout;\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_7__.isChildProcessError)(error)) {\n throw (_a = error.stderr) !== null && _a !== void 0 ? _a : error;\n }\n throw error;\n }\n }\n async create(resource) {\n _common_app_event_bus_event_bus__WEBPACK_IMPORTED_MODULE_6__.appEventBus.emit({ name: \"resource\", action: \"apply\" });\n console.log({ resource });\n return this.kubectlApply(this.sanitizeObject(resource));\n }\n async kubectlApply(content) {\n var _a, _b;\n const kubectl = await this.cluster.ensureKubectl();\n const kubectlPath = await kubectl.getPath();\n const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();\n const fileName = tempy__WEBPACK_IMPORTED_MODULE_4__.file({ name: \"resource.yaml\" });\n const args = [\n \"apply\",\n \"--kubeconfig\", proxyKubeconfigPath,\n \"-o\", \"json\",\n \"-f\", fileName,\n ];\n _logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].debug(`shooting manifests with ${kubectlPath}`, { args });\n const execEnv = { ...process.env };\n const httpsProxy = (_a = this.cluster.preferences) === null || _a === void 0 ? void 0 : _a.httpsProxy;\n if (httpsProxy) {\n execEnv.HTTPS_PROXY = httpsProxy;\n }\n try {\n await fs_extra__WEBPACK_IMPORTED_MODULE_1___default().writeFile(fileName, content);\n const { stdout } = await (0,_common_utils_promise_exec__WEBPACK_IMPORTED_MODULE_8__.promiseExecFile)(kubectlPath, args);\n return stdout;\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_7__.isChildProcessError)(error)) {\n throw (_b = error.stderr) !== null && _b !== void 0 ? _b : error;\n }\n throw error;\n }\n finally {\n await fs_extra__WEBPACK_IMPORTED_MODULE_1___default().unlink(fileName);\n }\n }\n async kubectlApplyAll(resources, extraArgs = [\"-o\", \"json\"]) {\n return this.kubectlCmdAll(\"apply\", resources, extraArgs);\n }\n async kubectlDeleteAll(resources, extraArgs) {\n return this.kubectlCmdAll(\"delete\", resources, extraArgs);\n }\n async kubectlCmdAll(subCmd, resources, args = []) {\n const kubectl = await this.cluster.ensureKubectl();\n const kubectlPath = await kubectl.getPath();\n const proxyKubeconfigPath = await this.cluster.getProxyKubeconfigPath();\n return new Promise((resolve, reject) => {\n const tmpDir = tempy__WEBPACK_IMPORTED_MODULE_4__.directory();\n // Dump each resource into tmpDir\n resources.forEach((resource, index) => {\n fs_extra__WEBPACK_IMPORTED_MODULE_1___default().writeFileSync(path__WEBPACK_IMPORTED_MODULE_3___default().join(tmpDir, `${index}.yaml`), resource);\n });\n args.push(\"-f\", `\"${tmpDir}\"`);\n const cmd = `\"${kubectlPath}\" ${subCmd} --kubeconfig \"${proxyKubeconfigPath}\" ${args.join(\" \")}`;\n _logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].info(`[RESOURCE-APPLIER] running cmd ${cmd}`);\n (0,child_process__WEBPACK_IMPORTED_MODULE_0__.exec)(cmd, (error, stdout) => {\n if (error) {\n _logger__WEBPACK_IMPORTED_MODULE_5__[\"default\"].error(`[RESOURCE-APPLIER] cmd errored: ${error}`);\n const splitError = error.toString().split(`.yaml\": `);\n if (splitError[1]) {\n reject(splitError[1]);\n }\n else {\n reject(error);\n }\n return;\n }\n resolve(stdout);\n });\n });\n }\n sanitizeObject(resource) {\n var _a, _b, _c;\n const res = js_yaml__WEBPACK_IMPORTED_MODULE_2__.load(resource);\n delete res.status;\n (_a = res.metadata) === null || _a === void 0 ? true : delete _a.resourceVersion;\n (_c = (_b = res.metadata) === null || _b === void 0 ? void 0 : _b.annotations) === null || _c === void 0 ? true : delete _c[\"kubectl.kubernetes.io/last-applied-configuration\"];\n return js_yaml__WEBPACK_IMPORTED_MODULE_2__.dump(res);\n }\n}\n\n\n//# sourceURL=webpack://open-lens/./src/main/resource-applier.ts?");
32821
32876
 
32822
32877
  /***/ }),
32823
32878
 
@@ -32949,7 +33004,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32949
33004
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32950
33005
 
32951
33006
  "use strict";
32952
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _application_window_create_lens_window_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../application-window/create-lens-window.injectable */ \"./src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.ts\");\n/* harmony import */ var _common_vars_static_files_directory_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/vars/static-files-directory.injectable */ \"./src/common/vars/static-files-directory.injectable.ts\");\n/* harmony import */ var _common_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../common/path/get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nconst splashWindowInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"splash-window\",\n instantiate: (di) => {\n const createLensWindow = di.inject(_application_window_create_lens_window_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const staticFilesDirectory = di.inject(_common_vars_static_files_directory_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const getAbsolutePath = di.inject(_common_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n const splashWindowFile = getAbsolutePath(staticFilesDirectory, \"splash.html\");\n return createLensWindow({\n id: \"splash\",\n title: \"Loading\",\n getContentSource: () => ({\n file: splashWindowFile,\n }),\n defaultWidth: 500,\n defaultHeight: 300,\n resizable: false,\n windowFrameUtilitiesAreShown: false,\n centered: true,\n });\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (splashWindowInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/main/start-main-application/lens-window/splash-window/splash-window.injectable.ts?");
33007
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _application_window_create_lens_window_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../application-window/create-lens-window.injectable */ \"./src/main/start-main-application/lens-window/application-window/create-lens-window.injectable.ts\");\n/* harmony import */ var _common_vars_static_files_directory_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../common/vars/static-files-directory.injectable */ \"./src/common/vars/static-files-directory.injectable.ts\");\n/* harmony import */ var _common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../common/path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nconst splashWindowInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"splash-window\",\n instantiate: (di) => {\n const createLensWindow = di.inject(_application_window_create_lens_window_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n const staticFilesDirectory = di.inject(_common_vars_static_files_directory_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const joinPaths = di.inject(_common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n const splashWindowFile = joinPaths(staticFilesDirectory, \"splash.html\");\n return createLensWindow({\n id: \"splash\",\n title: \"Loading\",\n getContentSource: () => ({\n file: splashWindowFile,\n }),\n defaultWidth: 500,\n defaultHeight: 300,\n resizable: false,\n windowFrameUtilitiesAreShown: false,\n centered: true,\n });\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (splashWindowInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/main/start-main-application/lens-window/splash-window/splash-window.injectable.ts?");
32953
33008
 
32954
33009
  /***/ }),
32955
33010
 
@@ -32993,7 +33048,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
32993
33048
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
32994
33049
 
32995
33050
  "use strict";
32996
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _common_kube_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers */ \"./src/migrations/helpers.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable */ \"./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts\");\n/* harmony import */ var _common_app_paths_get_custom_kube_config_directory_get_custom_kube_config_directory_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable */ \"./src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Move embedded kubeconfig into separate file and add reference to it to cluster settings\n// convert file path cluster icons to their base64 encoded versions\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"3.6.0-beta.1\",\n run(store) {\n var _a, _b, _c, _d;\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_4__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n const kubeConfigsPath = di.inject(_common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n const getCustomKubeConfigDirectory = di.inject(_common_app_paths_get_custom_kube_config_directory_get_custom_kube_config_directory_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n const storedClusters = (_a = store.get(\"clusters\")) !== null && _a !== void 0 ? _a : [];\n const migratedClusters = [];\n fs_extra__WEBPACK_IMPORTED_MODULE_1___default().ensureDirSync(kubeConfigsPath);\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(\"Number of clusters to migrate: \", storedClusters.length);\n for (const clusterModel of storedClusters) {\n /**\n * migrate kubeconfig\n */\n try {\n const absPath = getCustomKubeConfigDirectory(clusterModel.id);\n if (!clusterModel.kubeConfig) {\n continue;\n }\n // take the embedded kubeconfig and dump it into a file\n fs_extra__WEBPACK_IMPORTED_MODULE_1___default().writeFileSync(absPath, clusterModel.kubeConfig, { encoding: \"utf-8\", mode: 0o600 });\n clusterModel.kubeConfigPath = absPath;\n clusterModel.contextName = (0,_common_kube_helpers__WEBPACK_IMPORTED_MODULE_2__.loadConfigFromFileSync)(clusterModel.kubeConfigPath).config.getCurrentContext();\n delete clusterModel.kubeConfig;\n }\n catch (error) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Failed to migrate Kubeconfig for cluster \"${clusterModel.id}\", removing clusterModel...`, error);\n continue;\n }\n /**\n * migrate cluster icon\n */\n try {\n if ((_b = clusterModel.preferences) === null || _b === void 0 ? void 0 : _b.icon) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`migrating ${clusterModel.preferences.icon} for ${clusterModel.preferences.clusterName}`);\n const iconPath = clusterModel.preferences.icon.replace(\"store://\", \"\");\n const fileData = fs_extra__WEBPACK_IMPORTED_MODULE_1___default().readFileSync(path__WEBPACK_IMPORTED_MODULE_0___default().join(userDataPath, iconPath));\n clusterModel.preferences.icon = `data:;base64,${fileData.toString(\"base64\")}`;\n }\n else {\n (_c = clusterModel.preferences) === null || _c === void 0 ? true : delete _c.icon;\n }\n }\n catch (error) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Failed to migrate cluster icon for cluster \"${clusterModel.id}\"`, error);\n (_d = clusterModel.preferences) === null || _d === void 0 ? true : delete _d.icon;\n }\n migratedClusters.push(clusterModel);\n }\n store.set(\"clusters\", migratedClusters);\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/cluster-store/3.6.0-beta.1.ts?");
33051
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_kube_helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/kube-helpers */ \"./src/common/kube-helpers.ts\");\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/migrations/helpers.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable */ \"./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts\");\n/* harmony import */ var _common_app_paths_get_custom_kube_config_directory_get_custom_kube_config_directory_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable */ \"./src/common/app-paths/get-custom-kube-config-directory/get-custom-kube-config-directory.injectable.ts\");\n/* harmony import */ var _common_fs_read_file_sync_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/fs/read-file-sync.injectable */ \"./src/common/fs/read-file-sync.injectable.ts\");\n/* harmony import */ var _common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../common/path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Move embedded kubeconfig into separate file and add reference to it to cluster settings\n// convert file path cluster icons to their base64 encoded versions\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"3.6.0-beta.1\",\n run(store) {\n var _a, _b, _c, _d;\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_3__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n const kubeConfigsPath = di.inject(_common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n const getCustomKubeConfigDirectory = di.inject(_common_app_paths_get_custom_kube_config_directory_get_custom_kube_config_directory_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n const readFileSync = di.inject(_common_fs_read_file_sync_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n const joinPaths = di.inject(_common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n const storedClusters = (_a = store.get(\"clusters\")) !== null && _a !== void 0 ? _a : [];\n const migratedClusters = [];\n fs_extra__WEBPACK_IMPORTED_MODULE_0___default().ensureDirSync(kubeConfigsPath);\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(\"Number of clusters to migrate: \", storedClusters.length);\n for (const clusterModel of storedClusters) {\n /**\n * migrate kubeconfig\n */\n try {\n const absPath = getCustomKubeConfigDirectory(clusterModel.id);\n if (!clusterModel.kubeConfig) {\n continue;\n }\n // take the embedded kubeconfig and dump it into a file\n fs_extra__WEBPACK_IMPORTED_MODULE_0___default().writeFileSync(absPath, clusterModel.kubeConfig, { encoding: \"utf-8\", mode: 0o600 });\n clusterModel.kubeConfigPath = absPath;\n clusterModel.contextName = (0,_common_kube_helpers__WEBPACK_IMPORTED_MODULE_1__.loadConfigFromString)(readFileSync(absPath)).config.getCurrentContext();\n delete clusterModel.kubeConfig;\n }\n catch (error) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Failed to migrate Kubeconfig for cluster \"${clusterModel.id}\", removing clusterModel...`, error);\n continue;\n }\n /**\n * migrate cluster icon\n */\n try {\n if ((_b = clusterModel.preferences) === null || _b === void 0 ? void 0 : _b.icon) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`migrating ${clusterModel.preferences.icon} for ${clusterModel.preferences.clusterName}`);\n const iconPath = clusterModel.preferences.icon.replace(\"store://\", \"\");\n const fileData = fs_extra__WEBPACK_IMPORTED_MODULE_0___default().readFileSync(joinPaths(userDataPath, iconPath));\n clusterModel.preferences.icon = `data:;base64,${fileData.toString(\"base64\")}`;\n }\n else {\n (_c = clusterModel.preferences) === null || _c === void 0 ? true : delete _c.icon;\n }\n }\n catch (error) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Failed to migrate cluster icon for cluster \"${clusterModel.id}\"`, error);\n (_d = clusterModel.preferences) === null || _d === void 0 ? true : delete _d.icon;\n }\n migratedClusters.push(clusterModel);\n }\n store.set(\"clusters\", migratedClusters);\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/cluster-store/3.6.0-beta.1.ts?");
32997
33052
 
32998
33053
  /***/ }),
32999
33054
 
@@ -33004,7 +33059,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33004
33059
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33005
33060
 
33006
33061
  "use strict";
33007
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"5.0.0-beta.10\",\n run(store) {\n var _a, _b, _c;\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_2__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]);\n try {\n const workspaceData = fs_extra__WEBPACK_IMPORTED_MODULE_1___default().readJsonSync(path__WEBPACK_IMPORTED_MODULE_0___default().join(userDataPath, \"lens-workspace-store.json\"));\n const workspaces = new Map(); // mapping from WorkspaceId to name\n for (const { id, name } of workspaceData.workspaces) {\n workspaces.set(id, name);\n }\n const clusters = (_a = store.get(\"clusters\")) !== null && _a !== void 0 ? _a : [];\n for (const cluster of clusters) {\n if (cluster.workspace) {\n const workspace = workspaces.get(cluster.workspace);\n if (workspace) {\n ((_b = cluster.labels) !== null && _b !== void 0 ? _b : (cluster.labels = {})).workspace = workspace;\n }\n }\n }\n store.set(\"clusters\", clusters);\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_4__.isErrnoException)(error) && !(error.code === \"ENOENT\" && ((_c = error.path) === null || _c === void 0 ? void 0 : _c.endsWith(\"lens-workspace-store.json\")))) {\n // ignore lens-workspace-store.json being missing\n throw error;\n }\n }\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/cluster-store/5.0.0-beta.10.ts?");
33062
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"5.0.0-beta.10\",\n run(store) {\n var _a, _b, _c;\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_1__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n const joinPaths = di.inject(_common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n try {\n const workspaceData = fs_extra__WEBPACK_IMPORTED_MODULE_0___default().readJsonSync(joinPaths(userDataPath, \"lens-workspace-store.json\"));\n const workspaces = new Map(); // mapping from WorkspaceId to name\n for (const { id, name } of workspaceData.workspaces) {\n workspaces.set(id, name);\n }\n const clusters = (_a = store.get(\"clusters\")) !== null && _a !== void 0 ? _a : [];\n for (const cluster of clusters) {\n if (cluster.workspace) {\n const workspace = workspaces.get(cluster.workspace);\n if (workspace) {\n ((_b = cluster.labels) !== null && _b !== void 0 ? _b : (cluster.labels = {})).workspace = workspace;\n }\n }\n }\n store.set(\"clusters\", clusters);\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_3__.isErrnoException)(error) && !(error.code === \"ENOENT\" && ((_c = error.path) === null || _c === void 0 ? void 0 : _c.endsWith(\"lens-workspace-store.json\")))) {\n // ignore lens-workspace-store.json being missing\n throw error;\n }\n }\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/cluster-store/5.0.0-beta.10.ts?");
33008
33063
 
33009
33064
  /***/ }),
33010
33065
 
@@ -33015,7 +33070,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33015
33070
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33016
33071
 
33017
33072
  "use strict";
33018
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers */ \"./src/migrations/helpers.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/migrations/utils.ts\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nfunction mergePrometheusPreferences(left, right) {\n if (left.prometheus && left.prometheusProvider) {\n return {\n prometheus: left.prometheus,\n prometheusProvider: left.prometheusProvider,\n };\n }\n if (right.prometheus && right.prometheusProvider) {\n return {\n prometheus: right.prometheus,\n prometheusProvider: right.prometheusProvider,\n };\n }\n return {};\n}\nfunction mergePreferences(left, right) {\n var _a, _b;\n return {\n terminalCWD: left.terminalCWD || right.terminalCWD || undefined,\n clusterName: left.clusterName || right.clusterName || undefined,\n iconOrder: left.iconOrder || right.iconOrder || undefined,\n icon: left.icon || right.icon || undefined,\n httpsProxy: left.httpsProxy || right.httpsProxy || undefined,\n hiddenMetrics: mergeSet((_a = left.hiddenMetrics) !== null && _a !== void 0 ? _a : [], (_b = right.hiddenMetrics) !== null && _b !== void 0 ? _b : []),\n ...mergePrometheusPreferences(left, right),\n };\n}\nfunction mergeLabels(left, right) {\n return {\n ...right,\n ...left,\n };\n}\nfunction mergeSet(...iterables) {\n const res = new Set();\n for (const iterable of iterables) {\n for (const val of iterable) {\n if (val) {\n res.add(val);\n }\n }\n }\n return [...res];\n}\nfunction mergeClusterModel(prev, right) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return {\n id: prev.id,\n kubeConfigPath: prev.kubeConfigPath,\n contextName: prev.contextName,\n preferences: mergePreferences((_a = prev.preferences) !== null && _a !== void 0 ? _a : {}, (_b = right.preferences) !== null && _b !== void 0 ? _b : {}),\n metadata: prev.metadata,\n labels: mergeLabels((_c = prev.labels) !== null && _c !== void 0 ? _c : {}, (_d = right.labels) !== null && _d !== void 0 ? _d : {}),\n accessibleNamespaces: mergeSet((_e = prev.accessibleNamespaces) !== null && _e !== void 0 ? _e : [], (_f = right.accessibleNamespaces) !== null && _f !== void 0 ? _f : []),\n workspace: prev.workspace || right.workspace,\n workspaces: mergeSet([prev.workspace, right.workspace], (_g = prev.workspaces) !== null && _g !== void 0 ? _g : [], (_h = right.workspaces) !== null && _h !== void 0 ? _h : []),\n };\n}\nfunction moveStorageFolder({ folder, newId, oldId }) {\n const oldPath = path__WEBPACK_IMPORTED_MODULE_2___default().resolve(folder, `${oldId}.json`);\n const newPath = path__WEBPACK_IMPORTED_MODULE_2___default().resolve(folder, `${newId}.json`);\n try {\n (0,fs_extra__WEBPACK_IMPORTED_MODULE_3__.moveSync)(oldPath, newPath);\n }\n catch (error) {\n if (String(error).includes(\"dest already exists\")) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.migrationLog)(`Multiple old lens-local-storage files for newId=${newId}. Removing ${oldId}.json`);\n (0,fs_extra__WEBPACK_IMPORTED_MODULE_3__.removeSync)(oldPath);\n }\n }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"5.0.0-beta.13\",\n run(store) {\n var _a;\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_4__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n const folder = path__WEBPACK_IMPORTED_MODULE_2___default().resolve(userDataPath, \"lens-local-storage\");\n const oldClusters = (_a = store.get(\"clusters\")) !== null && _a !== void 0 ? _a : [];\n const clusters = new Map();\n for (const { id: oldId, ...cluster } of oldClusters) {\n const newId = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.generateNewIdFor)(cluster);\n const newCluster = clusters.get(newId);\n if (newCluster) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.migrationLog)(`Duplicate entries for ${newId}`, { oldId });\n clusters.set(newId, mergeClusterModel(newCluster, cluster));\n }\n else {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.migrationLog)(`First entry for ${newId}`, { oldId });\n clusters.set(newId, {\n ...cluster,\n id: newId,\n workspaces: [cluster.workspace].filter(_common_utils__WEBPACK_IMPORTED_MODULE_6__.isDefined),\n });\n moveStorageFolder({ folder, newId, oldId });\n }\n }\n store.set(\"clusters\", [...clusters.values()]);\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/cluster-store/5.0.0-beta.13.ts?");
33073
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers */ \"./src/migrations/helpers.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils */ \"./src/migrations/utils.ts\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! fs-extra */ \"./node_modules/fs-extra/lib/index.js\");\n/* harmony import */ var fs_extra__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(fs_extra__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nfunction mergePrometheusPreferences(left, right) {\n if (left.prometheus && left.prometheusProvider) {\n return {\n prometheus: left.prometheus,\n prometheusProvider: left.prometheusProvider,\n };\n }\n if (right.prometheus && right.prometheusProvider) {\n return {\n prometheus: right.prometheus,\n prometheusProvider: right.prometheusProvider,\n };\n }\n return {};\n}\nfunction mergePreferences(left, right) {\n var _a, _b;\n return {\n terminalCWD: left.terminalCWD || right.terminalCWD || undefined,\n clusterName: left.clusterName || right.clusterName || undefined,\n iconOrder: left.iconOrder || right.iconOrder || undefined,\n icon: left.icon || right.icon || undefined,\n httpsProxy: left.httpsProxy || right.httpsProxy || undefined,\n hiddenMetrics: mergeSet((_a = left.hiddenMetrics) !== null && _a !== void 0 ? _a : [], (_b = right.hiddenMetrics) !== null && _b !== void 0 ? _b : []),\n ...mergePrometheusPreferences(left, right),\n };\n}\nfunction mergeLabels(left, right) {\n return {\n ...right,\n ...left,\n };\n}\nfunction mergeSet(...iterables) {\n const res = new Set();\n for (const iterable of iterables) {\n for (const val of iterable) {\n if (val) {\n res.add(val);\n }\n }\n }\n return [...res];\n}\nfunction mergeClusterModel(prev, right) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n return {\n id: prev.id,\n kubeConfigPath: prev.kubeConfigPath,\n contextName: prev.contextName,\n preferences: mergePreferences((_a = prev.preferences) !== null && _a !== void 0 ? _a : {}, (_b = right.preferences) !== null && _b !== void 0 ? _b : {}),\n metadata: prev.metadata,\n labels: mergeLabels((_c = prev.labels) !== null && _c !== void 0 ? _c : {}, (_d = right.labels) !== null && _d !== void 0 ? _d : {}),\n accessibleNamespaces: mergeSet((_e = prev.accessibleNamespaces) !== null && _e !== void 0 ? _e : [], (_f = right.accessibleNamespaces) !== null && _f !== void 0 ? _f : []),\n workspace: prev.workspace || right.workspace,\n workspaces: mergeSet([prev.workspace, right.workspace], (_g = prev.workspaces) !== null && _g !== void 0 ? _g : [], (_h = right.workspaces) !== null && _h !== void 0 ? _h : []),\n };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"5.0.0-beta.13\",\n run(store) {\n var _a;\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_3__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n const joinPaths = di.inject(_common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n const moveStorageFolder = ({ folder, newId, oldId }) => {\n const oldPath = joinPaths(folder, `${oldId}.json`);\n const newPath = joinPaths(folder, `${newId}.json`);\n try {\n (0,fs_extra__WEBPACK_IMPORTED_MODULE_2__.moveSync)(oldPath, newPath);\n }\n catch (error) {\n if (String(error).includes(\"dest already exists\")) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.migrationLog)(`Multiple old lens-local-storage files for newId=${newId}. Removing ${oldId}.json`);\n (0,fs_extra__WEBPACK_IMPORTED_MODULE_2__.removeSync)(oldPath);\n }\n }\n };\n const folder = joinPaths(userDataPath, \"lens-local-storage\");\n const oldClusters = (_a = store.get(\"clusters\")) !== null && _a !== void 0 ? _a : [];\n const clusters = new Map();\n for (const { id: oldId, ...cluster } of oldClusters) {\n const newId = (0,_utils__WEBPACK_IMPORTED_MODULE_1__.generateNewIdFor)(cluster);\n const newCluster = clusters.get(newId);\n if (newCluster) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.migrationLog)(`Duplicate entries for ${newId}`, { oldId });\n clusters.set(newId, mergeClusterModel(newCluster, cluster));\n }\n else {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_0__.migrationLog)(`First entry for ${newId}`, { oldId });\n clusters.set(newId, {\n ...cluster,\n id: newId,\n workspaces: [cluster.workspace].filter(_common_utils__WEBPACK_IMPORTED_MODULE_5__.isDefined),\n });\n moveStorageFolder({ folder, newId, oldId });\n }\n }\n store.set(\"clusters\", [...clusters.values()]);\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/cluster-store/5.0.0-beta.13.ts?");
33019
33074
 
33020
33075
  /***/ }),
33021
33076
 
@@ -33081,7 +33136,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33081
33136
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33082
33137
 
33083
33138
  "use strict";
33084
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ \"fs\");\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers */ \"./src/migrations/helpers.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable */ \"./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"5.0.3-beta.1\",\n run(store) {\n var _a, _b;\n try {\n const { syncKubeconfigEntries = [], ...preferences } = (_a = store.get(\"preferences\")) !== null && _a !== void 0 ? _a : {};\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n const kubeConfigsPath = di.inject(_common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n const { clusters = [] } = (_b = JSON.parse((0,fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync)(path__WEBPACK_IMPORTED_MODULE_1___default().resolve(userDataPath, \"lens-cluster-store.json\"), \"utf-8\"))) !== null && _b !== void 0 ? _b : {};\n const extensionDataDir = path__WEBPACK_IMPORTED_MODULE_1___default().resolve(userDataPath, \"extension_data\");\n const syncPaths = new Set(syncKubeconfigEntries.map(s => s.filePath));\n syncPaths.add(path__WEBPACK_IMPORTED_MODULE_1___default().join(os__WEBPACK_IMPORTED_MODULE_2___default().homedir(), \".kube\"));\n for (const cluster of clusters) {\n if (!cluster.kubeConfigPath) {\n continue;\n }\n const dirOfKubeconfig = path__WEBPACK_IMPORTED_MODULE_1___default().dirname(cluster.kubeConfigPath);\n if (dirOfKubeconfig === kubeConfigsPath) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath is under the stored KubeConfig folder`);\n continue;\n }\n if (syncPaths.has(cluster.kubeConfigPath) || syncPaths.has(dirOfKubeconfig)) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath is already being synced`);\n continue;\n }\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_4__.isLogicalChildPath)(extensionDataDir, cluster.kubeConfigPath)) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath is placed under an extension_data folder`);\n continue;\n }\n if (!(0,fs__WEBPACK_IMPORTED_MODULE_0__.existsSync)(cluster.kubeConfigPath)) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath no longer exists`);\n continue;\n }\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(`Adding ${cluster.kubeConfigPath} from ${cluster.id} to sync paths`);\n syncPaths.add(cluster.kubeConfigPath);\n }\n const updatedSyncEntries = [...syncPaths].map(filePath => ({ filePath }));\n (0,_helpers__WEBPACK_IMPORTED_MODULE_3__.migrationLog)(\"Final list of synced paths\", updatedSyncEntries);\n store.set(\"preferences\", { ...preferences, syncKubeconfigEntries: updatedSyncEntries });\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_4__.isErrnoException)(error) && error.code !== \"ENOENT\") {\n // ignore files being missing\n throw error;\n }\n }\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/user-store/5.0.3-beta.1.ts?");
33139
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fs */ \"fs\");\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! os */ \"os\");\n/* harmony import */ var os__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(os__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../helpers */ \"./src/migrations/helpers.ts\");\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable */ \"./src/common/app-paths/directory-for-user-data/directory-for-user-data.injectable.ts\");\n/* harmony import */ var _common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable */ \"./src/common/app-paths/directory-for-kube-configs/directory-for-kube-configs.injectable.ts\");\n/* harmony import */ var _common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/* harmony import */ var _common_path_is_logical_child_path_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../common/path/is-logical-child-path.injectable */ \"./src/common/path/is-logical-child-path.injectable.ts\");\n/* harmony import */ var _common_path_get_dirname_injectable__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../common/path/get-dirname.injectable */ \"./src/common/path/get-dirname.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n version: \"5.0.3-beta.1\",\n run(store) {\n var _a, _b;\n try {\n const { syncKubeconfigEntries = [], ...preferences } = (_a = store.get(\"preferences\")) !== null && _a !== void 0 ? _a : {};\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_4__.getLegacyGlobalDiForExtensionApi)();\n const userDataPath = di.inject(_common_app_paths_directory_for_user_data_directory_for_user_data_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n const kubeConfigsPath = di.inject(_common_app_paths_directory_for_kube_configs_directory_for_kube_configs_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n const joinPaths = di.inject(_common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]);\n const isLogicalChildPath = di.inject(_common_path_is_logical_child_path_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]);\n const getDirnameOfPath = di.inject(_common_path_get_dirname_injectable__WEBPACK_IMPORTED_MODULE_9__[\"default\"]);\n const { clusters = [] } = (_b = JSON.parse((0,fs__WEBPACK_IMPORTED_MODULE_0__.readFileSync)(joinPaths(userDataPath, \"lens-cluster-store.json\"), \"utf-8\"))) !== null && _b !== void 0 ? _b : {};\n const extensionDataDir = joinPaths(userDataPath, \"extension_data\");\n const syncPaths = new Set(syncKubeconfigEntries.map(s => s.filePath));\n syncPaths.add(joinPaths(os__WEBPACK_IMPORTED_MODULE_1___default().homedir(), \".kube\"));\n for (const cluster of clusters) {\n if (!cluster.kubeConfigPath) {\n continue;\n }\n const dirOfKubeconfig = getDirnameOfPath(cluster.kubeConfigPath);\n if (dirOfKubeconfig === kubeConfigsPath) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath is under the stored KubeConfig folder`);\n continue;\n }\n if (syncPaths.has(cluster.kubeConfigPath) || syncPaths.has(dirOfKubeconfig)) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath is already being synced`);\n continue;\n }\n if (isLogicalChildPath(extensionDataDir, cluster.kubeConfigPath)) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath is placed under an extension_data folder`);\n continue;\n }\n if (!(0,fs__WEBPACK_IMPORTED_MODULE_0__.existsSync)(cluster.kubeConfigPath)) {\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Skipping ${cluster.id} because kubeConfigPath no longer exists`);\n continue;\n }\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(`Adding ${cluster.kubeConfigPath} from ${cluster.id} to sync paths`);\n syncPaths.add(cluster.kubeConfigPath);\n }\n const updatedSyncEntries = [...syncPaths].map(filePath => ({ filePath }));\n (0,_helpers__WEBPACK_IMPORTED_MODULE_2__.migrationLog)(\"Final list of synced paths\", updatedSyncEntries);\n store.set(\"preferences\", { ...preferences, syncKubeconfigEntries: updatedSyncEntries });\n }\n catch (error) {\n if ((0,_common_utils__WEBPACK_IMPORTED_MODULE_3__.isErrnoException)(error) && error.code !== \"ENOENT\") {\n // ignore files being missing\n throw error;\n }\n }\n },\n});\n\n\n//# sourceURL=webpack://open-lens/./src/migrations/user-store/5.0.3-beta.1.ts?");
33085
33140
 
33086
33141
  /***/ }),
33087
33142
 
@@ -33587,7 +33642,29 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33587
33642
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33588
33643
 
33589
33644
  "use strict";
33590
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Animate\": () => (/* binding */ Animate),\n/* harmony export */ \"NonInjectedAnimate\": () => (/* binding */ NonInjectedAnimate)\n/* harmony export */ });\n/* harmony import */ var _animate_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animate.scss */ \"./src/renderer/components/animate/animate.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./request-animation-frame.injectable */ \"./src/renderer/components/animate/request-animation-frame.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar DefaultedAnimate_1;\n\n\n\n\n\n\n\nlet DefaultedAnimate = DefaultedAnimate_1 = class DefaultedAnimate extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"isVisible\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: !!this.props.enter\n });\n Object.defineProperty(this, \"statusClassName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n enter: false,\n leave: false,\n }\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_5__.makeObservable)(this);\n }\n get contentElem() {\n return react__WEBPACK_IMPORTED_MODULE_1__.Children.only(this.props.children);\n }\n toggle(enter) {\n if (enter) {\n this.enter();\n }\n else {\n this.leave();\n }\n }\n componentDidMount() {\n this.toggle(this.props.enter);\n }\n componentDidUpdate(prevProps) {\n const { enter } = this.props;\n if (prevProps.enter !== enter) {\n this.toggle(enter);\n }\n }\n enter() {\n this.isVisible = true; // triggers render() to apply css-animation in existing dom\n this.props.requestAnimationFrame(() => {\n this.statusClassName.enter = true;\n this.props.onEnter();\n });\n }\n leave() {\n if (!this.isVisible)\n return;\n this.statusClassName.leave = true;\n this.props.onLeave();\n this.resetAfterLeaveDuration();\n }\n resetAfterLeaveDuration() {\n setTimeout(() => this.reset(), this.props.leaveDuration);\n }\n reset() {\n this.isVisible = false;\n this.statusClassName.enter = false;\n this.statusClassName.leave = false;\n }\n render() {\n if (!this.isVisible) {\n return null;\n }\n const { name, enterDuration, leaveDuration } = this.props;\n const contentElem = this.contentElem;\n const cssVarsForAnimation = {\n \"--enter-duration\": `${enterDuration}ms`,\n \"--leave-duration\": `${leaveDuration}ms`,\n };\n return react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(contentElem, {\n className: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(\"Animate\", name, contentElem.props.className, this.statusClassName),\n children: contentElem.props.children,\n style: {\n ...contentElem.props.style,\n ...cssVarsForAnimation,\n },\n });\n }\n};\nObject.defineProperty(DefaultedAnimate, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n name: \"opacity\",\n enter: true,\n onEnter: _utils__WEBPACK_IMPORTED_MODULE_2__.noop,\n onLeave: _utils__WEBPACK_IMPORTED_MODULE_2__.noop,\n enterDuration: 100,\n leaveDuration: 100,\n }\n});\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_5__.observable,\n __metadata(\"design:type\", Object)\n], DefaultedAnimate.prototype, \"isVisible\", void 0);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_5__.observable,\n __metadata(\"design:type\", Object)\n], DefaultedAnimate.prototype, \"statusClassName\", void 0);\nDefaultedAnimate = DefaultedAnimate_1 = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_6__.observer,\n __metadata(\"design:paramtypes\", [Object])\n], DefaultedAnimate);\nconst NonInjectedAnimate = (props) => react__WEBPACK_IMPORTED_MODULE_1__.createElement(DefaultedAnimate, { ...props });\nconst Animate = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__.withInjectables)(NonInjectedAnimate, {\n getProps: (di, props) => ({\n requestAnimationFrame: di.inject(_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n ...props,\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/animate.tsx?");
33645
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Animate\": () => (/* binding */ Animate)\n/* harmony export */ });\n/* harmony import */ var _animate_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animate.scss */ \"./src/renderer/components/animate/animate.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./request-animation-frame.injectable */ \"./src/renderer/components/animate/request-animation-frame.injectable.ts\");\n/* harmony import */ var _default_enter_duration_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./default-enter-duration.injectable */ \"./src/renderer/components/animate/default-enter-duration.injectable.ts\");\n/* harmony import */ var _default_leave_duration_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./default-leave-duration.injectable */ \"./src/renderer/components/animate/default-leave-duration.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nconst NonInjectedAnimate = (propsAndDeps) => {\n const { requestAnimationFrame, defaultEnterDuration, defaultLeaveDuration, ...props } = propsAndDeps;\n const { children, enter = true, enterDuration = defaultEnterDuration, leaveDuration = defaultLeaveDuration, name = \"opacity\", onEnter: onEnterHandler = (_utils__WEBPACK_IMPORTED_MODULE_2__.noop), onLeave: onLeaveHandler = (_utils__WEBPACK_IMPORTED_MODULE_2__.noop), } = props;\n const [isVisible, setIsVisible] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showClassNameEnter, setShowClassNameEnter] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showClassNameLeave, setShowClassNameLeave] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const contentElem = react__WEBPACK_IMPORTED_MODULE_1__.Children.only(children);\n const classNames = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.cssNames)(\"Animate\", name, contentElem.props.className, {\n enter: showClassNameEnter,\n leave: showClassNameLeave,\n });\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {\n if (enter) {\n setIsVisible(true);\n requestAnimationFrame(() => {\n setShowClassNameEnter(true);\n onEnterHandler();\n });\n return _utils__WEBPACK_IMPORTED_MODULE_2__.noop;\n }\n else if (isVisible) {\n setShowClassNameLeave(true);\n onLeaveHandler();\n // Cleanup after duration\n const handle = setTimeout(() => {\n setIsVisible(false);\n setShowClassNameEnter(false);\n setShowClassNameLeave(false);\n }, leaveDuration);\n return () => clearTimeout(handle);\n }\n return _utils__WEBPACK_IMPORTED_MODULE_2__.noop;\n }, [enter]);\n if (!isVisible) {\n return null;\n }\n const cssVarsForAnimation = {\n \"--enter-duration\": `${enterDuration}ms`,\n \"--leave-duration\": `${leaveDuration}ms`,\n };\n return react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(contentElem, {\n className: classNames,\n children: contentElem.props.children,\n style: {\n ...contentElem.props.style,\n ...cssVarsForAnimation,\n },\n });\n};\nconst Animate = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_3__.withInjectables)(NonInjectedAnimate, {\n getProps: (di, props) => ({\n ...props,\n requestAnimationFrame: di.inject(_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n defaultEnterDuration: di.inject(_default_enter_duration_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n defaultLeaveDuration: di.inject(_default_leave_duration_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/animate.tsx?");
33646
+
33647
+ /***/ }),
33648
+
33649
+ /***/ "./src/renderer/components/animate/default-enter-duration.injectable.ts":
33650
+ /*!******************************************************************************!*\
33651
+ !*** ./src/renderer/components/animate/default-enter-duration.injectable.ts ***!
33652
+ \******************************************************************************/
33653
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33654
+
33655
+ "use strict";
33656
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst defaultEnterDurationForAnimatedInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"default-enter-duration-for-animated\",\n instantiate: () => 100,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultEnterDurationForAnimatedInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/default-enter-duration.injectable.ts?");
33657
+
33658
+ /***/ }),
33659
+
33660
+ /***/ "./src/renderer/components/animate/default-leave-duration.injectable.ts":
33661
+ /*!******************************************************************************!*\
33662
+ !*** ./src/renderer/components/animate/default-leave-duration.injectable.ts ***!
33663
+ \******************************************************************************/
33664
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33665
+
33666
+ "use strict";
33667
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst defaultLeaveDurationForAnimatedInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"default-leave-duration-for-animated\",\n instantiate: () => 100,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaultLeaveDurationForAnimatedInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/default-leave-duration.injectable.ts?");
33591
33668
 
33592
33669
  /***/ }),
33593
33670
 
@@ -33598,7 +33675,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33598
33675
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33599
33676
 
33600
33677
  "use strict";
33601
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Animate\": () => (/* reexport safe */ _animate__WEBPACK_IMPORTED_MODULE_0__.Animate),\n/* harmony export */ \"NonInjectedAnimate\": () => (/* reexport safe */ _animate__WEBPACK_IMPORTED_MODULE_0__.NonInjectedAnimate)\n/* harmony export */ });\n/* harmony import */ var _animate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animate */ \"./src/renderer/components/animate/animate.tsx\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/index.ts?");
33678
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Animate\": () => (/* reexport safe */ _animate__WEBPACK_IMPORTED_MODULE_0__.Animate)\n/* harmony export */ });\n/* harmony import */ var _animate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animate */ \"./src/renderer/components/animate/animate.tsx\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/index.ts?");
33602
33679
 
33603
33680
  /***/ }),
33604
33681
 
@@ -33609,7 +33686,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33609
33686
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33610
33687
 
33611
33688
  "use strict";
33612
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst requestAnimationFrameInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"request-animation-frame\",\n instantiate: () => (callback) => requestAnimationFrame(callback),\n causesSideEffects: true,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (requestAnimationFrameInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/request-animation-frame.injectable.ts?");
33689
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst requestAnimationFrameInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"request-animation-frame\",\n // NOTE: this cannot be simplified to just `=> requestAnimationFrame` else an Illegal Invocation error will be thrown\n instantiate: () => (callback) => requestAnimationFrame(callback),\n causesSideEffects: true,\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (requestAnimationFrameInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/animate/request-animation-frame.injectable.ts?");
33613
33690
 
33614
33691
  /***/ }),
33615
33692
 
@@ -33818,7 +33895,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
33818
33895
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
33819
33896
 
33820
33897
  "use strict";
33821
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Dialog\": () => (/* binding */ Dialog)\n/* harmony export */ });\n/* harmony import */ var _dialog_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dialog.scss */ \"./src/renderer/components/dialog/dialog.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _animate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../animate */ \"./src/renderer/components/animate/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _navigation_observable_history_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../navigation/observable-history.injectable */ \"./src/renderer/navigation/observable-history.injectable.ts\");\n/* harmony import */ var _animate_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../animate/request-animation-frame.injectable */ \"./src/renderer/components/animate/request-animation-frame.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NonInjectedDialog_1;\n\n\n\n\n\n\n\n\n\n\nlet NonInjectedDialog = NonInjectedDialog_1 = class NonInjectedDialog extends react__WEBPACK_IMPORTED_MODULE_1__.PureComponent {\n constructor() {\n var _a;\n super(...arguments);\n Object.defineProperty(this, \"contentElem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: react__WEBPACK_IMPORTED_MODULE_1__.createRef()\n });\n Object.defineProperty(this, \"ref\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: react__WEBPACK_IMPORTED_MODULE_1__.createRef()\n });\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n isOpen: (_a = this.props.isOpen) !== null && _a !== void 0 ? _a : false,\n }\n });\n Object.defineProperty(this, \"onOpen\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n var _a, _b;\n (_b = (_a = this.props).onOpen) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (!this.props.pinned) {\n if (this.elem)\n this.elem.addEventListener(\"click\", this.onClickOutside);\n // Using document.body target to handle keydown event before Drawer does\n document.body.addEventListener(\"keydown\", this.onEscapeKey);\n }\n }\n });\n Object.defineProperty(this, \"onClose\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n var _a, _b;\n (_b = (_a = this.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (!this.props.pinned) {\n if (this.elem)\n this.elem.removeEventListener(\"click\", this.onClickOutside);\n document.body.removeEventListener(\"keydown\", this.onEscapeKey);\n }\n }\n });\n Object.defineProperty(this, \"onEscapeKey\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n const escapeKey = evt.code === \"Escape\";\n if (escapeKey) {\n this.close();\n evt.stopPropagation();\n }\n }\n });\n Object.defineProperty(this, \"onClickOutside\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n var _a;\n const target = evt.target;\n if (!((_a = this.contentElem.current) === null || _a === void 0 ? void 0 : _a.contains(target))) {\n this.close();\n evt.stopPropagation();\n }\n }\n });\n }\n get elem() {\n return this.ref.current;\n }\n get isOpen() {\n return this.state.isOpen;\n }\n componentDidMount() {\n if (this.isOpen) {\n this.onOpen();\n }\n (0,mobx_react__WEBPACK_IMPORTED_MODULE_8__.disposeOnUnmount)(this, [\n (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.props.navigation.toString(), () => this.close()),\n ]);\n }\n componentDidUpdate(prevProps) {\n const { isOpen } = this.props;\n if (isOpen !== prevProps.isOpen) {\n this.toggle(isOpen !== null && isOpen !== void 0 ? isOpen : false);\n }\n }\n componentWillUnmount() {\n if (this.isOpen)\n this.onClose();\n }\n toggle(isOpen) {\n if (isOpen)\n this.open();\n else\n this.close();\n }\n open() {\n var _a, _b;\n this.props.requestAnimationFrame(this.onOpen); // wait for render(), bind close-event to this.elem\n this.setState({ isOpen: true });\n (_b = (_a = this.props).open) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n close() {\n var _a, _b;\n this.onClose(); // must be first to get access to dialog's content from outside\n this.setState({ isOpen: false });\n (_b = (_a = this.props).close) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n render() {\n const { modal, animated, pinned, \"data-testid\": testId } = this.props;\n let { className } = this.props;\n className = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"Dialog flex center\", className, { modal, pinned });\n let dialog = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: className, onClick: _utils__WEBPACK_IMPORTED_MODULE_4__.stopPropagation, ref: this.ref, \"data-testid\": testId },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"box\", ref: this.contentElem }, this.props.children)));\n if (animated) {\n dialog = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_animate__WEBPACK_IMPORTED_MODULE_3__.Animate, { enter: this.isOpen, name: \"opacity-scale\" }, dialog));\n }\n else if (!this.isOpen) {\n return null;\n }\n return (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(dialog, document.body);\n }\n};\nObject.defineProperty(NonInjectedDialog, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n isOpen: false,\n open: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n close: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n onOpen: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n onClose: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n modal: true,\n animated: true,\n pinned: false,\n }\n});\nNonInjectedDialog = NonInjectedDialog_1 = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_8__.observer\n], NonInjectedDialog);\nconst Dialog = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__.withInjectables)((props) => react__WEBPACK_IMPORTED_MODULE_1__.createElement(NonInjectedDialog, { ...props }), {\n getProps: (di, props) => ({\n ...props,\n navigation: di.inject(_navigation_observable_history_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n requestAnimationFrame: di.inject(_animate_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dialog/dialog.tsx?");
33898
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Dialog\": () => (/* binding */ Dialog)\n/* harmony export */ });\n/* harmony import */ var _dialog_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dialog.scss */ \"./src/renderer/components/dialog/dialog.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var mobx_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! mobx-react */ \"./node_modules/mobx-react/dist/mobxreact.esm.js\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _animate__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../animate */ \"./src/renderer/components/animate/index.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _navigation_observable_history_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../navigation/observable-history.injectable */ \"./src/renderer/navigation/observable-history.injectable.ts\");\n/* harmony import */ var _animate_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../animate/request-animation-frame.injectable */ \"./src/renderer/components/animate/request-animation-frame.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NonInjectedDialog_1;\n\n\n\n\n\n\n\n\n\n\nlet NonInjectedDialog = NonInjectedDialog_1 = class NonInjectedDialog extends react__WEBPACK_IMPORTED_MODULE_1__.PureComponent {\n constructor() {\n var _a;\n super(...arguments);\n Object.defineProperty(this, \"contentElem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: react__WEBPACK_IMPORTED_MODULE_1__.createRef()\n });\n Object.defineProperty(this, \"ref\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: react__WEBPACK_IMPORTED_MODULE_1__.createRef()\n });\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n isOpen: (_a = this.props.isOpen) !== null && _a !== void 0 ? _a : false,\n }\n });\n Object.defineProperty(this, \"onOpen\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n var _a, _b;\n (_b = (_a = this.props).onOpen) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (!this.props.pinned) {\n if (this.elem)\n this.elem.addEventListener(\"click\", this.onClickOutside);\n // Using document.body target to handle keydown event before Drawer does\n document.body.addEventListener(\"keydown\", this.onEscapeKey);\n }\n }\n });\n Object.defineProperty(this, \"onClose\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => {\n var _a, _b;\n (_b = (_a = this.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (!this.props.pinned) {\n if (this.elem)\n this.elem.removeEventListener(\"click\", this.onClickOutside);\n document.body.removeEventListener(\"keydown\", this.onEscapeKey);\n }\n }\n });\n Object.defineProperty(this, \"onEscapeKey\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n const escapeKey = evt.code === \"Escape\";\n if (escapeKey) {\n this.close();\n evt.stopPropagation();\n }\n }\n });\n Object.defineProperty(this, \"onClickOutside\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: (evt) => {\n var _a;\n const target = evt.target;\n if (!((_a = this.contentElem.current) === null || _a === void 0 ? void 0 : _a.contains(target))) {\n this.close();\n evt.stopPropagation();\n }\n }\n });\n }\n get elem() {\n return this.ref.current;\n }\n get isOpen() {\n return this.state.isOpen;\n }\n componentDidMount() {\n if (this.isOpen) {\n this.onOpen();\n }\n (0,mobx_react__WEBPACK_IMPORTED_MODULE_8__.disposeOnUnmount)(this, [\n (0,mobx__WEBPACK_IMPORTED_MODULE_9__.reaction)(() => this.props.navigation.toString(), () => this.close()),\n ]);\n }\n componentDidUpdate(prevProps) {\n const { isOpen } = this.props;\n if (isOpen !== prevProps.isOpen) {\n this.toggle(isOpen !== null && isOpen !== void 0 ? isOpen : false);\n }\n }\n componentWillUnmount() {\n if (this.isOpen)\n this.onClose();\n }\n toggle(isOpen) {\n if (isOpen)\n this.open();\n else\n this.close();\n }\n open() {\n var _a, _b;\n this.props.requestAnimationFrame(this.onOpen); // wait for render(), bind close-event to this.elem\n this.setState({ isOpen: true });\n (_b = (_a = this.props).open) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n close() {\n var _a, _b;\n this.onClose(); // must be first to get access to dialog's content from outside\n this.setState({ isOpen: false });\n (_b = (_a = this.props).close) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n render() {\n const { modal, animated, pinned, \"data-testid\": testId, className } = this.props;\n let dialog = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.cssNames)(\"Dialog flex center\", className, { modal, pinned }), onClick: _utils__WEBPACK_IMPORTED_MODULE_4__.stopPropagation, ref: this.ref, \"data-testid\": testId },\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"div\", { className: \"box\", ref: this.contentElem }, this.props.children)));\n if (animated) {\n dialog = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_animate__WEBPACK_IMPORTED_MODULE_3__.Animate, { enter: this.isOpen, name: \"opacity-scale\" }, dialog));\n }\n else if (!this.isOpen) {\n return null;\n }\n return (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(dialog, document.body);\n }\n};\nObject.defineProperty(NonInjectedDialog, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n isOpen: false,\n open: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n close: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n onOpen: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n onClose: _utils__WEBPACK_IMPORTED_MODULE_4__.noop,\n modal: true,\n animated: true,\n pinned: false,\n }\n});\nNonInjectedDialog = NonInjectedDialog_1 = __decorate([\n mobx_react__WEBPACK_IMPORTED_MODULE_8__.observer\n], NonInjectedDialog);\nconst Dialog = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_5__.withInjectables)((props) => react__WEBPACK_IMPORTED_MODULE_1__.createElement(NonInjectedDialog, { ...props }), {\n getProps: (di, props) => ({\n ...props,\n navigation: di.inject(_navigation_observable_history_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n requestAnimationFrame: di.inject(_animate_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n }),\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dialog/dialog.tsx?");
33822
33899
 
33823
33900
  /***/ }),
33824
33901
 
@@ -34269,18 +34346,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
34269
34346
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34270
34347
 
34271
34348
  "use strict";
34272
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ \"./src/renderer/components/dock/upgrade-chart/store.ts\");\n/* harmony import */ var _dock_tab_store_create_dock_tab_store_injectable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dock-tab-store/create-dock-tab-store.injectable */ \"./src/renderer/components/dock/dock-tab-store/create-dock-tab-store.injectable.ts\");\n/* harmony import */ var _utils_create_storage_create_storage_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../utils/create-storage/create-storage.injectable */ \"./src/renderer/utils/create-storage/create-storage.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\nconst upgradeChartTabStoreInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"upgrade-chart-tab-store\",\n instantiate: (di) => {\n const createDockTabStore = di.inject(_dock_tab_store_create_dock_tab_store_injectable__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n return new _store__WEBPACK_IMPORTED_MODULE_1__.UpgradeChartTabStore({\n createStorage: di.inject(_utils_create_storage_create_storage_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n valuesStore: createDockTabStore(),\n });\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (upgradeChartTabStoreInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/upgrade-chart/store.injectable.ts?");
34273
-
34274
- /***/ }),
34275
-
34276
- /***/ "./src/renderer/components/dock/upgrade-chart/store.ts":
34277
- /*!*************************************************************!*\
34278
- !*** ./src/renderer/components/dock/upgrade-chart/store.ts ***!
34279
- \*************************************************************/
34280
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
34281
-
34282
- "use strict";
34283
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"UpgradeChartTabStore\": () => (/* binding */ UpgradeChartTabStore)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _dock_tab_store_dock_tab_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dock-tab-store/dock-tab.store */ \"./src/renderer/components/dock/dock-tab-store/dock-tab.store.ts\");\n/* harmony import */ var _common_k8s_api_endpoints_helm_releases_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../common/k8s-api/endpoints/helm-releases.api */ \"./src/common/k8s-api/endpoints/helm-releases.api.ts\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! assert */ \"assert\");\n/* harmony import */ var assert__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(assert__WEBPACK_IMPORTED_MODULE_2__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n 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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (undefined && undefined.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\n\n\n\n\nclass UpgradeChartTabStore extends _dock_tab_store_dock_tab_store__WEBPACK_IMPORTED_MODULE_0__.DockTabStore {\n constructor(dependencies) {\n super(dependencies, {\n storageKey: \"chart_releases\",\n });\n Object.defineProperty(this, \"dependencies\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: dependencies\n });\n (0,mobx__WEBPACK_IMPORTED_MODULE_3__.makeObservable)(this);\n }\n get releaseNameReverseLookup() {\n return new Map(this.getAllData().map(([id, { releaseName }]) => [releaseName, id]));\n }\n get values() {\n return this.dependencies.valuesStore;\n }\n async reloadValues(tabId) {\n this.values.clearData(tabId); // reset\n const data = this.getData(tabId);\n assert__WEBPACK_IMPORTED_MODULE_2___default()(data, \"cannot reload values if no data\");\n const { releaseName, releaseNamespace } = data;\n const values = await (0,_common_k8s_api_endpoints_helm_releases_api__WEBPACK_IMPORTED_MODULE_1__.getReleaseValues)(releaseName, releaseNamespace, true);\n this.values.setData(tabId, values);\n }\n getTabIdByRelease(releaseName) {\n return this.releaseNameReverseLookup.get(releaseName);\n }\n}\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.computed,\n __metadata(\"design:type\", Map),\n __metadata(\"design:paramtypes\", [])\n], UpgradeChartTabStore.prototype, \"releaseNameReverseLookup\", null);\n__decorate([\n mobx__WEBPACK_IMPORTED_MODULE_3__.action,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", Promise)\n], UpgradeChartTabStore.prototype, \"reloadValues\", null);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/upgrade-chart/store.ts?");
34349
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dock_tab_store_create_dock_tab_store_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dock-tab-store/create-dock-tab-store.injectable */ \"./src/renderer/components/dock/dock-tab-store/create-dock-tab-store.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\nconst upgradeChartTabStoreInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"upgrade-chart-tab-store\",\n instantiate: (di) => {\n const createDockTabStore = di.inject(_dock_tab_store_create_dock_tab_store_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n return createDockTabStore({\n storageKey: \"chart_releases\",\n });\n },\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (upgradeChartTabStoreInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/dock/upgrade-chart/store.injectable.ts?");
34284
34350
 
34285
34351
  /***/ }),
34286
34352
 
@@ -35094,7 +35160,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35094
35160
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35095
35161
 
35096
35162
  "use strict";
35097
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Menu\": () => (/* binding */ Menu),\n/* harmony export */ \"MenuContext\": () => (/* binding */ MenuContext),\n/* harmony export */ \"MenuItem\": () => (/* binding */ MenuItem),\n/* harmony export */ \"SubMenu\": () => (/* binding */ SubMenu)\n/* harmony export */ });\n/* harmony import */ var _menu_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./menu.scss */ \"./src/renderer/components/menu/menu.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _animate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../animate */ \"./src/renderer/components/animate/index.ts\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/isEqual */ \"./node_modules/lodash/isEqual.js\");\n/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual__WEBPACK_IMPORTED_MODULE_6__);\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nconst MenuContext = react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);\nconst defaultPropsMenu = {\n position: { right: true, bottom: true },\n autoFocus: false,\n usePortal: false,\n closeOnClickItem: true,\n closeOnClickOutside: true,\n closeOnScroll: false,\n toggleEvent: \"click\",\n animated: true,\n};\nclass Menu extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"opener\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"elem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"items\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"refreshPosition\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => requestAnimationFrame(() => {\n if (!this.props.usePortal || !this.opener || !this.elem) {\n return;\n }\n const openerClientRect = this.opener.getBoundingClientRect();\n let { left: openerLeft, top: openerTop, bottom: openerBottom, right: openerRight } = this.opener.getBoundingClientRect();\n const withScroll = window.getComputedStyle(this.elem).position !== \"fixed\";\n // window global scroll corrections\n if (withScroll) {\n openerLeft += window.pageXOffset;\n openerTop += window.pageYOffset;\n openerRight = openerLeft + openerClientRect.width;\n openerBottom = openerTop + openerClientRect.height;\n }\n const extraMargin = this.props.usePortal ? 8 : 0;\n const { width: menuWidth, height: menuHeight } = this.elem.getBoundingClientRect();\n const rightSideOfMenu = openerLeft + menuWidth;\n const renderMenuLeft = rightSideOfMenu > window.innerWidth;\n const menuOnLeftSidePosition = `${openerRight - this.elem.offsetWidth}px`;\n const menuOnRightSidePosition = `${openerLeft}px`;\n const bottomOfMenu = openerBottom + extraMargin + menuHeight;\n const renderMenuOnTop = bottomOfMenu > window.innerHeight;\n const menuOnTopPosition = `${openerTop - this.elem.offsetHeight - extraMargin}px`;\n const menuOnBottomPosition = `${openerBottom + extraMargin}px`;\n this.setState({\n position: {\n top: renderMenuOnTop,\n bottom: !renderMenuOnTop,\n left: renderMenuLeft,\n right: !renderMenuLeft,\n },\n menuStyle: {\n top: renderMenuOnTop ? menuOnTopPosition : menuOnBottomPosition,\n left: renderMenuLeft ? menuOnLeftSidePosition : menuOnRightSidePosition,\n },\n });\n })\n });\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get isOpen() {\n return !!this.props.isOpen;\n }\n get isClosed() {\n return !this.isOpen;\n }\n componentDidMount() {\n const { usePortal, htmlFor, toggleEvent, } = this.props;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const elem = this.elem;\n if (!usePortal) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const parent = elem.parentElement;\n const position = window.getComputedStyle(parent).position;\n if (position === \"static\")\n parent.style.position = \"relative\";\n }\n else if (this.isOpen) {\n this.refreshPosition();\n }\n if (htmlFor) {\n this.opener = document.getElementById(htmlFor); // might not exist in sub-menus\n }\n if (this.opener) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.opener.addEventListener(toggleEvent, this.toggle);\n this.opener.addEventListener(\"keydown\", this.onKeyDown);\n }\n window.addEventListener(\"resize\", this.onWindowResize);\n window.addEventListener(\"click\", this.onClickOutside, true);\n window.addEventListener(\"scroll\", this.onScrollOutside, true);\n window.addEventListener(\"contextmenu\", this.onContextMenu, true);\n window.addEventListener(\"blur\", this.onBlur, true);\n }\n componentWillUnmount() {\n if (this.opener) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.opener.removeEventListener(this.props.toggleEvent, this.toggle);\n this.opener.removeEventListener(\"keydown\", this.onKeyDown);\n }\n window.removeEventListener(\"resize\", this.onWindowResize);\n window.removeEventListener(\"click\", this.onClickOutside, true);\n window.removeEventListener(\"scroll\", this.onScrollOutside, true);\n }\n componentDidUpdate(prevProps) {\n if (!lodash_isEqual__WEBPACK_IMPORTED_MODULE_6___default()(prevProps.children, this.props.children)) {\n this.refreshPosition();\n }\n }\n get focusableItems() {\n return Object.values(this.items).filter(item => item.isFocusable);\n }\n get focusedItem() {\n return this.focusableItems.find(item => item.elem === document.activeElement);\n }\n focusNextItem(reverse = false) {\n var _a, _b;\n const items = this.focusableItems;\n const activeIndex = items.findIndex(item => item === this.focusedItem);\n if (!items.length) {\n return;\n }\n if (activeIndex > -1) {\n let nextItem = reverse ? items[activeIndex - 1] : items[activeIndex + 1];\n if (!nextItem)\n nextItem = items[activeIndex];\n (_a = nextItem.elem) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = items[0].elem) === null || _b === void 0 ? void 0 : _b.focus();\n }\n }\n open() {\n if (this.isOpen) {\n return;\n }\n this.props.open();\n this.refreshPosition();\n if (this.props.autoFocus) {\n this.focusNextItem();\n }\n }\n close() {\n if (this.isClosed) {\n return;\n }\n this.props.close();\n }\n toggle() {\n if (this.isOpen) {\n this.close();\n }\n else {\n this.open();\n }\n }\n onKeyDown(evt) {\n var _a;\n if (!this.isOpen)\n return;\n switch (evt.code) {\n case \"Escape\":\n this.close();\n break;\n case \"Space\":\n // fallthrough\n case \"Enter\": {\n const focusedItem = this.focusedItem;\n if (focusedItem) {\n (_a = focusedItem.elem) === null || _a === void 0 ? void 0 : _a.click();\n evt.preventDefault();\n }\n break;\n }\n case \"ArrowUp\":\n this.focusNextItem(true);\n break;\n case \"ArrowDown\":\n this.focusNextItem();\n break;\n }\n }\n onContextMenu() {\n this.close();\n }\n onWindowResize() {\n if (!this.isOpen)\n return;\n this.refreshPosition();\n }\n onScrollOutside(evt) {\n if (!this.isOpen)\n return;\n const target = evt.target;\n const { usePortal, closeOnScroll } = this.props;\n if (usePortal && closeOnScroll && !target.contains(this.elem)) {\n this.close();\n }\n }\n onClickOutside(evt) {\n var _a;\n if (!this.props.closeOnClickOutside)\n return;\n if (!this.isOpen || evt.target === document.body)\n return;\n const target = evt.target;\n const clickInsideMenu = (_a = this.elem) === null || _a === void 0 ? void 0 : _a.contains(target);\n const clickOnOpener = this.opener && this.opener.contains(target);\n if (!clickInsideMenu && !clickOnOpener) {\n this.close();\n }\n }\n onBlur() {\n var _a;\n if (!this.isOpen)\n return; // Prevents triggering document.activeElement for each <Menu/> instance\n if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.tagName) == \"IFRAME\") {\n this.close();\n }\n }\n bindRef(elem) {\n this.elem = elem;\n }\n bindItemRef(item, index) {\n this.items[index] = item;\n }\n render() {\n var _a, _b, _c, _d;\n const { position, id, animated } = this.props;\n let { className, usePortal } = this.props;\n className = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"Menu\", className, this.state.position || position, {\n portal: usePortal,\n });\n let children = this.props.children;\n if (children.type === react__WEBPACK_IMPORTED_MODULE_1__.Fragment) {\n children = children.props.children;\n }\n const menuItems = react__WEBPACK_IMPORTED_MODULE_1__.Children.toArray(children).map((item, index) => {\n if (typeof item === \"object\" && item.type === MenuItem) {\n return react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(item, {\n ref: (item) => this.bindItemRef(item, index),\n });\n }\n return item;\n });\n let menu = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"ul\", { id: id, ref: this.bindRef, className: className, style: {\n left: (_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.menuStyle) === null || _b === void 0 ? void 0 : _b.left,\n top: (_d = (_c = this.state) === null || _c === void 0 ? void 0 : _c.menuStyle) === null || _d === void 0 ? void 0 : _d.top,\n }, onKeyDown: this.onKeyDown }, menuItems));\n if (animated) {\n menu = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_animate__WEBPACK_IMPORTED_MODULE_4__.Animate, { enter: this.isOpen }, menu));\n }\n menu = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(MenuContext.Provider, { value: this }, menu));\n if (usePortal === true)\n usePortal = document.body;\n return usePortal instanceof HTMLElement\n ? (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(menu, usePortal)\n : menu;\n }\n}\nObject.defineProperty(Menu, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultPropsMenu\n});\nfunction SubMenu(props) {\n const { className, ...menuProps } = props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(Menu, { className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"SubMenu\", className), isOpen: true, open: _utils__WEBPACK_IMPORTED_MODULE_3__.noop, close: _utils__WEBPACK_IMPORTED_MODULE_3__.noop, position: {}, closeOnClickOutside: false, closeOnClickItem: false, ...menuProps }));\n}\nconst defaultPropsMenuItem = {\n onClick: _utils__WEBPACK_IMPORTED_MODULE_3__.noop,\n};\nclass MenuItem extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"elem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get isFocusable() {\n const { disabled, spacer } = this.props;\n return !(disabled || spacer);\n }\n get isLink() {\n return !!this.props.href;\n }\n onClick(evt) {\n const menu = this.context;\n const { spacer, onClick } = this.props;\n if (spacer)\n return;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n onClick(evt);\n if (menu.props.closeOnClickItem && !evt.defaultPrevented) {\n menu.close();\n }\n }\n bindRef(elem) {\n this.elem = elem;\n }\n render() {\n const { className, disabled, active, spacer, icon, children, ...props } = this.props;\n const iconProps = {};\n if (icon) {\n if (typeof icon === \"string\") {\n iconProps.material = icon;\n }\n else {\n Object.assign(iconProps, icon);\n }\n }\n const elemProps = {\n tabIndex: this.isFocusable ? 0 : -1,\n ...props,\n className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"MenuItem\", className, { disabled, active, spacer }),\n onClick: this.onClick,\n children: icon ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_icon__WEBPACK_IMPORTED_MODULE_5__.Icon, { ...iconProps }),\n \" \",\n children)) : children,\n ref: this.bindRef,\n };\n if (this.isLink) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { ...elemProps });\n }\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"li\", { ...elemProps });\n }\n}\nObject.defineProperty(MenuItem, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultPropsMenuItem\n});\nObject.defineProperty(MenuItem, \"contextType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: MenuContext\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/menu/menu.tsx?");
35163
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Menu\": () => (/* binding */ Menu),\n/* harmony export */ \"MenuContext\": () => (/* binding */ MenuContext),\n/* harmony export */ \"MenuItem\": () => (/* binding */ MenuItem),\n/* harmony export */ \"SubMenu\": () => (/* binding */ SubMenu)\n/* harmony export */ });\n/* harmony import */ var _menu_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./menu.scss */ \"./src/renderer/components/menu/menu.scss\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _animate__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../animate */ \"./src/renderer/components/animate/index.ts\");\n/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../icon */ \"./src/renderer/components/icon/index.ts\");\n/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/isEqual */ \"./node_modules/lodash/isEqual.js\");\n/* harmony import */ var lodash_isEqual__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_isEqual__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ogre-tools/injectable-react */ \"./node_modules/@ogre-tools/injectable-react/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _animate_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../animate/request-animation-frame.injectable */ \"./src/renderer/components/animate/request-animation-frame.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\nconst MenuContext = react__WEBPACK_IMPORTED_MODULE_1__.createContext(null);\nconst defaultPropsMenu = {\n position: { right: true, bottom: true },\n autoFocus: false,\n usePortal: false,\n closeOnClickItem: true,\n closeOnClickOutside: true,\n closeOnScroll: false,\n toggleEvent: \"click\",\n animated: true,\n};\nclass NonInjectedMenu extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"opener\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"elem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n Object.defineProperty(this, \"items\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"state\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {}\n });\n Object.defineProperty(this, \"refreshPosition\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: () => requestAnimationFrame(() => {\n if (!this.props.usePortal || !this.opener || !this.elem) {\n return;\n }\n const openerClientRect = this.opener.getBoundingClientRect();\n let { left: openerLeft, top: openerTop, bottom: openerBottom, right: openerRight } = this.opener.getBoundingClientRect();\n const withScroll = window.getComputedStyle(this.elem).position !== \"fixed\";\n // window global scroll corrections\n if (withScroll) {\n openerLeft += window.pageXOffset;\n openerTop += window.pageYOffset;\n openerRight = openerLeft + openerClientRect.width;\n openerBottom = openerTop + openerClientRect.height;\n }\n const extraMargin = this.props.usePortal ? 8 : 0;\n const { width: menuWidth, height: menuHeight } = this.elem.getBoundingClientRect();\n const rightSideOfMenu = openerLeft + menuWidth;\n const renderMenuLeft = rightSideOfMenu > window.innerWidth;\n const menuOnLeftSidePosition = `${openerRight - this.elem.offsetWidth}px`;\n const menuOnRightSidePosition = `${openerLeft}px`;\n const bottomOfMenu = openerBottom + extraMargin + menuHeight;\n const renderMenuOnTop = bottomOfMenu > window.innerHeight;\n const menuOnTopPosition = `${openerTop - this.elem.offsetHeight - extraMargin}px`;\n const menuOnBottomPosition = `${openerBottom + extraMargin}px`;\n this.setState({\n position: {\n top: renderMenuOnTop,\n bottom: !renderMenuOnTop,\n left: renderMenuLeft,\n right: !renderMenuLeft,\n },\n menuStyle: {\n top: renderMenuOnTop ? menuOnTopPosition : menuOnBottomPosition,\n left: renderMenuLeft ? menuOnLeftSidePosition : menuOnRightSidePosition,\n },\n });\n })\n });\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get isOpen() {\n return !!this.props.isOpen;\n }\n get isClosed() {\n return !this.isOpen;\n }\n componentDidMount() {\n const { usePortal, htmlFor, toggleEvent, } = this.props;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const elem = this.elem;\n if (!usePortal) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const parent = elem.parentElement;\n const position = window.getComputedStyle(parent).position;\n if (position === \"static\")\n parent.style.position = \"relative\";\n }\n else if (this.isOpen) {\n this.refreshPosition();\n }\n if (htmlFor) {\n this.opener = document.getElementById(htmlFor); // might not exist in sub-menus\n }\n if (this.opener) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.opener.addEventListener(toggleEvent, this.toggle);\n this.opener.addEventListener(\"keydown\", this.onKeyDown);\n }\n window.addEventListener(\"resize\", this.onWindowResize);\n window.addEventListener(\"click\", this.onClickOutside, true);\n window.addEventListener(\"scroll\", this.onScrollOutside, true);\n window.addEventListener(\"contextmenu\", this.onContextMenu, true);\n window.addEventListener(\"blur\", this.onBlur, true);\n }\n componentWillUnmount() {\n if (this.opener) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.opener.removeEventListener(this.props.toggleEvent, this.toggle);\n this.opener.removeEventListener(\"keydown\", this.onKeyDown);\n }\n window.removeEventListener(\"resize\", this.onWindowResize);\n window.removeEventListener(\"click\", this.onClickOutside, true);\n window.removeEventListener(\"scroll\", this.onScrollOutside, true);\n }\n componentDidUpdate(prevProps) {\n if (!lodash_isEqual__WEBPACK_IMPORTED_MODULE_6___default()(prevProps.children, this.props.children)) {\n this.refreshPosition();\n }\n }\n get focusableItems() {\n return Object.values(this.items).filter(item => item.isFocusable);\n }\n get focusedItem() {\n return this.focusableItems.find(item => item.elem === document.activeElement);\n }\n focusNextItem(reverse = false) {\n var _a, _b;\n const items = this.focusableItems;\n const activeIndex = items.findIndex(item => item === this.focusedItem);\n if (!items.length) {\n return;\n }\n if (activeIndex > -1) {\n let nextItem = reverse ? items[activeIndex - 1] : items[activeIndex + 1];\n if (!nextItem)\n nextItem = items[activeIndex];\n (_a = nextItem.elem) === null || _a === void 0 ? void 0 : _a.focus();\n }\n else {\n (_b = items[0].elem) === null || _b === void 0 ? void 0 : _b.focus();\n }\n }\n open() {\n if (this.isOpen) {\n return;\n }\n this.props.open();\n this.refreshPosition();\n if (this.props.autoFocus) {\n this.focusNextItem();\n }\n }\n close() {\n if (this.isClosed) {\n return;\n }\n this.props.close();\n }\n toggle() {\n if (this.isOpen) {\n this.close();\n }\n else {\n this.open();\n }\n }\n onKeyDown(evt) {\n var _a;\n if (!this.isOpen)\n return;\n switch (evt.code) {\n case \"Escape\":\n this.close();\n break;\n case \"Space\":\n // fallthrough\n case \"Enter\": {\n const focusedItem = this.focusedItem;\n if (focusedItem) {\n (_a = focusedItem.elem) === null || _a === void 0 ? void 0 : _a.click();\n evt.preventDefault();\n }\n break;\n }\n case \"ArrowUp\":\n this.focusNextItem(true);\n break;\n case \"ArrowDown\":\n this.focusNextItem();\n break;\n }\n }\n onContextMenu() {\n this.close();\n }\n onWindowResize() {\n if (!this.isOpen)\n return;\n this.refreshPosition();\n }\n onScrollOutside(evt) {\n if (!this.isOpen)\n return;\n const target = evt.target;\n const { usePortal, closeOnScroll } = this.props;\n if (usePortal && closeOnScroll && !target.contains(this.elem)) {\n this.close();\n }\n }\n onClickOutside(evt) {\n var _a;\n if (!this.props.closeOnClickOutside)\n return;\n if (!this.isOpen || evt.target === document.body)\n return;\n const target = evt.target;\n const clickInsideMenu = (_a = this.elem) === null || _a === void 0 ? void 0 : _a.contains(target);\n const clickOnOpener = this.opener && this.opener.contains(target);\n if (!clickInsideMenu && !clickOnOpener) {\n this.close();\n }\n }\n onBlur() {\n var _a;\n if (!this.isOpen)\n return; // Prevents triggering document.activeElement for each <Menu/> instance\n if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.tagName) == \"IFRAME\") {\n this.close();\n }\n }\n bindRef(elem) {\n this.elem = elem;\n }\n bindItemRef(item, index) {\n this.items[index] = item;\n }\n render() {\n var _a, _b, _c, _d;\n const { position, id, animated } = this.props;\n let { className, usePortal } = this.props;\n className = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"Menu\", className, this.state.position || position, {\n portal: usePortal,\n });\n let children = this.props.children;\n if (children.type === react__WEBPACK_IMPORTED_MODULE_1__.Fragment) {\n children = children.props.children;\n }\n const menuItems = react__WEBPACK_IMPORTED_MODULE_1__.Children.toArray(children).map((item, index) => {\n if (typeof item === \"object\" && item.type === MenuItem) {\n return react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(item, {\n ref: (item) => this.bindItemRef(item, index),\n });\n }\n return item;\n });\n let menu = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"ul\", { id: id, ref: this.bindRef, className: className, style: {\n left: (_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.menuStyle) === null || _b === void 0 ? void 0 : _b.left,\n top: (_d = (_c = this.state) === null || _c === void 0 ? void 0 : _c.menuStyle) === null || _d === void 0 ? void 0 : _d.top,\n }, onKeyDown: this.onKeyDown }, menuItems));\n if (animated) {\n menu = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(_animate__WEBPACK_IMPORTED_MODULE_4__.Animate, { enter: this.isOpen }, menu));\n }\n menu = (react__WEBPACK_IMPORTED_MODULE_1__.createElement(MenuContext.Provider, { value: this }, menu));\n if (usePortal === true)\n usePortal = document.body;\n return usePortal instanceof HTMLElement\n ? (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(menu, usePortal)\n : menu;\n }\n}\nObject.defineProperty(NonInjectedMenu, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultPropsMenu\n});\nconst Menu = (0,_ogre_tools_injectable_react__WEBPACK_IMPORTED_MODULE_7__.withInjectables)(NonInjectedMenu, {\n getProps: (di, props) => ({\n ...props,\n requestAnimationFrame: di.inject(_animate_request_animation_frame_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n }),\n});\nfunction SubMenu(props) {\n const { className, ...menuProps } = props;\n return (react__WEBPACK_IMPORTED_MODULE_1__.createElement(Menu, { className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"SubMenu\", className), isOpen: true, open: _utils__WEBPACK_IMPORTED_MODULE_3__.noop, close: _utils__WEBPACK_IMPORTED_MODULE_3__.noop, position: {}, closeOnClickOutside: false, closeOnClickItem: false, ...menuProps }));\n}\nconst defaultPropsMenuItem = {\n onClick: _utils__WEBPACK_IMPORTED_MODULE_3__.noop,\n};\nclass MenuItem extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n constructor(props) {\n super(props);\n Object.defineProperty(this, \"elem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: null\n });\n (0,_utils__WEBPACK_IMPORTED_MODULE_3__.autoBind)(this);\n }\n get isFocusable() {\n const { disabled, spacer } = this.props;\n return !(disabled || spacer);\n }\n get isLink() {\n return !!this.props.href;\n }\n onClick(evt) {\n const menu = this.context;\n const { spacer, onClick } = this.props;\n if (spacer)\n return;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n onClick(evt);\n if (menu.props.closeOnClickItem && !evt.defaultPrevented) {\n menu.close();\n }\n }\n bindRef(elem) {\n this.elem = elem;\n }\n render() {\n const { className, disabled, active, spacer, icon, children, ...props } = this.props;\n const iconProps = {};\n if (icon) {\n if (typeof icon === \"string\") {\n iconProps.material = icon;\n }\n else {\n Object.assign(iconProps, icon);\n }\n }\n const elemProps = {\n tabIndex: this.isFocusable ? 0 : -1,\n ...props,\n className: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.cssNames)(\"MenuItem\", className, { disabled, active, spacer }),\n onClick: this.onClick,\n children: icon ? (react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null,\n react__WEBPACK_IMPORTED_MODULE_1__.createElement(_icon__WEBPACK_IMPORTED_MODULE_5__.Icon, { ...iconProps }),\n \" \",\n children)) : children,\n ref: this.bindRef,\n };\n if (this.isLink) {\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"a\", { ...elemProps });\n }\n return react__WEBPACK_IMPORTED_MODULE_1__.createElement(\"li\", { ...elemProps });\n }\n}\nObject.defineProperty(MenuItem, \"defaultProps\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: defaultPropsMenuItem\n});\nObject.defineProperty(MenuItem, \"contextType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: MenuContext\n});\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/components/menu/menu.tsx?");
35098
35164
 
35099
35165
  /***/ }),
35100
35166
 
@@ -35688,7 +35754,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35688
35754
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35689
35755
 
35690
35756
  "use strict";
35691
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"emitOpenAppMenuAsContextMenu\": () => (/* binding */ emitOpenAppMenuAsContextMenu),\n/* harmony export */ \"emitWindowLocationChanged\": () => (/* binding */ emitWindowLocationChanged),\n/* harmony export */ \"requestClearClusterAsDeleting\": () => (/* binding */ requestClearClusterAsDeleting),\n/* harmony export */ \"requestClusterActivation\": () => (/* binding */ requestClusterActivation),\n/* harmony export */ \"requestClusterDisconnection\": () => (/* binding */ requestClusterDisconnection),\n/* harmony export */ \"requestDeleteCluster\": () => (/* binding */ requestDeleteCluster),\n/* harmony export */ \"requestExtensionLoaderInitialState\": () => (/* binding */ requestExtensionLoaderInitialState),\n/* harmony export */ \"requestInitialClusterStates\": () => (/* binding */ requestInitialClusterStates),\n/* harmony export */ \"requestInitialExtensionDiscovery\": () => (/* binding */ requestInitialExtensionDiscovery),\n/* harmony export */ \"requestKubectlApplyAll\": () => (/* binding */ requestKubectlApplyAll),\n/* harmony export */ \"requestKubectlDeleteAll\": () => (/* binding */ requestKubectlDeleteAll),\n/* harmony export */ \"requestOpenFilePickingDialog\": () => (/* binding */ requestOpenFilePickingDialog),\n/* harmony export */ \"requestSetClusterAsDeleting\": () => (/* binding */ requestSetClusterAsDeleting),\n/* harmony export */ \"requestSetClusterFrameId\": () => (/* binding */ requestSetClusterFrameId),\n/* harmony export */ \"requestWindowAction\": () => (/* binding */ requestWindowAction)\n/* harmony export */ });\n/* harmony import */ var _common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/ipc/cluster */ \"./src/common/ipc/cluster.ts\");\n/* harmony import */ var _common_ipc_window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/ipc/window */ \"./src/common/ipc/window.ts\");\n/* harmony import */ var _common_ipc_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/ipc/dialog */ \"./src/common/ipc/dialog.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _utils_channel_ipc_renderer_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/channel/ipc-renderer.injectable */ \"./src/renderer/utils/channel/ipc-renderer.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nfunction requestMain(channel, ...args) {\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.getLegacyGlobalDiForExtensionApi)();\n const ipcRenderer = di.inject(_utils_channel_ipc_renderer_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n return ipcRenderer.invoke(channel, ...args.map(_utils__WEBPACK_IMPORTED_MODULE_4__.toJS));\n}\nfunction emitToMain(channel, ...args) {\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.getLegacyGlobalDiForExtensionApi)();\n const ipcRenderer = di.inject(_utils_channel_ipc_renderer_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n return ipcRenderer.send(channel, ...args.map(_utils__WEBPACK_IMPORTED_MODULE_4__.toJS));\n}\nfunction emitOpenAppMenuAsContextMenu() {\n emitToMain(_common_ipc_window__WEBPACK_IMPORTED_MODULE_1__.windowOpenAppMenuAsContextMenuChannel);\n}\nfunction emitWindowLocationChanged(location) {\n emitToMain(_common_ipc_window__WEBPACK_IMPORTED_MODULE_1__.windowLocationChangedChannel, location);\n}\nfunction requestWindowAction(type) {\n return requestMain(_common_ipc_window__WEBPACK_IMPORTED_MODULE_1__.windowActionHandleChannel, type);\n}\nfunction requestOpenFilePickingDialog(opts) {\n return requestMain(_common_ipc_dialog__WEBPACK_IMPORTED_MODULE_2__.openFilePickingDialogChannel, opts);\n}\nfunction requestSetClusterFrameId(clusterId) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterSetFrameIdHandler, clusterId);\n}\nfunction requestClusterActivation(clusterId, force) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterActivateHandler, clusterId, force);\n}\nfunction requestClusterDisconnection(clusterId, force) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterDisconnectHandler, clusterId, force);\n}\nfunction requestSetClusterAsDeleting(clusterId) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterSetDeletingHandler, clusterId);\n}\nfunction requestClearClusterAsDeleting(clusterId) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterClearDeletingHandler, clusterId);\n}\nfunction requestDeleteCluster(clusterId) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterDeleteHandler, clusterId);\n}\nfunction requestInitialClusterStates() {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterStates);\n}\nfunction requestKubectlApplyAll(clusterId, resources, kubectlArgs) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterKubectlApplyAllHandler, clusterId, resources, kubectlArgs);\n}\nfunction requestKubectlDeleteAll(clusterId, resources, kubectlArgs) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterKubectlDeleteAllHandler, clusterId, resources, kubectlArgs);\n}\nfunction requestInitialExtensionDiscovery() {\n return requestMain(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_3__.extensionDiscoveryStateChannel);\n}\nfunction requestExtensionLoaderInitialState() {\n return requestMain(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_3__.extensionLoaderFromMainChannel);\n}\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/ipc/index.ts?");
35757
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"emitOpenAppMenuAsContextMenu\": () => (/* binding */ emitOpenAppMenuAsContextMenu),\n/* harmony export */ \"emitWindowLocationChanged\": () => (/* binding */ emitWindowLocationChanged),\n/* harmony export */ \"requestClusterActivation\": () => (/* binding */ requestClusterActivation),\n/* harmony export */ \"requestClusterDisconnection\": () => (/* binding */ requestClusterDisconnection),\n/* harmony export */ \"requestExtensionLoaderInitialState\": () => (/* binding */ requestExtensionLoaderInitialState),\n/* harmony export */ \"requestInitialClusterStates\": () => (/* binding */ requestInitialClusterStates),\n/* harmony export */ \"requestInitialExtensionDiscovery\": () => (/* binding */ requestInitialExtensionDiscovery),\n/* harmony export */ \"requestKubectlApplyAll\": () => (/* binding */ requestKubectlApplyAll),\n/* harmony export */ \"requestKubectlDeleteAll\": () => (/* binding */ requestKubectlDeleteAll),\n/* harmony export */ \"requestOpenFilePickingDialog\": () => (/* binding */ requestOpenFilePickingDialog),\n/* harmony export */ \"requestSetClusterFrameId\": () => (/* binding */ requestSetClusterFrameId),\n/* harmony export */ \"requestWindowAction\": () => (/* binding */ requestWindowAction)\n/* harmony export */ });\n/* harmony import */ var _common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/ipc/cluster */ \"./src/common/ipc/cluster.ts\");\n/* harmony import */ var _common_ipc_window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/ipc/window */ \"./src/common/ipc/window.ts\");\n/* harmony import */ var _common_ipc_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/ipc/dialog */ \"./src/common/ipc/dialog.ts\");\n/* harmony import */ var _common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/ipc/extension-handling */ \"./src/common/ipc/extension-handling.ts\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ \"./src/renderer/utils/index.ts\");\n/* harmony import */ var _extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api */ \"./src/extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api.ts\");\n/* harmony import */ var _utils_channel_ipc_renderer_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/channel/ipc-renderer.injectable */ \"./src/renderer/utils/channel/ipc-renderer.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\nfunction requestMain(channel, ...args) {\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.getLegacyGlobalDiForExtensionApi)();\n const ipcRenderer = di.inject(_utils_channel_ipc_renderer_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n return ipcRenderer.invoke(channel, ...args.map(_utils__WEBPACK_IMPORTED_MODULE_4__.toJS));\n}\nfunction emitToMain(channel, ...args) {\n const di = (0,_extensions_as_legacy_globals_for_extension_api_legacy_global_di_for_extension_api__WEBPACK_IMPORTED_MODULE_5__.getLegacyGlobalDiForExtensionApi)();\n const ipcRenderer = di.inject(_utils_channel_ipc_renderer_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]);\n return ipcRenderer.send(channel, ...args.map(_utils__WEBPACK_IMPORTED_MODULE_4__.toJS));\n}\nfunction emitOpenAppMenuAsContextMenu() {\n emitToMain(_common_ipc_window__WEBPACK_IMPORTED_MODULE_1__.windowOpenAppMenuAsContextMenuChannel);\n}\nfunction emitWindowLocationChanged(location) {\n emitToMain(_common_ipc_window__WEBPACK_IMPORTED_MODULE_1__.windowLocationChangedChannel, location);\n}\nfunction requestWindowAction(type) {\n return requestMain(_common_ipc_window__WEBPACK_IMPORTED_MODULE_1__.windowActionHandleChannel, type);\n}\nfunction requestOpenFilePickingDialog(opts) {\n return requestMain(_common_ipc_dialog__WEBPACK_IMPORTED_MODULE_2__.openFilePickingDialogChannel, opts);\n}\nfunction requestSetClusterFrameId(clusterId) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterSetFrameIdHandler, clusterId);\n}\nfunction requestClusterActivation(clusterId, force) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterActivateHandler, clusterId, force);\n}\nfunction requestClusterDisconnection(clusterId, force) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterDisconnectHandler, clusterId, force);\n}\nfunction requestInitialClusterStates() {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterStates);\n}\nfunction requestKubectlApplyAll(clusterId, resources, kubectlArgs) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterKubectlApplyAllHandler, clusterId, resources, kubectlArgs);\n}\nfunction requestKubectlDeleteAll(clusterId, resources, kubectlArgs) {\n return requestMain(_common_ipc_cluster__WEBPACK_IMPORTED_MODULE_0__.clusterKubectlDeleteAllHandler, clusterId, resources, kubectlArgs);\n}\nfunction requestInitialExtensionDiscovery() {\n return requestMain(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_3__.extensionDiscoveryStateChannel);\n}\nfunction requestExtensionLoaderInitialState() {\n return requestMain(_common_ipc_extension_handling__WEBPACK_IMPORTED_MODULE_3__.extensionLoaderFromMainChannel);\n}\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/ipc/index.ts?");
35692
35758
 
35693
35759
  /***/ }),
35694
35760
 
@@ -35985,7 +36051,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35985
36051
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35986
36052
 
35987
36053
  "use strict";
35988
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_directory_for_lens_local_storage_directory_for_lens_local_storage_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable */ \"./src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts\");\n/* harmony import */ var _create_storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-storage */ \"./src/renderer/utils/create-storage/create-storage.ts\");\n/* harmony import */ var _common_fs_read_json_file_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/fs/read-json-file.injectable */ \"./src/common/fs/read-json-file.injectable.ts\");\n/* harmony import */ var _common_fs_write_json_file_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../common/fs/write-json-file.injectable */ \"./src/common/fs/write-json-file.injectable.ts\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _common_logger_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../common/logger.injectable */ \"./src/common/logger.injectable.ts\");\n/* harmony import */ var _common_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../common/path/get-absolute-path.injectable */ \"./src/common/path/get-absolute-path.injectable.ts\");\n/* harmony import */ var _cluster_frame_context_hosted_cluster_id_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../cluster-frame-context/hosted-cluster-id.injectable */ \"./src/renderer/cluster-frame-context/hosted-cluster-id.injectable.ts\");\n/* harmony import */ var _storage_save_delay_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./storage-save-delay.injectable */ \"./src/renderer/utils/create-storage/storage-save-delay.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\nconst createStorageInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-storage\",\n instantiate: (di) => (0,_create_storage__WEBPACK_IMPORTED_MODULE_2__.createStorage)({\n storage: (0,mobx__WEBPACK_IMPORTED_MODULE_9__.observable)({\n initialized: false,\n loaded: false,\n data: {},\n }),\n readJsonFile: di.inject(_common_fs_read_json_file_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n writeJsonFile: di.inject(_common_fs_write_json_file_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n logger: di.inject(_common_logger_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n directoryForLensLocalStorage: di.inject(_common_directory_for_lens_local_storage_directory_for_lens_local_storage_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n getAbsolutePath: di.inject(_common_path_get_absolute_path_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n hostedClusterId: di.inject(_cluster_frame_context_hosted_cluster_id_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n saveDelay: di.inject(_storage_save_delay_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n }),\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createStorageInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/create-storage/create-storage.injectable.ts?");
36054
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ogre-tools/injectable */ \"./node_modules/@ogre-tools/injectable/build/index.js\");\n/* harmony import */ var _ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_directory_for_lens_local_storage_directory_for_lens_local_storage_injectable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable */ \"./src/common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable.ts\");\n/* harmony import */ var _create_storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-storage */ \"./src/renderer/utils/create-storage/create-storage.ts\");\n/* harmony import */ var _common_fs_read_json_file_injectable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/fs/read-json-file.injectable */ \"./src/common/fs/read-json-file.injectable.ts\");\n/* harmony import */ var _common_fs_write_json_file_injectable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../common/fs/write-json-file.injectable */ \"./src/common/fs/write-json-file.injectable.ts\");\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _common_logger_injectable__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../common/logger.injectable */ \"./src/common/logger.injectable.ts\");\n/* harmony import */ var _cluster_frame_context_hosted_cluster_id_injectable__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../cluster-frame-context/hosted-cluster-id.injectable */ \"./src/renderer/cluster-frame-context/hosted-cluster-id.injectable.ts\");\n/* harmony import */ var _storage_save_delay_injectable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./storage-save-delay.injectable */ \"./src/renderer/utils/create-storage/storage-save-delay.injectable.ts\");\n/* harmony import */ var _common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../common/path/join-paths.injectable */ \"./src/common/path/join-paths.injectable.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\n\n\n\n\n\n\n\n\n\nconst createStorageInjectable = (0,_ogre_tools_injectable__WEBPACK_IMPORTED_MODULE_0__.getInjectable)({\n id: \"create-storage\",\n instantiate: (di) => (0,_create_storage__WEBPACK_IMPORTED_MODULE_2__.createStorage)({\n storage: (0,mobx__WEBPACK_IMPORTED_MODULE_9__.observable)({\n initialized: false,\n loaded: false,\n data: {},\n }),\n readJsonFile: di.inject(_common_fs_read_json_file_injectable__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n writeJsonFile: di.inject(_common_fs_write_json_file_injectable__WEBPACK_IMPORTED_MODULE_4__[\"default\"]),\n logger: di.inject(_common_logger_injectable__WEBPACK_IMPORTED_MODULE_5__[\"default\"]),\n directoryForLensLocalStorage: di.inject(_common_directory_for_lens_local_storage_directory_for_lens_local_storage_injectable__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n joinPaths: di.inject(_common_path_join_paths_injectable__WEBPACK_IMPORTED_MODULE_8__[\"default\"]),\n hostedClusterId: di.inject(_cluster_frame_context_hosted_cluster_id_injectable__WEBPACK_IMPORTED_MODULE_6__[\"default\"]),\n saveDelay: di.inject(_storage_save_delay_injectable__WEBPACK_IMPORTED_MODULE_7__[\"default\"]),\n }),\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createStorageInjectable);\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/create-storage/create-storage.injectable.ts?");
35989
36055
 
35990
36056
  /***/ }),
35991
36057
 
@@ -35996,7 +36062,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
35996
36062
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
35997
36063
 
35998
36064
  "use strict";
35999
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createStorage\": () => (/* binding */ createStorage)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/* harmony import */ var _common_vars__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/vars */ \"./src/common/vars.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Keeps window.localStorage state in external JSON-files.\n// Because app creates random port between restarts => storage session wiped out each time.\n\n\n\n/**\n * Creates a helper for saving data under the \"key\" intended for window.localStorage\n */\nconst createStorage = ({ storage, getAbsolutePath, logger, directoryForLensLocalStorage, readJsonFile, writeJsonFile, hostedClusterId, saveDelay, }) => (key, defaultValue) => {\n const { logPrefix } = _storageHelper__WEBPACK_IMPORTED_MODULE_0__.StorageHelper;\n if (!storage.initialized) {\n storage.initialized = true;\n (async () => {\n const filePath = getAbsolutePath(directoryForLensLocalStorage, `${hostedClusterId || \"app\"}.json`);\n try {\n storage.data = (await readJsonFile(filePath));\n }\n catch {\n // do nothing\n }\n finally {\n if (!_common_vars__WEBPACK_IMPORTED_MODULE_1__.isTestEnv) {\n logger.info(`${logPrefix} loading finished for ${filePath}`);\n }\n storage.loaded = true;\n }\n // bind auto-saving data changes to %storage-file.json\n (0,mobx__WEBPACK_IMPORTED_MODULE_2__.reaction)(() => (0,mobx__WEBPACK_IMPORTED_MODULE_2__.toJS)(storage.data), saveFile, {\n delay: saveDelay,\n equals: mobx__WEBPACK_IMPORTED_MODULE_2__.comparer.structural, // save only when something really changed\n });\n async function saveFile(state = {}) {\n logger.info(`${logPrefix} saving ${filePath}`);\n try {\n await writeJsonFile(filePath, state);\n }\n catch (error) {\n logger.error(`${logPrefix} saving failed: ${error}`, {\n json: state, jsonFilePath: filePath,\n });\n }\n }\n })()\n .catch(error => logger.error(`${logPrefix} Failed to initialize storage: ${error}`));\n }\n return new _storageHelper__WEBPACK_IMPORTED_MODULE_0__.StorageHelper(key, {\n autoInit: true,\n defaultValue,\n storage: {\n async getItem(key) {\n await (0,mobx__WEBPACK_IMPORTED_MODULE_2__.when)(() => storage.loaded);\n return storage.data[key];\n },\n setItem(key, value) {\n storage.data[key] = value;\n },\n removeItem(key) {\n delete storage.data[key];\n },\n },\n });\n};\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/create-storage/create-storage.ts?");
36065
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"createStorage\": () => (/* binding */ createStorage)\n/* harmony export */ });\n/* harmony import */ var mobx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mobx */ \"./node_modules/mobx/dist/mobx.esm.js\");\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Keeps window.localStorage state in external JSON-files.\n// Because app creates random port between restarts => storage session wiped out each time.\n\n\n/**\n * Creates a helper for saving data under the \"key\" intended for window.localStorage\n */\nconst createStorage = ({ storage, joinPaths, logger, directoryForLensLocalStorage, readJsonFile, writeJsonFile, hostedClusterId, saveDelay, }) => (key, defaultValue) => {\n const { logPrefix } = _storageHelper__WEBPACK_IMPORTED_MODULE_0__.StorageHelper;\n if (!storage.initialized) {\n storage.initialized = true;\n (async () => {\n const filePath = joinPaths(directoryForLensLocalStorage, `${hostedClusterId || \"app\"}.json`);\n try {\n storage.data = (await readJsonFile(filePath));\n }\n catch {\n // do nothing\n }\n finally {\n logger.info(`${logPrefix} loading finished for ${filePath}`);\n storage.loaded = true;\n }\n // bind auto-saving data changes to %storage-file.json\n (0,mobx__WEBPACK_IMPORTED_MODULE_1__.reaction)(() => (0,mobx__WEBPACK_IMPORTED_MODULE_1__.toJS)(storage.data), saveFile, {\n delay: saveDelay,\n equals: mobx__WEBPACK_IMPORTED_MODULE_1__.comparer.structural, // save only when something really changed\n });\n async function saveFile(state = {}) {\n logger.info(`${logPrefix} saving ${filePath}`);\n try {\n await writeJsonFile(filePath, state);\n }\n catch (error) {\n logger.error(`${logPrefix} saving failed: ${error}`, {\n json: state, jsonFilePath: filePath,\n });\n }\n }\n })()\n .catch(error => logger.error(`${logPrefix} Failed to initialize storage: ${error}`));\n }\n return new _storageHelper__WEBPACK_IMPORTED_MODULE_0__.StorageHelper(key, {\n autoInit: true,\n defaultValue,\n storage: {\n async getItem(key) {\n await (0,mobx__WEBPACK_IMPORTED_MODULE_1__.when)(() => storage.loaded);\n return storage.data[key];\n },\n setItem(key, value) {\n storage.data[key] = value;\n },\n removeItem(key) {\n delete storage.data[key];\n },\n },\n });\n};\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/create-storage/create-storage.ts?");
36000
36066
 
36001
36067
  /***/ }),
36002
36068
 
@@ -36051,7 +36117,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
36051
36117
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36052
36118
 
36053
36119
  "use strict";
36054
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EventEmitter\": () => (/* reexport safe */ _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__.EventEmitter),\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Singleton),\n/* harmony export */ \"StorageHelper\": () => (/* reexport safe */ _storageHelper__WEBPACK_IMPORTED_MODULE_12__.StorageHelper),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.array),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.base64),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bytesToUnits),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.cpuUnitsToNumber),\n/* harmony export */ \"cssNames\": () => (/* reexport safe */ _cssNames__WEBPACK_IMPORTED_MODULE_2__.cssNames),\n/* harmony export */ \"cssVar\": () => (/* reexport safe */ _cssVar__WEBPACK_IMPORTED_MODULE_3__.cssVar),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.delay),\n/* harmony export */ \"displayMode\": () => (/* reexport safe */ _display_mode__WEBPACK_IMPORTED_MODULE_4__.displayMode),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadJson),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.escapeRegExp),\n/* harmony export */ \"extractTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.extractTar),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.formatDuration),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getAppVersionFromProxyServer),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterIdFromHost),\n/* harmony export */ \"getConvertedParts\": () => (/* reexport safe */ _name_parts__WEBPACK_IMPORTED_MODULE_9__.getConvertedParts),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWithAsync),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getRandId),\n/* harmony export */ \"hasDefinedTupleValue\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasDefinedTupleValue),\n/* harmony export */ \"hasDefiniteField\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasDefiniteField),\n/* harmony export */ \"hasOptionalTypedProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOptionalTypedProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasTypedProperty),\n/* harmony export */ \"includes\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.includes),\n/* harmony export */ \"interval\": () => (/* reexport safe */ _interval__WEBPACK_IMPORTED_MODULE_5__.interval),\n/* harmony export */ \"isBoolean\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isBoolean),\n/* harmony export */ \"isBuffer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isBuffer),\n/* harmony export */ \"isChildProcessError\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isChildProcessError),\n/* harmony export */ \"isDefined\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isDefined),\n/* harmony export */ \"isErrnoException\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isErrnoException),\n/* harmony export */ \"isExecException\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isExecException),\n/* harmony export */ \"isExecFileException\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isExecFileException),\n/* harmony export */ \"isLogicalChildPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isLogicalChildPath),\n/* harmony export */ \"isMiddleClick\": () => (/* reexport safe */ _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__.isMiddleClick),\n/* harmony export */ \"isNumber\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isNumber),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isObject),\n/* harmony export */ \"isPromiseSettledFulfilled\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isPromiseSettledFulfilled),\n/* harmony export */ \"isPromiseSettledRejected\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isPromiseSettledRejected),\n/* harmony export */ \"isReactNode\": () => (/* reexport safe */ _isReactNode__WEBPACK_IMPORTED_MODULE_7__.isReactNode),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isRecord),\n/* harmony export */ \"isRequestError\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isRequestError),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.iter),\n/* harmony export */ \"json\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.json),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.makeIterableIterator),\n/* harmony export */ \"metricUnitsToNumber\": () => (/* reexport safe */ _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__.metricUnitsToNumber),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.nFircate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.noop),\n/* harmony export */ \"object\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.object),\n/* harmony export */ \"observableCrate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.observableCrate),\n/* harmony export */ \"onceDefined\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.onceDefined),\n/* harmony export */ \"prevDefault\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.prevDefault),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.promiseExecFile),\n/* harmony export */ \"put\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.put),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.readFileFromTar),\n/* harmony export */ \"readonly\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.readonly),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rejectPromiseBy),\n/* harmony export */ \"resolvePath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.resolvePath),\n/* harmony export */ \"resolveTilde\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.resolveTilde),\n/* harmony export */ \"saveFileDialog\": () => (/* reexport safe */ _saveFile__WEBPACK_IMPORTED_MODULE_11__.saveFileDialog),\n/* harmony export */ \"sortCharts\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCharts),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompare),\n/* harmony export */ \"sortCompareChartVersions\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompareChartVersions),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.splitArray),\n/* harmony export */ \"stopPropagation\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.stopPropagation),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.tuple),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.waitForPath),\n/* harmony export */ \"waitUntilDefined\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.waitUntilDefined)\n/* harmony export */ });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony import */ var _cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony import */ var _cssVar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cssVar */ \"./src/renderer/utils/cssVar.ts\");\n/* harmony import */ var _display_mode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display-mode */ \"./src/renderer/utils/display-mode.ts\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./src/renderer/utils/interval.ts\");\n/* harmony import */ var _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isMiddleClick */ \"./src/renderer/utils/isMiddleClick.ts\");\n/* harmony import */ var _isReactNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isReactNode */ \"./src/renderer/utils/isReactNode.ts\");\n/* harmony import */ var _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./metricUnitsToNumber */ \"./src/renderer/utils/metricUnitsToNumber.ts\");\n/* harmony import */ var _name_parts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./name-parts */ \"./src/renderer/utils/name-parts.ts\");\n/* harmony import */ var _prevDefault__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony import */ var _saveFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saveFile */ \"./src/renderer/utils/saveFile.ts\");\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Common usage utils & helpers\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/index.ts?");
36120
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"EventEmitter\": () => (/* reexport safe */ _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__.EventEmitter),\n/* harmony export */ \"HashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.HashSet),\n/* harmony export */ \"ObservableHashSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.ObservableHashSet),\n/* harmony export */ \"Ordering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Ordering),\n/* harmony export */ \"Singleton\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.Singleton),\n/* harmony export */ \"StorageHelper\": () => (/* reexport safe */ _storageHelper__WEBPACK_IMPORTED_MODULE_12__.StorageHelper),\n/* harmony export */ \"WrappedAbortController\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.WrappedAbortController),\n/* harmony export */ \"array\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.array),\n/* harmony export */ \"autoBind\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.autoBind),\n/* harmony export */ \"base64\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.base64),\n/* harmony export */ \"bifurcateArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bifurcateArray),\n/* harmony export */ \"bindPredicate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bindPredicate),\n/* harmony export */ \"bytesToUnits\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.bytesToUnits),\n/* harmony export */ \"cpuUnitsToNumber\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.cpuUnitsToNumber),\n/* harmony export */ \"cssNames\": () => (/* reexport safe */ _cssNames__WEBPACK_IMPORTED_MODULE_2__.cssNames),\n/* harmony export */ \"cssVar\": () => (/* reexport safe */ _cssVar__WEBPACK_IMPORTED_MODULE_3__.cssVar),\n/* harmony export */ \"debouncePromise\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.debouncePromise),\n/* harmony export */ \"delay\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.delay),\n/* harmony export */ \"displayMode\": () => (/* reexport safe */ _display_mode__WEBPACK_IMPORTED_MODULE_4__.displayMode),\n/* harmony export */ \"disposer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.disposer),\n/* harmony export */ \"downloadFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadFile),\n/* harmony export */ \"downloadJson\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.downloadJson),\n/* harmony export */ \"escapeRegExp\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.escapeRegExp),\n/* harmony export */ \"formatDuration\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.formatDuration),\n/* harmony export */ \"getAppVersionFromProxyServer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getAppVersionFromProxyServer),\n/* harmony export */ \"getClusterFrameUrl\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterFrameUrl),\n/* harmony export */ \"getClusterIdFromHost\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getClusterIdFromHost),\n/* harmony export */ \"getConvertedParts\": () => (/* reexport safe */ _name_parts__WEBPACK_IMPORTED_MODULE_9__.getConvertedParts),\n/* harmony export */ \"getOrInsert\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsert),\n/* harmony export */ \"getOrInsertMap\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertMap),\n/* harmony export */ \"getOrInsertSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertSet),\n/* harmony export */ \"getOrInsertWith\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWith),\n/* harmony export */ \"getOrInsertWithAsync\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getOrInsertWithAsync),\n/* harmony export */ \"getRandId\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.getRandId),\n/* harmony export */ \"hasDefinedTupleValue\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasDefinedTupleValue),\n/* harmony export */ \"hasDefiniteField\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasDefiniteField),\n/* harmony export */ \"hasOptionalTypedProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOptionalTypedProperty),\n/* harmony export */ \"hasOwnProperties\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperties),\n/* harmony export */ \"hasOwnProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasOwnProperty),\n/* harmony export */ \"hasTypedProperty\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.hasTypedProperty),\n/* harmony export */ \"includes\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.includes),\n/* harmony export */ \"interval\": () => (/* reexport safe */ _interval__WEBPACK_IMPORTED_MODULE_5__.interval),\n/* harmony export */ \"isBoolean\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isBoolean),\n/* harmony export */ \"isBuffer\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isBuffer),\n/* harmony export */ \"isChildProcessError\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isChildProcessError),\n/* harmony export */ \"isDefined\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isDefined),\n/* harmony export */ \"isErrnoException\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isErrnoException),\n/* harmony export */ \"isExecException\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isExecException),\n/* harmony export */ \"isExecFileException\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isExecFileException),\n/* harmony export */ \"isMiddleClick\": () => (/* reexport safe */ _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__.isMiddleClick),\n/* harmony export */ \"isNumber\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isNumber),\n/* harmony export */ \"isObject\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isObject),\n/* harmony export */ \"isPromiseSettledFulfilled\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isPromiseSettledFulfilled),\n/* harmony export */ \"isPromiseSettledRejected\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isPromiseSettledRejected),\n/* harmony export */ \"isReactNode\": () => (/* reexport safe */ _isReactNode__WEBPACK_IMPORTED_MODULE_7__.isReactNode),\n/* harmony export */ \"isRecord\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isRecord),\n/* harmony export */ \"isRequestError\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isRequestError),\n/* harmony export */ \"isString\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isString),\n/* harmony export */ \"isTypedArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.isTypedArray),\n/* harmony export */ \"iter\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.iter),\n/* harmony export */ \"json\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.json),\n/* harmony export */ \"listTarEntries\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.listTarEntries),\n/* harmony export */ \"makeIterableIterator\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.makeIterableIterator),\n/* harmony export */ \"metricUnitsToNumber\": () => (/* reexport safe */ _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__.metricUnitsToNumber),\n/* harmony export */ \"nFircate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.nFircate),\n/* harmony export */ \"noop\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.noop),\n/* harmony export */ \"object\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.object),\n/* harmony export */ \"observableCrate\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.observableCrate),\n/* harmony export */ \"onceDefined\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.onceDefined),\n/* harmony export */ \"prevDefault\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.prevDefault),\n/* harmony export */ \"promiseExecFile\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.promiseExecFile),\n/* harmony export */ \"put\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.put),\n/* harmony export */ \"readFileFromTar\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.readFileFromTar),\n/* harmony export */ \"readonly\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.readonly),\n/* harmony export */ \"rectifyOrdering\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rectifyOrdering),\n/* harmony export */ \"rejectPromiseBy\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.rejectPromiseBy),\n/* harmony export */ \"saveFileDialog\": () => (/* reexport safe */ _saveFile__WEBPACK_IMPORTED_MODULE_11__.saveFileDialog),\n/* harmony export */ \"sortBySemverVersion\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortBySemverVersion),\n/* harmony export */ \"sortCompare\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.sortCompare),\n/* harmony export */ \"splitArray\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.splitArray),\n/* harmony export */ \"stopPropagation\": () => (/* reexport safe */ _prevDefault__WEBPACK_IMPORTED_MODULE_10__.stopPropagation),\n/* harmony export */ \"strictGet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictGet),\n/* harmony export */ \"strictSet\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.strictSet),\n/* harmony export */ \"toCamelCase\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toCamelCase),\n/* harmony export */ \"toJS\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toJS),\n/* harmony export */ \"toggle\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.toggle),\n/* harmony export */ \"tuple\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.tuple),\n/* harmony export */ \"unitsToBytes\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.unitsToBytes),\n/* harmony export */ \"waitForPath\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.waitForPath),\n/* harmony export */ \"waitUntilDefined\": () => (/* reexport safe */ _common_utils__WEBPACK_IMPORTED_MODULE_0__.waitUntilDefined)\n/* harmony export */ });\n/* harmony import */ var _common_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/utils */ \"./src/common/utils/index.ts\");\n/* harmony import */ var _common_event_emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/event-emitter */ \"./src/common/event-emitter.ts\");\n/* harmony import */ var _cssNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./cssNames */ \"./src/renderer/utils/cssNames.ts\");\n/* harmony import */ var _cssVar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cssVar */ \"./src/renderer/utils/cssVar.ts\");\n/* harmony import */ var _display_mode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./display-mode */ \"./src/renderer/utils/display-mode.ts\");\n/* harmony import */ var _interval__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./interval */ \"./src/renderer/utils/interval.ts\");\n/* harmony import */ var _isMiddleClick__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isMiddleClick */ \"./src/renderer/utils/isMiddleClick.ts\");\n/* harmony import */ var _isReactNode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isReactNode */ \"./src/renderer/utils/isReactNode.ts\");\n/* harmony import */ var _metricUnitsToNumber__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./metricUnitsToNumber */ \"./src/renderer/utils/metricUnitsToNumber.ts\");\n/* harmony import */ var _name_parts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./name-parts */ \"./src/renderer/utils/name-parts.ts\");\n/* harmony import */ var _prevDefault__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./prevDefault */ \"./src/renderer/utils/prevDefault.ts\");\n/* harmony import */ var _saveFile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./saveFile */ \"./src/renderer/utils/saveFile.ts\");\n/* harmony import */ var _storageHelper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./storageHelper */ \"./src/renderer/utils/storageHelper.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n// Common usage utils & helpers\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/index.ts?");
36055
36121
 
36056
36122
  /***/ }),
36057
36123
 
@@ -36139,7 +36205,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
36139
36205
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
36140
36206
 
36141
36207
  "use strict";
36142
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ResourceKindMap\": () => (/* binding */ ResourceKindMap),\n/* harmony export */ \"ResourceNames\": () => (/* binding */ ResourceNames)\n/* harmony export */ });\n/* harmony import */ var _common_rbac__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/rbac */ \"./src/common/rbac.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst ResourceNames = {\n \"namespaces\": \"Namespaces\",\n \"nodes\": \"Nodes\",\n \"events\": \"Events\",\n \"resourcequotas\": \"Resource Quotas\",\n \"services\": \"Services\",\n \"secrets\": \"Secrets\",\n \"configmaps\": \"Config Maps\",\n \"ingresses\": \"Ingresses\",\n \"networkpolicies\": \"Network Policies\",\n \"persistentvolumeclaims\": \"Persistent Volume Claims\",\n \"persistentvolumes\": \"Persistent Volumes\",\n \"storageclasses\": \"Storage Classes\",\n \"pods\": \"Pods\",\n \"daemonsets\": \"Daemon Sets\",\n \"deployments\": \"Deployments\",\n \"statefulsets\": \"Stateful Sets\",\n \"replicasets\": \"Replica Sets\",\n \"jobs\": \"Jobs\",\n \"cronjobs\": \"Cron Jobs\",\n \"endpoints\": \"Endpoints\",\n \"customresourcedefinitions\": \"Custom Resource Definitions\",\n \"horizontalpodautoscalers\": \"Horizontal Pod Autoscalers\",\n \"podsecuritypolicies\": \"Pod Security Policies\",\n \"poddisruptionbudgets\": \"Pod Disruption Budgets\",\n \"priorityclasses\": \"Priority Classes\",\n \"limitranges\": \"Limit Ranges\",\n \"roles\": \"Roles\",\n \"rolebindings\": \"Role Bindings\",\n \"clusterrolebindings\": \"Cluster Role Bindings\",\n \"clusterroles\": \"Cluster Roles\",\n \"serviceaccounts\": \"Service Accounts\",\n};\nconst ResourceKindMap = Object.fromEntries(Object.entries(_common_rbac__WEBPACK_IMPORTED_MODULE_0__.apiResourceRecord)\n .map(([resource, { kind }]) => [kind, resource]));\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/rbac.ts?");
36208
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ResourceKindMap\": () => (/* binding */ ResourceKindMap),\n/* harmony export */ \"ResourceNames\": () => (/* binding */ ResourceNames)\n/* harmony export */ });\n/* harmony import */ var _common_rbac__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/rbac */ \"./src/common/rbac.ts\");\n/**\n * Copyright (c) OpenLens Authors. All rights reserved.\n * Licensed under MIT License. See LICENSE in root directory for more information.\n */\n\nconst ResourceNames = {\n \"namespaces\": \"Namespaces\",\n \"nodes\": \"Nodes\",\n \"events\": \"Events\",\n \"resourcequotas\": \"Resource Quotas\",\n \"services\": \"Services\",\n \"secrets\": \"Secrets\",\n \"configmaps\": \"Config Maps\",\n \"ingresses\": \"Ingresses\",\n \"networkpolicies\": \"Network Policies\",\n \"persistentvolumeclaims\": \"Persistent Volume Claims\",\n \"persistentvolumes\": \"Persistent Volumes\",\n \"storageclasses\": \"Storage Classes\",\n \"pods\": \"Pods\",\n \"daemonsets\": \"Daemon Sets\",\n \"deployments\": \"Deployments\",\n \"statefulsets\": \"Stateful Sets\",\n \"replicasets\": \"Replica Sets\",\n \"jobs\": \"Jobs\",\n \"cronjobs\": \"Cron Jobs\",\n \"endpoints\": \"Endpoints\",\n \"customresourcedefinitions\": \"Custom Resource Definitions\",\n \"horizontalpodautoscalers\": \"Horizontal Pod Autoscalers\",\n \"podsecuritypolicies\": \"Pod Security Policies\",\n \"poddisruptionbudgets\": \"Pod Disruption Budgets\",\n \"priorityclasses\": \"Priority Classes\",\n \"runtimeclasses\": \"Runtime Classes\",\n \"limitranges\": \"Limit Ranges\",\n \"roles\": \"Roles\",\n \"rolebindings\": \"Role Bindings\",\n \"clusterrolebindings\": \"Cluster Role Bindings\",\n \"clusterroles\": \"Cluster Roles\",\n \"serviceaccounts\": \"Service Accounts\",\n};\nconst ResourceKindMap = Object.fromEntries(Object.entries(_common_rbac__WEBPACK_IMPORTED_MODULE_0__.apiResourceRecord)\n .map(([resource, { kind }]) => [kind, resource]));\n\n\n//# sourceURL=webpack://open-lens/./src/renderer/utils/rbac.ts?");
36143
36209
 
36144
36210
  /***/ }),
36145
36211
 
@@ -40528,7 +40594,7 @@ eval("module.exports = JSON.parse('{\"name\":\"winston\",\"description\":\"A log
40528
40594
  /***/ ((module) => {
40529
40595
 
40530
40596
  "use strict";
40531
- eval("module.exports = JSON.parse('{\"name\":\"open-lens\",\"productName\":\"OpenLens\",\"description\":\"OpenLens - Open Source IDE for Kubernetes\",\"homepage\":\"https://github.com/lensapp/lens\",\"version\":\"6.1.0\",\"main\":\"static/build/main.js\",\"copyright\":\"© 2022 OpenLens Authors\",\"license\":\"MIT\",\"author\":{\"name\":\"OpenLens Authors\",\"email\":\"info@k8slens.dev\"},\"scripts\":{\"adr:create\":\"echo \\\\\"What is the title?\\\\\"; read title; adr new \\\\\"$title\\\\\"\",\"adr:change-status\":\"echo \\\\\"Decision number?:\\\\\"; read decision; adr status $decision\",\"adr:update-readme\":\"adr update\",\"adr:list\":\"adr list\",\"dev\":\"concurrently -i -k \\\\\"yarn run dev-run -C\\\\\" yarn:dev:*\",\"dev-build\":\"concurrently yarn:compile:*\",\"debug-build\":\"concurrently yarn:compile:main yarn:compile:extension-types\",\"dev-run\":\"nodemon --watch ./static/build/main.js --exec \\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\"\",\"dev:main\":\"yarn run compile:main --watch --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-build-version\":\"yarn run ts-node build/set_build_version.ts\",\"npm:fix-package-version\":\"yarn run ts-node build/set_npm_version.ts\",\"build:linux\":\"yarn run compile && electron-builder --linux --dir\",\"build:mac\":\"yarn run compile && electron-builder --mac --dir\",\"build:win\":\"yarn run compile && electron-builder --win --dir\",\"integration\":\"jest --runInBand --detectOpenHandles --forceExit integration\",\"test:unit\":\"func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/generate-tray-icons.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\",\"precreate-release-pr\":\"npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs\",\"create-release-pr\":\"node ./scripts/create-release-pr.mjs\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\",\"contentSecurityPolicy\":\"script-src \\'unsafe-eval\\' \\'self\\'; frame-src http://*.localhost:*/; img-src * data:\",\"welcomeRoute\":\"/welcome\"},\"engines\":{\"node\":\">=16 <17\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.(t|j)sx?$\":[\"@swc/jest\"]},\"testEnvironment\":\"jsdom\",\"resolver\":\"<rootDir>/src/jest-28-resolver.js\",\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globalSetup\":\"<rootDir>/src/jest.timezone.ts\",\"setupFilesAfterEnv\":[\"<rootDir>/src/jest-after-env.setup.ts\"],\"runtime\":\"@side/jest-runtime\"},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"resolutions\":{\"@astronautlabs/jsonpath/underscore\":\"^1.12.1\"},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^9.0.0\",\"@hapi/subtext\":\"^7.0.4\",\"@kubernetes/client-node\":\"^0.17.1\",\"@material-ui/styles\":\"^4.11.5\",\"@ogre-tools/fp\":\"10.1.0\",\"@ogre-tools/injectable\":\"10.1.0\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"10.1.0\",\"@ogre-tools/injectable-extension-for-mobx\":\"10.1.0\",\"@ogre-tools/injectable-react\":\"10.1.0\",\"@sentry/electron\":\"^3.0.8\",\"@sentry/integrations\":\"^6.19.3\",\"@side/jest-runtime\":\"^1.0.1\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.2.2\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.6\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.5\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"history\":\"^4.10.1\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.15\",\"joi\":\"^17.6.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.1.1\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.6.2\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.5.3\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.4\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.37\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^2.6.7\",\"node-pty\":\"0.10.1\",\"npm\":\"^8.19.2\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^17.0.2\",\"react-dom\":\"^17.0.2\",\"react-material-ui-carousel\":\"^2.3.11\",\"react-router\":\"^5.2.0\",\"react-virtualized-auto-sizer\":\"^1.0.7\",\"readable-stream\":\"^3.6.0\",\"request\":\"^2.88.2\",\"request-promise-native\":\"^1.0.9\",\"rfc6902\":\"^4.0.2\",\"selfsigned\":\"^2.1.1\",\"semver\":\"^7.3.7\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"typed-regex\":\"^0.0.8\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.8.2\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.9.0\",\"xterm-link-provider\":\"^1.3.1\"},\"devDependencies\":{\"@async-fn/jest\":\"1.6.4\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.7\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.3.1\",\"@swc/jest\":\"^0.2.22\",\"@testing-library/dom\":\"^7.31.2\",\"@testing-library/jest-dom\":\"^5.16.5\",\"@testing-library/react\":\"^12.1.5\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"@types/cli-progress\":\"^3.11.0\",\"@types/color\":\"^3.0.3\",\"@types/command-line-args\":\"^5.2.0\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.4\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hapi__call\":\"^9.0.0\",\"@types/hapi__subtext\":\"^7.0.0\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.9\",\"@types/jest\":\"^28.1.6\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.185\",\"@types/marked\":\"^4.0.7\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.11.63\",\"@types/node-fetch\":\"^2.6.2\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.45\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.16\",\"@types/react-router\":\"^5.1.18\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-table\":\"^7.7.12\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.12\",\"@types/sharp\":\"^0.31.0\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^4.0.5\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.18.0\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.37.0\",\"@typescript-eslint/parser\":\"^5.37.0\",\"adr\":\"^1.4.2\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.11.2\",\"color\":\"^3.2.1\",\"command-line-args\":\"^5.2.1\",\"concurrently\":\"^7.4.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.0\",\"electron\":\"^19.1.1\",\"electron-builder\":\"^23.3.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.10\",\"esbuild-loader\":\"^2.20.0\",\"eslint\":\"^8.23.1\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.31.8\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.2\",\"gunzip-maybe\":\"^1.4.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"^28.1.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-environment-jsdom\":\"^28.1.3\",\"jest-fetch-mock\":\"^3.0.3\",\"jest-mock-extended\":\"^2.0.9\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.1\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.20\",\"playwright\":\"^1.25.2\",\"postcss\":\"^8.4.16\",\"postcss-loader\":\"^6.2.1\",\"query-string\":\"^7.1.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.1\",\"react-refresh\":\"^0.14.0\",\"react-refresh-typescript\":\"^2.0.7\",\"react-router-dom\":\"^5.3.3\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.54.9\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.31.0\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.1.8\",\"tar-stream\":\"^2.2.0\",\"ts-loader\":\"^9.3.1\",\"ts-node\":\"^10.9.1\",\"type-fest\":\"^2.14.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.23.15\",\"typedoc-plugin-markdown\":\"^3.13.1\",\"typescript\":\"^4.8.3\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.74.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.11.0\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.19.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
40597
+ eval("module.exports = JSON.parse('{\"name\":\"open-lens\",\"productName\":\"OpenLens\",\"description\":\"OpenLens - Open Source IDE for Kubernetes\",\"homepage\":\"https://github.com/lensapp/lens\",\"version\":\"6.1.0\",\"main\":\"static/build/main.js\",\"copyright\":\"© 2022 OpenLens Authors\",\"license\":\"MIT\",\"author\":{\"name\":\"OpenLens Authors\",\"email\":\"info@k8slens.dev\"},\"scripts\":{\"adr:create\":\"echo \\\\\"What is the title?\\\\\"; read title; adr new \\\\\"$title\\\\\"\",\"adr:change-status\":\"echo \\\\\"Decision number?:\\\\\"; read decision; adr status $decision\",\"adr:update-readme\":\"adr update\",\"adr:list\":\"adr list\",\"dev\":\"concurrently -i -k \\\\\"yarn run dev-run -C\\\\\" yarn:dev:*\",\"dev-build\":\"concurrently yarn:compile:*\",\"debug-build\":\"concurrently yarn:compile:main yarn:compile:extension-types\",\"dev-run\":\"nodemon --watch ./static/build/main.js --exec \\\\\"electron --remote-debugging-port=9223 --inspect .\\\\\"\",\"dev:main\":\"yarn run compile:main --watch --progress\",\"dev:renderer\":\"yarn run ts-node webpack/dev-server.ts\",\"compile\":\"env NODE_ENV=production concurrently yarn:compile:*\",\"compile:main\":\"yarn run webpack --config webpack/main.ts\",\"compile:renderer\":\"yarn run webpack --config webpack/renderer.ts\",\"compile:extension-types\":\"yarn run webpack --config webpack/extensions.ts\",\"npm:fix-package-version\":\"yarn run ts-node build/set_npm_version.ts\",\"build:linux\":\"yarn run compile && electron-builder --linux --dir\",\"build:mac\":\"yarn run compile && electron-builder --mac --dir\",\"build:win\":\"yarn run compile && electron-builder --win --dir\",\"integration\":\"jest --runInBand --detectOpenHandles --forceExit integration\",\"test:unit\":\"func() { jest ${1} --watch --testPathIgnorePatterns integration; }; func\",\"test:integration\":\"func() { jest ${1:-xyz} --watch --runInBand --detectOpenHandles --forceExit --modulePaths=[\\\\\"<rootDir>/integration/\\\\\"]; }; func\",\"dist\":\"yarn run compile && electron-builder --publish onTag\",\"dist:dir\":\"yarn run dist --dir -c.compression=store -c.mac.identity=null\",\"download:binaries\":\"yarn run ts-node build/download_binaries.ts\",\"build:tray-icons\":\"yarn run ts-node build/generate-tray-icons.ts\",\"build:theme-vars\":\"yarn run ts-node build/build_theme_vars.ts\",\"lint\":\"PROD=true yarn run eslint --ext js,ts,tsx --max-warnings=0 .\",\"lint:fix\":\"yarn run lint --fix\",\"mkdocs-serve-local\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest\",\"verify-docs\":\"docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict\",\"typedocs-extensions-api\":\"yarn run typedoc src/extensions/extension-api.ts\",\"version-checkout\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release/v%s\\\\\" | xargs git checkout -b\",\"version-commit\":\"cat package.json | jq \\'.version\\' -r | xargs printf \\\\\"release v%s\\\\\" | git commit --no-edit -s -F -\",\"version\":\"yarn run version-checkout && git add package.json && yarn run version-commit\",\"postversion\":\"git push --set-upstream ${GIT_REMOTE:-origin} release/v$npm_package_version\",\"precreate-release-pr\":\"npx swc ./scripts/create-release-pr.ts -o ./scripts/create-release-pr.mjs\",\"create-release-pr\":\"node ./scripts/create-release-pr.mjs\"},\"config\":{\"k8sProxyVersion\":\"0.2.1\",\"bundledKubectlVersion\":\"1.23.3\",\"bundledHelmVersion\":\"3.7.2\",\"sentryDsn\":\"\",\"contentSecurityPolicy\":\"script-src \\'unsafe-eval\\' \\'self\\'; frame-src http://*.localhost:*/; img-src * data:\",\"welcomeRoute\":\"/welcome\"},\"engines\":{\"node\":\">=16 <17\"},\"jest\":{\"collectCoverage\":false,\"verbose\":true,\"transform\":{\"^.+\\\\\\\\.(t|j)sx?$\":[\"@swc/jest\"]},\"testEnvironment\":\"jsdom\",\"resolver\":\"<rootDir>/src/jest-28-resolver.js\",\"moduleNameMapper\":{\"\\\\\\\\.(css|scss)$\":\"identity-obj-proxy\",\"\\\\\\\\.(svg|png|jpg|eot|woff2?|ttf)$\":\"<rootDir>/__mocks__/assetMock.ts\"},\"modulePathIgnorePatterns\":[\"<rootDir>/dist\",\"<rootDir>/src/extensions/npm\"],\"setupFiles\":[\"<rootDir>/src/jest.setup.ts\",\"jest-canvas-mock\"],\"globalSetup\":\"<rootDir>/src/jest.timezone.ts\",\"setupFilesAfterEnv\":[\"<rootDir>/src/jest-after-env.setup.ts\"],\"runtime\":\"@side/jest-runtime\"},\"build\":{\"generateUpdatesFilesForAllChannels\":true,\"files\":[\"static/build/main.js\"],\"afterSign\":\"build/notarize.js\",\"extraResources\":[{\"from\":\"locales/\",\"to\":\"locales/\",\"filter\":\"**/*.js\"},{\"from\":\"static/\",\"to\":\"static/\",\"filter\":\"!**/main.js\"},{\"from\":\"build/tray\",\"to\":\"static/icons\",\"filter\":\"*.png\"},{\"from\":\"extensions/\",\"to\":\"./extensions/\",\"filter\":[\"**/*.tgz\",\"**/package.json\",\"!**/node_modules\"]},{\"from\":\"templates/\",\"to\":\"./templates/\",\"filter\":\"**/*.yaml\"},\"LICENSE\"],\"linux\":{\"category\":\"Network\",\"artifactName\":\"${productName}-${version}.${arch}.${ext}\",\"target\":[\"deb\",\"rpm\",\"AppImage\"],\"extraResources\":[{\"from\":\"binaries/client/linux/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/linux/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/linux/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"rpm\":{\"fpm\":[\"--rpm-rpmbuild-define=%define _build_id_links none\"]},\"mac\":{\"hardenedRuntime\":true,\"gatekeeperAssess\":false,\"entitlements\":\"build/entitlements.mac.plist\",\"entitlementsInherit\":\"build/entitlements.mac.plist\",\"extraResources\":[{\"from\":\"binaries/client/darwin/${arch}/kubectl\",\"to\":\"./${arch}/kubectl\"},{\"from\":\"binaries/client/darwin/${arch}/lens-k8s-proxy\",\"to\":\"./${arch}/lens-k8s-proxy\"},{\"from\":\"binaries/client/darwin/${arch}/helm\",\"to\":\"./${arch}/helm\"}]},\"win\":{\"target\":[\"nsis\"],\"extraResources\":[{\"from\":\"binaries/client/windows/${arch}/kubectl.exe\",\"to\":\"./${arch}/kubectl.exe\"},{\"from\":\"binaries/client/windows/${arch}/lens-k8s-proxy.exe\",\"to\":\"./${arch}/lens-k8s-proxy.exe\"},{\"from\":\"binaries/client/windows/${arch}/helm.exe\",\"to\":\"./${arch}/helm.exe\"}]},\"nsis\":{\"include\":\"build/installer.nsh\",\"oneClick\":false,\"allowElevation\":true,\"createStartMenuShortcut\":true,\"allowToChangeInstallationDirectory\":true},\"protocols\":{\"name\":\"Lens Protocol Handler\",\"schemes\":[\"lens\"],\"role\":\"Viewer\"}},\"resolutions\":{\"@astronautlabs/jsonpath/underscore\":\"^1.12.1\"},\"dependencies\":{\"@astronautlabs/jsonpath\":\"^1.1.0\",\"@hapi/call\":\"^9.0.0\",\"@hapi/subtext\":\"^7.0.4\",\"@kubernetes/client-node\":\"^0.17.1\",\"@material-ui/styles\":\"^4.11.5\",\"@ogre-tools/fp\":\"10.1.0\",\"@ogre-tools/injectable\":\"10.1.0\",\"@ogre-tools/injectable-extension-for-auto-registration\":\"10.1.0\",\"@ogre-tools/injectable-extension-for-mobx\":\"10.1.0\",\"@ogre-tools/injectable-react\":\"10.1.0\",\"@sentry/electron\":\"^3.0.8\",\"@sentry/integrations\":\"^6.19.3\",\"@side/jest-runtime\":\"^1.0.1\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"abort-controller\":\"^3.0.0\",\"auto-bind\":\"^4.0.0\",\"await-lock\":\"^2.2.2\",\"byline\":\"^5.0.0\",\"chokidar\":\"^3.5.3\",\"conf\":\"^7.1.2\",\"crypto-js\":\"^4.1.1\",\"electron-devtools-installer\":\"^3.2.0\",\"electron-updater\":\"^4.6.5\",\"electron-window-state\":\"^5.0.3\",\"filehound\":\"^1.17.6\",\"fs-extra\":\"^9.0.1\",\"glob-to-regexp\":\"^0.4.1\",\"got\":\"^11.8.5\",\"grapheme-splitter\":\"^1.0.4\",\"handlebars\":\"^4.7.7\",\"history\":\"^4.10.1\",\"http-proxy\":\"^1.18.1\",\"immer\":\"^9.0.15\",\"joi\":\"^17.6.0\",\"js-yaml\":\"^4.1.0\",\"jsdom\":\"^16.7.0\",\"lodash\":\"^4.17.15\",\"mac-ca\":\"^1.0.6\",\"marked\":\"^4.1.1\",\"md5-file\":\"^5.0.0\",\"mobx\":\"^6.6.2\",\"mobx-observable-history\":\"^2.0.3\",\"mobx-react\":\"^7.5.3\",\"mobx-utils\":\"^6.0.4\",\"mock-fs\":\"^5.1.4\",\"moment\":\"^2.29.4\",\"moment-timezone\":\"^0.5.37\",\"monaco-editor\":\"^0.29.1\",\"monaco-editor-webpack-plugin\":\"^5.0.0\",\"node-fetch\":\"^2.6.7\",\"node-pty\":\"0.10.1\",\"npm\":\"^8.19.2\",\"p-limit\":\"^3.1.0\",\"path-to-regexp\":\"^6.2.0\",\"proper-lockfile\":\"^4.1.2\",\"react\":\"^17.0.2\",\"react-dom\":\"^17.0.2\",\"react-material-ui-carousel\":\"^2.3.11\",\"react-router\":\"^5.2.0\",\"react-virtualized-auto-sizer\":\"^1.0.7\",\"readable-stream\":\"^3.6.0\",\"request\":\"^2.88.2\",\"request-promise-native\":\"^1.0.9\",\"rfc6902\":\"^4.0.2\",\"selfsigned\":\"^2.1.1\",\"semver\":\"^7.3.7\",\"shell-env\":\"^3.0.1\",\"spdy\":\"^4.0.2\",\"tar\":\"^6.1.11\",\"tcp-port-used\":\"^1.0.2\",\"tempy\":\"1.0.1\",\"typed-regex\":\"^0.0.8\",\"url-parse\":\"^1.5.10\",\"uuid\":\"^8.3.2\",\"win-ca\":\"^3.5.0\",\"winston\":\"^3.8.2\",\"winston-console-format\":\"^1.0.8\",\"winston-transport-browserconsole\":\"^1.0.5\",\"ws\":\"^8.9.0\",\"xterm-link-provider\":\"^1.3.1\"},\"devDependencies\":{\"@async-fn/jest\":\"1.6.4\",\"@material-ui/core\":\"^4.12.3\",\"@material-ui/icons\":\"^4.11.2\",\"@material-ui/lab\":\"^4.0.0-alpha.60\",\"@pmmmwh/react-refresh-webpack-plugin\":\"^0.5.7\",\"@sentry/types\":\"^6.19.7\",\"@swc/cli\":\"^0.1.57\",\"@swc/core\":\"^1.3.1\",\"@swc/jest\":\"^0.2.22\",\"@testing-library/dom\":\"^7.31.2\",\"@testing-library/jest-dom\":\"^5.16.5\",\"@testing-library/react\":\"^12.1.5\",\"@testing-library/user-event\":\"^13.5.0\",\"@types/byline\":\"^4.2.33\",\"@types/chart.js\":\"^2.9.36\",\"@types/circular-dependency-plugin\":\"5.0.5\",\"@types/cli-progress\":\"^3.11.0\",\"@types/color\":\"^3.0.3\",\"@types/command-line-args\":\"^5.2.0\",\"@types/crypto-js\":\"^3.1.47\",\"@types/dompurify\":\"^2.3.4\",\"@types/electron-devtools-installer\":\"^2.2.1\",\"@types/fs-extra\":\"^9.0.13\",\"@types/glob-to-regexp\":\"^0.4.1\",\"@types/gunzip-maybe\":\"^1.4.0\",\"@types/hapi__call\":\"^9.0.0\",\"@types/hapi__subtext\":\"^7.0.0\",\"@types/html-webpack-plugin\":\"^3.2.6\",\"@types/http-proxy\":\"^1.17.9\",\"@types/jest\":\"^28.1.6\",\"@types/js-yaml\":\"^4.0.5\",\"@types/jsdom\":\"^16.2.14\",\"@types/lodash\":\"^4.14.185\",\"@types/marked\":\"^4.0.7\",\"@types/md5-file\":\"^4.0.2\",\"@types/mini-css-extract-plugin\":\"^2.4.0\",\"@types/mock-fs\":\"^4.13.1\",\"@types/node\":\"^16.11.63\",\"@types/node-fetch\":\"^2.6.2\",\"@types/npm\":\"^2.0.32\",\"@types/proper-lockfile\":\"^4.1.2\",\"@types/randomcolor\":\"^0.5.6\",\"@types/react\":\"^17.0.45\",\"@types/react-beautiful-dnd\":\"^13.1.2\",\"@types/react-dom\":\"^17.0.16\",\"@types/react-router\":\"^5.1.18\",\"@types/react-router-dom\":\"^5.3.3\",\"@types/react-table\":\"^7.7.12\",\"@types/react-virtualized-auto-sizer\":\"^1.0.1\",\"@types/react-window\":\"^1.8.5\",\"@types/readable-stream\":\"^2.3.13\",\"@types/request\":\"^2.48.7\",\"@types/request-promise-native\":\"^1.0.18\",\"@types/semver\":\"^7.3.12\",\"@types/sharp\":\"^0.31.0\",\"@types/spdy\":\"^3.4.5\",\"@types/tar\":\"^6.1.2\",\"@types/tar-stream\":\"^2.2.2\",\"@types/tcp-port-used\":\"^1.0.1\",\"@types/tempy\":\"^0.3.0\",\"@types/triple-beam\":\"^1.3.2\",\"@types/url-parse\":\"^1.4.8\",\"@types/uuid\":\"^8.3.4\",\"@types/webpack\":\"^5.28.0\",\"@types/webpack-dev-server\":\"^4.7.2\",\"@types/webpack-env\":\"^1.18.0\",\"@types/webpack-node-externals\":\"^2.5.3\",\"@typescript-eslint/eslint-plugin\":\"^5.37.0\",\"@typescript-eslint/parser\":\"^5.39.0\",\"adr\":\"^1.4.2\",\"ansi_up\":\"^5.1.0\",\"chart.js\":\"^2.9.4\",\"circular-dependency-plugin\":\"^5.2.2\",\"cli-progress\":\"^3.11.2\",\"color\":\"^3.2.1\",\"command-line-args\":\"^5.2.1\",\"concurrently\":\"^7.4.0\",\"css-loader\":\"^6.7.1\",\"deepdash\":\"^5.3.9\",\"dompurify\":\"^2.4.0\",\"electron\":\"^19.1.1\",\"electron-builder\":\"^23.3.3\",\"electron-notarize\":\"^0.3.0\",\"esbuild\":\"^0.15.10\",\"esbuild-loader\":\"^2.20.0\",\"eslint\":\"^8.23.1\",\"eslint-plugin-header\":\"^3.1.1\",\"eslint-plugin-import\":\"^2.26.0\",\"eslint-plugin-react\":\"7.31.8\",\"eslint-plugin-react-hooks\":\"^4.6.0\",\"eslint-plugin-unused-imports\":\"^2.0.0\",\"flex.box\":\"^3.4.4\",\"fork-ts-checker-webpack-plugin\":\"^6.5.2\",\"gunzip-maybe\":\"^1.4.2\",\"html-webpack-plugin\":\"^5.5.0\",\"identity-obj-proxy\":\"^3.0.0\",\"ignore-loader\":\"^0.1.2\",\"include-media\":\"^1.4.9\",\"jest\":\"^28.1.3\",\"jest-canvas-mock\":\"^2.3.1\",\"jest-environment-jsdom\":\"^28.1.3\",\"jest-mock-extended\":\"^2.0.9\",\"make-plural\":\"^6.2.2\",\"mini-css-extract-plugin\":\"^2.6.1\",\"mock-http\":\"^1.1.0\",\"node-gyp\":\"^8.3.0\",\"node-loader\":\"^2.0.0\",\"nodemon\":\"^2.0.20\",\"playwright\":\"^1.26.1\",\"postcss\":\"^8.4.16\",\"postcss-loader\":\"^6.2.1\",\"query-string\":\"^7.1.1\",\"randomcolor\":\"^0.6.2\",\"react-beautiful-dnd\":\"^13.1.1\",\"react-refresh\":\"^0.14.0\",\"react-refresh-typescript\":\"^2.0.7\",\"react-router-dom\":\"^5.3.3\",\"react-select\":\"^5.4.0\",\"react-select-event\":\"^5.5.1\",\"react-table\":\"^7.8.0\",\"react-window\":\"^1.8.7\",\"sass\":\"^1.54.9\",\"sass-loader\":\"^12.6.0\",\"sharp\":\"^0.31.0\",\"style-loader\":\"^3.3.1\",\"tailwindcss\":\"^3.1.8\",\"tar-stream\":\"^2.2.0\",\"ts-loader\":\"^9.3.1\",\"ts-node\":\"^10.9.1\",\"type-fest\":\"^2.14.0\",\"typed-emitter\":\"^1.4.0\",\"typedoc\":\"0.23.15\",\"typedoc-plugin-markdown\":\"^3.13.6\",\"typescript\":\"^4.8.3\",\"typescript-plugin-css-modules\":\"^3.4.0\",\"webpack\":\"^5.74.0\",\"webpack-cli\":\"^4.9.2\",\"webpack-dev-server\":\"^4.11.1\",\"webpack-node-externals\":\"^3.0.0\",\"xterm\":\"^4.19.0\",\"xterm-addon-fit\":\"^0.5.0\"}}');\n\n//# sourceURL=webpack://open-lens/./package.json?");
40532
40598
 
40533
40599
  /***/ }),
40534
40600